mle.Factor | R Documentation |
We use a two-stage etimation approach toward the estimation of factor copula models for mixed continuous and discrete data.
mle1factor(continuous, ordinal, count, copF1, gl, hessian, print.level) mle2factor(continuous, ordinal, count, copF1, copF2, gl, hessian, print.level) mle2factor.bvn(continuous, ordinal, count, copF1, copF2, gl, SpC, print.level)
continuous |
n \times d_1 matrix with the continuous reponse data, where n and d_1 is the number of observations and continous variables, respectively. |
ordinal |
n \times d_2 matrix with the ordinal reponse data, where n and d_2 is the number of observations and ordinal variables, respectively. |
count |
n \times d_3 matrix with the count reponse data, where n and d_3 is the number of observations and count variables, respectively. |
copF1 |
(d_1+d_2+d_3)-vector with the names of bivariate copulas that link the each of the oberved variabels with the 1st factor. Choices are “bvn” for BVN, “bvtν” with ν = \{1, …, 9\} degrees of freedom for t-copula, “frk” for Frank, “gum” for Gumbel, “rgum” for reflected Gumbel, “1rgum” for 1-reflected Gumbel, “2rgum” for 2-reflected Gumbel, “joe” for Joe, “rjoe” for reflected Joe, “1rjoe” for 1-reflected Joe, “2rjoe” for 2-reflected Joe, “BB1” for BB1, “rBB1” for reflected BB1, “BB7” for BB7, “rBB7” for reflected BB7, “BB8” for BB8, “rBB8” for reflected BB8, “BB10” for BB10, “rBB10” for reflected BB10. |
copF2 |
(d_1+d_2+d_3)-vector with the names of bivariate copulas that link the each of the oberved variabels with the 2nd factor. Choices are “bvn” for BVN, “bvtν” with ν = \{1, …, 9\} degrees of freedom for t-copula, “frk” for Frank, “gum” for Gumbel, “rgum” for reflected Gumbel, “1rgum” for 1-reflected Gumbel, “2rgum” for 2-reflected Gumbel, “joe” for Joe, “rjoe” for reflected Joe, “1rjoe” for 1-reflected Joe, “2rjoe” for 2-reflected Joe, “BB1” for BB1, “rBB1” for reflected BB1, “BB7” for BB7, “rBB7” for reflected BB7, “BB8” for BB8, “rBB8” for reflected BB8, “BB10” for BB10, “rBB10” for reflected BB10. |
gl |
Gauss legendre quardrature nodes and weights. |
SpC |
Special case for the 2-factor copula model with BVN copulas. Select a bivariate copula at the 2nd factor to be fixed to independence. e.g. "SpC = 1" to set the first copula at the 2nd factor to independence. |
hessian |
If TRUE, the hessian of the negative log-likelihood is calculated during the minimization process. |
print.level |
Determines the level of printing which is done during the minimization process; same as in |
Estimation is achieved by maximizing the joint log-likelihood over the copula parameters with the univariate parameters/distributions fixed as estimated at the first step of the proposed two-step estimation approach.
A list containing the following components:
cutpoints |
The estimated univariate cutpoints. |
negbinest |
The estimated univariate parametes for the count responses (fitting the negative binomial distribution). |
loglik |
The maximized joint log-likelihood. |
cpar |
Estimated copula parameters in a list form. |
taus |
The estimated copula parameters in Kendall's tau scale. |
SEs |
The SEs of the Kendall's tau estimates. |
Sayed H. Kadhem s.kadhem@uea.ac.uk
Aristidis K. Nikoloulopoulos a.nikoloulopoulos@uea.ac.uk
Kadhem, S.H. and Nikoloulopoulos, A.K. (2021) Factor copula models for mixed data. British Journal of Mathematical and Statistical Psychology, 74, 365–403. doi: 10.1111/bmsp.12231.
Krupskii, P. and Joe, H. (2013) Factor copula models for multivariate data. Journal of Multivariate Analysis, 120, 85–101. doi: 10.1016/j.jmva.2013.05.001.
Nikoloulopoulos, A.K. and Joe, H. (2015) Factor copula models with item response data. Psychometrika, 80, 126–150. doi: 10.1007/s11336-013-9387-4.
#------------------------------------------------ # Setting quadreture points nq <- 25 gl <- gauss.quad.prob(nq) #------------------------------------------------ # PE Data #------------------ ----------------- data(PE) continuous.PE1 = -PE[,1] continuous.PE2 = PE[,2] continuous.PE <- cbind(continuous.PE1, continuous.PE2) categorical.PE <- PE[, 3:5] #------------------------------------------------ # Estimation #------------------ ----------------- #------------------ One-factor ----------------- # one-factor copula model cop1f.PE <- c("joe", "joe", "rjoe", "joe", "gum") est1factor.PE <- mle1factor(continuous.PE, categorical.PE, count=NULL, copF1=cop1f.PE, gl, hessian = TRUE) est1factor.PE #------------------------------------------------ #------------------------------------------------ # GSS Data #------------------ ----------------- data(GSS) attach(GSS) continuous.GSS <- cbind(INCOME, AGE) ordinal.GSS <- cbind(DEGREE, PINCOME, PDEGREE) count.GSS <- cbind(CHILDREN, PCHILDREN) #------------------------------------------------ # Estimation #------------------ ----------------- #------------------ One-factor ----------------- # one-factor copula model cop1f.GSS <- c("joe","2rjoe","bvt3","bvt3", "rgum","2rjoe","2rgum") est1factor.GSS <- mle1factor(continuous.GSS, ordinal.GSS, count.GSS, copF1 = cop1f.GSS, gl, hessian = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.