0% encontró este documento útil (0 votos)
36 vistas4 páginas

Matrices

Este documento presenta ejercicios sobre operaciones con matrices en R. Se realizan sumas, multiplicaciones y transposiciones de matrices, así como cálculos de determinantes, inversas y eigenvalores. También se analizan datos nutricionales de McDonald's calculando estadísticos como medias, varianzas, covarianzas y correlaciones.

Cargado por

David Matamoros
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
36 vistas4 páginas

Matrices

Este documento presenta ejercicios sobre operaciones con matrices en R. Se realizan sumas, multiplicaciones y transposiciones de matrices, así como cálculos de determinantes, inversas y eigenvalores. También se analizan datos nutricionales de McDonald's calculando estadísticos como medias, varianzas, covarianzas y correlaciones.

Cargado por

David Matamoros
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Ejercicio 1 - Operaciones con matrices

David Matamoros

2023-08-07

Parte 1
A = matrix(c(2, 0, 9, 4, -2, 0, -3, 5, 6), nrow = 3, ncol = 3)
B = matrix(c(8, -7, -3, 6, 9, 5, -2, -5, 1), nrow = 3, ncol = 3)

a)
A + B

## [,1] [,2] [,3]


## [1,] 10 10 -5
## [2,] -7 7 0
## [3,] 6 5 7

b)
4*A + 3*B

## [,1] [,2] [,3]


## [1,] 32 34 -18
## [2,] -21 19 5
## [3,] 27 15 27

c)
Me encanta lo amable que es R para trabajar con matrices. Siempre que saco la transpuesta
de una matriz lo recuerdo, pues me parece chistoso que tenga que escribir una sola letra
para conseguirla.
t(A)

## [,1] [,2] [,3]


## [1,] 2 0 9
## [2,] 4 -2 0
## [3,] -3 5 6

d)
Se me hizo raro el nombre “solve” para conseguir la inversa de una matriz; aunque me hizo
sentido y me gustó porque será fácil de recordar.
solve(A)

## [,1] [,2] [,3]


## [1,] -0.1176471 -0.2352941 0.13725490
## [2,] 0.4411765 0.3823529 -0.09803922
## [3,] 0.1764706 0.3529412 -0.03921569

e)
Otra vez, se nota cómo R se creó para trabajar con este tipo de arreglos de datos.
det(A)

## [1] 102

det(solve(A))

## [1] 0.009803922

f)
det(B)

## [1] 420

det(solve(B))

## [1] 0.002380952

Parte 2
Aquí preferí crear las matrices de un modo distinto a como lo hice arriba para que haya
variedad en mmi código y me sirva para recordar formas de hacer cosas diferente.
A2 = rbind(c(2, 1, 3, -3), c(3, 0, -2, -1), c(4, 5, 0, -5))
B2 = rbind(c(4, 2), c(-3, 1), c(5, -2), c(8, 0))

a)
Otra vez, para multiplicar matrices es tan fácil como multiplicar un número.
A*B

## [,1] [,2] [,3]


## [1,] 16 24 6
## [2,] 0 -18 -25
## [3,] -27 0 6

Parte 3
Mc <- read.csv("Actividad 1-mc-donalds-menu.csv")
head(Mc)
summary(Mc)

vectores <- Mc[, c("Calories", "Sodium", "Sugars", "Protein")]


vectores
Vector de medias
# vector de unos

n <- nrow(vectores)
vectorUnos <- matrix(rep(1, n), ncol = 1)

# vector de medias (xprom) = (x'1n)/n


vectorMedia <- (t(vectores)%*%(vectorUnos))/n
vectorMedia

## [,1]
## Calories 368.26923
## Sodium 495.75000
## Sugars 29.42308
## Protein 13.33846

Matriz de varianzas
matrizVarianza <- var(vectores)*(n -1)/n
matrizVarianza

## Calories Sodium Sugars Protein


## Calories 57507.581 98376.106 1781.98225 2154.60503
## Sodium 98376.106 331678.764 -7031.58654 5712.70769
## Sugars 1781.982 -7031.587 819.36716 -58.73935
## Protein 2154.605 5712.708 -58.73935 130.05467

Matriz de covarianzas
matrizCovarianza <- cov(vectores)*(n -1)/n
matrizCovarianza

## Calories Sodium Sugars Protein


## Calories 57507.581 98376.106 1781.98225 2154.60503
## Sodium 98376.106 331678.764 -7031.58654 5712.70769
## Sugars 1781.982 -7031.587 819.36716 -58.73935
## Protein 2154.605 5712.708 -58.73935 130.05467

Matriz de correlación
cor(vectores)

## Calories Sodium Sugars Protein


## Calories 1.0000000 0.7123087 0.2595981 0.7878475
## Sodium 0.7123087 1.0000000 -0.4265355 0.8698016
## Sugars 0.2595981 -0.4265355 1.0000000 -0.1799396
## Protein 0.7878475 0.8698016 -0.1799396 1.0000000

eigenvalores y eigenvectores
eigen(matrizVarianza)

## eigen() decomposition
## $values
## [1] 363531.25311 26441.18646 139.15528 24.17277
##
## $vectors
## [,1] [,2] [,3] [,4]
## [1,] -0.30597175 0.94217521 0.135661467 -0.016826663
## [2,] -0.95174181 -0.30046538 -0.061324477 -0.012140735
## [3,] 0.01695010 0.14796011 -0.988839134 0.004203214
## [4,] -0.01677833 0.01158648 0.005695785 0.999775874

eigen(matrizCovarianza)

## eigen() decomposition
## $values
## [1] 363531.25311 26441.18646 139.15528 24.17277
##
## $vectors
## [,1] [,2] [,3] [,4]
## [1,] -0.30597175 0.94217521 0.135661467 -0.016826663
## [2,] -0.95174181 -0.30046538 -0.061324477 -0.012140735
## [3,] 0.01695010 0.14796011 -0.988839134 0.004203214
## [4,] -0.01677833 0.01158648 0.005695785 0.999775874

Parte 4
En comentarios adicionales a los escritos, quiero decir que la última parte del ejercicio 3
me pareció interesante. Al principio me había confundido con cómo hace R el cálculo de los
estadísticos pero, al preguntar en clase, y con orientación de esta página de internet, me di
cuenta que los resultados solo variaban por multiplicar (𝑛 − 1)/𝑛, ya que R siempre saca la
varianza muestral, y en análisis multivariado no buscamos eso. Además, proporciona otra
manera de encontrar la correlación, que me parece interesante, pues es la representación
de la fórmula que vimos en clase.
#Matriz de Correlación R=D^-1/2*S*D^-1/2
DN <- diag(c(1/sqrt(diag(matrizCovarianza))))

matrizCorr <- DN%*%matrizCovarianza%*%DN


matrizCorr

## [,1] [,2] [,3] [,4]


## [1,] 1.0000000 0.7123087 0.2595981 0.7878475
## [2,] 0.7123087 1.0000000 -0.4265355 0.8698016
## [3,] 0.2595981 -0.4265355 1.0000000 -0.1799396
## [4,] 0.7878475 0.8698016 -0.1799396 1.0000000

También podría gustarte