knitr::opts_chunk$set(echo = TRUE, eval = TRUE, message = FALSE, warning = FALSE) options(width = 800) library("eirm")
It is possible to use the eirm
function with polytomous item responses. Because the function only accepts dichotomous responses (i.e., binomial distribution), polytomous data must be reformatted first. To reformat the data, the polyreformat
function can be used.
The following example demonstrates how polytomous responses (no, perhaps, and yes) in the verbal aggression data set can be reformatted into a dichotomous form:
data("VerbAgg") VerbAgg2 <- polyreformat(data=VerbAgg, id.var = "id", long.format = FALSE, var.name = "item", val.name = "resp")
In the reformatted data, polyresponse
is the new dependent variable (i.e., pseudo-dichotomous version of the original response variable resp
) and polycategory
represents the response categories. Based on the reformatted data, each item has two rows (number of response categories - 1) based on the following rules (Stanke & Bulut (2019)) for further details on this parameterization):
polycategory
= "cat_perhaps" and resp
= "no", then polyresponse
= 0polycategory
= "cat_perhaps" and resp
= "perhaps", then polyresponse
= 1polycategory
= "cat_perhaps" and resp
= "yes", then polyresponse
= NAand
polycategory
= "cat_yes" and resp
= "no", then polyresponse
= NApolycategory
= "cat_yes" and resp
= "perhaps", then polyresponse
= 0polycategory
= "cat_yes" and resp
= "yes", then polyresponse
= 1NOTE: Although polyreformat
is capable of reshaping wide-format data into long-format and reformat the long data for the analysis with eirm
, a safer option is to transform the data from wide to long format before using polyreformat
. The melt
function from the reshape2
package can easily transform wide data to long data.
Several polytomous models can be estimated using the reformatted data:
Model 1: It explains only the first threshold (i.e., threshold from no to perhaps) based on explanatory variables:
mod1 <- eirm(formula = "polyresponse ~ -1 + situ + btype + mode + (1|id)", data = VerbAgg2)
Model 2: It explains the first threshold (i.e., threshold from no to perhaps) and second threshold (perhaps to yes) based on explanatory variables:
mod2 <- eirm(formula = "polyresponse ~ -1 + btype + situ + mode + polycategory + polycategory:btype + (1|id)", data = VerbAgg2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.