Ingreso de matrices

En primer lugar las matrices pueden generarse a través de manipulaciones de dataframes, o introduccirse directamente de la siguiente manera:

# los siguientes datos, se han obtenido de la tabla 4.1 del libro de Maddalla, Introducción a la Econometría:
# Variable dependiente
Y<-matrix(data = c(30,20,36,24,40),
         nrow = 5,
          ncol = 1,byrow = TRUE)
colnames(Y) <-c("Y")
print(Y)
##       Y
## [1,] 30
## [2,] 20
## [3,] 36
## [4,] 24
## [5,] 40
#Variables Explicativas y la columna del término independiente
X<-cbind(rep(x = 1,5),
          matrix(data = c(4,10,3,8,6,11,4,9, 8,12),
                nrow = 5,
                ncol = 2,
                byrow = TRUE))
colnames(X)<-c("Cte","X1","X2")
print(X)
##      Cte X1 X2
## [1,]   1  4 10
## [2,]   1  3  8
## [3,]   1  6 11
## [4,]   1  4  9
## [5,]   1  8 12

Importando los datos de un archivo csv (separado por comas)

library(dplyr)
library(readr)
practica_1_1_ <- read_csv("C:/Users/manue/Desktop/Econometria/Datos/practica_1 (1).csv")
Y_<-practica_1_1_ %>% select("Y") %>% as.matrix()
X_<-practica_1_1_ %>%  mutate(Cte=1) %>% select("Cte","X1","X2") %>% as.matrix()
print(Y_)
##       Y
## [1,] 30
## [2,] 20
## [3,] 36
## [4,] 24
## [5,] 40
print(X_)
##      Cte X1 X2
## [1,]   1  4 10
## [2,]   1  3  8
## [3,]   1  6 11
## [4,]   1  4  9
## [5,]   1  8 12

Calculando el producto de matrices

Para multiplicar matrices se usará el comando %*%, para transponer se usará el comando t()

#Se usarán las matrices X & Y creadas previamente
#la siguiente operación obtiene la matriz X'X
XX<-t(X)%*%X
print(XX)
##     Cte  X1  X2
## Cte   5  25  50
## X1   25 141 262
## X2   50 262 510
XY<-t(X)%*%Y %>% as.matrix()
print(XY)
##        Y
## Cte  150
## X1   812
## X2  1552

Calculando la inversa de matrices

En el caso de la obtención de inversas, se utilizará el comando solve()

XX_inv<-solve(XX)
print(XX_inv)
##        Cte     X1    X2
## Cte 40.825  4.375 -6.25
## X1   4.375  0.625 -0.75
## X2  -6.250 -0.750  1.00

Obtención del Estimador MCO β:

Puede obtenerse a través del producto de la inversa de X’X, con la matriz X’Y:

Beta<-XX_inv%*%XY
colnames(Beta)<-c("parámetros")
print(Beta)
##     parámetros
## Cte     -23.75
## X1       -0.25
## X2        5.50

También puede obtenerse a través de la solución de las ecuaciones normales, usando el comando solve

Beta_<-solve(XX,XY)
colnames(Beta_)<-c("parámetros")
print(Beta_)
##     parámetros
## Cte     -23.75
## X1       -0.25
## X2        5.50

obtención de autovalores y autovectores

autovalores<-eigen(XX)
#Muestra los autovalores y los autovectores
print(autovalores)
## eigen() decomposition
## $values
## [1] 650.78185037   5.19448432   0.02366531
## 
## $vectors
##             [,1]       [,2]       [,3]
## [1,] -0.08623239  0.1629390  0.9828606
## [2,] -0.45874789 -0.8822205  0.1060061
## [3,] -0.88437229  0.4417441 -0.1508239
#Muestra sólo los autovalores
print(autovalores$values)
## [1] 650.78185037   5.19448432   0.02366531