CFA & EFA
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R
George Mount
Data analyst to the stars
CFA & EFA SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T - - PowerPoint PPT Presentation
CFA & EFA SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R George Mo u nt Data anal y st to the stars CFA and model de v elopment 1 Hinkin , T . R . (1998). A brief t u torial on the de v elopment of meas u res for u se in s u r v e
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R
George Mount
Data analyst to the stars
SURVEY AND MEASUREMENT DEVELOPMENT IN R
Hinkin, T. R. (1998). A brief tutorial on the development of measures for use in survey questionnaires. Organizational research methods, 1(1).
1
SURVEY AND MEASUREMENT DEVELOPMENT IN R
EFA How many factors are necessary to explain relations among items? Theory development CFA Do number of factors match what is expected on the basis of theory? Hypothesis testing
SURVEY AND MEASUREMENT DEVELOPMENT IN R
la(tent) va(riable) an(alysis) Course: Structural Equation Modeling with lavaan in R Use =~ to assign items to factors Fit the model to the data
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Import lavaan library(lavaan) # Define the model brand_qual_9_CFAmodel <- 'VAL =~ reason_price + happy_pay + good_deal PERF =~ serious + leader + strong_perform FUN =~ trendy + latest + tired_r'
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Fit the model to the data brand_qual_9_CFA <- cfa(model = brand_qual_9_CFA_model, data = brand_qual_9) # Summarize results -- # Include fit measures and standardized estimates summary(brand_qual_9_CFA, fit.measures = TRUE, standardized = TRUE)
SURVEY AND MEASUREMENT DEVELOPMENT IN R
inspect(brand_qual_9_CFA, "std")$lambda VAL PERF FUN reason_price 0.952 0.000 0.000 happy_pay 0.934 0.000 0.000 good_deal 0.792 0.000 0.000 serious 0.000 0.920 0.000 leader 0.000 0.850 0.000 strong_perform 0.000 0.797 0.000 trendy 0.000 0.000 0.839 latest 0.000 0.000 0.898 tired_r 0.000 0.000 0.649
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# load semPlot library(semPlot) # diagram model semPaths(brand_qual_9_CFA)
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R
George Mount
Data analytics educator
SURVEY AND MEASUREMENT DEVELOPMENT IN R
library(psych) # Mardia test of multivariate normality mardia(brand_qual_9) Mardia tests of multivariate skew and kurtosis Use describe(x) the to get univariate tests n.obs = 508 num.vars = 9 b1p = 60.32 skew = 5107.33 with probability = 0 small sample skew = 5143.55 with probability = 0 b2p = 212.51 kurtosis = 90.91 with probability = 0
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Fit model to the data using robust standard errors bq_cfa <- cfa(model = bq_model, data = brand_qual_9, estimator = "MLR") summary(bqcfa, standardized = T, fit.measures = T)
SURVEY AND MEASUREMENT DEVELOPMENT IN R
Measure Value to look for Comparative t index (CFI) >.9 Tucker-Lewis index (TLI) >.9 Root mean square error of approximation (RMSEA) < .05
SURVEY AND MEASUREMENT DEVELOPMENT IN R
Measure Value to look for chi-square p < .05 (but beware sample size!) CFI > .9 Tucker-Lewis Index (TLI > .9 RMSEA < .05
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Total number of fit measures in lavaan output length(fitMeasures(brand_qual_9_CFA) [1] 42
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Access individual fit measures fitMeasures(brand_qual_9_CFA, fit.measures = c("cfi","tli")) cfi tli 0.970 0.955
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Access estimates in a data frame library(dplyr) standardizedSolution(brand_qual_9_CFA) %>% names() "lhs" "op" "rhs" "est.std" "se" "z" "pvalue" "ci.lower" "ci.upper"
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# Get names, estimates, p values for F2 manifest items standardizedSolution(brand_qual_9_CFA) %>% filter(op == "=~" & lhs == "F2") %>% select(rhs, est.std, pvalue) rhs est.std pvalue 1 happypay 0.9320353 0 2 reasonprice 0.9522508 0 3 gooddeal 0.7921012 0
SURVEY AND MEASUREMENT DEVELOPMENT IN R
Return to EFA to learn more about your scale (see "Factor Analysis in R") Examine CFA: modication indices, factor variances, etc. (see "SEM with lavaan in R")
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R
George Mount
Data analytics educator
SURVEY AND MEASUREMENT DEVELOPMENT IN R
SURVEY AND MEASUREMENT DEVELOPMENT IN R
hps://upload.wikimedia.org/wikipedia/commons/5/5d/Reliability_and_validity.svg
1
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# c_sat_sem is a lavaan CFA model library(semTools) reliability(c_sat_sem) F1 F2 F3 total alpha 0.7787792 0.6893959 0.7757958 0.8144735
avevar 0.5085462 0.5233741 0.5371941 0.5235427
SURVEY AND MEASUREMENT DEVELOPMENT IN R
# c_sat_sem is a lavaan CFA model library(semTools) reliability(c_sat_sem) F1 F2 F3 total alpha 0.7787792 0.6893959 0.7757958 0.8144735
avevar 0.5085462 0.5233741 0.5371941 0.5235427
SURVEY AND MEASUREMENT DEVELOPMENT IN R
F1 F2 F3 total alpha 0.7787792 0.6893959 0.7757958 0.8144735
avevar 0.5085462 0.5233741 0.5371941 0.5235427
Convergent validity: AVE ( avevar ) > .5 Discriminant validity: CR ( omega ) > .7
alpha is Cronbach's alpha (>.7)
SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R