0

I am currently faced with the question. Do I include the variable XX reflectively, formatively or as a scale value in the model?

Theoretically, there is a lot to be said for a formative measurement model, since it is primarily knowledge that is being asked about.

Currently I have the problem that the model is not really identified with formative measurement model. I have restricted the first loading to 1. In addition, one could also restrict the variance of MHL to 1. And one could allow the covariances between the items (would this really be new information, i.e. increasing the degrees of freedom?).

Can a formative measurement model be adequately modelled in Lavaan or is that only possible with PLS Path Modeling? If it is possible with Lavaan, how do I model it at best in my case?

The parcelAllocation function is part of the package "SemTools".

modPP <- '
    # Measurment Model
    
    ZZ =~ 
    AA + AA + AA + 
    AA + AA + AA + 
    AA + AA + AA + AA10
    BB =~ YY + YY + YY + YY + YY5
    XX <~  CC + CC + CC + CC + CC + CC + CC + CC + CC + CC +
    CC +    CC + CC +   CC+  CC +   CC +    CC +    CC +    CC +    CC +
    CC + CC + CC +  CC + CC + CC+CC + CC + CC + CC + 
    CC +CC + CC+ CC + CC35'

modPP_parcel <- '
    # Measurment Model

    ZZ =~ par1 + par2 + par3 + par4
    BB =~ YY + YY + YY + YY + YY5
    XX <~  1*CC + CC + CC + CC + CC + CC + CC + CC + CC +   CC +
    CC +    CC + CC +   CC+  CC +   CC +    CC +    CC +    CC +    CC +
    CC + CC + CC +  CC + CC + CC+CC + CC + CC + CC + 
    CC +CC + CC+ CC + CC35'

    # Path Models
    JJ  ~ ZZ + BB + XX + U + T
    ZZ ~ U + XX + T
    BB ~ XX + U + ZZ + T
    CC ~ U + T
    U ~ T
    
    # Residulavariance
   YY1 ~~ YY2
    
    # # Condition Formative
   CC ~~ 1*CC

    # Give covariances of all manifest variables of MHL? That would be some.
    '

(parcel.names_PP <- paste0("par", 1:4))

parcelAllocation(modPP_parcel, df, parcel.names_PP, modPP, 
                 nAlloc = 100, fun = "cfa", alpha = 0.05, 
                 fit.measures = c("chisq", "df", "cfi", "tli", "rmsea", "srmr"),
                 show.progress = FALSE, iseed = 12345, do.fit = TRUE, 
                 return.fit = TRUE, warn = FALSE)

dataList <- parcelAllocation(modPP_parcel, df, parcel.names, modPP, nAlloc = 100, iseed = 12345,
                             do.fit = FALSE)

fit.parcelsPP <- sem.mi(modPP_parcel, data = dataList)
summary(fit.parcelsPP, fit.measures = TRUE, standardized = TRUE, rsq = TRUE)

fit_sum_PP <- summary(fit.parcelsPP, fit.measures = TRUE, standardized = TRUE, rsq = TRUE)

fit_sum_PP

warnings()

enter image description here

HHKK
  • 21
  • 3
  • When you use a function on it is good to specify the package it came from. – Jeremy Miles Mar 12 '23 at 14:40
  • Thanks for the hint! The package of the function parcelAllocation is "semTools". – HHKK Mar 12 '23 at 19:44
  • modPP_parcel is a normal lavaan model. Therefore, the identification should be correct here before I pass it to the parcelAllocation function. – HHKK Mar 13 '23 at 07:02

0 Answers0