Mam pewne dychotomiczne dane, tylko zmienne binarne, a mój szef poprosił mnie o wykonanie analizy czynnikowej z wykorzystaniem macierzy korelacji tetrachorycznych. Wcześniej byłem w stanie nauczyć się, jak przeprowadzać różne analizy na podstawie przykładów tutaj i na stronie UCLA ze statystykami i innych podobnych witryn, ale nie wydaje mi się, żebym mógł znaleźć krok przez przykład analizy czynnikowej w przypadku dychotomii dane (zmienne binarne) przy użyciu R.
Widziałem odpowiedź CHL jest do nieco simular pytanie i widziałem też odpowiedź ttnphns' , ale szukam czegoś bardziej wypisanym , krok za przykład mogę pracować.
Czy ktoś tu wie o takim kroku przez przykład analizy czynnikowej zmiennych binarnych przy użyciu R?
Aktualizacja 2012-07-11 22: 03: 35Z
Powinienem również dodać, że pracuję z ugruntowanym instrumentem, który ma trzy wymiary, do którego dodaliśmy kilka dodatkowych pytań i teraz mamy nadzieję znaleźć cztery odrębne wymiary. Co więcej, nasza wielkość próby wynosi tylko , a obecnie mamy pozycji. Porównałem naszą próbkę i liczbę przedmiotów do wielu artykułów z psychologii i zdecydowanie jesteśmy w dolnej części, ale i tak chcieliśmy to wypróbować. Chociaż nie jest to ważne w przypadku przykładu, którego szukam, a poniższy przykład karakala wygląda naprawdę niesamowicie. Najpierw będę pracował przez to, używając moich danych rano.
źródło
Odpowiedzi:
Rozumiem, że celem tego pytania jest mniej po stronie teoretycznej, a bardziej po stronie praktycznej, tj. Jak wdrożyć analizę czynnikową danych dychotomicznych w R.
Najpierw symulujmy 200 obserwacji z 6 zmiennych pochodzących z 2 czynników ortogonalnych. Zrobię kilka pośrednich kroków i zacznę od wielowymiarowych normalnych ciągłych danych, które później dychotomizuję. W ten sposób możemy porównać korelacje Pearsona z korelacjami polichorycznymi i porównać ładunki czynnikowe z danych ciągłych z danymi dychotomicznymi i ładunkami rzeczywistymi.
Wykonaj analizę czynnikową dla danych ciągłych. Szacunkowe obciążenia są podobne do rzeczywistych, gdy ignoruje się nieistotny znak.
Teraz rozdzielmy dane. Będziemy przechowywać dane w dwóch formatach: jako ramka danych z uporządkowanymi czynnikami oraz jako matryca numeryczna.
hetcor()
z pakietupolycor
daje nam polichoryczną macierz korelacji, którą później wykorzystamy dla FA.Teraz użyj polichorycznej macierzy korelacji, aby wykonać regularny FA. Należy pamiętać, że oszacowane obciążenia są dość podobne do tych z ciągłych danych.
Możesz pominąć krok obliczania polichorycznej macierzy korelacji i bezpośrednio użyć
fa.poly()
pakietupsych
, który ostatecznie robi to samo. Ta funkcja przyjmuje surowe dane dychotomiczne jako macierz numeryczną.EDYCJA: Aby uzyskać wyniki czynnikowe, spójrz na pakiet,
ltm
który mafactor.scores()
funkcję specjalnie dla danych wyników polimorficznych. Przykład znajduje się na tej stronie -> „Wyniki czynnikowe - Szacunki umiejętności”.Można wizualizować obciążenia z analizy czynnikowej za pomocą
factor.plot()
ifa.diagram()
, zarówno z pakietupsych
. Z jakiegoś powodufactor.plot()
akceptuje tylko$fa
składnik wynikufa.poly()
, a nie pełny obiekt.Analiza równoległa i analiza „bardzo prostej struktury” pomagają w wyborze liczby czynników. Ponownie, pakiet
psych
ma wymagane funkcje.vss()
przyjmuje jako argument argument polikorycznej macierzy korelacji.Pakiet zapewnia również analizę równoległą dla polichorycznego FA
random.polychor.pa
.Należy pamiętać, że funkcje
fa()
ifa.poly()
zapewniają wiele, wiele więcej opcji konfiguracji FA. Ponadto zredagowałem niektóre dane wyjściowe, które dają dobre testy dopasowania itp. Dokumentacja tych funkcji (ipsych
ogólnie pakietu ) jest doskonała. Ten przykład tutaj jest po prostu na początek.źródło
psych
pozwala w jakiś sposób oszacować wyniki czynnikowe, gdy zamiast zwykłego r Pearsona stosuje się korelacje poli / tetra-choryczne?psych
daje to fakt, że mieliśmy do czynienia z tetrachorycznym r, a nie zwykłym r, gdy oblicza on wyniki czynnikowe, czy nie?nearcor()
zsfsmisc
lubcor.smooth()
zpsych
.psych
„sfactor.scores()
, to nie jest przypadek. Zamiast tego wyniki są obliczane tak jak w przypadku ciągłym. Jednakfactor.scores()
funkcja w pakiecieltm
wydaje się implementować poprawne procedury, zobacz ten przykład -> „Wyniki czynnikowe - Szacunki umiejętności” i stronę pomocy.