Próbuję wykonać analizę czynnikową za pomocą R z rotacją varimax, ale nie udało się. Uruchamiam te same dane na SAS i mogę uzyskać wynik.Analiza czynnikowa za pomocą R
w R, jeżeli używam
fa(r=cor(m1), nfactors=8, fm="ml", rotate="varimax")
dostanę
In smc, the correlation matrix was not invertible, smc's returned as 1s
In smc, the correlation matrix was not invertible, smc's returned as 1s
Error in optim(start, FAfn, FAgr, method = "L-BFGS-B", lower = 0.005, :
L-BFGS-B needs finite values of 'fn'
In addition: Warning messages:
1: In cor.smooth(R) : Matrix was not positive definite, smoothing was done
2: In cor.smooth(R) : Matrix was not positive definite, smoothing was done
3: In log(e) : NaNs produced
jeśli używam
factanal(cor(m1), factors=8)
będę się
Error in solve.default(cv) :
system is computationally singular: reciprocal condition number = 4.36969e-19
Czy ktoś może mi pomóc, jak zrobić analizę czynnikową z powodzeniem przy użyciu R. Dzięki.
TQ wyprzedzeniem
Obie funkcje wskazują, że macierz korelacji jest w liczbie pojedynczej. Czy zapoznałeś się z dokumentacją SAS, aby zobaczyć, jaka jest funkcja w przypadku pojedynczej macierzy? Może ma jakiś sposób obejścia tego i jest to powód, dla którego daje wynik. – Edwin
aktualizacja, jeśli ustawiam liczbę czynników <8, mogę uzyskać poprawne wyniki – user1940902
z dokumentacji SAS "Kwadratowe wielokrotne korelacje (SMC) każdej zmiennej ze wszystkimi innymi zmiennymi są używane jako szacunki uprzedniej wspólnoty. Macierz jest pojedyncza, należy podać PRIORS = MAX zamiast PRIORS = SMC. " – user1940902