Guía Práctica 1

Alisson Samaria Vaquerano Morales

VM17011 Econometría GT02

Primer Paso: cargar las librerias y de donde tomaremos los datos

library(readr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
options( sapen= 999 , digits = 3)
ruta <- "C:/Users/aliss/Documents/Ciclo 0519/Econometria/practica.csv"

datos <- read_csv(file= ruta)
## Parsed with column specification:
## cols(
##   Y = col_double(),
##   X1 = col_double(),
##   X2 = col_double()
## )

Ingreso de matrices

# Variable dependiente
datos %>% select("Y") %>% as.matrix() -> mat_y

print(mat_y)
##        Y
## [1,]  90
## [2,] 100
## [3,] 110
## [4,] 135
## [5,] 145
## [6,] 165
# Variables explicativas y la columna del término independiente
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

Ejercicio 1

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

#Columnas 1 y 2 de la matriz X
colum1 <- mat_x [,1] %>% as.matrix()
colum2 <- mat_x [,2] %>% as.matrix()

productoescalar <- t(colum1) %*% colum2
print(productoescalar)
##      [,1]
## [1,]   21

Ejercicio 2

Calcule X’X y X’Y.

# La siguiente operación obtiene la matriz X'X
sigma <- t(mat_x) %*% mat_x

print(sigma)
##     cte X1 X2
## cte   6 21  3
## X1   21 91 15
## X2    3 15  3
# La siguiente operación obtiene la matriz X'Y
mat_xy <- t(mat_x) %*% mat_y

print(mat_xy)
##        Y
## cte  745
## X1  2875
## X2   445

Ejercicio 3

Obtenga la inversa de X’X.

inversasigma <- solve(sigma)
print(inversasigma)
##       cte    X1    X2
## cte  1.33 -0.50  1.17
## X1  -0.50  0.25 -0.75
## X2   1.17 -0.75  2.92

Ejercicio 4

Calcule el producto de \([X'X]^{-1}\) y X’Y.

estimadormco <- inversasigma %*% mat_xy
print(estimadormco)
##        Y
## cte 75.0
## X1  12.5
## X2  10.8

Ejercicio 5

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

#Calculamos la matriz P
mat_p <- mat_x %*% inversasigma %*% t(mat_x)

print(mat_p)
##           [,1]     [,2]      [,3]      [,4]      [,5]      [,6]
## [1,]  5.83e-01 3.33e-01  8.33e-02  2.50e-01 -1.11e-16 -2.50e-01
## [2,]  3.33e-01 3.33e-01  3.33e-01 -1.11e-16 -1.67e-16 -2.22e-16
## [3,]  8.33e-02 3.33e-01  5.83e-01 -2.50e-01  0.00e+00  2.50e-01
## [4,]  2.50e-01 2.22e-16 -2.50e-01  5.83e-01  3.33e-01  8.33e-02
## [5,]  2.22e-16 2.22e-16  2.22e-16  3.33e-01  3.33e-01  3.33e-01
## [6,] -2.50e-01 2.22e-16  2.50e-01  8.33e-02  3.33e-01  5.83e-01
# Para comprobar que es una matriz idempotente multiplicamos la matriz P por ella misma y le restamos P

prueba <- (mat_p %*% mat_p) - mat_p
prueba %>% round(digits = 3) %*% print(prueba)
##           [,1]      [,2]      [,3]      [,4]      [,5]      [,6]
## [1,]  0.00e+00 -5.55e-17  0.00e+00 -2.22e-16 -2.22e-16 -1.11e-16
## [2,] -5.55e-17 -5.55e-17 -1.11e-16 -1.11e-16 -9.25e-17 -1.80e-16
## [3,]  2.78e-17 -1.11e-16 -2.22e-16  2.78e-17 -8.33e-17 -1.94e-16
## [4,]  1.11e-16  2.36e-16  3.61e-16  2.22e-16  3.33e-16  3.61e-16
## [5,]  1.80e-16  2.22e-16  2.50e-16  2.78e-16  3.33e-16  3.33e-16
## [6,]  2.78e-16  1.94e-16  1.67e-16  4.02e-16  3.33e-16  3.33e-16
##      [,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.

proyeccion_y <- mat_p %*% mat_y
print(proyeccion_y)
##          Y
## [1,]  87.5
## [2,] 100.0
## [3,] 112.5
## [4,] 135.8
## [5,] 148.3
## [6,] 160.8

Ejercicio 7

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

matriz_m <- mat_y - proyeccion_y
print(matriz_m)
##              Y
## [1,]  2.50e+00
## [2,]  1.14e-13
## [3,] -2.50e+00
## [4,] -8.33e-01
## [5,] -3.33e+00
## [6,]  4.17e+00

Ejercicio 8

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

autovalores <- eigen(sigma)
print(autovalores$values)
## [1] 98.357  1.378  0.266
# Sus autovalores son positivos porque es una matriz equivalente

Ejercicio 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
autovalores_p <- eigen(mat_p)
sumautovalores <- sum(autovalores_p$values)

print(sumautovalores)
## [1] 3
#Suma de la traza 
traza <- sum(diag(mat_p))

print(traza)
## [1] 3

Ejercico 10

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

# Matriz Identidad 
identidad <- diag(6)

matriz_ip <- identidad - mat_p

autovalores_matriz_ip <- eigen(matriz_ip)

# Autovalores de la matriz I - P
print(autovalores_matriz_ip$values)
## [1]  1.00e+00  1.00e+00  1.00e+00  6.30e-16  2.42e-16 -8.48e-16
matriz_ip2 <- identidad + mat_p

autovalores_matriz_ip2 <- eigen(matriz_ip2)

# Autovalores de la matriz I+P

print(autovalores_matriz_ip2$values)
## [1] 2 2 2 1 1 1