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
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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

slide-2
SLIDE 2

SURVEY AND MEASUREMENT DEVELOPMENT IN R

CFA and model development

Hinkin, T. R. (1998). A brief tutorial on the development of measures for use in survey questionnaires. Organizational research methods, 1(1).

1

slide-3
SLIDE 3

SURVEY AND MEASUREMENT DEVELOPMENT IN R

CFA versus EFA

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

slide-4
SLIDE 4

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Introducing lavaan

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

slide-5
SLIDE 5

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Initial CFA

# 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'

slide-6
SLIDE 6

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Initial CFA

# 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)

slide-7
SLIDE 7

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Inspecting our results: loadings

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

slide-8
SLIDE 8

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Plotting our results

# load semPlot library(semPlot) # diagram model semPaths(brand_qual_9_CFA)

slide-9
SLIDE 9

CFA in lavaan: Let's practice!

SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R

slide-10
SLIDE 10

CFA assumptions & interpretation

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

slide-11
SLIDE 11

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Inspecting for multivariate normality

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

slide-12
SLIDE 12

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Adjusting for non-normality

# 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)

slide-13
SLIDE 13

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Adjusting for non-normality

Measure Value to look for Comparative t index (CFI) >.9 Tucker-Lewis index (TLI) >.9 Root mean square error of approximation (RMSEA) < .05

slide-14
SLIDE 14

SURVEY AND MEASUREMENT DEVELOPMENT IN R

CFA fit measures

Measure Value to look for chi-square p < .05 (but beware sample size!) CFI > .9 Tucker-Lewis Index (TLI > .9 RMSEA < .05

slide-15
SLIDE 15

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Inspecting our fit measures

# Total number of fit measures in lavaan output length(fitMeasures(brand_qual_9_CFA) [1] 42

slide-16
SLIDE 16

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Inspecting our fit measures

# Access individual fit measures fitMeasures(brand_qual_9_CFA, fit.measures = c("cfi","tli")) cfi tli 0.970 0.955

slide-17
SLIDE 17

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Inspecting our estimates

# 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"

slide-18
SLIDE 18

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Inspecting our estimates

# 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

slide-19
SLIDE 19

SURVEY AND MEASUREMENT DEVELOPMENT IN R

What if the CFA doesn't fit?

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")

slide-20
SLIDE 20

Let's practice!

SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R

slide-21
SLIDE 21

Construct Validity

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

slide-22
SLIDE 22

SURVEY AND MEASUREMENT DEVELOPMENT IN R

The "three C's of validity"

slide-23
SLIDE 23

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Construct validity: Targeting the latent variable

hps://upload.wikimedia.org/wikipedia/commons/5/5d/Reliability_and_validity.svg

1

slide-24
SLIDE 24

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Convergent & discriminant validity

# 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

  • mega 0.7788456 0.6896567 0.7757469 0.8624756
  • mega2 0.7788456 0.6896567 0.7757469 0.8624756
  • mega3 0.7761082 0.6873162 0.7744738 0.8726313

avevar 0.5085462 0.5233741 0.5371941 0.5235427

slide-25
SLIDE 25

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Measuring construct validity

# 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

  • mega 0.7788456 0.6896567 0.7757469 0.8624756
  • mega2 0.7788456 0.6896567 0.7757469 0.8624756
  • mega3 0.7761082 0.6873162 0.7744738 0.8726313

avevar 0.5085462 0.5233741 0.5371941 0.5235427

slide-26
SLIDE 26

SURVEY AND MEASUREMENT DEVELOPMENT IN R

Construct validity: interpretation

F1 F2 F3 total alpha 0.7787792 0.6893959 0.7757958 0.8144735

  • mega 0.7788456 0.6896567 0.7757469 0.8624756
  • mega2 0.7788456 0.6896567 0.7757469 0.8624756
  • mega3 0.7761082 0.6873162 0.7744738 0.8726313

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)

slide-27
SLIDE 27

Let's practice!

SU R VE Y AN D ME ASU R E ME N T D E VE L OP ME N T IN R