4 Models with Method Factors for Structurally Different Raters
Model of Section 4.1.2
CTC(M-1) Model - Basic model
R Code
ctcm_1.basic.mod<-
'
# Loneliness
# Self-report = reference rater group
# Common trait factor
TL =~ Slon1 + Slon2 + Slon3 + Elon1 + Elon2 + Elon3 + Plon1 + Plon2 + Plon3
# Rater-specific factor parents
RSL_E =~ Elon1 + Elon2 + Elon3
# Rater-specific factor peers
RSL_P =~ Plon1 + Plon2 + Plon3
# Uncorrelatedness: Trait factor with rater-specific factors
TL ~~ 0*RSL_E + 0*RSL_P
# Flourishing
# Self-report = reference rater group
# Common trait factor
TF =~ Sflou1 + Sflou2 + Eflou1 + Eflou2 + Pflou1 + Pflou2
# Rater-specific factor parents
RSF_E =~ Eflou1 + Eflou2
# Rater-specific factor peers
RSF_P =~ Pflou1 + Pflou2
# Uncorrelatedness: Trait factor with rater-specific factors
TF ~~ 0*RSF_E + 0*RSF_P
'
ctcm_1.basic.mod.fit<-sem(ctcm_1.basic.mod,data=chapter_3.dat, meanstructure = TRUE, estimator= "MLR",missing= "fiml")
summary(ctcm_1.basic.mod.fit, standardized=TRUE, fit.measures = TRUE, rsquare=TRUE)
MPlus Code
Models of Section 4.2
CTC(M-1) Model - restricted model
The model below is equivalent to model with correlated first-order factors
R Code
ctcm_1.rest.mod<-
'
# model with labeled parameters
# Loneliness
# Self-report = reference rater group
# Common trait factor
TL =~ Slon1 + Slon2 + Slon3 + gel1*Elon1 + gel2*Elon2 + gel3*Elon3 + gpl1*Plon1 + gpl2*Plon2 + gpl3*Plon3
# Rater-specific factor parents
RSL_E =~ Elon1 + mel2*Elon2 + mel3*Elon3
# Rater-specific factor peers
RSL_P =~ Plon1 + mpl2*Plon2 + mpl3*Plon3
# Uncorrelatedness:
# Trait factor with rater-specific factors
TL ~~ 0*RSL_E + 0*RSL_P
# Flourishing
# Self-report = reference rater group
# Common trait factor
TF =~ Sflou1 + Sflou2 + gef1*Eflou1 + gef2*Eflou2 + gpf1*Pflou1 + gpf2*Pflou2
# Rater-specific factor parents
RSF_E =~ Eflou1 + mef2*Eflou2
# Rater-specific factor peers
RSF_P =~ Pflou1 + mpf2*Pflou2
# Uncorrelatedness:
# Trait factor with rater-specific factors
TF ~~ 0*RSF_E + 0*RSF_P
# constraints
gel2 == gel1*mel2
gel3 == gel1*mel3
gpl2 == gpl1*mpl2
gpl3 == gpl1*mpl3
gef2 == gef1*mef2
gpf2 == gpf1*mpf2
'
ctcm_1.rest.mod.fit<-sem(ctcm_1.rest.mod,data=chapter_3.dat, meanstructure = TRUE, estimator= "MLR",missing= "fiml")
summary(ctcm_1.rest.mod.fit, standardized=TRUE, fit.measures = TRUE, rsquare=TRUE)
MPlus Code
CTC(M-1) Model - restricted model with strong MI
The model below is equivalent to model with correlated first-order factors and strong measurement invariance.
R Code
ctcm_1.rest.strong.mod<-
'
#Loneliness
# Self-report = reference rater group
# Common trait factor
TL =~ Slon1 + ge2*Slon2 + ge3*Slon3 + gel1*Elon1 + gel2*Elon2 + gel3*Elon3 + gpl1*Plon1 + gpl2*Plon2 + gpl3*Plon3
# Rater-specific factor parents
RSL_E =~ Elon1 + ge2*Elon2 + ge3*Elon3
# Rater-specific factor peers
RSL_P =~ Plon1 + ge2*Plon2 + ge3*Plon3
# Uncorrelatedness:
# Trait factor with rater-specific factors
TL ~~ 0*RSL_E + 0*RSL_P
# Flourishing
# Self-report = reference rater group
# Common trait factor
TF =~ Sflou1 + gf2*Sflou2 + gef1*Eflou1 + gef2*Eflou2 + gpf1*Pflou1 + gpf2*Pflou2
# Rater-specific factor parents
RSF_E =~ Eflou1 + gf2*Eflou2
# Rater-specific factor peers
RSF_P =~ Pflou1 + gf2*Pflou2
# Uncorrelatedness:
# Trait factor with rater-specific factors
TF ~~ 0*RSF_E + 0*RSF_P
# Intercepts
Slon1 ~ ae1*1
Elon1 ~ ae1*1
Plon1 ~ ae1*1
Slon2 ~ ae2*1
Elon2 ~ ae2*1
Plon2 ~ ae2*1
Slon3 ~ ae3*1
Elon3 ~ ae3*1
Plon3 ~ ae3*1
Sflou1 ~ af1*1
Eflou1 ~ af1*1
Pflou1 ~ af1*1
Sflou2 ~ af2*1
Eflou2 ~ af2*1
Pflou2 ~ af2*1
# Means
# Please note: Because rater-specific factors
# are residual factors, their means have to be 0
# In the following the means are allowed to be
# different from 0. However, the estimated parameters are not
# the means but the constants alpha_jk that are
# specific for a trait-rater unit (see Section 3.2.1.5
# in the book. In a formal sense these \"means\"
# are not \"means\" but constants that are
# weighted by the loadings and added
# to the intercepts
RSL_E ~ 1
RSL_P ~ 1
RSF_E ~ 1
RSF_P ~ 1
# constraints
gel2 == gel1*ge2
gel3 == gel1*ge3
gpl2 == gpl1*ge2
gpl3 == gpl1*ge3
gef2 == gef1*gf2
gpf2 == gpf1*gf2
'
ctcm_1.rest.strong.mod.fit<-sem(ctcm_1.rest.strong.mod,data=chapter_3.dat, meanstructure = TRUE, estimator= "MLR",missing= "fiml")
summary(ctcm_1.rest.strong.mod.fit, standardized=TRUE, fit.measures = TRUE, rsquare=TRUE)
MPlus Code
CTC(M-1) Model - restricted model with strong MI & IS factors
The model below is equivalent to model with correlated first-order factors and strong measurement invariance and indicator-specific factor for flourishing.
R Code
ctcm_1.rest.strong.ind.flour.mod<-
'
# Loneliness
# Self-report = reference rater group
# Common trait factor
TL =~ Slon1 + ge2*Slon2 + ge3*Slon3 + gel1*Elon1 + gel2*Elon2 + gel3*Elon3 + gpl1*Plon1 + gpl2*Plon2 + gpl3*Plon3
# Rater-specific factor parents
RSL_E =~ Elon1 + ge2*Elon2 + ge3*Elon3
# Rater-specific factor peers
RSL_P =~ Plon1 + ge2*Plon2 + ge3*Plon3
# Uncorrelatedness:
# Trait factor with rater-specific factors
TL ~~ 0*RSL_E + 0*RSL_P
# Flourishing
# Self-report = reference rater group
# Common trait factor
TF =~ Sflou1 + gf2*Sflou2 + gef1*Eflou1 + gef2*Eflou2 + gpf1*Pflou1 + gpf2*Pflou2
# Rater-specific factor parents
RSF_E =~ Eflou1 + gf2*Eflou2
# Rater-specific factor peers
RSF_P =~ Pflou1 + gf2*Pflou2
# Uncorrelatedness:
# Trait factor with rater-specific factors
TF ~~ 0*RSF_E + 0*RSF_P
# Intercepts
Slon1 ~ ae1*1
Elon1 ~ ae1*1
Plon1 ~ ae1*1
Slon2 ~ ae2*1
Elon2 ~ ae2*1
Plon2 ~ ae2*1
Slon3 ~ ae3*1
Elon3 ~ ae3*1
Plon3 ~ ae3*1
Sflou1 ~ af1*1
Eflou1 ~ af1*1
Pflou1 ~ af1*1
Sflou2 ~ af2*1
Eflou2 ~ af2*1
Pflou2 ~ af2*1
# Means
# Please note: Because rater-specific factors
# are residual factors, their means have to be 0
# In the following the means are allowed to be
# different from 0. However, the estimated parameters are not
# the means but the constants alpha_jk that are
# specific for a trait-rater unit (see Section 3.2.1.5
# in the book. In a formal sense these \"means\"
# are not \"means\" but constants that are
# weighted by the loadings and added
# to the intercepts
RSL_E ~ 1
RSL_P ~ 1
RSF_E ~ 1
RSF_P ~ 1
# Indicator-specific factor flourishing 2nd indicator
F_2 =~ Sflou2 + Eflou2 + Pflou2
# Uncorrelatedness: indicator-specific factors and trait as well as
# rater-specific factors for the same trait (obligatory)
F_2 ~~ 0*TF + 0*RSF_E + 0*RSF_P
# Uncorrelatedness: indicator-specific factors and trait as well as
# rater-specific factors (here: necessary to avoid estimation problems)
F_2 ~~ 0*TL + 0*RSL_E + 0*RSL_P
# constraints
gel2 == gel1*ge2
gel3 == gel1*ge3
gpl2 == gpl1*ge2
gpl3 == gpl1*ge3
gef2 == gef1*gf2
gpf2 == gpf1*gf2
'
ctcm_1.rest.strong.ind.flour.mod.fit<-sem(ctcm_1.rest.strong.ind.flour.mod,data=chapter_3.dat, meanstructure = TRUE, estimator= "MLR",missing= "fiml")
summary(ctcm_1.rest.strong.ind.flour.mod.fit, standardized=TRUE, fit.measures = TRUE, rsquare=TRUE)
MPlus Code
Models of Section 4.4.2
CTC(M-1) Model with indicator-specific traits
R Code
ctcm_1.ind.traits.mod<-
'
# Loneliness
# Self-report = reference rater group
# indicator-specific trait factors
TL1 =~ Slon1 + Elon1 + Plon1
TL2 =~ Slon2 + Elon2 + Plon2
TL3 =~ Slon3 + Elon3 + Plon3
# Rater-specific factor parents
RSL_E =~ Elon1 + Elon2 + Elon3
# Rater-specific factor peers
RSL_P =~ Plon1 + Plon2 + Plon3
# Uncorrelatedness: Trait factor with rater-specific factors
TL1 ~~ 0*RSL_E + 0*RSL_P
TL2 ~~ 0*RSL_E + 0*RSL_P
TL3 ~~ 0*RSL_E + 0*RSL_P
# Flourishing
# Self-report = reference rater group
# indicator-specific trait factors
TF1 =~ Sflou1 + Eflou1 + Pflou1
TF2 =~ Sflou2 + Eflou2 + Pflou2
# Rater-specific factor parents
RSF_E =~ Eflou1 + Eflou2
# Rater-specific factor peers
RSF_P =~ Pflou1 + Pflou2
# Uncorrelatedness: Trait factor with rater-specific factors
TF1 ~~ 0*RSF_E + 0*RSF_P
TF2 ~~ 0*RSF_E + 0*RSF_P
'
ctcm_1.ind.traits.mod.fit<-sem(ctcm_1.ind.traits.mod,data=chapter_3.dat, meanstructure = TRUE, estimator= "MLR",missing= "fiml")
summary(ctcm_1.ind.traits.mod.fit, standardized=TRUE, fit.measures = TRUE, rsquare=TRUE)
MPlus Code
CTC(M-1) Model with indicator-specific traits, only for flourishing
R Code
ctcm_1.ind.traits.flour.mod<-
'
# Loneliness
# Self-report = reference rater group
# Common trait factor
TL =~ Slon1 + Slon2 + Slon3 + Elon1 + Elon2 + Elon3 + Plon1 + Plon2 + Plon3
# Rater-specific factor parents
RSL_E =~ Elon1 + Elon2 + Elon3
# Rater-specific factor peers
RSL_P =~ Plon1 + Plon2 + Plon3
# Uncorrelatedness: Trait factor with rater-specific factors
TL ~~ 0*RSL_E + 0*RSL_P
# Flourishing
# Self-report = reference rater group
# indicator-specific trait factors
TF1 =~ Sflou1 + Eflou1 + Pflou1
TF2 =~ Sflou2 + Eflou2 + Pflou2
# Rater-specific factor parents
RSF_E =~ Eflou1 + Eflou2
# Rater-specific factor peers
RSF_P =~ Pflou1 + Pflou2
# Uncorrelatedness: Trait factor with rater-specific factors
TF1 ~~ 0*RSF_E + 0*RSF_P
TF2 ~~ 0*RSF_E + 0*RSF_P
'
ctcm_1.ind.traits.flour.mod.fit<-sem(ctcm_1.ind.traits.flour.mod,data=chapter_3.dat, meanstructure = TRUE, estimator= "MLR",missing= "fiml")
summary(ctcm_1.ind.traits.flour.mod.fit, standardized=TRUE, fit.measures = TRUE, rsquare=TRUE)
MPlus Code