exhibe las correlaciones muestrales entre cuatro variables que caracterizan el estado financiero de una empresa.
(a) Calcúlense los autovalores y autovectores de \(\mathbf{R}\).
(b) Plantéese el modelo factorial ortogonal con \(m\) factores para el vector X que generó estos datos.
(c) Mediante el método de la componente principal, en los modelos factoriales con \(m=2\) y \(m=3\) factores, calcúlense las matrices de cargas, las comunalidades \(y\) el porcentaje que supone la comunalidad respecto a la varianza de cada variable.
(d) Decídase razonadamente entre el modelo con dos o tres factores.
(e) Para el modelo seleccionado en el apartado (d), calcúlense las correlaciones entre \(Z_2\) (la variable \(X_2\) estandarizada) y todos los factores. Estímese la varianza específica para \(Z_2\).
a) Calcúlense los autovalores y autovectores de \(\mathbf{R}\).
c) Mediante el método de la componente principal, en los modelos factoriales con \(m=2\) y \(m=3\) factores, calcúlense las matrices de cargas, las comunalidades \(y\) el porcentaje que supone la comunalidad respecto a la varianza de cada variable.
# Extraer los dos primeros autovalores y autovectoreslambda_1 <- eigenvalues[1]lambda_2 <- eigenvalues[2]e1 <- eigenvectors[, 1]e2 <- eigenvectors[, 2]# Calcular la matriz de cargas LL <-cbind(sqrt(lambda_1) * e1, sqrt(lambda_2) * e2)# Calcular las comunalidadescommunalities <-rowSums(L^2)# Mostrar resultadoscat("Matriz de cargas (m = 2):\n")
# Extraer los tres primeros autovalores y autovectoreslambda_3 <- eigenvalues[3]e3 <- eigenvectors[, 3]# Actualizar la matriz de cargas LL <-cbind(L, sqrt(lambda_3) * e3)# Recalcular las comunalidadescommunalities <-rowSums(L^2)# Mostrar resultadoscat("Matriz de cargas (m = 3):\n")
# Calcular el porcentaje de varianza explicadatotal_variance <-sum(eigenvalues)explained_variance_m2 <-sum(eigenvalues[1:2]) / total_variance *100explained_variance_m3 <-sum(eigenvalues[1:3]) / total_variance *100# Mostrar resultadoscat("Porcentaje de varianza explicada (m = 2):", explained_variance_m2, "%\n")
Porcentaje de varianza explicada (m = 2): 82.68515 %
cat("Porcentaje de varianza explicada (m = 3):", explained_variance_m3, "%\n")
Porcentaje de varianza explicada (m = 3): 93.29849 %
# Calcular el porcentaje de varianza explicadatotal_variance = np.sum(eigenvalues)explained_variance_m2 = np.sum(eigenvalues[:2]) / total_variance *100explained_variance_m3 = np.sum(eigenvalues[:3]) / total_variance *100# Mostrar resultadosprint("Porcentaje de varianza explicada (m = 2):", explained_variance_m2, "%")
Porcentaje de varianza explicada (m = 2): 82.68514609447011 %
print("Porcentaje de varianza explicada (m = 3):", explained_variance_m3, "%")
Porcentaje de varianza explicada (m = 3): 89.38665787715759 %
e)
# Correlaciones entre Z2 y los factorescorrelations_Z2 <- L[2, ]# Varianza específica para Z2psi_2 <-1- communalities[2]# Mostrar resultadoscat("Correlaciones entre Z2 y los factores:\n")
Correlaciones entre Z2 y los factores:
print(correlations_Z2)
[1] -0.7313407 0.5695954 -0.2088748
cat("\nVarianza específica para Z2:", psi_2, "\n")
Varianza específica para Z2: 0.09707321
# Correlaciones entre Z2 y los factorescorrelations_Z2 = L[1, :]# Varianza específica para Z2psi_2 =1- communalities[1]# Mostrar resultadosprint("Correlaciones entre Z2 y los factores:")