Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Realizar análisis de factores en calificaciones de exámenes

En este ejemplo se muestra cómo realizar el análisis factorial mediante estadísticas y machine learning Toolbox™.

Los datos multivariados a menudo incluyen un gran número de variables medidas, y a veces esas variables "se superponen" en el sentido de que los grupos de ellos pueden ser dependientes. Por ejemplo, en un Decathlon, cada atleta compite en 10 eventos, pero varios de ellos pueden ser pensados como eventos de "velocidad", mientras que otros pueden ser pensados como eventos de "fuerza", etc. Por lo tanto, las puntuaciones de 10 eventos de un competidor podrían ser pensados como dependientes en gran medida de un conjunto más pequeño de 3 o 4 tipos de habilidad atlética.

El análisis factorial es una forma de ajustar un modelo a datos multivariados para estimar sólo este tipo de interdependencia.

El modelo de análisis factorial

En el modelo de análisis factorial, las variables medidas dependen de un número menor de factores no observados (latentes). Debido a que cada factor puede afectar a varias variables en común, se conocen como "factores comunes". Se asume que cada variable depende de una combinación lineal de los factores comunes, y los coeficientes se conocen como cargas. Cada variable medida también incluye un componente debido a la variabilidad aleatoria independiente, conocida como "desviación específica" porque es específica de una variable.

Concretamente, el análisis factorial presupone que la matriz de covarianza de los datos es de la forma

  SigmaX = Lambda*Lambda' + Psi

donde lambda es la matriz de cargas, y los elementos de la matriz diagonal PSI son las varianzas específicas. La función se ajusta al modelo de análisis de factores utilizando la máxima probabilidad.factoran

Ejemplo: Encontrar factores comunes que afectan los grados del examen

120 los estudiantes han tomado cinco exámenes, los dos primeros que cubren las matemáticas, los dos siguientes en la literatura, y un quinto examen completo. Parece razonable que los cinco grados para un estudiante dado deben estar relacionados. Algunos estudiantes son buenos en ambos temas, algunos son buenos en sólo uno, etc. El objetivo de este análisis es determinar si hay evidencia cuantitativa de que las calificaciones de los estudiantes en los cinco exámenes diferentes están determinadas en gran medida por sólo dos tipos de capacidad.

Primero cargue los datos, luego llame y solicite un ajuste de modelo con un solo factor común.factoran

load examgrades [Loadings1,specVar1,T,stats] = factoran(grades,1); 

dos primeros argumentos de devolución son las cargas estimadas y las desviaciones específicas estimadas.factoran De las cargas estimadas, se puede ver que el factor común en este modelo pone gran peso positivo en las cinco variables, pero la mayoría de peso en el quinto, examen integral.

Loadings1 
 Loadings1 =      0.6021     0.6686     0.7704     0.7204     0.9153  

Una interpretación de este ajuste es que un estudiante podría ser pensado en términos de su "capacidad general", para lo cual el examen integral sería la mejor medida disponible. La calificación de un estudiante en una prueba más específica dependerá de su capacidad general, pero también de si el estudiante era fuerte en esa área. Esto explicaría las cargas más bajas para los primeros cuatro exámenes.

A partir de las desviaciones específicas estimadas, puede ver que el modelo indica que la calificación de un estudiante en particular en una prueba en particular varía mucho más allá de la variación debido al factor común.

specVar1 
 specVar1 =      0.6375     0.5530     0.4065     0.4810     0.1623  

Una varianza específica de 1 indicaría que hay un componente de factor común en esa variable, mientras que una varianza específica de 0 indicaría que la variable está determinada por factores comunes.noentirely Estas calificaciones del examen parecen caer en algún lugar en el medio, aunque hay la menor cantidad de variación específica para el examen integral. Esto es consistente con la interpretación dada arriba del factor común único en este modelo.

El valor p devuelto en la estructura rechaza la hipótesis nula de un único factor común, por lo que reajustamos el modelo.stats

stats.p 
 ans =      0.0332  

A continuación, utilice dos factores comunes para tratar de explicar mejor las puntuaciones del examen. Con más de un factor, puede rotar las cargas estimadas para tratar de hacer su interpretación más sencilla, pero por el momento, pida una solución sin rotar.

[Loadings2,specVar2,T,stats] = factoran(grades,2,'rotate','none'); 

A partir de las cargas estimadas, puede ver que el primer factor no girado coloca aproximadamente igual peso en las cinco variables, mientras que el segundo factor contrasta las dos primeras variables con las dos segundas.

Loadings2 
 Loadings2 =      0.6289    0.3485     0.6992    0.3287     0.7785   -0.2069     0.7246   -0.2070     0.8963   -0.0473  

