Componentes Principales

Reponderación de componentes: un ejemplo

Esta entrada es la continuación de La escala natural de la varianza. En ella vimos cómo los componentes de un PCA pueden tener un peso que pudiera no guardar relación con su importancia práctica.

Si uno quiere trabajar con las principales componentes de un PCA sobre unos datos, puede que la escala sea irrelevante (p.e., si quiere utilizar modelos lineales). Pero hay casos egregios en los que no sucede así.

La escala natural de la varianza

Supongo que lo que voy a contar hoy es conocido de muchos de mis lectores. Desafortunadamente, uno tropieza con más frecuencia de lo deseable con quienes no lo son. (Eso sí, uno de los mayores placeres de esta vida es coincidir con alguien que te reconoce y te dice: “¿tú tienes un blog que se llama datanalytics, ¿verdad?”; pero esa es otra historia).

Al grano.

Supongamos que tenemos un sistema con sensores que miden la temperatura (5) y la presión (2) en diversos puntos. Los dejamos recoger datos durante 100 periodos y obtenemos

Varimax: lo que se gana, lo que se pierde

Hoy hablaremos de exploratory factorial analysis y en particular aprovecharé para dejar constancia de que dejo resuelta una duda que siempre me ha dado pereza resolver: qué se pierde —lo que se gana ya nos lo han contado por doquier— al realizar una rotación varimax.

Comencemos. Primero, voy a realizar un análisis factorial (exploratorio) basándome en ?varimax:

fa <- factanal( ~., 2, data = swiss, rotation = "none")
fa

# Call:
#   factanal(x = ~., factors = 2, data = swiss, rotation = "none")
#
# Uniquenesses:
#   Fertility      Agriculture      Examination        Education         Catholic Infant.Mortality
# 0.420            0.492            0.270            0.005            0.061            0.960
#
# Loadings:
#   Factor1 Factor2
# Fertility        -0.674   0.356
# Agriculture      -0.648   0.297
# Examination       0.713  -0.471
# Education         0.997
# Catholic         -0.178   0.953
# Infant.Mortality -0.104   0.169
#
# Factor1 Factor2
# SS loadings      2.419   1.373
# Proportion Var   0.403   0.229
# Cumulative Var   0.403   0.632
#
# Test of the hypothesis that 2 factors are sufficient.
# The chi square statistic is 20.99 on 4 degrees of freedom.
# The p-value is 0.000318

Usando factanal he creado dos factores sobre el conjunto de datos swiss y he optado por no usar nigún tipo de rotación.

Componentes principales para quienes cursaron álgebra de primero con aprovechamiento

Quienes cursaron su álgebra de primero con aprovechamiento —los que no, pueden ponerse al día en 3:47 minutos— aprendieron que una matriz $latex X$ puede descomponerse de la forma

$$ \mathbf{X} = \mathbf{UDV}$$

donde $latex \mathbf{U}$ y $latex \mathbf{V}$ son matrices ortonormales y $latex \mathbf{D}$ es diagonal. Si los elementos de la diagonal de $latex \mathbf{D}$ son $latex d_1>d_2>\dots$ y los últimos son pequeños, entonces

$$ \mathbf{X} \approx \mathbf{UD_0V}$$

donde $latex \mathbf{D_0}$ es la matriz en la que se han sustituido los $latex d_i$ despreciables por ceros. Si $latex \mathbf{D_0}$ tiene m elementos diagonales no nulos, solo hay m columnas de $latex \mathbf{U}$ y m filas de $latex \mathbf{V}$ que juegan un papel efectivo en la proximación anterior. Por lo tanto se puede reescribir de la forma