23.4 Metodo dei fattori principali iterato

Solitamente, per migliorare la stima della comunalità, la diagonale della matrice \(\textbf{S} - \hat{\boldsymbol{\Psi}}\) o \(\textbf{R} - \hat{\boldsymbol{\Psi}}\) viene ottenuta per iterazione. Dopo avere trovato \(\hat{\boldsymbol{\Lambda}}\) a partire da \(\textbf{S} - \hat{\boldsymbol{\Psi}}\) o \(\textbf{R} - \hat{\boldsymbol{\Psi}}\) come indicato in precedenza, utilizzando le stime delle saturazioni fattoriali così ottenute possiamo stimare le comunalità nel modo seguente:

\[\hat{h}^2_i = \sum_{i=1}^m \hat{\lambda}_{ij}^2.\]

I valori di \(\hat{h}^2_i\) vengono quindi sostituiti nella diagonale della matrice ridotta \(\textbf{S} - \hat{\boldsymbol{\Psi}}\) o \(\textbf{R} - \hat{\boldsymbol{\Psi}}\). A partire da questa nuova matrice, usando il metodo descritto in precedenza, possiamo così ottenere una nuova stima delle saturazioni fattoriali \(\hat{\boldsymbol{\Lambda}}\). Mediante questa nuova stima di \(\hat{\boldsymbol{\Lambda}}\), possiamo procedere ad una nuova stima delle comunalità. Tale processo continua iterativamente sino alla convergenza. Gli autovalori e gli autovettori della versione finale di \(\textbf{S} - \hat{\boldsymbol{\Psi}}\) o \(\textbf{R} - \hat{\boldsymbol{\Psi}}\) vengono infine usati per stimare i pesi fattoriali. Il metodo dei fattori principali iterato e il metodo delle componenti principali producono risultati molto simili quando \(m\) assume un piccolo valore (questo si verifica quando le correlazioni sono alte) e quando \(p\) (il numero delle variabili) è grande.

23.4.1 Casi di Heywood

Tra gli inconvenienti del metodo dei fattori principali iterato vi è il fatto che può talvolta portare a soluzioni inammissibili (quando viene fattorizzata la matrice R) caratterizzate da valori di comunalità maggiori di uno (caso di Heywood). Se \(\hat{h}^2_i > 1\) allora \(\hat{\psi}_i < 0\) il che è chiaramente assurdo in quanto una varianza non può assumere un valore negativo. Solitamente, quando la stima di una comunalità è maggiore di uno, il processo iterativo viene interrotto e il programma riporta che non può essere trovata una soluzione.

Nell’esempio presente viene utilizzata la funzione factor.pa() contenuta nel pacchetto psych per trovare la soluzione dei fattori principali mediante il metodo iterativo:

pa <- fa(R, nfactors = 2, rotate = "none", fm = "pa")
pa
#> Factor Analysis using method =  pa
#> Call: fa(r = R, nfactors = 2, rotate = "none", fm = "pa")
#> Standardized loadings (pattern matrix) based upon correlation matrix
#>    PA1   PA2   h2     u2 com
#> K 0.98 -0.21 1.01 -0.008 1.1
#> I 0.48  0.74 0.77  0.230 1.7
#> H 0.78 -0.56 0.92  0.085 1.8
#> L 0.98 -0.19 0.99  0.010 1.1
#> J 0.69  0.69 0.95  0.049 2.0
#> 
#>                        PA1  PA2
#> SS loadings           3.22 1.41
#> Proportion Var        0.64 0.28
#> Cumulative Var        0.64 0.93
#> Proportion Explained  0.70 0.30
#> Cumulative Proportion 0.70 1.00
#> 
#> Mean item complexity =  1.5
#> Test of the hypothesis that 2 factors are sufficient.
#> 
#> df null model =  10  with the objective function =  12
#> df of  the model are 1  and the objective function was  5.6 
#> 
#> The root mean square of the residuals (RMSR) is  0.01 
#> The df corrected root mean square of the residuals is  0.04 
#> 
#> Fit based upon off diagonal values = 1

Si noti che, in questo caso, le unicità assumono valori negativi, il che suggerisce che la soluzione è impropria.