[英]Simulating Data for SEM with psych package
我正在使用psych
軟件包模擬SEM(結構方程模型)的數據。 我使用了使用psych軟件包的第17頁上給出的代碼來生成和測試結構模型 。 該代碼是
library(psych)
set.seed(42)
fx <- matrix(c(0.9, 0.8, 0.7, rep(0, 9), 0.7, 0.6, 0.5, rep(0, 9), 0.6, 0.5, 0.4), ncol = 3)
rownames(fx) <- paste("x", 1:9, sep="")
fy <- matrix(c(0.6, 0.5, 0.4), ncol=1)
rownames(fy) <- paste("y", 1:3, sep="")
Phi <- matrix(c(1, 0.48, 0.32, 0.4, 0.48, 1, 0.32, 0.3, 0.32, 0.32, 1, 0.2, 0.4, 0.3, 0.2, 1), ncol = 4)
twelveV <- sim.structure(fx=fx, Phi=Phi, fy=fy, n=100, raw=TRUE)
round(twelveV$model, 2)
round(twelveV$model-twelveV$r, 2)
twelveV$observed
然后,我嘗試使用sem
包來分析模擬數據。 該代碼是
sem.mod <- structure.sem(twelveV$model)
library(sem)
sem.fit <- sem(sem.mod, twelveV$r, 100)
此代碼給出以下錯誤消息:
Error in solve.default(diag(m) - A) :
Lapack routine dgesv: system is exactly singular
我不是導致此錯誤的原因。 任何想法,評論和/或幫助將不勝感激。 謝謝
啊,那條錯誤消息是我一生的禍根。
從本質上講(我最終從R-幫助檔案收集,特別是在這里 ,這意味着在你的(至少)一個欄的信息可以從別人的一個衍生矩陣的冗余信息。
我認為這與共線性有關,但是我在這一點上可能是錯誤的。 在大多數情況下,刪除與其他對象之間最相關的列將解決此問題。
在實際的應用程序中,它是拋出一些問題或措施的信號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.