2013-04-02 17 views
9

Sto cercando di eseguire un'analisi fattoriale utilizzando R con rotazione varimax, ma non riuscita. Eseguo gli stessi esatti dati su SAS e posso ottenere risultati.analisi fattoriale utilizzando R

in R, se uso

fa(r=cor(m1), nfactors=8, fm="ml", rotate="varimax") 

mi metterò

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 

se uso

factanal(cor(m1), factors=8) 

mi metterò

Error in solve.default(cv) : 
    system is computationally singular: reciprocal condition number = 4.36969e-19 

Qualcuno può aiutarmi a fare un'analisi fattoriale utilizzando con successo R. Grazie.

Tq in anticipo

+0

Entrambe le funzioni indicano che la matrice di correlazione è singolare. Hai esaminato la documentazione SAS per vedere cosa fa la funzione in caso di matrici singolari? Forse ha un modo per aggirarlo, ed è questo il motivo per cui dà un risultato. – Edwin

+0

un aggiornamento, se non ho impostato nessun fattore <8, posso ottenere i risultati corretti – user1940902

+0

da SAS doc "Le correlazioni multiple a quadratura (SMC) di ogni variabile con tutte le altre variabili sono utilizzate come stime di comunalità precedenti. matrice è singolare, è necessario specificare PRIORS = MAX anziché PRIORS = SMC. " – user1940902

risposta

12

Le avvertenze e gli errori indica che la vostra matrice è singolare, quindi nessuna soluzione esiste per il problema di ottimizzazione.

Ciò significa che è necessario utilizzare un metodo diverso di analisi fattoriale. Utilizzando fa() nel pacchetto psych si hanno due alternative per eseguire analisi fattoriale dato un singolare matrice:

  • pa (Principal analisi fattoriale asse)
  • minres (analisi fattoriale residua minima)

Tuttavia, dato i tuoi dati, solo minres sembrano dare risultati utili, anche se con molti avvisi di salute:

library(psych) 
library(GPArotation) 
fa(r=cor(m1), nfactors=8, rotate="varimax", SMC=FALSE, fm="minres") 

Questo dà:

In smc, the correlation matrix was not invertible, smc's returned as 1s 
In factor.stats, the correlation matrix is singular, an approximation is used 
In factor.scores, the correlation matrix is singular, an approximation is used 
I was unable to calculate the factor score weights, factor loadings used instead 
Factor Analysis using method = minres 
Call: fa(r = cor(m1), nfactors = 8, rotate = "varimax", SMC = FALSE, 
    fm = "minres") 
Standardized loadings (pattern matrix) based upon correlation matrix 
       MR1 MR3 MR2 MR6 MR5 MR4 MR7 MR8 h2 u2 