Puede interpretar estos factores como "capacidad general" y "capacidad cuantitativa frente a cualitativa", extendiendo la interpretación del ajuste de un factor hecho anteriormente.

Una gráfica de las variables, donde cada carga es una coordenada a lo largo del eje del factor correspondiente, ilustra esta interpretación gráficamente. Los dos primeros exámenes tienen una carga positiva en el segundo factor, sugiriendo que dependen de la capacidad "cuantitativa", mientras que los dos segundos exámenes aparentemente dependen de lo opuesto. El quinto examen sólo tiene una pequeña carga en este segundo factor.

biplot(Loadings2, 'varlabels',num2str((1:5)')); title('Unrotated Solution'); xlabel('Latent Factor 1'); ylabel('Latent Factor 2'); 

A partir de las desviaciones específicas estimadas, puede ver que este modelo de dos factores indica un poco menos variación más allá de eso debido a los factores comunes que el modelo de un factor hizo. Una vez más, la menor cantidad de varianza específica se produce para el quinto examen.

specVar2 
 specVar2 =      0.4829     0.4031     0.3512     0.4321     0.1944  

La estructura muestra que hay un solo grado de libertad en este modelo de dos factores.stats

stats.dfe 
 ans =       1  

Con solo cinco variables medidas, no se puede ajustar un modelo con más de dos factores.

Análisis factorial de una matriz de covarianza/correlación

Ha realizado los ajustes anteriores utilizando las puntuaciones de prueba sin procesar, pero a veces puede que solo tenga una matriz de covarianza de muestra que resuma sus datos. acepta una covarianza o matriz de correlación, utilizando el parámetro ' xType ', y da un resultado idéntico a la de los datos sin procesar.factoran

Sigma = cov(grades); [LoadingsCov,specVarCov] = ...         factoran(Sigma,2,'Xtype','cov','rotate','none'); LoadingsCov 
 LoadingsCov =      0.6289    0.3485     0.6992    0.3287     0.7785   -0.2069     0.7246   -0.2070     0.8963   -0.0473  

Factor Rotation

A veces, las cargas estimadas de un modelo de análisis factorial pueden dar un gran peso a varios factores para algunas de las variables medidas, lo que dificulta la interpretación de lo que representan esos factores. El objetivo de la rotación de factores es encontrar una solución para la cual cada variable tiene sólo un pequeño número de cargas grandes, es decir, se ve afectada por un pequeño número de factores, preferiblemente sólo uno.

Si piensa en cada fila de la matriz de cargas como coordenadas de un punto en el espacio dimensional M, cada factor corresponde a un eje de coordenadas. La rotación de factores equivale a rotar esos ejes y a calcular nuevas cargas en el sistema de coordenadas giradas. Hay varias maneras de hacerlo. Algunos métodos dejan los ejes ortogonales, mientras que otros son métodos oblicuos que cambian los ángulos entre ellos.

Varimax es un criterio común para la rotación ortogonal. realiza la rotación varimax de forma predeterminada, por lo que no es necesario solicitarles explícitamente.factoran

[LoadingsVM,specVarVM,rotationVM] = factoran(grades,2); 

Una comprobación rápida de la matriz de rotación varimax devuelta confirma que es ortogonal.factoran Varimax, en efecto, rota los ejes de los factores en la figura de arriba, pero los mantiene en ángulos correctos.

rotationVM'*rotationVM 
 ans =      1.0000    0.0000     0.0000    1.0000  

Un biplot de las cinco variables en los factores girados muestra el efecto de la rotación varimax.

biplot(LoadingsVM, 'varlabels',num2str((1:5)')); title('Varimax Solution'); xlabel('Latent Factor 1'); ylabel('Latent Factor 2'); 

Varimax ha girado rígidamente los ejes en un intento de hacer todas las cargas cercanas a cero o una. Los dos primeros exámenes son más cercanos al segundo eje del factor, mientras que el tercero y el cuarto son los más cercanos al primer eje y el quinto examen se encuentra en una posición intermedia. Estos dos factores rotados probablemente se pueden interpretar mejor como "capacidad cuantitativa" y "capacidad cualitativa". Sin embargo, dado que ninguna de las variables está cerca de un eje de factor, la bigráfica muestra que la rotación ortogonal no ha logrado proporcionar un conjunto simple de factores.

Debido a que la rotación ortogonal no fue completamente satisfactoria, puede intentar usar PROMAX, un criterio de rotación oblicua común.

[LoadingsPM,specVarPM,rotationPM] = ...                 factoran(grades,2,'rotate','promax'); 

Una comprobación de la matriz de rotación PROMAX devuelta por muestra que no es ortogonal.factoran PROMAX, en efecto, rota los ejes del factor en la primera figura por separado, permitiéndoles tener un ángulo oblicuo entre ellos.

rotationPM'*rotationPM 
 ans =      1.9405   -1.3509    -1.3509    1.9405  

Un biplot de las variables en los nuevos factores girados muestra el efecto de la rotación PROMAX.

biplot(LoadingsPM, 'varlabels',num2str((1:5)')); title('Promax Solution'); xlabel('Latent Factor 1'); ylabel('Latent Factor 2'); 

PROMAX ha realizado una rotación no rígida de los ejes, y ha hecho un trabajo mucho mejor que varimax en la creación de una "estructura simple". Los dos primeros exámenes están cerca del segundo eje del factor, mientras que el tercero y el cuarto están cerca del primer eje, y el quinto examen está en una posición intermedia. Esto hace una interpretación de estos factores rotados como "capacidad cuantitativa" y "capacidad cualitativa" más precisa.

En lugar de trazar las variables en los diferentes conjuntos de ejes girados, es posible superponer los ejes girados en un biplot sin rotar para tener una mejor idea de cómo se relacionan las soluciones rotadas y no giradas.

h1 = biplot(Loadings2, 'varlabels',num2str((1:5)')); xlabel('Latent Factor 1'); ylabel('Latent Factor 2'); hold on invRotVM = inv(rotationVM); h2 = line([-invRotVM(1,1) invRotVM(1,1) NaN -invRotVM(2,1) invRotVM(2,1)], ...           [-invRotVM(1,2) invRotVM(1,2) NaN -invRotVM(2,2) invRotVM(2,2)],'Color',[1 0 0]); invRotPM = inv(rotationPM); h3 = line([-invRotPM(1,1) invRotPM(1,1) NaN -invRotPM(2,1) invRotPM(2,1)], ...           [-invRotPM(1,2) invRotPM(1,2) NaN -invRotPM(2,2) invRotPM(2,2)],'Color',[0 1 0]); hold off axis square lgndHandles = [h1(1) h1(end) h2 h3]; lgndLabels = {'Variables','Unrotated Axes','Varimax Rotated Axes','Promax Rotated Axes'}; legend(lgndHandles, lgndLabels, 'location','northeast', 'fontname','arial narrow'); 

Las puntuaciones de factor de predicción

A veces, es útil poder clasificar una observación basada en sus puntuaciones de factores. Por ejemplo, si ha aceptado el modelo de dos factores y la interpretación de los elementos girados de PROMAX, es posible que desee predecir qué tan bien lo haría un estudiante en un examen matemático en el futuro.

Dado que los datos son los grados de examen sin procesar, y no sólo su matriz de covarianzas, podemos tener predicciones de retorno del valor de cada uno de los dos factores comunes rotados para cada estudiante.factoran

[Loadings,specVar,rotation,stats,preds] = ...               factoran(grades,2,'rotate','promax','maxit',200); biplot(Loadings, 'varlabels',num2str((1:5)'), 'Scores',preds); title('Predicted Factor Scores for Promax Solution'); xlabel('Ability In Literature'); ylabel('Ability In Mathematics'); 

Esta gráfica muestra el ajuste del modelo en términos tanto de las variables originales (vectores) como de las puntuaciones previstas para cada observación (puntos). El ajuste sugiere que, mientras que algunos estudiantes lo hacen bien en un tema pero no en el otro (segundo y cuarto cuadrantes), la mayoría de los estudiantes lo hacen bien o mal en matemáticas y literatura (primer y tercer cuadrantes). Puede confirmarlo observando la matriz de correlación estimada de los dos factores.

inv(rotation'*rotation) 
 ans =      1.0000    0.6962     0.6962    1.0000  

Una comparación de análisis factorial y análisis de componentes principales

Hay una buena cantidad de superposición en la terminología y los objetivos entre el análisis de componentes principales (PCA) y el análisis factorial (FA). Gran parte de la literatura sobre los dos métodos no distingue entre ellos, y algunos algoritmos para ajustar el modelo FA implican PCA. Ambos son técnicas de reducción de dimensiones, en el sentido de que se pueden utilizar para reemplazar un gran conjunto de variables observadas con un conjunto más pequeño de nuevas variables. También a menudo dan resultados similares. Sin embargo, los dos métodos son diferentes en sus objetivos y en sus modelos subyacentes. En términos generales, debe usar PCA cuando simplemente necesita resumir o aproximar sus datos usando menos dimensiones (para visualizarlos, por ejemplo), y debe usar FA cuando necesite un modelo explicativo para las correlaciones entre sus datos.