Keiry Margarita Umanzor Portillo
26 de abril de 2019
library(readr)
library(dplyr)
archivo<-"C:/Users/Keiry/Downloads/practica_1_ejercicio.csv"
datos<-read_csv(archivo)
datos %>% mutate(Cte=1) %>% select("Cte", "X1", "X2") %>% as.matrix() -> mat_X
print(mat_X) ## Cte X1 X2
## [1,] 1 1 0
## [2,] 1 2 0
## [3,] 1 3 0
## [4,] 1 4 1
## [5,] 1 5 1
## [6,] 1 6 1
datos %>% select("Y") %>% as.matrix() -> mat_y
print(mat_y) ## Y
## [1,] 90
## [2,] 100
## [3,] 110
## [4,] 135
## [5,] 145
## [6,] 165
Separacion de colunmas de Matriz X
Para Columna 1
columna_1<- as.matrix(mat_X[,1])
print(columna_1)## [,1]
## [1,] 1
## [2,] 1
## [3,] 1
## [4,] 1
## [5,] 1
## [6,] 1
Para Columna 2
columna_2<- as.matrix(mat_X[,2])
print(columna_2)## [,1]
## [1,] 1
## [2,] 2
## [3,] 3
## [4,] 4
## [5,] 5
## [6,] 6
Producto Escalar
producto_escalar=t(columna_1)%*%columna_2
print(producto_escalar)## [,1]
## [1,] 21
Matriz X’X
XX<-t(mat_X)%*%mat_X
print(XX)## Cte X1 X2
## Cte 6 21 3
## X1 21 91 15
## X2 3 15 3
Matriz X’Y
XY<-t(mat_X)%*%mat_y
print(XY)## Y
## Cte 745
## X1 2875
## X2 445
XX_inv= solve(XX)
print(XX_inv)## Cte X1 X2
## Cte 1.333333 -0.50 1.166667
## X1 -0.500000 0.25 -0.750000
## X2 1.166667 -0.75 2.916667
Beta= XX_inv%*%XY
print(Beta)## Y
## Cte 75.00000
## X1 12.50000
## X2 10.83333
mat_P=mat_X%*%XX_inv%*%t(mat_X)
print(mat_P)## [,1] [,2] [,3] [,4] [,5]
## [1,] 5.833333e-01 3.333333e-01 8.333333e-02 2.500000e-01 -1.110223e-16
## [2,] 3.333333e-01 3.333333e-01 3.333333e-01 -1.110223e-16 -1.665335e-16
## [3,] 8.333333e-02 3.333333e-01 5.833333e-01 -2.500000e-01 0.000000e+00
## [4,] 2.500000e-01 2.220446e-16 -2.500000e-01 5.833333e-01 3.333333e-01
## [5,] 2.220446e-16 2.220446e-16 2.220446e-16 3.333333e-01 3.333333e-01
## [6,] -2.500000e-01 2.220446e-16 2.500000e-01 8.333333e-02 3.333333e-01
## [,6]
## [1,] -2.500000e-01
## [2,] -2.220446e-16
## [3,] 2.500000e-01
## [4,] 8.333333e-02
## [5,] 3.333333e-01
## [6,] 5.833333e-01
Comprobacion que P es una matriz idempotente
idem=mat_P%*%mat_P
print(idem)## [,1] [,2] [,3] [,4] [,5]
## [1,] 5.833333e-01 3.333333e-01 8.333333e-02 2.500000e-01 -3.330669e-16
## [2,] 3.333333e-01 3.333333e-01 3.333333e-01 -2.220446e-16 -2.590520e-16
## [3,] 8.333333e-02 3.333333e-01 5.833333e-01 -2.500000e-01 -8.326673e-17
## [4,] 2.500000e-01 4.579670e-16 -2.500000e-01 5.833333e-01 3.333333e-01
## [5,] 4.024558e-16 4.440892e-16 4.718448e-16 3.333333e-01 3.333333e-01
## [6,] -2.500000e-01 4.163336e-16 2.500000e-01 8.333333e-02 3.333333e-01
## [,6]
## [1,] -2.500000e-01
## [2,] -4.024558e-16
## [3,] 2.500000e-01
## [4,] 8.333333e-02
## [5,] 3.333333e-01
## [6,] 5.833333e-01
Y=mat_P%*%mat_y
print(Y)## Y
## [1,] 87.5000
## [2,] 100.0000
## [3,] 112.5000
## [4,] 135.8333
## [5,] 148.3333
## [6,] 160.8333
error=mat_y-Y
print(error)## Y
## [1,] 2.500000e+00
## [2,] 1.136868e-13
## [3,] -2.500000e+00
## [4,] -8.333333e-01
## [5,] -3.333333e+00
## [6,] 4.166667e+00
autoval_XX=eigen(XX)
print(autoval_XX)## eigen() decomposition
## $values
## [1] 98.356654 1.377669 0.265677
##
## $vectors
## [,1] [,2] [,3]
## [1,] -0.2238107 0.8591615 0.4601633
## [2,] -0.9616881 -0.1179798 -0.2474608
## [3,] -0.1583188 -0.4979179 0.8526505
Si, los autovalores son positivos, ya que la teoria dice que es un minimo cuadrado
Autovalores de la matriz P
autoval_P=eigen(mat_P)
print(autoval_P)## eigen() decomposition
## $values
## [1] 1.000000e+00 1.000000e+00 1.000000e+00 1.319950e-15 1.381689e-16
## [6] -2.553501e-15
##
## $vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.17027481 0.55319973 -0.49830702 -0.01465309 0.64533088
## [2,] 0.11959527 0.05982443 -0.56165055 0.50484213 -0.50503474
## [3,] 0.06891573 -0.43355086 -0.62499408 -0.49018903 -0.14029614
## [4,] 0.61246753 0.42129574 0.17529049 0.01769475 -0.38703946
## [5,] 0.56178799 -0.07207956 0.11194696 -0.51092544 -0.01154811
## [6,] 0.51110845 -0.56545485 0.04860342 0.49323069 0.39858757
## [,6]
## [1,] 5.384555e-05
## [2,] -3.959053e-01
## [3,] 3.958514e-01
## [4,] 5.162887e-01
## [5,] -6.367798e-01
## [6,] 1.204911e-01
Traza de P
traza=sum(diag(mat_P))
print(traza)## [1] 3
Comprobacion de que la taza de P es igual a la suma de sus autovalores
suma_autoval_P=sum(autoval_P$values)
print(suma_autoval_P)## [1] 3
Matriz identidad
identidad=diag(1,nrow = 6)
print(identidad)## [,1] [,2] [,3] [,4] [,5] [,6]
## [1,] 1 0 0 0 0 0
## [2,] 0 1 0 0 0 0
## [3,] 0 0 1 0 0 0
## [4,] 0 0 0 1 0 0
## [5,] 0 0 0 0 1 0
## [6,] 0 0 0 0 0 1
Matriz “M” (I-P)
mat_M=identidad-mat_P
print(mat_M)## [,1] [,2] [,3] [,4] [,5]
## [1,] 4.166667e-01 -3.333333e-01 -8.333333e-02 -2.500000e-01 1.110223e-16
## [2,] -3.333333e-01 6.666667e-01 -3.333333e-01 1.110223e-16 1.665335e-16
## [3,] -8.333333e-02 -3.333333e-01 4.166667e-01 2.500000e-01 0.000000e+00
## [4,] -2.500000e-01 -2.220446e-16 2.500000e-01 4.166667e-01 -3.333333e-01
## [5,] -2.220446e-16 -2.220446e-16 -2.220446e-16 -3.333333e-01 6.666667e-01
## [6,] 2.500000e-01 -2.220446e-16 -2.500000e-01 -8.333333e-02 -3.333333e-01
## [,6]
## [1,] 2.500000e-01
## [2,] 2.220446e-16
## [3,] -2.500000e-01
## [4,] -8.333333e-02
## [5,] -3.333333e-01
## [6,] 4.166667e-01
Cálculo de autovalores de Matriz “M”
autoval_M=eigen(mat_M)
print(autoval_M)## eigen() decomposition
## $values
## [1] 1.000000e+00 1.000000e+00 1.000000e+00 6.298480e-16 2.415019e-16
## [6] -8.479877e-16
##
## $vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] 0.011460289 0.48745947 -0.422987696 -0.08688822 0.6790624
## [2,] 0.004197312 0.02426751 0.816125074 -0.39233960 0.2839582
## [3,] -0.015657601 -0.51172699 -0.393137379 -0.69779098 -0.1111460
## [4,] 0.394533813 -0.51072167 0.013157252 0.53997696 0.1840166
## [5,] -0.816185516 0.02225688 0.003535813 0.23452558 -0.2110876
## [6,] 0.421651703 0.48846479 -0.016693065 -0.07092580 -0.6061918
## [,6]
## [1,] 0.3386119
## [2,] 0.3142781
## [3,] 0.2899442
## [4,] 0.5078347
## [5,] 0.4835009
## [6,] 0.4591670
Autovalor de Matriz “M”
autoval_M$values## [1] 1.000000e+00 1.000000e+00 1.000000e+00 6.298480e-16 2.415019e-16
## [6] -8.479877e-16
Matriz “I+P”
mat_IP=identidad+mat_P
print(mat_IP)## [,1] [,2] [,3] [,4] [,5]
## [1,] 1.583333e+00 3.333333e-01 8.333333e-02 2.500000e-01 -1.110223e-16
## [2,] 3.333333e-01 1.333333e+00 3.333333e-01 -1.110223e-16 -1.665335e-16
## [3,] 8.333333e-02 3.333333e-01 1.583333e+00 -2.500000e-01 0.000000e+00
## [4,] 2.500000e-01 2.220446e-16 -2.500000e-01 1.583333e+00 3.333333e-01
## [5,] 2.220446e-16 2.220446e-16 2.220446e-16 3.333333e-01 1.333333e+00
## [6,] -2.500000e-01 2.220446e-16 2.500000e-01 8.333333e-02 3.333333e-01
## [,6]
## [1,] -2.500000e-01
## [2,] -2.220446e-16
## [3,] 2.500000e-01
## [4,] 8.333333e-02
## [5,] 3.333333e-01
## [6,] 1.583333e+00
Cálculo de autovalores de Matriz “I+P”
autoval_IP=eigen(mat_IP)
print(autoval_IP)## eigen() decomposition
## $values
## [1] 2 2 2 1 1 1
##
## $vectors
## [,1] [,2] [,3] [,4] [,5]
## [1,] -0.1138717 0.3811271 0.65200363 -0.078635361 0.640687425
## [2,] -0.1845675 -0.1004822 0.53774668 -0.564835333 -0.589599590
## [3,] -0.2552633 -0.5820914 0.42348974 0.643470694 -0.051087835
## [4,] -0.4702333 0.5998184 -0.04931457 0.360195210 -0.344932322
## [5,] -0.5409291 0.1182091 -0.16357151 0.001715635 -0.001910616
## [6,] -0.6116249 -0.3634001 -0.27782846 -0.361910845 0.346842938
## [,6]
## [1,] -0.0016644573
## [2,] 0.0001928336
## [3,] 0.0014716238
## [4,] 0.4098143121
## [5,] -0.8164925430
## [6,] 0.4066782310
Autovalor de Matriz “I+P”
autoval_IP$values## [1] 2 2 2 1 1 1