Ao fazer um CFA Lavaan
, eu tive que usar a matriz de covariância como entrada, porque estava recebendo alguns erros com os dados originais, como variações negativas.
Eu normalmente teria pontuações fatoriais previstas usando a predict()
função, lavPredict
funciona da mesma forma, mas agora que estou usando a matriz de covariância não é possível fazer isso diretamente.
Existe uma maneira de usar as informações do CFA para calcular as pontuações dos fatores da mesma maneira que Lavaan
faz? Acredito que a predict()
função use o método de regressão para calcular as pontuações dos fatores.
Este é um código de amostra para produzir pontuações de fatores com dados brutos como entrada. Usando este método, recebo um erro em uma das minhas variações:
library(lavaan)
model1 = '
Latent1 =~ X1 + X2
Latent2 =~ X3 + X4 + X5
Latent3 =~ X6 + X7
'
model1.fit = cfa(model1, data=mydata) #fit Lavaan model
predict(model1.fit) #Predict factor scores (method of regression)
Este é o código para produzir pontuações fatoriais com matriz de covariância como entrada. Não há mensagens de erro aqui, mas não consigo produzir pontuações fatoriais, pois não há dados para vinculá-las a:
cov = cor2cov(cor,std) #(using cor2cov function to create covariance matrix out of correlation table (cor) and standard deviations (std))
model2 = '
Latent1 =~ X1+ X2
Latent2 =~ X3 + X4 + X5
Latent3 =~ X6 + X7
'
model2.fit = cfa(model=model2, sample.cov=cov,sample.nobs=102,std.lv=FALSE)
Como proceder a partir daqui para produzir pontuações fatoriais usando os resultados da Lavaan
análise CFA?
fonte
Respostas:
Esta pergunta recebeu várias visualizações desde que foi colocada pela primeira vez, mas nenhuma resposta. Aqui está uma solução, que pode ser útil para futuros leitores desta questão.
Para demonstrar que funciona, primeiro executarei um
cfa()
modelo usando oHolzingerSwineford1939
. O modelo é retirado dalavaan
página do tutorial .Isso retorna a seguinte solução:
Ao usar dados brutos para inserir
lavPredict()
epredict()
retornar valores previstos para as variáveis latentes.A execução do mesmo modelo com a matriz de covariância que a entrada retorna os mesmos resultados, mas conforme observa o pôster original, ocorre um erro ao tentar derivar as pontuações dos fatores.
A solução é bastante direta, pois o pacote precisa de alguns dados brutos para "mastigar", por assim dizer. Aqui você altera o código para identificar o conjunto de dados original como entrada de dados brutos para a função de previsão (
lavPredict(fit1, newdata = dat)
). Isso retorna o seguinte (que é o mesmo modelo ajustado no lavaan, mas usando a matriz de covariância como entrada).Como você pode ver, os resultados são idênticos.
fonte