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.

Analice los precios de las acciones utilizando análisis factorial

Este ejemplo muestra cómo analizar si las empresas dentro del mismo sector experimentan cambios similares de semana a semana en el precio de las acciones.

Factores de carga

Cargue los datos de ejemplo.

load stockreturns

Supongamos que en el transcurso de 100 semanas, se ha registrado el cambio porcentual en los precios de las acciones para diez empresas. De las diez empresas, las cuatro primeras pueden clasificarse como principalmente tecnología, las próximas tres como financieras y las tres últimas como Retail. Parece razonable que los precios de las acciones de las empresas que se encuentran en el mismo sector puedan variar conjuntamente a medida que cambien las condiciones económicas. El análisis factorial puede proporcionar evidencia cuantitativa.

En primer lugar, especifique un ajuste de modelo con tres factores comunes. De forma predeterminada, calcula las estimaciones rotadas de las cargas para intentar hacer más sencilla su interpretación.factoran Pero en este ejemplo, especifique una solución sin rotar.

[Loadings,specificVar,T,stats] = factoran(stocks,3,'rotate','none');

Los dos primeros argumentos de salida son las cargas estimadas y las desviaciones específicas estimadas.factoran Cada fila de la matriz de cargas representa uno de los diez stocks, y cada columna corresponde a un factor común. Con estimaciones sin rotar, la interpretación de los factores en este ajuste es difícil porque la mayoría de las existencias contienen coeficientes bastante grandes para dos o más factores.

Loadings
Loadings = 10×3

    0.8885    0.2367   -0.2354
    0.7126    0.3862    0.0034
    0.3351    0.2784   -0.0211
    0.3088    0.1113   -0.1905
    0.6277   -0.6643    0.1478
    0.4726   -0.6383    0.0133
    0.1133   -0.5416    0.0322
    0.6403    0.1669    0.4960
    0.2363    0.5293    0.5770
    0.1105    0.1680    0.5524

La rotación del factor ayuda a simplificar la estructura en la matriz, para facilitar la asignación de interpretaciones significativas a los factores.Loadings

De las desviaciones específicas estimadas, usted puede ver que el modelo indica que un precio de la acción determinado varía bastante mucho más allá de la variación debido a los factores comunes. Visualizar desviaciones específicas estimadas.

specificVar
specificVar = 10×1

    0.0991
    0.3431
    0.8097
    0.8559
    0.1429
    0.3691
    0.6928
    0.3162
    0.3311
    0.6544

Una varianza específica de 1 indicaría que no hay un componente de factor común en esa variable, mientras que una varianza específica de 0 indicaría que la variable está completamente determinada por factores comunes. Estos datos parecen caer en algún lugar en el medio.

Mostrar el valor-.p

stats.p
ans = 0.8144 

El-valor devuelto en la estructura no puede rechazar la hipótesis nula de tres factores comunes, lo que sugiere que este modelo proporciona una explicación satisfactoria de la covariación en estos datos.pstats

Ajuste un modelo con dos factores comunes para determinar si menos de tres factores pueden proporcionar un ajuste aceptable.

[Loadings2,specificVar2,T2,stats2] = factoran(stocks, 2,'rotate','none');

Mostrar el valor-.p

stats2.p
ans = 3.5610e-06 

El valor de este segundo ajuste es muy significativo y rechaza la hipótesis de dos factores, indicando que el modelo más simple no es suficiente para explicar el patrón en estos datos.p

Factor Rotation

Como ilustran los resultados, las cargas estimadas de un ajuste de análisis factorial sin rotar pueden tener una estructura complicada. El objetivo de la rotación de factores es encontrar una parametrización en la que cada variable tenga solo un pequeño número de cargas grandes. Es decir, cada variable se ve afectada por un pequeño número de factores, preferiblemente sólo uno. Esto a menudo puede facilitar la interpretación de lo que representan los factores.

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. Para este ejemplo, puede rotar las cargas estimadas utilizando el criterio PROMAX, un método oblicuo común.

[LoadingsPM,specVarPM] = factoran(stocks,3,'rotate','promax'); LoadingsPM
LoadingsPM = 10×3

    0.9452    0.1214   -0.0617
    0.7064   -0.0178    0.2058
    0.3885   -0.0994    0.0975
    0.4162   -0.0148   -0.1298
    0.1021    0.9019    0.0768
    0.0873    0.7709   -0.0821
   -0.1616    0.5320   -0.0888
    0.2169    0.2844    0.6635
    0.0016   -0.1881    0.7849
   -0.2289    0.0636    0.6475

