Я пытаюсь получить один фактор из двух переменных (измеренных по 5-балльной шкале Лайкерта) с использованием Confirmatory Factor Analysis (CFA).Я понимаю, что степень свободы для модели с 1 фактором и 2 нагрузками равна -1, и, следовательно, модель недостаточно указана.Но я видел модели, в которых две переменные используются в качестве нагрузки для одного базового фактора.
Я попытался запустить CFA в Python, используя sklearn, но он вернул отрицательные коэффициенты загрузки для обеих нагрузок, что я считаю неправильным.
Код Python (с данными):
import sklearn.decomposition as skd
x = [[2., 4.], [1., 2.], [1., 1.], [2., 2.], [2., 2.], [2., 1.], [1., 1.], [2., 2.], [3., 2.], [2., 2.], [1., 2.], [1., 1.], [2., 2.], [2., 2.], [1., 1.], [3., 3.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [0., 0.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [2., 2.], [2., 2.], [1., 1.], [2., 2.], [2., 1.], [2., 2.], [3., 2.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [2., 4.], [2., 2.], [1., 1.], [2., 2.], [2., 2.], [3., 2.], [3., 2.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 2.], [1., 1.], [1., 1.], [2., 2.], [3., 3.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 3.], [3., 3.], [2., 2.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [2., 2.], [1., 1.], [3., 3.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [2., 2.], [2., 2.], [1., 1.], [1., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 2.], [2., 1.], [2., 2.], [1., 1.], [1., 1.], [2., 2.], [1., 1.], [1., 1.], [1., 1.], [1., 1.], [2., 2.], [2., 2.], [1., 2.], [1., 1.], [1., 1.], [2., 2.]]
skd.FactorAnalysis(n_components=1).fit(x).components_[0]
Вывод:
array([-0.55779804, -0.58890195])
Я также пытался запустить CFA в R с использованием библиотеки 'lavaan', он возвращает мне следующую ошибку:
Предупреждение в lav_model_vcov(lavmodel = lavmodel, lavsamplestats = lavsamplestats,: "lavaan ПРЕДУПРЕЖДЕНИЕ: невозможно вычислить стандартные ошибки! Информационная матрица не может быть инвертирована. Это может быть признаком того, что модель не идентифицирована."
Я новичок в CFA и моделировании структурных уравнений (SEM), и буду очень признателен, если кто-нибудь сможет объяснить мне мою ошибку (или я должен сказать грубую ошибку!).