En esta Practica se abordan algunas operaciones basicas en R, que serviran en los analisis econometricos que se realizaran a lo largo de este curso.
En un primer momento se realizaran la introduccion de matrices, que estas se pueden introducir de dos formas, por medio de la manipulacion de dataframes o de una forma directa.
#Las siguientes entradas son extraidas del libro de Econometria de Gujarati, tercera edicion, capitulo 6, pag 175
#INCREMENTO ANUAL DE LAS TASAS SALARIALES Y EN LA TASA DE DESEMPLEO, REINO UNIDO, 1950-1966
# VARIABLE DEPENDIENTE
tasas_salariales<-matrix(c(1.8,8.5,8.4,4.5,4.3,6.9,8,5,3.6,2.6,2.6,4.2,3.6,3.7,4.8,4.3,4.6),17,1)
tasas_salariales
[,1]
[1,] 1.8
[2,] 8.5
[3,] 8.4
[4,] 4.5
[5,] 4.3
[6,] 6.9
[7,] 8.0
[8,] 5.0
[9,] 3.6
[10,] 2.6
[11,] 2.6
[12,] 4.2
[13,] 3.6
[14,] 3.7
[15,] 4.8
[16,] 4.3
[17,] 4.6
#Otra forma de ingresar la matriz de tasas salariales
tasas_salariales_2<-matrix(c(1.8,8.5,8.4,4.5,4.3,6.9,8,5,3.6,2.6,2.6,4.2,3.6,3.7,4.8,4.3,4.6 ),nrow =17, ncol =1)
colnames(tasas_salariales_2) <-c("Incrmento tasas salariales")
tasas_salariales_2
Incrmento tasas salariales
[1,] 1.8
[2,] 8.5
[3,] 8.4
[4,] 4.5
[5,] 4.3
[6,] 6.9
[7,] 8.0
[8,] 5.0
[9,] 3.6
[10,] 2.6
[11,] 2.6
[12,] 4.2
[13,] 3.6
[14,] 3.7
[15,] 4.8
[16,] 4.3
[17,] 4.6
#INCREMENTO ANUAL DE LAS TASAS SALARIALES Y EN LA TASA DE DESEMPLEO, REINO UNIDO, 1950-1966
#Variable Explicativa y la columna del término independiente
a<-cbind(rep(x = 1,17))
b<-matrix(c(1.4,1.1,1.5,1.5,1.2,1.0,1.1,1.3,1.8,1.9,1.5,1.4,1.8,2.1,1.5,1.3,1.4),nrow = 17, ncol = 1)
desempleo<-matrix(c(a,b),nrow = 17, ncol = 2)
colnames(desempleo)<-c("Cte","X1")
desempleo
Cte X1
[1,] 1 1.4
[2,] 1 1.1
[3,] 1 1.5
[4,] 1 1.5
[5,] 1 1.2
[6,] 1 1.0
[7,] 1 1.1
[8,] 1 1.3
[9,] 1 1.8
[10,] 1 1.9
[11,] 1 1.5
[12,] 1 1.4
[13,] 1 1.8
[14,] 1 2.1
[15,] 1 1.5
[16,] 1 1.3
[17,] 1 1.4
library(readr)
library(dplyr)
# la ruta cambiará en su maquina
archivo<-"C:/Users/74/Desktop/practica R/practica_1.csv"
datos<-read_csv(file = archivo)
Y_<-datos %>% select("Y") %>% as.matrix()
temp<-
X_<-datos %>% mutate(Cte=1) %>% select("Cte","X1","X2") %>% as.matrix()
print(X_)
Cte X1 X2
[1,] 1 4 10
[2,] 1 2 5
[3,] 1 6 11
[4,] 1 4 6
[5,] 1 8 12
print(Y_)
Y
[1,] 30
[2,] 20
[3,] 36
[4,] 24
[5,] 40
Para multiplicar matrices se usa el comando %*%, y para trasponer matrices se usa t()
#La matrix X´X, sigma matriz
sigma_matriz<-t(X_)%*%X_
print(sigma_matriz)
Cte X1 X2
Cte 5 24 44
X1 24 136 236
X2 44 236 426
#La matrix X´Y, matriz cruzada
mat_cruzada<-t(X_)%*%Y_
print(mat_cruzada)
Y
Cte 150
X1 792
X2 1420
En el caso de la obtención de inversas, se utilizará el comando solve()
XX_inver<-solve(XX_)
print(XX_inver)
Cte X1 X2
Cte 2.3333333 0.1666667 -0.3333333
X1 0.1666667 0.2020833 -0.1291667
X2 -0.3333333 -0.1291667 0.1083333
Para la matriz diagonal de cualquier orden utilizaremos el comando diag()
diagonal<-diag(5)
diagonal
[,1] [,2] [,3] [,4] [,5]
[1,] 1 0 0 0 0
[2,] 0 1 0 0 0
[3,] 0 0 1 0 0
[4,] 0 0 0 1 0
[5,] 0 0 0 0 1
diagonal_2<-diag(3)
diagonal_2
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
R<- matrix(c(5,7,6,20,18,25,16,12,8,7,9,5,17,21,13),nrow = 3, ncol = 5, byrow = TRUE,
dimnames = list(c("Rustico", "Moderno", "Colonial"), c("Acero", "Madera", "Vidrio", "Pintura", "M.obra")))
R
Acero Madera Vidrio Pintura M.obra
Rustico 5 7 6 20 18
Moderno 25 16 12 8 7
Colonial 9 5 17 21 13
La regla de Kramer es un teorema del álgebra lineal que da la solución de un sistema lineal de ecuaciones en términos de determinantes. Recibe este nombre en honor a Gabriel Cramer (1704-1752), quien publicó la regla en su Introduction à l’analyse des lignes courbes algébriques de 1750, aunque Colin Maclaurin también publicó el método en su Treatise of Geometry de 1748 (y probablemente sabía del método desde 1729).
#Nota:esta es una matriz de 3x3
#2x+y-z=15
#5x-y+5z=16
#x+4y+z=20
mat_sistema<-matrix(c(2,5,1,1,-1,4,-1,5,1),nrow =3 ,ncol =3 )
mat_x<-matrix(c(15,16,20,1,-1,4,-1,5,1),nrow = 3, ncol = 3)
mat_y<-matrix(c(2,5,1,15,16,20,-1,5,1), nrow = 3, ncol = 3)
mat_z<-matrix(c(2,5,1,1,-1,4,15,16,20),nrow = 3,ncol = 3)
det_sistema<-det(mat_sistema)
det_x<-det(mat_x)
det_y<-det(mat_y)
det_z<-det(mat_z)
valor_x<-det_x/det_sistema
valor_x
[1] 5
valor_y<-det_y/det_sistema
valor_y
[1] 4
valor_z<-det_z/det_sistema
valor_z
[1] -1
En estadística, los mínimos cuadrados ordinarios (MCO) o mínimos cuadrados lineales es el nombre de un método para encontrar los parámetros poblacionales en un modelo de regresión lineal. Este método minimiza la suma de las distancias verticales entre las respuestas observadas en la muestra y las respuestas del modelo.
El calculo de estas matricialmente se hara mediante las operaciones: (INVERSA DE LA SIGMA MATRIZ * MATRIZ CRUZADA)
inver_sigma<-solve(sigma_matriz)
estimadores<-(inver_sigma%*%mat_cruzada)
colnames(estimadores)<-c("parametros")
estimadores
parametros
Cte 8.666667
X1 1.633333
X2 1.533333
otra forma de obtener es usando mediante la solución de las ecuaciones normales, usando el comando solve
Beta<-solve(a = sigma_matriz,b = mat_cruzada )
colnames(Beta)<-c("parámetros")
Beta
parámetros
Cte 8.666667
X1 1.633333
X2 1.533333
Los autovalores se definen como las raices “\(\lambda\)”, de la siguiente ecuación polinómica: \(|C-\lambda*I| =0\) , donde \(C\) es una matriz cuadrada!!
Se usará el comando eigen()
autovalor_autovector<-eigen(sigma_matriz)
#muestra los valores y vectores propios
autovalor_autovector
eigen() decomposition
$values
[1] 562.4909617 4.0919529 0.4170855
$vectors
[,1] [,2] [,3]
[1,] -0.08953653 0.1446454 0.98542423
[2,] -0.48607751 -0.8699151 0.08352496
[3,] -0.86931690 0.4715140 -0.14819805