Загрузка с отрицательным коэффициентом для модели с 1 и 2 нагрузками с использованием библиотеки Python sklearn.decomposition.FactorAnalysis? - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь получить один фактор из двух переменных (измеренных по 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), и буду очень признателен, если кто-нибудь сможет объяснить мне мою ошибку (или я должен сказать грубую ошибку!).

1 Ответ

0 голосов
/ 10 мая 2019

Поздний ответ, я знаю ....

Как вы говорите, настоящая проблема заключается в том, что вам не хватает степеней свободы: вам нужно три показателя для оценки скрытой переменной в изоляции.Да, существуют модели с двумя показателями для данной скрытой переменной, но они работают только в том случае, если этот скрытый коррелирует с одним или несколькими другими скрытыми значениями.

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

Если вы занимаетесь CFA, я не думаю, что вы хотите использовать именно этот класс scikit-learn, который предназначен для исследовательский факторный анализ (ОДВ).Я полагаю, что он может работать только с одним скрытым фактором (а у sklearn нет класса CFA).

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