Tengo algunos datos dicotómicos, solo variables binarias, y mi jefe me pidió que realizara un análisis factorial utilizando la matriz de correlaciones tetracóricas. Anteriormente, he podido enseñarme a mí mismo cómo ejecutar diferentes análisis basados en los ejemplos aquí y en el sitio de estadísticas de la UCLA y en otros sitios como este, pero parece que no puedo encontrar un paso a través de un ejemplo de análisis factorial en dicotomía datos (variables binarias) usando R.
Vi la respuesta de chl a una pregunta algo similar y también vi la respuesta de ttnphns , pero estoy buscando algo aún más detallado , un paso a través de un ejemplo con el que puedo trabajar.
¿Alguien aquí sabe de tal paso a través de un ejemplo de un análisis factorial en variables binarias usando R?
Actualización 2012-07-11 22: 03: 35Z
También debo agregar que estoy trabajando con un instrumento establecido, que tiene tres dimensiones, a lo que hemos agregado algunas preguntas adicionales y ahora esperamos encontrar cuatro dimensiones distintas. Además, nuestro tamaño de muestra es solo , y actualmente tenemos 19 artículos. Comparé nuestro tamaño de muestra y nuestro número de artículos con varios artículos de psicología y definitivamente estamos en el extremo inferior, pero queríamos probarlo de todos modos. Sin embargo, esto no es importante para el ejemplo paso a paso que estoy buscando y el ejemplo de Caracal a continuación se ve realmente increíble. Trabajaré a través de ellos usando mis datos a primera hora de la mañana.
fuente
Respuestas:
Supongo que el foco de la pregunta es menos en el lado teórico y más en el lado práctico, es decir, cómo implementar un análisis factorial de datos dicotómicos en R.
Primero, simulemos 200 observaciones de 6 variables, provenientes de 2 factores ortogonales. Tomaré un par de pasos intermedios y comenzaré con datos continuos normales multivariados que luego dicotomizaré. De esa manera, podemos comparar las correlaciones de Pearson con las correlaciones policóricas, y comparar las cargas de factores de datos continuos con las de datos dicotómicos y las cargas reales.
Haga el análisis factorial para los datos continuos. Las cargas estimadas son similares a las verdaderas cuando se ignora el signo irrelevante.
Ahora vamos a dicotomizar los datos. Mantendremos los datos en dos formatos: como un marco de datos con factores ordenados y como una matriz numérica.
hetcor()
del paquetepolycor
nos da la matriz de correlación policórica que luego usaremos para la FA.Ahora use la matriz de correlación policórica para hacer un FA regular. Tenga en cuenta que las cargas estimadas son bastante similares a las de los datos continuos.
Puede omitir el paso de calcular la matriz de correlación policórica usted mismo y usar directamente
fa.poly()
desde el paquetepsych
, que al final hace lo mismo. Esta función acepta los datos dicotómicos en bruto como una matriz numérica.EDITAR: Para puntajes de factores, mire el paquete
ltm
que tiene unfactor.scores()
función específica para datos de resultados politómicos. Se proporciona un ejemplo en esta página -> "Puntajes de factor - Estimaciones de habilidad".Puede visualizar las cargas del análisis factorial usando
factor.plot()
yfa.diagram()
, tanto del paquetepsych
. Por alguna razón,factor.plot()
acepta solo el$fa
componente del resultado defa.poly()
, no el objeto completo.El análisis paralelo y un análisis de "estructura muy simple" proporcionan ayuda para seleccionar la cantidad de factores. Nuevamente, el paquete
psych
tiene las funciones requeridas.vss()
toma la matriz de correlación policórica como argumento.El paquete también proporciona un análisis paralelo para la FA policlorica
random.polychor.pa
.Tenga en cuenta que las funciones
fa()
yfa.poly()
proporcionan muchas más opciones para configurar la FA. Además, edité algunos de los resultados que ofrecen pruebas de bondad de ajuste, etc. La documentación para estas funciones (y paquetepsych
en general) es excelente. Este ejemplo aquí solo tiene la intención de comenzar.fuente
psych
permite de alguna manera estimar los puntajes de los factores cuando se usan correlaciones poli / tetracóricas en lugar de las habituales Pearson r?psych
debe al hecho de que estábamos tratando con r tetracórico, no r habitual, cuando calcula puntajes de factores, o no?nearcor()
fromsfsmisc
ocor.smooth()
frompsych
para este caso.psych
'sfactor.scores()
, este no es el caso. En cambio, los puntajes se calculan como en el caso continuo. Sin embargo, lafactor.scores()
función en el paqueteltm
parece implementar los procedimientos correctos, vea este ejemplo -> "Puntajes de factores - Estimaciones de habilidad" y la página de ayuda.