Introducción
El Análisis Factorial es un método estadístico utilizado para descubrir patrones en los datos. A menudo se utiliza para identificar variables latentes que expliquen las correlaciones entre variables observadas. En este laboratorio, utilizaremos el conjunto de datos Iris para ilustrar cómo el Análisis Factorial se puede utilizar para revelar la estructura subyacente de los datos.
Consejos sobre la VM
Una vez finalizada la inicialización de la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.
A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.
Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.
Cargar el conjunto de datos Iris y graficar la covarianza de las características
Comenzaremos cargando el conjunto de datos Iris y graficando la covarianza de las características para ver cómo están correlacionadas.
import matplotlib.pyplot as plt
import numpy as np
from sklearn.decomposition import FactorAnalysis, PCA
from sklearn.preprocessing import StandardScaler
from sklearn.datasets import load_iris
## Cargar datos de Iris
data = load_iris()
X = StandardScaler().fit_transform(data["data"])
nombres_caracteristicas = data["feature_names"]
## Graficar la covarianza de las características de Iris
ax = plt.axes()
im = ax.imshow(np.corrcoef(X.T), cmap="RdBu_r", vmin=-1, vmax=1)
ax.set_xticks([0, 1, 2, 3])
ax.set_xticklabels(list(nombres_caracteristicas), rotation=90)
ax.set_yticks([0, 1, 2, 3])
ax.set_yticklabels(list(nombres_caracteristicas))
plt.colorbar(im).ax.set_ylabel("$r$", rotation=0)
ax.set_title("Matriz de correlación de las características de Iris")
plt.tight_layout()
Ejecutar Análisis Factorial con Rotación Varimax
Ahora ejecutaremos el Análisis Factorial en el conjunto de datos Iris con rotación Varimax para descubrir la estructura subyacente de los datos. Compararemos los resultados con el PCA y el Análisis Factorial no rotado.
## Ejecutar análisis factorial con rotación Varimax
n_comps = 2
métodos = [
("PCA", PCA()),
("Análisis Factorial no rotado", FactorAnalysis()),
("Análisis Factorial Varimax", FactorAnalysis(rotation="varimax")),
]
fig, axes = plt.subplots(ncols=len(métodos), figsize=(10, 8), sharey=True)
for ax, (método, fa) in zip(axes, métodos):
fa.set_params(n_components=n_comps)
fa.fit(X)
componentes = fa.components_.T
print("\n\n %s :\n" % método)
print(componentes)
vmax = np.abs(componentes).max()
ax.imshow(componentes, cmap="RdBu_r", vmax=vmax, vmin=-vmax)
ax.set_yticks(np.arange(len(nombres_caracteristicas)))
ax.set_yticklabels(nombres_caracteristicas)
ax.set_title(str(método))
ax.set_xticks([0, 1])
ax.set_xticklabels(["Comp. 1", "Comp. 2"])
fig.suptitle("Factores")
plt.tight_layout()
plt.show()
Analizar los resultados
Ahora analizaremos los resultados del Análisis Factorial para ver cómo se revela la estructura subyacente del conjunto de datos Iris.
Interpretar los resultados
Ahora interpretaremos los resultados del Análisis Factorial para obtener una comprensión más profunda de la estructura subyacente del conjunto de datos Iris.
Resumen
En este laboratorio, utilizamos Análisis Factorial con rotación Varimax para descubrir la estructura subyacente del conjunto de datos Iris. Comparamos los resultados con el PCA y el Análisis Factorial no rotado y analizamos los resultados para obtener una comprensión más profunda de la estructura subyacente de los datos.