Guia practica 1

Mario Antonio Herrera Rivera. HR17038. GT:02

17 de marzo de 2019

Guia Practica 1

library(readr)
library(dplyr)
ruta_archivo<-"M:/Econometria/practica_1_ejercicio.csv"
datos<-read_csv(file = ruta_archivo)
datos %>% select("Y") %>% as.matrix()->mat_Y
datos %>% mutate(Cte=1) %>% select ("Cte","X1","X2") %>% as.matrix()->mat_X

Ejercicio 1

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

columna_1<-mat_X[,1] %>% as.matrix()
columna_2<-mat_X[,2] %>% as.matrix()
producto_escalar<- t(columna_1) %*% columna_2
print(producto_escalar)
##      [,1]
## [1,]   21

Ejercicio 2

Calcule X′X y X′Y

xTx<-t(mat_X) %*% mat_X
print(xTx)
##     Cte X1 X2
## Cte   6 21  3
## X1   21 91 15
## X2    3 15  3
xTy<-t(mat_X) %*% mat_Y
print(xTy)
##        Y
## Cte  745
## X1  2875
## X2   445

Ejercicio 3

Obtenga la inversa de X’X

xTx_inver<- solve(xTx)
print(xTx_inver)
##           Cte    X1        X2
## Cte  1.333333 -0.50  1.166667
## X1  -0.500000  0.25 -0.750000
## X2   1.166667 -0.75  2.916667

Ejercicio 4

Calcule el producto de \([X′X]^{−1}\) y X′Y.

Beta<-xTx_inver %*% xTy
print(Beta)
##            Y
## Cte 75.00000
## X1  12.50000
## X2  10.83333

Ejercicio 5

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

mat_P<-mat_X %*% xTx_inver
matrizP<- mat_P %*% t(mat_X)
print(matrizP)
##               [,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

Comprovar que matrizP es idempotente, es decir, que al multiplicarse por ella misma, da ella misma; es decir, P*P = P, y P-P = 0

ComprovarP1<- (matrizP %*% matrizP) 
print(ComprovarP1)
##               [,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
ComprovarP2<- ComprovarP1- matrizP
ComprovarP2 %>% round(digits= 3) %>% print(ComprovarP2)
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]    0    0    0    0    0    0
## [2,]    0    0    0    0    0    0
## [3,]    0    0    0    0    0    0
## [4,]    0    0    0    0    0    0
## [5,]    0    0    0    0    0    0
## [6,]    0    0    0    0    0    0

Ejercicio 6

Calcule la proyección de y sobre X, \(\hat{Y}\) = PY.

Ycos <- matrizP %*% mat_Y
print(Ycos)
##             Y
## [1,]  87.5000
## [2,] 100.0000
## [3,] 112.5000
## [4,] 135.8333
## [5,] 148.3333
## [6,] 160.8333

Ejercicio 7

Calcule la diferencia entre Y e \(\hat{Y}\).

difY <- mat_Y - Ycos
print(difY)
##                  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

Ejercicio 8

Obtenga los autovalores de la matriz X′X

autovalores <- eigen (xTx)
print(autovalores$values)
## [1] 98.356654  1.377669  0.265677

¿Son todos positivos? Si! ¿Porqué? Porque para toda matriz real y simétrica, los auto valores son positivos.

Ejercicio 9

Obtenga los autovalores de la matriz P.

autoVmatrizP <- eigen (matrizP)
print(autoVmatrizP$values)
## [1]  1.000000e+00  1.000000e+00  1.000000e+00  1.319950e-15  1.381689e-16
## [6] -2.553501e-15

Compruebe que la traza de P es igual a la suma de sus autovalores.

sumAutoValors<- sum(autoVmatrizP$values)
print(sumAutoValors)
## [1] 3
sumTraza<- sum(diag(matrizP))
print(sumTraza)
## [1] 3

Efectivamente traza de P es igual a la suma de sus autovalores.

Ejercicio 10

Obtenga los autovalores de la matriz I−P y I+P

identidad <- diag(6)
ImenosP <- identidad - matrizP
autoVImenosP<- eigen(ImenosP)
print(autoVImenosP$values)
## [1]  1.000000e+00  1.000000e+00  1.000000e+00  6.298480e-16  2.415019e-16
## [6] -8.479877e-16
ImasP<- identidad + matrizP
autoVImasP<- eigen (ImasP)
print(autoVImasP$values)
## [1] 2 2 2 1 1 1