ejercicio 3.2 multivariante Pena

Author
Affiliation

Jaime

UES FMOCC

# 1. Definir la matriz de datos
X <- matrix(c(2, 3, -1,
              1, 5, -2,
              2, 2, 1,
              2, 3, 1), nrow=4, byrow=TRUE)

# 2. Calcular el vector de medias
vector_medias <- colMeans(X)

# 3. Calcular la matriz de varianzas y covarianzas
matriz_covarianza <- cov(X)

# 4. Calcular la varianza generalizada (determinante de la matriz de covarianza)
varianza_generalizada <- det(matriz_covarianza)

# 5. Calcular la matriz de correlación
matriz_correlacion <- cor(X)

# 6. Calcular los valores y vectores propios de la matriz de covarianza
valores_propios_cov <- eigen(matriz_covarianza)$values
vectores_propios_cov <- eigen(matriz_covarianza)$vectors
raiz_mayor_cov <- max(valores_propios_cov)
vector_caracteristico_mayor_cov <- vectores_propios_cov[, which.max(valores_propios_cov)]

# 7. Calcular los valores y vectores propios de la matriz de correlación
valores_propios_cor <- eigen(matriz_correlacion)$values
vectores_propios_cor <- eigen(matriz_correlacion)$vectors
raiz_mayor_cor <- max(valores_propios_cor)
vector_caracteristico_mayor_cor <- vectores_propios_cor[, which.max(valores_propios_cor)]

# 8. Mostrar los resultados
print("Vector de Medias:")
[1] "Vector de Medias:"
print(vector_medias)
[1]  1.75  3.25 -0.25
print("Matriz de Varianzas y Covarianzas:")
[1] "Matriz de Varianzas y Covarianzas:"
print(matriz_covarianza)
           [,1]       [,2]       [,3]
[1,]  0.2500000 -0.5833333  0.5833333
[2,] -0.5833333  1.5833333 -1.5833333
[3,]  0.5833333 -1.5833333  2.2500000
print("Varianza Generalizada:")
[1] "Varianza Generalizada:"
print(varianza_generalizada)
[1] 0.03703704
print("Matriz de Correlación:")
[1] "Matriz de Correlación:"
print(matriz_correlacion)
           [,1]       [,2]       [,3]
[1,]  1.0000000 -0.9271726  0.7777778
[2,] -0.9271726  1.0000000 -0.8388705
[3,]  0.7777778 -0.8388705  1.0000000
print("Valores Propios de la Matriz de Covarianza:")
[1] "Valores Propios de la Matriz de Covarianza:"
print(valores_propios_cov)
[1] 3.72838041 0.32432359 0.03062933
print("Vector Característico Mayor de Covarianza:")
[1] "Vector Característico Mayor de Covarianza:"
print(vector_caracteristico_mayor_cov)
[1]  0.2297201 -0.6176579  0.7521485
print("Valores Propios de la Matriz de Correlación:")
[1] "Valores Propios de la Matriz de Correlación:"
print(valores_propios_cor)
[1] 2.69737551 0.23778995 0.06483454
print("Vector Característico Mayor de Correlación:")
[1] "Vector Característico Mayor de Correlación:"
print(vector_caracteristico_mayor_cor)
[1]  0.5798939 -0.5929000  0.5587420
import pandas as pd
import numpy as np

# Cargar los datos en un DataFrame
data = pd.DataFrame({
    'x1': [2, 1, 2, 2],
    'x2': [3, 5, 2, 3],
    'x3': [-1, -2, 1, 1]
})

# 1. Vector de medias
mean_vector = data.mean()
print("Vector de medias:")
Vector de medias:
print(mean_vector)
x1    1.75
x2    3.25
x3   -0.25
dtype: float64
# 2. Matriz de varianzas y covarianzas
cov_matrix = data.cov()
print("\nMatriz de varianzas y covarianzas:")

Matriz de varianzas y covarianzas:
print(cov_matrix)
          x1        x2        x3
