Guia Practica I

Keiry Margarita Umanzor Portillo

26 de abril de 2019

IMPORTAR BASE DE DATOS

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

1. Calcule el producto escalar de la primera y segunda columnas de X.

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

2. Calcule X’X y X’Y.

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

3. Obtenga la inversa de X’X.

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

4. Calcule el producto de [X’X]-1 y X’Y.

Beta= XX_inv%*%XY
print(Beta)
##            Y
## Cte 75.00000
## X1  12.50000
## X2  10.83333

5. Calcule la matriz de proyeccción P compruebe que P es una matriz idempotente.

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

6. Calcule la proyección de y sobre X, Y^ = PY.

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

7. Calcule la diferencia entre Y e Y^.

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

8. Obtenga los autovalores de la matriz X’X ¿Son todos positivos? ¿Porqué?

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

9. Obtenga los autovalores de la matriz P. Compruebe que la traza de P es igual a la suma de sus autovalores.

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

10. Obtenga los autovalores de la matriz I???P y I+P

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