Demonstration of MGCFA in JASP

1. Find a feasible CFA solution on the pooled sample

Use following variables, which intend to measure various aspects of satisfaction:

# ess8 <- haven::read_sav("~/Downloads/data/ESS8e02_1trim.sav")
# 
# label_book(ess8, 1)
variable label
stflife How satisfied with life as a whole 0 Extremely dissatisfied
stfeco How satisfied with present state of economy in country 0 Extremely dissatisfied
stfgov How satisfied with the national government 0 Extremely dissatisfied
stfdem How satisfied with the way democracy works in country 0 Extremely dissatisfied
stfedu State of education in country nowadays 0 Extremely bad
stfhlth State of health services in country nowadays 0 Extremely bad
happy How happy are you

2. Test a multiple group CFA model (configural)

  1. Filter sample to the two countries: Belgium and Netherlands.
  2. In the Multigroup CFA choose cntry as grouping variable.
  3. Check the fit measures. If they are not satisfactory, identify misspecification, modify the model, compare the fit, evaluate the fit, see the previous practical session steps for a single group CFA.
  4. When the satisfactory fit is found, study the parameters: Do they all make sense? How different they are across groups?
  5. Name the model “Configural” and save.

3. Test metric invariance

  1. Begin a new CFA analysis to save the previous output. Specify the same model as in the previous step.
  2. Change “Invarinace testing” option of the “Multigroup CFA” section to “Metric” value. Tick to “Include mean structure”.
  3. Check the fit measures. If they are not satisfactory, identify misspecification. If they are, compare the fit statistics with the ones from configural model: first, look at CFI and RMSEA difference; check if BIC increased much. Make an inference if metric invariance was supported.
  4. If the metric invariance was not supported, skip the testing of scalar invariance, and try partial invarinace.
  5. Name the model “Metric” and save.

4. Test scalar invariance

  1. Repeat the actions 1-3 from the previous step, but use “Scalar” option instead of “Metric”. Don’t forget to begin a new analysis each time for saving the previous analysis.
  2. If the scalar invariance was not supported try testing partial scalar invariance (or use some alternatives).
  3. If the scalar invariance was supported, you can correctly compare latent means (factor means).

5. Report

  1. Copy the outputs of all the models to Word,
  2. Combine the model fit into a single table,
  3. Remove all the parameter estimates except the ones from the last [final] model,
  4. Add the diagram.
  5. Write a short description of the steps you undertook.
  6. Make a conclusion: is the measurement model invariance across Belgium and Netherlands?

6. Add more countries

  1. Now, add Austria to the analysis by changing data filter, on the data view tab. After changing filter all the analyses will be automatically re-run with the new sample. It make take some time.
  2. Examine how the results changed.
  3. Follow the steps 1-5 to make an inference in reagrd to the three countries.



Maksim Rudnev, 2019 using RMarkdown.