inst/doc/copula.R

## ----abalone------------------------------------------------------------------
library("univariateML")
head(abalone)

## ---- make_data, fig.width = 6, fig.height = 5--------------------------------

data = dplyr::filter(abalone, height < 0.5)
data$age = data$rings + 1.5
data = data[c("diameter", "height", "shell_weight", "age")]
hist(data$height, main = "Abalone height", xlab = "Height in mm")

## ---- models------------------------------------------------------------------
models = c("gumbel", "laplace", "logis", "norm", "exp", "gamma", 
           "invgamma", "invgauss", "invweibull", "llogis", "lnorm", 
           "rayleigh", "weibull", "lgamma", "pareto", "beta", "kumar",
           "logitnorm")
length(models)

## ---- all_models--------------------------------------------------------------
univariateML_models

## ---- margin_select-----------------------------------------------------------
margin_fits <- lapply(data, model_select, models = models, criterion = "aic")

## ---- AIC_copula, warning = FALSE, cache = TRUE-------------------------------

# Transform the marginals to the unit interval.
y = sapply(seq_along(data), function(j) pml(data[[j]], margin_fits[[j]]))

# The copulas described above.
copulas = list(normal = copula::normalCopula(dim = 4, dispstr = "un"),
               t = copula::tCopula(dim = 4, dispstr = "un"),
               joe = copula::joeCopula(dim = 4),
               clayton = copula::claytonCopula(dim = 4),
               gumbel = copula::gumbelCopula(dim = 4))

fits = sapply(copulas,
              function(x) copula::fitCopula(x, data = y, method = "mpl"))

sapply(fits, AIC)

Try the univariateML package in your browser

Any scripts or data that you put into this service are public.

univariateML documentation built on Jan. 25, 2022, 5:09 p.m.