La rotación PROMAX crea una estructura más simple en las cargas, una en la que la mayoría de las existencias tienen una carga grande en un solo factor. Para ver esta estructura con más claridad, puede utilizar la función biplot para trazar cada acción utilizando sus cargas de factor como coordenadas.

biplot(LoadingsPM,'varlabels',num2str((1:10)')); axis square view(155,27);

Esta gráfica muestra que PROMAX ha girado las cargas del factor a una estructura más simple. Cada acción depende principalmente de un solo factor, y es posible describir cada factor en términos de las existencias a las que afecta. Sobre la base de qué empresas están cerca de qué ejes, se podría concluir razonablemente que el primer eje factor representa el sector financiero, la segunda venta minorista, y la tercera tecnología. La conjetura original, que las existencias varían principalmente dentro del sector, es aparentemente apoyada por los datos.

Puntuaciones de factor

A veces, es útil poder clasificar una observación basada en sus puntuaciones de factores. Por ejemplo, si aceptó el modelo de tres factores y la interpretación de los elementos rotados, es posible que desee categorizar cada semana en términos de lo favorable que era para cada uno de los tres sectores bursátiles, en función de los datos de las 10 existencias observadas. Dado que los datos de este ejemplo son los cambios en el precio de las acciones sin procesar, y no solo su matriz de correlación, puede tener estimaciones de devolución de Factoran del valor de cada uno de los tres factores comunes rotados para cada semana. A continuación, puede trazar las puntuaciones estimadas para ver cómo se vieron afectados los diferentes sectores bursátiles durante cada semana.

[LoadingsPM,specVarPM,TPM,stats,F] = factoran(stocks, 3,'rotate','promax');  plot3(F(:,1),F(:,2),F(:,3),'b.') line([-4 4 NaN 0 0 NaN 0 0], [0 0 NaN -4 4 NaN 0 0],[0 0 NaN 0 0 NaN -4 4], 'Color','black') xlabel('Financial Sector') ylabel('Retail Sector') zlabel('Technology Sector') grid on axis square view(-22.5, 8)

La rotación oblicua a menudo crea factores que están correlacionados. Esta gráfica muestra alguna evidencia de correlación entre el primer y el tercer factor, y puede investigar más a fondo calculando la matriz de correlación de factores estimada.

inv(TPM'*TPM);

Visualice los resultados

Puede utilizar la función biplot para ayudar a visualizar tanto las cargas de factores para cada variable como las puntuaciones de los factores para cada observación en un único trazado. Por ejemplo, el siguiente comando traza los resultados del análisis de factores en los datos de stock y etiqueta cada uno de los 10 stocks.

biplot(LoadingsPM,'scores',F,'varlabels',num2str((1:10)')) xlabel('Financial Sector') ylabel('Retail Sector') zlabel('Technology Sector') axis square view(155,27)

En este caso, el análisis factorial incluye tres factores, por lo que el biplot es tridimensional. Cada uno de los 10 stocks se representa en esta gráfica por un vector, y la dirección y la longitud del vector indica cómo cada acción depende de los factores subyacentes. Por ejemplo, usted ha visto que después de la rotación PROMAX, las primeras cuatro acciones tienen cargas positivas en el primer factor, y cargas sin importancia en los otros dos factores. Este primer factor, interpretado como un efecto del sector financiero, está representado en esta biparcela como uno de los ejes horizontales. La dependencia de esos cuatro stocks en ese factor corresponde a los cuatro vectores dirigidos aproximadamente a lo largo de ese eje. Del mismo modo, la dependencia de las acciones 5, 6 y 7, principalmente en el segundo factor, interpretado como un efecto de sector minorista, está representada por vectores dirigidos aproximadamente a lo largo de ese eje.

Cada una de las 100 observaciones se representa en esta parcela por un punto, y sus ubicaciones indican la puntuación de cada observación para los tres factores. Por ejemplo, los puntos cercanos a la parte superior de esta gráfica tienen las puntuaciones más altas para el factor de sector tecnológico. Los puntos se escalan para ajustarse dentro del cuadrado de la unidad, por lo que solo se pueden determinar sus ubicaciones relativas a partir de la gráfica.

Puede utilizar la herramienta en el menú de la ventana de la figura para identificar los elementos de esta gráfica.Data CursorTools Al hacer clic en un stock (vector), puede leer las cargas de ese stock para cada factor. Al hacer clic en una observación (punto), puede leer las puntuaciones de esa observación para cada factor.