Mam zestaw danych, który składa się z 717 obserwacji (wierszy), które są opisane przez 33 zmienne (kolumny). Dane są standaryzowane przez punktację Z wszystkich zmiennych. Żadne dwie zmienne nie są liniowo zależne ( ). Usunąłem również wszystkie zmienne o bardzo niskiej wariancji (mniej niż ). Poniższy rysunek pokazuje odpowiednią macierz korelacji (w wartościach bezwzględnych).0,1
Kiedy próbuję uruchomić analizę czynników przy użyciu factoran
Matlaba w następujący sposób:
[Loadings1,specVar1,T,stats] = factoran(Z2,1);
Otrzymuję następujący błąd:
The data X must have a covariance matrix that is positive definite.
Czy możesz mi powiedzieć, gdzie jest problem? Czy wynika to z niskiej wzajemnej zależności między wykorzystywanymi zmiennymi? Ponadto, co mogę z tym zrobić?
Moja macierz korelacji:
eig(cov(Z2))
). Podejrzewam, że niektóre z nich są bardzo małe.Z2
matrycę? Jeśli brakuje danych, usunięcie parami może spowodować, że macierz stanie się nieodwracalna, gdy różne korelacje w tej macierzy zostaną obliczone przy użyciu różnych podpróbek danych.Odpowiedzi:
źródło
Możliwe, że macie problemy z liczbami w macierzy. Być może jest to rzeczywiście wartość dodatnia, ale obliczenia numeryczne mówią inaczej.
Bardzo powszechnym rozwiązaniem w tym przypadku jest dodanie bardzo niskiej wartości (na przykład 1.E-10) do wszystkich elementów ukośnych. Jeśli to nie rozwiąże problemu, spróbuj stopniowo zwiększać tę wartość.
źródło
FA działa najlepiej, gdy twoje dane są gaussowskie, dlatego możesz wypróbować niektóre metody przetwarzania wstępnego, aby uzyskać dane bardziej podobne do gaussowskiej.
źródło