multordRS | R Documentation |
A model for multivariate ordinal responses. The response is modelled using a mixed model approach that is also capable of the inclusion of response style effects of the respondents.
multordRS(
formula,
data = NULL,
control = ctrl.multordRS(),
se = TRUE,
model = c("acat", "cumulative")
)
formula |
Formula containing the (multivariate) ordinal response on the left side and the explanatory variables on the right side. |
data |
Data frame containing the ordinal responses as well as the explanatory variables from the |
control |
Control argument for |
se |
Should standard errors be calculated for the regression coefficients? Default is |
model |
Specifies, which type of model is used, either the (multivariate) adjacent categories model ( |
beta.thresh |
Matrix containing all threshold parameters for the respective model. |
beta.shift |
Vector containing all shift parameters. Only relevant if |
beta.X |
Vector containing parameter estimates for the location effects of the explanatory variables. |
beta.XRS |
Vector containing parameter estimates for the response style effects of the explanatory variables. |
Sigma |
Estimate of the variance (or covariance matrix) of the random effects. The estimate is a matrix if person-specific random response style effects are considered in the model (i.e. if |
Y |
Matrix containing the explanatory variables. |
X |
Data frame containing the multivariate ordinal response, one row per obeservation, one column per response variable. |
se.thresh |
Matrix containing all standard errors of the threshold parameters for the respective model. |
se.shift |
Vector containing all standard errors of the shift parameters. Only relevant if |
se.X |
Vector containing standard errors of the parameter estimates for the location effects of the explanatory variables. |
se.XRS |
Vector containing standard errors of the parameter estimates for the response style effects of the explanatory variables. |
coef.vec |
Complete vector of all parameter estimates (for internal use). |
se.vec |
Complete vector of all standard errors (for internal use). |
design.values |
Some values of the design matrix (for internal use). |
loglik |
(Marginal) Log Likelihood |
call |
Function call |
df |
Degrees of freedom |
control |
Control argument from function call |
Gunther Schauberger
gunther.schauberger@tum.de
https://orcid.org/0000-0002-0392-1580
Schauberger, Gunther and Tutz, Gerhard (2021): Multivariate Ordinal Random Effects Models Including Subject and Group Specific Response Style Effects, Statistical Modelling, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.1177/1471082X20978034")}
ctrl.multordRS
MultOrdRS-package
plot.MultOrdRS
data(tenseness)
## create a small subset of the data to speed up calculations
set.seed(1860)
tenseness <- tenseness[sample(1:nrow(tenseness), 300),]
## scale all metric variables to get comparable parameter estimates
tenseness$Age <- scale(tenseness$Age)
tenseness$Income <- scale(tenseness$Income)
## two formulas, one without and one with explanatory variables (gender and age)
f.tense0 <- as.formula(paste("cbind(",paste(names(tenseness)[1:4],collapse=","),") ~ 1"))
f.tense1 <- as.formula(paste("cbind(",paste(names(tenseness)[1:4],collapse=","),") ~ Gender + Age"))
####
## Adjacent Categories Models
####
## Multivariate adjacent categories model, without response style, without explanatory variables
m.tense0 <- multordRS(f.tense0, data = tenseness, control = ctrl.multordRS(RS = FALSE, cores = 2))
m.tense0
## Multivariate adjacent categories model, with response style as a random effect,
## without explanatory variables
m.tense1 <- multordRS(f.tense0, data = tenseness)
m.tense1
## Multivariate adjacent categories model, with response style as a random effect,
## without explanatory variables for response style BUT for location
m.tense2 <- multordRS(f.tense1, data = tenseness, control = ctrl.multordRS(XforRS = FALSE))
m.tense2
## Multivariate adjacent categories model, with response style as a random effect, with
## explanatory variables for location AND response style
m.tense3 <- multordRS(f.tense1, data = tenseness)
m.tense3
plot(m.tense3)
####
## Cumulative Models
####
## Multivariate cumulative model, without response style, without explanatory variables
m.tense0.cumul <- multordRS(f.tense0, data = tenseness, control = ctrl.multordRS(RS = FALSE),
model = "cumulative")
m.tense0.cumul
## Multivariate cumulative model, with response style as a random effect,
## without explanatory variables
m.tense1.cumul <- multordRS(f.tense0, data = tenseness, model = "cumulative")
m.tense1.cumul
## Multivariate cumulative model, with response style as a random effect,
## without explanatory variables for response style BUT for location
m.tense2.cumul <- multordRS(f.tense1, data = tenseness, control = ctrl.multordRS(XforRS = FALSE),
model = "cumulative")
m.tense2.cumul
## Multivariate cumulative model, with response style as a random effect, with
## explanatory variables for location AND response style
m.tense3.cumul <- multordRS(f.tense1, data = tenseness, model = "cumulative")
m.tense3.cumul
plot(m.tense3.cumul)
################################################################
## Examples from Schauberger and Tutz (2020)
## Data from the German Longitudinal Election Study (GLES) 2017
#################################################################
####
## Source: German Longitudinal Election Study 2017
## Rossteutscher et al. 2017, https://doi.org/10.4232/1.12927
####
## load GLES data
data(GLES17)
## scale data
GLES17[,7:11] <- scale(GLES17[,7:11])
## define formula
f.GLES <- as.formula(cbind(RefugeeCrisis, ClimateChange, Terrorism,
Globalization, Turkey, NuclearEnergy) ~
Age + Gender + Unemployment + EastWest + Abitur)
## fit adjacent categories model without and with response style parameters
m.GLES0 <- multordRS(f.GLES, data = GLES17, control = ctrl.multordRS(RS = FALSE, cores = 6))
m.GLES <- multordRS(f.GLES, data = GLES17, control = ctrl.multordRS(cores = 6))
m.GLES0
m.GLES
plot(m.GLES, main = "Adjacent categories model")
## fit cumulative model without and with response style parameters (takes pretty long!!!)
m.GLES20 <- multordRS(f.GLES, data = GLES17, model="cumul",
control = ctrl.multordRS(opt.method = "nlminb", cores = 6, RS = FALSE))
m.GLES2 <- multordRS(f.GLES, data = GLES17, model="cumul",
control = ctrl.multordRS(opt.method = "nlminb", cores = 6))
m.GLES20
m.GLES2
plot(m.GLES2, main = "Cumulative model")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.