x1  0.250000 -0.583333  0.583333
x2 -0.583333  1.583333 -1.583333
x3  0.583333 -1.583333  2.250000
# 3. Varianza generalizada (determinante de la matriz de covarianzas)
generalized_variance = np.linalg.det(cov_matrix)
print("\nVarianza generalizada:")

Varianza generalizada:
print(generalized_variance)
0.037037037037037084
# 4. Matriz de correlaciones
corr_matrix = data.corr()
print("\nMatriz de correlaciones:")

Matriz de correlaciones:
print(corr_matrix)
          x1        x2        x3
x1  1.000000 -0.927173  0.777778
x2 -0.927173  1.000000 -0.838870
x3  0.777778 -0.838870  1.000000
# 5. Autovalores y autovectores
eigenvalues, eigenvectors = np.linalg.eig(cov_matrix)
print("\nAutovalores:")

Autovalores:
print(eigenvalues)
[3.72838041 0.03062933 0.32432359]
print("Autovectores:")
Autovectores:
print(eigenvectors)
[[ 0.22972006 -0.92989738 -0.28726218]
 [-0.61765788 -0.36739331  0.69535667]
 [ 0.75214855 -0.01769237  0.65875606]]
# Raíz y vector característico mayor
max_eigenvalue_idx = np.argmax(eigenvalues)
max_eigenvalue = eigenvalues[max_eigenvalue_idx]
max_eigenvector = eigenvectors[:, max_eigenvalue_idx]
print("\nRaíz característica mayor:")

Raíz característica mayor:
print(max_eigenvalue)
3.7283804118858836
print("Vector característico asociado:")
Vector característico asociado:
print(max_eigenvector)
[ 0.22972006 -0.61765788  0.75214855]
# Cargar los datos en un DataFrame
data <- data.frame(
  x1 = c(2, 1, 2, 2),
  x2 = c(3, 5, 2, 3),
  x3 = c(-1, -2, 1, 1)
)

# 1. Vector de medias
mean_vector <- colMeans(data)
print("Vector de medias:")
[1] "Vector de medias:"
print(mean_vector)
   x1    x2    x3 
 1.75  3.25 -0.25 
# 2. Matriz de varianzas y covarianzas
cov_matrix <- cov(data)
print("\nMatriz de varianzas y covarianzas:")
[1] "\nMatriz de varianzas y covarianzas:"
print(cov_matrix)
           x1         x2         x3
x1  0.2500000 -0.5833333  0.5833333
x2 -0.5833333  1.5833333 -1.5833333
x3  0.5833333 -1.5833333  2.2500000
# 3. Varianza generalizada (determinante de la matriz de covarianzas)
generalized_variance <- det(cov_matrix)
print("\nVarianza generalizada:")
[1] "\nVarianza generalizada:"
print(generalized_variance)
[1] 0.03703704
# 4. Matriz de correlaciones
corr_matrix <- cor(data)
print("\nMatriz de correlaciones:")
[1] "\nMatriz de correlaciones:"
print(corr_matrix)
           x1         x2         x3
x1  1.0000000 -0.9271726  0.7777778
x2 -0.9271726  1.0000000 -0.8388705
x3  0.7777778 -0.8388705  1.0000000
# 5. Autovalores y autovectores
eigen_decomposition <- eigen(cov_matrix)
print("\nAutovalores:")
[1] "\nAutovalores:"
print(eigen_decomposition$values)
[1] 3.72838041 0.32432359 0.03062933
print("Autovectores:")
[1] "Autovectores:"
print(eigen_decomposition$vectors)
           [,1]       [,2]       [,3]
[1,]  0.2297201 -0.2872622 0.92989738
[2,] -0.6176579  0.6953567 0.36739331
[3,]  0.7521485  0.6587561 0.01769237
# Raíz y vector característico mayor
max_eigenvalue <- max(eigen_decomposition$values)
max_eigenvector <- eigen_decomposition$vectors[, which.max(eigen_decomposition$values)]
print("\nRaíz característica mayor:")
[1] "\nRaíz característica mayor:"
print(max_eigenvalue)
[1] 3.72838
print("Vector característico asociado:")
[1] "Vector característico asociado:"
print(max_eigenvector)
[1]  0.2297201 -0.6176579  0.7521485