Я аспирант в области компьютерных наук. Я проводил некоторый исследовательский анализ факторов для исследовательского проекта. Мои коллеги (которые возглавляют проект) используют SPSS, а я предпочитаю использовать R. Это не имело значения, пока мы не обнаружили существенное расхождение между двумя статистическими пакетами.
Мы используем фактор главной оси в качестве метода извлечения (обратите внимание, что я хорошо знаю разницу между PCA и факторным анализом и что мы не используем PCA , по крайней мере, намеренно). Из того, что я прочитал, это должно соответствовать методу «основной оси» в R, и как «главная ось факторинг» или «невзвешенный наименьших квадратов» в SPSS, в соответствии с R документации . Мы используем метод наклонного вращения (в частности, promax ), потому что мы ожидаем коррелированные факторы и интерпретируем матрицу паттернов .
Выполнение двух процедур в R и SPSS, есть серьезные различия. Матрица паттернов дает разные нагрузки. Хотя это дает более или менее один и тот же коэффициент для переменных соотношений, разница между соответствующими нагрузками составляет до 0,15, что кажется больше, чем можно было бы ожидать только при другой реализации метода извлечения и вращения Promax. Однако это не самая поразительная разница.
Суммарная дисперсия, объясняемая факторами, составляет около 40% в результатах SPSS и 31% в результатах R. Это огромная разница, и это привело к тому, что мои коллеги захотели использовать SPSS вместо R. У меня нет проблем с этим, но такая большая разница заставляет меня думать, что мы можем неправильно что-то интерпретировать, что является проблемой.
Еще больше запутывая воды, SPSS сообщает о различных типах объясненной дисперсии, когда мы запускаем невзвешенный коэффициент наименьших квадратов. Доля объясненной дисперсии по начальным собственным значениям составляет 40%, тогда как доля объясненной дисперсии из сумм извлечения квадратов нагрузок (SSL) составляет 33%. Это заставляет меня думать, что начальные собственные значения не являются подходящим числом для просмотра (я подозреваю, что это дисперсия, объясненная до вращения, хотя она настолько велика, что мне не подходит). Еще более запутанно то, что SPSS также показывает Rotation SSL, но не вычисляет процент объясненной дисперсии (SPSS говорит мне, что наличие коррелированных факторов означает, что я не могу добавить SSL, чтобы найти общую дисперсию, что имеет смысл с математикой, которую я видел). Сообщенные SSL от R не соответствуют ни одному из них, и R говорит мне, что он описывает 31% от общей дисперсии. Rs SSL наиболее точно соответствуют Rotation SSL. Собственные значения R из исходной корреляционной матрицы совпадают с начальными собственными значениями из SPSS.
Кроме того, обратите внимание, что я поиграл с использованием различных методов, и что ULS и PAF SPSS, кажется, соответствуют методу PA R ближе всего.
Мои конкретные вопросы:
- Какую разницу я должен ожидать между R и SPSS с реализациями факторного анализа?
- Какую из сумм квадратов нагрузок от SPSS я должен интерпретировать, начальные собственные значения, извлечение или вращение?
- Есть ли другие проблемы, которые я мог бы не заметить?
Мои звонки в SPSS и R следующие:
SPSS:
FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT INITIAL KMO AIC EXTRACTION ROTATION
/FORMAT BLANK(.35)
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION PROMAX(4).
Р:
library(psych)
fa.results <- fa(data, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)
источник
Ответы:
Прежде всего, я рекомендую ttnphns взглянуть на решение перед ротацией. Факторный анализ в том виде, в каком он реализован в SPSS, представляет собой сложную процедуру, состоящую из нескольких этапов, сравнение результатов каждого из которых должно помочь вам точно определить проблему.
В частности, вы можете запустить
чтобы увидеть матрицу корреляции SPSS использует для проведения факторного анализа. Затем в R подготовьте матрицу корреляции самостоятельно, запустив
Любые расхождения в способе обработки пропущенных значений должны быть очевидны на этом этапе. После того, как вы проверили, что матрица корреляции одинакова, вы можете передать ее в функцию fa и снова запустить анализ:
Если вы по-прежнему получаете разные результаты в SPSS и R, проблема не связана с отсутствием значений.
Далее вы можете сравнить результаты самого факторного анализа / метода извлечения.
и
Опять же, сравните матрицы факторов / сообщества / сумму квадратов нагрузок. Здесь вы можете ожидать некоторые крошечные различия, но, конечно, не той величины, которую вы описываете. Все это даст вам более четкое представление о том, что происходит.
Теперь, чтобы ответить на ваши три вопроса напрямую:
источник
fa
функция в R изpsych
пакета.factanal
Функция из базового пакета необходимо выполнить аналогично, ноpsych
хорошо стоит использовать для других целей , в любом случае. Фактически, поскольку это данные Ликерта, было бы разумно использовать вместо этогоpsych
пакетfa.poly
: см. Справочную документацию .Недавно я обнаружил, что большинство расхождений факторного анализа между SPSS и R (с пакетом Psych) устраняются, когда данные обрабатываются в каждой программе с пропущенным списком, корреляционная матрица в каждой из них выглядит одинаково, и не используется наклонный поворот.
Одно из оставшихся расхождений заключается в серии значений, которые отображаются на графике осыпей, указывая на собственные значения после извлечения. В «scree (cor (mydata))» R эти «факторы» не соответствуют тем, которые перечислены в таблице объяснения отклонений SPSS в разделе «Суммы извлечения квадратов нагрузок». Обратите внимание, что «компоненты» графика R scree соответствуют графику экрана SPSS, который также соответствует «Начальным собственным значениям» таблицы объяснения отклонений.
Я также обнаружил, что «Пропорция Var», объясняемая каждым фактором, в R иногда указывается как (пропорция для данного фактора) / (сумма, объясняемая всеми факторами), тогда как в других случаях это (пропорция для данного фактора) (количество элементов в анализе). Поэтому, если вы получите первое, оно, хотя и не совпадает, по крайней мере пропорционально и выводимо из того, что SPSS сообщает в разделе «Суммы извлечения квадратов нагрузок ...% от отклонения».
Однако введение поворота oblimin в каждой программе приводит к значительным расхождениям в загрузке элементов или дисперсии факторов, которые я не смог устранить.
источник
Метод поворота по умолчанию в R - oblimin, так что это, вероятно, приведет к разнице. В качестве теста запустите PAF / oblimin в SPSS и R, и вы найдете почти идентичные результаты.
источник
Я не знаю, что является причиной различий в загрузках шаблонов, но я предполагаю, что разница в% объясненной дисперсии обусловлена: - возможно, вы интерпретируете первую часть (из 2 или 3) таблицы объяснений SPSS, которая фактически показывает результаты анализа главных компонент. Во второй части показаны результаты для результатов непроверенного факторного анализа, а в третьей - после ротации (если используется). - тот факт, что функция fa (или, точнее, ее метод печати) неправильно вычисляет SSL для косвенных факторов. Чтобы получить% от общей дисперсии, объясняемой фактором, вы должны вычислить сумму квадратов структурных нагрузок по фактору и разделить ее на количество переменных. Однако вы не можете суммировать их (в случае наклонных поворотов), чтобы получить% дисперсии, объясняемой всеми факторами. Чтобы получить это,
источник
Этот ответ является дополнением к приведенным выше. Как предполагает Гала в своем ответе, нужно сначала определить, отличаются ли решения, предоставляемые R (например, fa in psych) и SPSS, до вращения. Если они одинаковые, посмотрите на параметры вращения в каждой программе. (Для SPSS вы можете найти все настройки в справочном руководстве для FACTOR).
Одним из важных параметров для поиска является нормализация Кайзера . По умолчанию SPSS выполняет нормализацию Кайзера во время вращения, в то время как некоторые функции R, такие как 'fa', этого не делают. Вы можете управлять этим параметром в SPSS, указав / CRITERIA = NOKAISER / KAISER, чтобы убедиться, что он устраняет любые расхождения между результатами в каждой программе.
источник