2011-09-10 11 views
1

pyschパッケージでsemのデータをシミュレートしています。私はUsing the psych package to generate and test structural modelsの17ページのコードを使用しました。コードは精神的なパッケージでSEMのためのデータをシミュレート

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パッケージを使用しようとしましたです。

Error in solve.default(diag(m) - A) : 
    Lapack routine dgesv: system is exactly singular 

私にはない、このエラーの原因となっているもの:コードは、このコードは、次のエラーメッセージを与えている

sem.mod <- structure.sem(twelveV$model) 
library(sem) 
sem.fit <- sem(sem.mod, twelveV$r, 100) 

です。どんなアイデア、コメント、および/またはヘルプも高く評価されます。ありがとう

答えて

5

ああ、そのエラーメッセージは私の人生の寒さでした。私は最終的にはR-ヘルプアーカイブから集められたものと本質的に

(具体的にhereは、それは少なくとも)1列の情報が他人の1つに由来することができる(であなたの行列で冗長な情報があることを意味する。

これは共線性に関係していると思われますが、私は間違っている可能性があります。ほとんどの場合、他と最も相関の高い列を削除することで問題は解決します。

実際のアプリケーションでは、あなたの質問や対策のいくつかを捨てるための看板。

関連する問題