Soy estudiante de posgrado en informática. He estado haciendo un análisis factorial exploratorio para un proyecto de investigación. Mis colegas (que dirigen el proyecto) utilizan SPSS, mientras que yo prefiero utilizar R. Esto no importaba hasta que descubrimos una importante discrepancia entre los dos paquetes estadísticos.
Estamos utilizando factorización del eje principal como método de extracción (tenga en cuenta que soy muy consciente de la diferencia entre ACP y análisis factorial, y que estamos sin usar PCA (al menos no intencionadamente). Por lo que he leído, esto debería corresponder al método del "eje principal" en R, y a la "factorización del eje principal" o a los "mínimos cuadrados no ponderados" en SPSS, según la documentación de R . Estamos utilizando un método de rotación oblicua (específicamente, promax ) porque esperamos factores correlacionados, y estamos interpretando el matriz de patrones .
Si se ejecutan los dos procedimientos en R y SPSS, hay diferencias importantes. La matriz de patrones da diferentes cargas. Aunque esto da más o menos las mismas relaciones entre los factores y las variables, hay una diferencia de hasta 0,15 entre las cargas correspondientes, lo que parece más de lo que se esperaría por una implementación diferente del método de extracción y las rotaciones promax. Sin embargo, esa no es la diferencia más sorprendente.
La varianza acumulada explicada por los factores se sitúa en torno al 40% en los resultados del SPSS y al 31% en los de R. Esta es una diferencia enorme, y ha llevado a mis colegas a querer utilizar SPSS en lugar de R. No tengo ningún problema con esto, pero una diferencia tan grande me hace pensar que podríamos estar interpretando algo de forma incorrecta, lo cual es un problema.
Para complicar aún más las cosas, el SPSS informa de diferentes tipos de varianza explicada cuando ejecutamos la factorización por mínimos cuadrados no ponderados. La proporción de varianza explicada por los Eigenvalores Iniciales es del 40%, mientras que la proporción de varianza explicada por la Extracción de Sumas de Cargas Cuadradas (SSL) es del 33%. Esto me lleva a pensar que los Eigenvalores Iniciales no es el número apropiado para mirar (sospecho que es la varianza explicada antes de la rotación, aunque no sé por qué es tan grande). Aún más confuso, SPSS también muestra los SSL de la rotación, pero no calcula el porcentaje de varianza explicada (SPSS me dice que tener factores correlacionados significa que no puedo sumar los SSL para encontrar la varianza total, lo que tiene sentido con las matemáticas que he visto). Los SSLs reportados por R no coinciden con ninguno de ellos, y R me dice que describe el 31% de la varianza total. Las SSL de R son las que más se ajustan a las SSL de Rotación. Los valores propios de R de la matriz de correlación original coinciden con los valores propios iniciales de SPSS.
Además, tenga en cuenta que he jugado con el uso de diferentes métodos, y que el ULS y el PAF de SPSS parecen coincidir más con el método PA de R.
Mis preguntas específicas:
- ¿Qué diferencia debo esperar entre R y SPSS con las implementaciones del análisis factorial?
- ¿Cuál de las Sumas de Cargas Cuadradas del SPSS debería interpretar, los Eigenvalores Iniciales, la Extracción o la Rotación?
- ¿Hay otras cuestiones que pueda haber pasado por alto?
Mis llamadas a SPSS y R son las siguientes:
SPSS:
FACTOR
/VARIABLES <variables>
/MISSING PAIRWISE
/ANALYSIS <variables>
/PRINT INITIAL KMO AIC EXTRACTION ROTATION
/FORMAT BLANK(.35)
/CRITERIA FACTORS(6) ITERATE(25)
/EXTRACTION ULS
/CRITERIA ITERATE(25)
/ROTATION PROMAX(4).
R:
library(psych)
fa.results <- fa(data, nfactors=6, rotate="promax",
scores=TRUE, fm="pa", oblique.scores=FALSE, max.iter=25)
0 votos
No puedo comprobarlo porque no uso R, pero sospecho que hay un fallo en la documentación. fm="pa" debería corresponder a /EXTRACTION PAF. Además, trate de comparar las soluciones antes de cualquier rotación, porque las diferencias leves en los algos de rotación pueden mezclarse con las diferencias del método de extracción.
1 votos
Gracias por echar un vistazo. Intentaré comparar las soluciones antes de la rotación. Debo mencionar que he probado tanto /EXTRACTION ULS como /EXTRACTION PAF, y hay muy poca diferencia en las cargas (pero ninguna se acerca realmente al método "pa" de R). La razón por la que muestro /EXTRACTION ULS arriba es porque ese es el comando que da las diferentes SSLs.
1 votos
El método del eje principal y el de los mínimos cuadrados no ponderados pueden dar a veces resultados similares, pero son fundamentalmente diferentes desde el punto de vista algorítmico. Creo que las equivalencias entre R y SPSS son las siguientes "pa"=PAF, "minres"=ULS, "gls"=GLS, "ml"=ML
1 votos
Además, compruebe el tratamiento de los valores perdidos. En su código SPSS, los elimina por pares. En su código R...
0 votos
He comparado los SSLs de pre-rotación de R y coinciden con los SSLs de extracción en la solución ULS de SPSS (desafortunadamente, la solución PAF en SPSS no me dio estos valores). Creo que la rotación promax parece ser la culpable. Bueno, eso o la forma en que SPSS imprime los SSL de rotación. Tal vez R hace una estimación de la varianza total explicada por las SSL finales, mientras que SPSS me dice que no es apropiada tal estimación.
0 votos
@oliver He borrado mi respuesta, ya que tu comentario a mi respuesta me hizo revisar la documentación y me di cuenta de que mi respuesta era incorrecta. Has considerado la posibilidad de que haya diferentes configuraciones para m en R y SPSS. Ambos
promax
en la base yPromax
en psych configuró m para que fuera 4, y no sé cuál es el valor por defecto en SPSS.0 votos
Para SPSS promax kappa=4, ¿es kappa lo mismo que m? Por lo que veo es lo mismo. Ambos hacen la normalización de Kaiser también (creo. Todavía estoy comprobando que R lo hace)
0 votos
Una pregunta realmente bien redactada. Estoy de acuerdo con ttnphns en que el tratamiento de los valores perdidos es un candidato para la discrepancia en los resultados. Para comprender mejor las diferencias en la varianza explicada entre las soluciones iniciales, extraídas y rotadas, podría consultar el Tutorial en los archivos de ayuda de SPSS. Si es difícil de encontrar, intente ir a la sección de análisis factorial y busque un enlace "mostrarme".
0 votos
Volviendo a leer su pregunta, me pregunto a qué se refiere con "Sumas iniciales de valores propios de cargas al cuadrado". En la tabla "Varianza total explicada" del SPSS, las tres primeras columnas se basan en los valores propios de la matriz de correlación inicial (sin reducir), pero no son "sumas de cargas al cuadrado" (no tiene mucho sentido hablar de cargas en esta fase) y siempre "explican" toda la varianza (es decir, el SPSS muestra tantos valores propios como variables hay en el conjunto de datos). ¿Ves algo más?
0 votos
@GaëlLaurans no, "Sumas iniciales de valores propios de cargas al cuadrado" fue una falta de precisión por mi parte. He editado esa parte de la pregunta, ¡gracias!
0 votos
@rolando2 Gracias, comprobaré la documentación en cuanto tenga acceso al SPSS (no está en este ordenador)