Моделирование данных для SEM с помощью психопакета - PullRequest
1 голос
/ 10 сентября 2011

Я моделирую данные для SEM (модель структурного уравнения) с пакетом psych.Я использовал код, приведенный на странице 17 Использование пакета psych для генерации и тестирования структурных моделей .Код

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

Я не знаю, что вызывает эту ошибку.Любая идея, комментарий и / или помощь будут высоко оценены.Спасибо

1 Ответ

5 голосов
/ 10 сентября 2011

Ах, это сообщение об ошибке было проклятием моей жизни на некоторое время.

По существу (как я в итоге собрал из архивов R-Help, в частности здесь , это означает, что тамявляется избыточной информацией в вашей матрице в том, что (по крайней мере) информация одного столбца может быть получена из одного из других.

Я считаю, что это связано с коллинеарностью, но я могу ошибаться в этом вопросе. В большинствеВ случаях, когда столбец, наиболее тесно связанный с остальными, решит проблему.

В реальном приложении это знак отказа от некоторых ваших вопросов или мер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...