Bei einem CFA in Lavaan
musste ich die Kovarianzmatrix als Eingabe verwenden, da ich einige Fehler mit den Originaldaten bekam, z. B. negative Varianzen.
Normalerweise hätte ich Faktorwerte mit der predict()
Funktion vorhergesagt , lavPredict
funktioniert genauso, aber jetzt, wo ich die Kovarianzmatrix verwende, ist es nicht möglich, dies direkt zu tun.
Gibt es eine Möglichkeit, die Informationen aus dem CFA zu verwenden, um die Faktorwerte auf dieselbe Weise zu berechnen wie dies der Lavaan
Fall ist? Ich glaube, die predict()
Funktion verwendet die Regressionsmethode, um die Faktorwerte zu berechnen.
Dies ist ein Beispielcode zur Erzeugung von Faktorwerten mit Rohdaten als Eingabe. Mit dieser Methode erhalte ich eine Fehlermeldung in einer meiner Abweichungen:
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)
Dies ist der Code zum Erzeugen von Faktorwerten mit einer Kovarianzmatrix als Eingabe. Hier gibt es keine Fehlermeldungen, aber ich kann keine Faktorwerte erstellen, da keine Daten vorhanden sind, mit denen sie verknüpft werden können:
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)
Wie gehe ich von hier aus vor, um anhand der Ergebnisse Lavaan
der CFA-Analyse Faktor-Scores zu erstellen ?
quelle
Antworten:
Diese Frage hat seit ihrer ersten Beantwortung eine Reihe von Ansichten erhalten, aber keine Antworten. Hier ist eine Lösung, die für zukünftige Leser dieser Frage nützlich sein kann.
Um zu demonstrieren, dass es funktioniert, werde ich zuerst ein
cfa()
Modell mit dem ausführenHolzingerSwineford1939
. Das Modell stammt aus derlavaan
Tutorial-Seite .Dies gibt die folgende Lösung zurück:
Die , wenn Rohdaten für die Eingabe verwendet
lavPredict()
undpredict()
Rückkehr vorhergesagten Werte für die latenten Variablen.Wenn Sie dasselbe Modell mit der Kovarianzmatrix als Eingabe ausführen, werden dieselben Ergebnisse zurückgegeben. Die ursprünglichen Poster-Notizen führen jedoch zu einem Fehler, wenn Sie versuchen, die Faktorwerte abzuleiten.
Die Lösung ist ziemlich einfach, da das Paket einige Rohdaten benötigt, um sozusagen "zu kauen". Hier ändern Sie den Code, um den Originaldatensatz als Rohdateneingabe für die Vorhersagefunktion (
lavPredict(fit1, newdata = dat)
) zu identifizieren . Dies gibt Folgendes zurück (wobei das gleiche Modell wie in Lavaan verwendet wird, jedoch die Kovarianzmatrix als Eingabe verwendet wird).Wie Sie sehen können, sind die Ergebnisse identisch.
quelle