Hello! I'm trying to do some confirmatory factor analysis with for ordered Likert scale items using sem and lavaan packages. So far I have read a lot and searched a lot but working example has so far eluded me. Can someone please take a look at the data and tell me if what I'm doing is correct (lavaan case) and where is the error (sem case)?
Original data (ordered factors): EI.data <- structure(list(Q21a_makeAnythingEntrep_likert = structure(c(3L, 1L, 7L, 1L, 1L, 6L, 1L, 1L, 5L, 1L, 1L, 1L, 3L, 4L, 1L, 7L, 2L, 1L, 7L, 7L, 1L, 3L, 1L, 2L, 5L, 1L, 5L, 2L, 4L, 1L, 1L, 2L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = c("ordered", "factor")), Q21b_goalBecomingEntrep_likert = structure(c(3L, 1L, 7L, 1L, 1L, 6L, 1L, 1L, 7L, 1L, 1L, 7L, 3L, 2L, 2L, 7L, 2L, 3L, 7L, 7L, 1L, 4L, 1L, 2L, 4L, 2L, 6L, 3L, 5L, 1L, 1L, 1L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = c("ordered", "factor" )), Q21c_effortFirm_likert = structure(c(3L, 3L, 7L, 1L, 1L, 6L, 1L, 1L, 5L, 1L, 1L, 5L, 3L, 3L, 1L, 7L, 2L, 2L, 7L, 7L, 1L, 5L, 1L, 2L, 4L, 2L, 7L, 2L, 5L, 1L, 1L, 1L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = c("ordered", "factor" )), Q21d_createFirm_likert = structure(c(3L, 3L, 7L, 1L, 1L, 6L, 1L, 2L, 7L, 1L, 1L, 7L, 3L, 6L, 3L, 7L, 2L, 2L, 7L, 5L, 1L, 6L, 1L, 2L, 4L, 5L, 7L, 5L, 4L, 1L, 5L, 6L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = c("ordered", "factor" )), Q21e_.thoughtFirm_likert = structure(c(3L, 6L, 7L, 1L, 1L, 6L, 2L, 1L, 7L, 1L, 4L, 7L, 5L, 4L, 2L, 7L, 2L, 2L, 7L, 3L, 1L, 5L, 1L, 2L, 6L, 2L, 7L, 4L, 5L, 2L, 6L, 2L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = c("ordered", "factor" )), Q21f_intentionFirm_likert = structure(c(4L, 4L, 7L, 1L, 1L, 6L, 1L, 2L, 7L, 1L, 1L, 7L, 5L, 6L, 3L, 7L, 2L, 2L, 7L, 2L, 1L, 7L, 1L, 2L, 6L, 4L, 7L, 7L, 4L, 2L, 5L, 5L), .Label = c("1", "2", "3", "4", "5", "6", "7"), class = c("ordered", "factor" ))), .Names = c("Q21a_makeAnythingEntrep_likert", "Q21b_goalBecomingEntrep_likert", "Q21c_effortFirm_likert", "Q21d_createFirm_likert", "Q21e_.thoughtFirm_likert", "Q21f_intentionFirm_likert"), row.names = c(NA, 32L), class = "data.frame") Original data (continuous numbers): EI.dataN <- structure(list(Q21a_makeAnythingEntrep_likert = c(3L, 1L, 7L, 1L, 1L, 6L, 1L, 1L, 5L, 1L, 1L, 1L, 3L, 4L, 1L, 7L, 2L, 1L, 7L, 7L, 1L, 3L, 1L, 2L, 5L, 1L, 5L, 2L, 4L, 1L, 1L, 2L), Q21b_goalBecomingEntrep_likert = c(3L, 1L, 7L, 1L, 1L, 6L, 1L, 1L, 7L, 1L, 1L, 7L, 3L, 2L, 2L, 7L, 2L, 3L, 7L, 7L, 1L, 4L, 1L, 2L, 4L, 2L, 6L, 3L, 5L, 1L, 1L, 1L), Q21c_effortFirm_likert = c(3L, 3L, 7L, 1L, 1L, 6L, 1L, 1L, 5L, 1L, 1L, 5L, 3L, 3L, 1L, 7L, 2L, 2L, 7L, 7L, 1L, 5L, 1L, 2L, 4L, 2L, 7L, 2L, 5L, 1L, 1L, 1L), Q21d_createFirm_likert = c(3L, 3L, 7L, 1L, 1L, 6L, 1L, 2L, 7L, 1L, 1L, 7L, 3L, 6L, 3L, 7L, 2L, 2L, 7L, 5L, 1L, 6L, 1L, 2L, 4L, 5L, 7L, 5L, 4L, 1L, 5L, 6L), Q21e_.thoughtFirm_likert = c(3L, 6L, 7L, 1L, 1L, 6L, 2L, 1L, 7L, 1L, 4L, 7L, 5L, 4L, 2L, 7L, 2L, 2L, 7L, 3L, 1L, 5L, 1L, 2L, 6L, 2L, 7L, 4L, 5L, 2L, 6L, 2L), Q21f_intentionFirm_likert = c(4L, 4L, 7L, 1L, 1L, 6L, 1L, 2L, 7L, 1L, 1L, 7L, 5L, 6L, 3L, 7L, 2L, 2L, 7L, 2L, 1L, 7L, 1L, 2L, 6L, 4L, 7L, 7L, 4L, 2L, 5L, 5L)), .Names = c("Q21a_makeAnythingEntrep_likert", "Q21b_goalBecomingEntrep_likert", "Q21c_effortFirm_likert", "Q21d_createFirm_likert", "Q21e_.thoughtFirm_likert", "Q21f_intentionFirm_likert"), class = "data.frame", row.names = c(NA, -32L)) Lavaan case: EI.model.lavaan <- ' EI =~ Q21a_makeAnythingEntrep_likert + Q21b_goalBecomingEntrep_likert + Q21c_effortFirm_likert + Q21d_createFirm_likert + Q21e_.thoughtFirm_likert + Q21f_intentionFirm_likert ' EI.fit <- cfa(EI.model.lavaan, data = EI.data) summary(EI.fit, fit.measures = TRUE) predict(EI.fit) Sem continuous items case: EI.dataN.cov <- cov(EI.dataN) model.EI.dataN <- specifyModel() EI -> Q21a_makeAnythingEntrep_likert, NA, 1 EI -> Q21b_goalBecomingEntrep_likert, ei1 EI -> Q21c_effortFirm_likert, ei2 EI -> Q21d_createFirm_likert, ei3 EI -> Q21e_.thoughtFirm_likert, ei4 EI -> Q21f_intentionFirm_likert, ei5 EI <-> EI, var1 Q21a_makeAnythingEntrep_likert <-> Q21a_makeAnythingEntrep_likert, error1 Q21b_goalBecomingEntrep_likert <-> Q21b_goalBecomingEntrep_likert, error2 Q21c_effortFirm_likert <-> Q21c_effortFirm_likert, error3 Q21d_createFirm_likert <-> Q21d_createFirm_likert, error4 Q21e_.thoughtFirm_likert <-> Q21e_.thoughtFirm_likert, error5 Q21f_intentionFirm_likert <-> Q21f_intentionFirm_likert, error6 EI.dataN.cfa <- sem( model.EI.dataN, EI.dataN.cov, nrow(EI.dataN)) summary(EI.dataN.cfa) fscores(EI.dataN.cfa, EI.dataN) Sem ordered items case: hcor <- function(data) hetcor(data, std.err=FALSE)$correlations R.EI.data <- hcor(EI.data) EI.model.sem.o <- specifyModel() EI -> Q21a_makeAnythingEntrep_likert, NA, 1 EI -> Q21b_goalBecomingEntrep_likert, ei1 EI -> Q21c_effortFirm_likert, ei2 EI -> Q21d_createFirm_likert, ei3 EI -> Q21e_.thoughtFirm_likert, ei4 EI -> Q21f_intentionFirm_likert, ei5 EI <-> EI, var1 Q21a_makeAnythingEntrep_likert <-> Q21a_makeAnythingEntrep_likert, error1 Q21b_goalBecomingEntrep_likert <-> Q21b_goalBecomingEntrep_likert, error2 Q21c_effortFirm_likert <-> Q21c_effortFirm_likert, error3 Q21d_createFirm_likert <-> Q21d_createFirm_likert, error4 Q21e_.thoughtFirm_likert <-> Q21e_.thoughtFirm_likert, error5 Q21f_intentionFirm_likert <-> Q21f_intentionFirm_likert, error6 cfaEI.sem.o <- sem(EI.model.sem.o, R.EI.data, nrow(EI.data)) summary(cfaEI.sem.o) fscores(cfaEI.sem.o, EI.data) Error (can't get fscrores): Error in colMeans(x, na.rm = TRUE) : 'x' must be numeric Thank You! Janis [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.