Adorable  0.64 0.69 0.04 0.26 0.05 0.04 0.01 0.14 0.98 0.020 
Appealing  0.69 0.66 0.06 0.22 0.06 0.00 0.03 0.08 0.98 0.021 
Beautiful  0.39 0.82 -0.16 0.11 0.24 -0.05 -0.07 -0.08 0.93 0.071 
Boring  -0.49 -0.70 0.33 -0.27 0.01 0.03 0.11 -0.16 0.95 0.054 
Calm   0.76 0.42 0.33 0.10 0.28 -0.04 0.02 0.05 0.96 0.038 
Charming  0.62 0.75 0.04 0.15 0.07 -0.03 0.03 0.01 0.98 0.024 
Chic   0.07 0.94 -0.13 0.17 -0.03 0.12 -0.02 0.02 0.95 0.048 
Childish  -0.13 0.00 0.04 0.04 -0.04 0.98 0.01 0.00 0.98 0.016 
Classic  0.82 0.16 0.28 -0.31 0.14 0.10 0.16 0.06 0.94 0.058 
Comfortable 0.66 0.50 0.19 0.39 0.27 -0.02 0.13 0.08 0.97 0.033 
Cool   0.81 0.43 0.03 0.32 0.00 0.01 -0.03 0.20 0.98 0.016 
Creative  0.78 0.37 -0.41 0.14 -0.05 0.06 -0.05 0.20 0.98 0.024 
Crowded  -0.34 -0.12 -0.77 -0.13 -0.18 0.04 0.44 0.00 0.96 0.041 
Cute   0.50 0.78 0.03 0.18 0.07 0.25 -0.09 0.14 0.98 0.024 
Elegant  0.67 0.70 0.07 -0.04 0.10 -0.14 0.03 0.07 0.98 0.021 
Feminine  0.09 0.96 0.00 0.01 0.01 -0.02 0.04 0.03 0.93 0.069 
Fun   0.58 0.45 -0.21 0.56 0.01 0.20 -0.06 -0.08 0.95 0.054 
Futuristic  0.91 0.26 -0.10 0.14 -0.07 -0.03 -0.18 -0.08 0.98 0.021 
Gorgeous  0.82 0.52 -0.04 0.14 0.05 -0.09 -0.08 -0.01 0.98 0.019 
Impressive  0.82 0.48 -0.02 0.23 0.05 0.00 -0.10 0.07 0.98 0.021 
Interesting 0.72 0.55 0.05 0.34 0.15 0.01 -0.13 0.03 0.98 0.020 
Light   0.20 0.49 0.30 0.72 0.22 0.03 -0.03 0.02 0.93 0.065 
Lively   0.62 0.66 -0.06 0.37 0.16 0.00 -0.04 -0.03 0.98 0.021 
Lovely   0.68 0.68 -0.04 0.12 0.19 -0.03 -0.08 0.01 0.98 0.019 
Luxury   0.89 0.36 -0.02 0.00 0.08 -0.15 -0.04 -0.07 0.96 0.036 
Masculine  0.91 -0.06 -0.05 0.24 0.05 -0.08 0.00 -0.17 0.94 0.063 
Mystic   0.95 0.05 0.13 0.01 -0.03 0.00 -0.10 0.00 0.93 0.069 
Natural  0.47 0.32 0.42 0.19 0.57 -0.17 0.23 0.02 0.95 0.050 
Neat   -0.07 0.06 0.27 0.08 0.93 -0.01 -0.06 -0.01 0.96 0.042 
Oldfashioned -0.64 -0.54 0.20 -0.31 0.16 0.13 0.27 -0.16 0.97 0.026 
Plain   -0.23 -0.19 0.88 -0.06 0.18 0.06 0.14 -0.14 0.94 0.062 
Pretty   0.66 0.68 0.06 0.17 0.16 -0.11 0.01 0.10 0.97 0.029 
Professional 0.82 0.41 0.09 0.18 0.16 -0.18 0.04 0.13 0.96 0.039 
Refreshing  0.54 0.58 0.19 0.45 0.30 -0.03 0.10 0.07 0.98 0.021 
Relaxing  0.56 0.65 0.34 0.26 0.21 -0.04 0.13 -0.03 0.97 0.026 
Sexy   0.35 0.81 0.27 0.05 -0.01 -0.24 0.01 -0.19 0.94 0.056 
Simple   0.08 0.01 0.96 0.08 0.09 0.02 0.04 0.12 0.96 0.041 
Sophisticated 0.86 0.44 -0.01 0.04 -0.04 -0.12 0.08 0.05 0.96 0.040 
Stylish  0.77 0.58 0.06 0.15 0.00 -0.07 0.07 0.08 0.97 0.030 
Surreal  0.85 0.39 0.14 0.18 -0.05 0.02 0.08 -0.02 0.93 0.067 

         MR1 MR3 MR2 MR6 MR5 MR4 MR7 MR8 
SS loadings   16.50 11.81 3.57 2.45 1.89 1.34 0.55 0.37 
Proportion Var   0.41 0.30 0.09 0.06 0.05 0.03 0.01 0.01 
Cumulative Var   0.41 0.71 0.80 0.86 0.91 0.94 0.95 0.96 
Proportion Explained 0.43 0.31 0.09 0.06 0.05 0.03 0.01 0.01 
Cumulative Proportion 0.43 0.74 0.83 0.89 0.94 0.98 0.99 1.00 

Test of the hypothesis that 8 factors are sufficient. 

The degrees of freedom for the null model are 780 and the objective function was NaN 
The degrees of freedom for the model are 488 and the objective function was NaN 

The root mean square of the residuals (RMSR) is 0.01 
The df corrected root mean square of the residuals is 0.02 

Fit based upon off diagonal values = 1 
Measures of factor score adequacy    
               MR1 MR3 MR2 MR6 MR5 MR4 MR7 MR8 
Correlation of scores with factors    1 1 1 1.00 1.00 1.00 1.00 0.99 
Multiple R square of scores with factors   1 1 1 1.00 1.00 1.00 0.99 0.98 
Minimum correlation of possible factor scores 1 1 1 0.99 0.99 0.99 0.98 0.97 
Warning messages: 
1: In cor.smooth(R) : Matrix was not positive definite, smoothing was done 
2: In log(det(m.inv.r)) : NaNs produced 
3: In log(det(r)) : NaNs produced 
4: In cor.smooth(r) : Matrix was not positive definite, smoothing was done 
5: In cor.smooth(r) : Matrix was not positive definite, smoothing was done