Jestem absolwentem informatyki. Przeprowadziłem eksploracyjną analizę czynników dla projektu badawczego. Moi koledzy (którzy prowadzą projekt) używają SPSS, podczas gdy ja wolę używać R. To nie miało znaczenia, dopóki nie odkryliśmy dużej rozbieżności między dwoma pakietami statystycznymi.
Używamy faktoringu osi głównej jako metody ekstrakcji (pamiętaj, że jestem świadomy różnicy między PCA a analizą czynnikową i że nie używamy PCA , przynajmniej nie celowo). Z tego co czytałem, to powinien odpowiadać „osi głównej” metody w badania i albo „główną oś factoring” lub „nieważone najmniejszych kwadratów” w SPSS, zgodnie z dokumentacją R . Używamy metody rotacji skośnej (konkretnie promaksy ), ponieważ oczekujemy skorelowanych czynników i interpretujemy macierz wzorców .
Uruchomienie dwóch procedur w R i SPSS, istnieją duże różnice. Matryca wzorów daje różne obciążenia. Chociaż daje to mniej więcej ten sam współczynnik dla zależności zmiennych, istnieje nawet 0,15 różnicy między odpowiadającymi ładunkami, co wydaje się więcej niż można by oczekiwać po innej implementacji metody ekstrakcji i rotacji promaksy. Nie jest to jednak najbardziej zaskakująca różnica.
Skumulowana wariancja wyjaśniona przez czynniki wynosi około 40% w wynikach SPSS i 31% w wynikach R. To ogromna różnica, która sprawiła, że moi koledzy chcieli używać SPSS zamiast R. Nie mam z tym problemu, ale tak duża różnica sprawia, że myślę, że możemy interpretować coś niepoprawnie, co jest problemem.
Jeszcze bardziej zabłocąc wody, SPSS zgłasza różne rodzaje wyjaśnionej wariancji, gdy przeprowadzamy faktoring z nieważoną metodą najmniejszych kwadratów. Proporcja wyjaśnionej wariancji według początkowych wartości własnych wynosi 40%, podczas gdy proporcja wyjaśnionej wariancji z sum ekstrakcyjnych obciążeń kwadratowych (SSL) wynosi 33%. To prowadzi mnie do myślenia, że Początkowe Wartości Własne nie są odpowiednią liczbą do oglądania (podejrzewam, że jest to wariancja wyjaśniona przed rotacją, chociaż ta tak duża jest poza mną). Jeszcze bardziej mylące, SPSS pokazuje również Rotation SSL, ale nie oblicza procentu wyjaśnionej wariancji (SPSS mówi mi, że posiadanie skorelowanych czynników oznacza, że nie mogę dodać SSL, aby znaleźć całkowitą wariancję, co ma sens z matematyką, którą widziałem). Zgłoszone SSL z R nie pasują do żadnego z nich, a R mówi mi, że opisuje 31% całkowitej wariancji. SSL R najlepiej pasują do SSL rotacji. Wartości własne R z oryginalnej macierzy korelacji są zgodne z początkowymi wartościami własnymi SPSS.
Pamiętaj też, że bawiłem się różnymi metodami i że ULS i PAF SPSS wydają się najbardziej pasować do metody PA R.
Moje konkretne pytania:
- Jakiej różnicy należy się spodziewać między R i SPSS z implementacjami analizy czynnikowej?
- Które z sum obciążeń kwadratowych z SPSS powinienem interpretować, początkowe wartości własne, ekstrakcję lub rotację?
- Czy są jakieś inne problemy, które mogłem przeoczyć?
Moje połączenia do SPSS i R są następujące:
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).
R:
library(psych)
fa.results <- fa(data, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)
źródło
Odpowiedzi:
Przede wszystkim zalecam drugie ttnphns, aby przyjrzeć się rozwiązaniu przed rotacją. Analiza czynnikowa, ponieważ jest zaimplementowana w SPSS, jest złożoną procedurą składającą się z kilku kroków, a porównanie wyniku każdego z tych kroków powinno pomóc w określeniu problemu.
W szczególności możesz biegać
aby zobaczyć macierz korelacji, którą SPSS używa do przeprowadzenia analizy czynnikowej. Następnie w R samodzielnie przygotuj macierz korelacji, uruchamiając
Wszelkie rozbieżności w sposobie postępowania z brakującymi wartościami powinny być widoczne na tym etapie. Po sprawdzeniu, że macierz korelacji jest taka sama, możesz podać ją do funkcji fa i ponownie uruchomić analizę:
Jeśli nadal otrzymujesz różne wyniki w SPSS i R, problem nie jest związany z wartościami.
Następnie możesz porównać wyniki samej analizy czynnikowej / metody ekstrakcji.
i
Ponownie porównaj macierze czynnikowe / wspólnoty / sumę kwadratów ładunków. Tutaj możesz spodziewać się drobnych różnic, ale na pewno nie tej wielkości, którą opisujesz. Wszystko to dałoby wyraźniejszy obraz tego, co się dzieje.
Teraz, aby bezpośrednio odpowiedzieć na trzy pytania:
źródło
fa
funkcja w R pochodzi zpsych
pakietu.factanal
Funkcji z pakietu podstawowego należy wykonać podobnie, alepsych
jest warta używając do innych celów, w każdym razie. W rzeczywistości, ponieważ są to dane Likerta, rozsądnie byłoby zamiast tego użyćpsych
pakietufa.poly
: patrz dokumentacja pomocy .Ostatnio odkryłem, że większość rozbieżności w analizie czynnikowej między SPSS i R (z pakietem Psych) usuwa się, gdy dane są traktowane jako brakujące w listach w każdym programie, macierz korelacji pokazuje się dokładnie tak samo w każdym i nie stosuje się skośnej rotacji.
Pozostała rozbieżność dotyczy szeregu wartości, które pojawiają się na wykresie piargowym, wskazując wartości własne po ekstrakcji. W „piargu (cor (mydata))” te „czynniki” nie pasują do tych wymienionych w tabeli wyjaśniającej wariancję SPSS w „Sumach ekstrakcyjnych kwadratów”. Zauważ, że „komponenty” wykresu piargowego R pasują do wykresu piaskowego SPSS, które również pasują do „Początkowych wartości własnych” tabeli wyjaśniającej wariancję.
Odkryłem również, że „Proporcja Var” wyjaśniona przez każdy czynnik jest czasami podawana jako R (proporcja dla danego czynnika) / (kwota wyjaśniona przez wszystkie czynniki), a innym razem jest to (proporcja dla danego czynnika) (liczba pozycji w analizie). Jeśli więc otrzymujesz to pierwsze, jest ono, choć nie pasuje, co najmniej proporcjonalne i dające się wyprowadzić z tego, co raportuje SPSS w „Sumach ekstrakcyjnych kwadratowych ładunków ...% wariancji”.
Wprowadzenie rotacji eliminacji w każdym programie powoduje jednak znaczne rozbieżności w ładowaniu przedmiotów lub wariancji czynników wyjaśniających, że nie byłem w stanie rozwiązać.
źródło
Domyślną metodą obrotu w R jest eliminacja, więc prawdopodobnie spowoduje to różnicę. Jako test uruchom PAF / oblimin w SPSS i R, a znajdziesz prawie identyczne wyniki.
źródło
Nie wiem, co powoduje różnice w ładowaniu wzorów, ale zakładam, że różnica w% wyjaśnionej wariancji wynika z: - czy być może interpretujesz pierwszą część (2 lub 3) tabeli wyjaśnianych wariancji SPSS, która faktycznie pokazuje wyniki analizy głównych składników. Druga część pokazuje wyniki dla analizy niezabezpieczonego czynnika, a trzecia po rotacji (jeśli jest zastosowana). - fakt, że funkcja fa (a ściślej jej metoda drukowania) błędnie oblicza SSL dla czynników ukośnych. Aby uzyskać% całkowitej wariancji wyjaśnionej przez czynnik, należy obliczyć sumę kwadratowych obciążeń strukturalnych przez czynnik i podzielić ją przez liczbę zmiennych. Jednak nie można ich podsumować (w przypadku skośnych obrotów), aby uzyskać% wariancji wyjaśniony przez wszystkie czynniki. Aby to zdobyć,
źródło
Ta odpowiedź jest addytywna do powyższych. Jak sugeruje Gala w swojej odpowiedzi, najpierw należy ustalić, czy rozwiązania dostarczone przez R (np. Fa in psych) i SPSS są różne przed rotacją. Jeśli są takie same, spójrz na ustawienia obrotu w każdym programie. (W przypadku SPSS wszystkie ustawienia można znaleźć w podręczniku użytkownika FACTOR).
Jednym z ważnych ustawień, na które należy zwrócić uwagę, jest normalizacja Kaiser . Domyślnie SPSS wykonuje normalizację Kaisera podczas obrotu, podczas gdy niektóre funkcje R, takie jak „fa”, nie. Możesz kontrolować to ustawienie w SPSS, określając / CRITERIA = NOKAISER / KAISER, aby sprawdzić, czy eliminuje ono jakiekolwiek rozbieżności między wynikami w każdym programie.
źródło