Haciendo uso de sus conocimientos de econometría, y del software
estadístico R1, resuelva los siguientes ejercicios:
Ejercicio 1.
Para una empresa se ha estimado un modelo que relaciona las ventas
de 200 empresas, con su gasto en tv, radio, periodicos y la interacción
entre tv y periodicos. Dicho modelo se encuentra en
“modelo_ventas.RData.
Archivo con el que se trabajara.
options(scipen = 99999999)
load("C:/Users/50372/Desktop/Fatima U/Econometria/Guia de ejercicios MCO/modelo_ventas.RData")
1. Calcule las matrices A, P, M
# Construccion de Matrices
matriz_X<-model.matrix(modelo_ventas)
matriz_XX<-t(matriz_X)%*%matriz_X
# Calculo de Matriz A
matriz_A<-solve(matriz_XX)%*%t(matriz_X)
head(matriz_A[1:5, 1:5])
## 1 2 3 4
## (Intercept) -0.01128647020 0.014103779728 0.03506391877 0.00042833810
## tv -0.00006704103 0.000030949142 -0.00061201930 -0.00021206420
## periodico 0.00139818182 -0.001907246902 -0.00254688165 0.00022932432
## radio -0.00058002134 0.000648666541 -0.00010932839 -0.00018997103
## tv:radio 0.00001481990 0.000001945347 0.00003260788 0.00001485919
## 5
## (Intercept) -0.02802264005
## tv 0.00156830834
## periodico 0.00023142788
## radio 0.00061595623
## tv:radio -0.00003937064
# Calculo de Matriz P
matriz_P<-matriz_X%*%matriz_A
n<-nrow(matriz_X)
head(matriz_P[1:10, 1:10])
## 1 2 3 4 5 6
## 1 0.031814594 0.0037034602 0.01758786 0.022508722 0.0059178537 0.01974129
## 2 0.003703460 0.0246048049 0.03447285 0.012120221 -0.0004597074 0.04154714
## 3 0.017587861 0.0344728495 0.06766822 0.026410473 -0.0141470892 0.08506815
## 4 0.022508722 0.0121202208 0.02641047 0.020319815 -0.0016776287 0.03138114
## 5 0.005917854 -0.0004597074 -0.01414709 -0.001677629 0.0483724641 -0.02300480
## 6 0.019741287 0.0415471420 0.08506815 0.031381139 -0.0230047960 0.10805317
## 7 8 9 10
## 1 -0.003964913 -0.0016071128 -0.0058291615 0.001421804
## 2 0.015101307 0.0024432890 0.0063462287 -0.003663155
## 3 0.012176441 -0.0003834528 0.0220657545 -0.003394744
## 4 0.003373267 0.0006504267 0.0009492958 -0.001311471
## 5 0.001419930 -0.0036539819 -0.0241326482 0.007110009
## 6 0.013397526 -0.0005956252 0.0324090899 -0.003700809
# Calculo de Matriz M
matriz_M<-diag(n)-matriz_P
head(matriz_M[1:10,1:10])
## 1 2 3 4 5 6
## 1 0.968185406 -0.0037034602 -0.01758786 -0.022508722 -0.0059178537 -0.01974129
## 2 -0.003703460 0.9753951951 -0.03447285 -0.012120221 0.0004597074 -0.04154714
## 3 -0.017587861 -0.0344728495 0.93233178 -0.026410473 0.0141470892 -0.08506815
## 4 -0.022508722 -0.0121202208 -0.02641047 0.979680185 0.0016776287 -0.03138114
## 5 -0.005917854 0.0004597074 0.01414709 0.001677629 0.9516275359 0.02300480
## 6 -0.019741287 -0.0415471420 -0.08506815 -0.031381139 0.0230047960 0.89194683
## 7 8 9 10
## 1 0.003964913 0.0016071128 0.0058291615 -0.001421804
## 2 -0.015101307 -0.0024432890 -0.0063462287 0.003663155
## 3 -0.012176441 0.0003834528 -0.0220657545 0.003394744
## 4 -0.003373267 -0.0006504267 -0.0009492958 0.001311471
## 5 -0.001419930 0.0036539819 0.0241326482 -0.007110009
## 6 -0.013397526 0.0005956252 -0.0324090899 0.003700809
2. Compruebe que los residuos en el objeto “modelo_ventas” son
iguales al producto de M*y, donde “y” es la variable endogena en el
modelo (“ventas”)
library(magrittr)
residuos_modelo_ventas<-modelo_ventas$residuals
datos_modelo<-modelo_ventas$model
residuos_matrices<-matriz_M%*%datos_modelo$ventas
cbind(residuos_matrices,residuos_modelo_ventas, residuos_modelo_ventas-residuos_matrices) %>% round(digits = 2)%>% as.data.frame()->comparacion
names(comparacion)<-c("por_matrices","En_modelo","Diferencia")
head(comparacion)
## por_matrices En_modelo Diferencia
## 1 -15.93 -15.93 0
## 2 19.33 19.33 0
## 3 38.02 38.02 0
## 4 -15.43 -15.43 0
## 5 5.16 5.16 0
## 6 80.22 80.22 0
3. Muestre que los autovalores de x’x son positivos (use el comando
eigen)
eigen(x=matriz_XX, symmetric = TRUE)->descomposicion
auto_valores<-(descomposicion$values)
print(auto_valores)
## [1] 311421698.6388 70252.5341 40973.4590 3714.3627 12.7735
## [1] TRUE TRUE TRUE TRUE TRUE
Ejercicio 2.
Para una empresa se desea estimar un modelo que relaciona el tiempo
(en minutos) en acomodar cajas en una bodega, en funciOn de la distancia
(en metros) y del número de cajas nota: las cajas son todas iguales. Los
datos se encuentra en “datos_cajas.RData”.
Archivo con el que se trabajara.
options(scipen = 999999999)
load("C:/Users/50372/Desktop/Fatima U/Econometria/Guia de ejercicios MCO/datos_cajas.RData")
View(datos_cajas)
1. Estime el modelo propuesto, y colOquele el nombre de
“modelo_cajas”
modelos_cajas<-lm(formula= Tiempo~ Distancia+N_cajas,data = datos_cajas)
summary(modelos_cajas)
##
## Call:
## lm(formula = Tiempo ~ Distancia + N_cajas, data = datos_cajas)
##
## Residuals:
## Min 1Q Median 3Q Max
## -9.2716 -0.5405 0.5212 1.4051 2.9381
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.3112 5.8573 0.395 0.70007
## Distancia 0.4559 0.1468 3.107 0.00908 **
## N_cajas 0.8772 0.1530 5.732 0.0000943 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 3.141 on 12 degrees of freedom
## Multiple R-squared: 0.7368, Adjusted R-squared: 0.6929
## F-statistic: 16.8 on 2 and 12 DF, p-value: 0.0003325
2. Calcule las matrices A, P, M
# Construccion de matriz X
matrizz_X<-model.matrix(modelos_cajas)
matrizz_XX<-t(matrizz_X)%*%matrizz_X
# Matriz A
matrizz_A<-solve(matrizz_XX)%*%t(matrizz_X)
print(matrizz_A)
## 1 2 3 4 5
## (Intercept) 0.459747079 0.505626389 -0.317731768 0.707001469 0.053149816
## Distancia -0.003015297 -0.009318829 0.018819615 -0.019989342 -0.006641453
## N_cajas -0.017147338 -0.009890695 -0.007919488 -0.004479623 0.011082085
## 6 7 8 9 10
## (Intercept) -0.166576988 0.633594572 -0.125532551 0.1260628274 -0.90735239
## Distancia 0.006550474 -0.009903692 0.009409808 0.0003379213 0.02334256
## N_cajas 0.002768355 -0.016090251 -0.003959744 -0.0038254420 0.01780152
## 11 12 13 14 15
## (Intercept) 0.277217608 0.368482344 0.487274665 -0.3674581822 -0.73350489
## Distancia -0.011931220 -0.007473259 -0.006797416 0.0001559637 0.01645417
## N_cajas 0.006862401 -0.005142468 -0.012793352 0.0238754370 0.01885861
# Matriz P
matrizz_P<-matrizz_X%*%matrizz_A
n<-nrow(matrizz_X)
print(matrizz_P)
## 1 2 3 4 5 6
## 1 0.19781478 0.127154573 0.16766180 0.062524965 -0.03527291 0.057620774
## 2 0.12715457 0.124295239 0.03396629 0.140073563 0.05334477 0.038710181
## 3 0.16766180 0.033966286 0.35585795 -0.137368460 -0.10168744 0.123125512
## 4 0.06252497 0.140073563 -0.13736846 0.257600846 0.15524536 0.006698639
## 5 -0.03527291 0.053344771 -0.10168744 0.155245361 0.18408997 0.046742309
## 6 0.05762077 0.038710181 0.12312551 0.006698639 0.04674231 0.086318088
## 7 0.17558129 0.144648497 0.07654437 0.133523089 0.01345706 0.036955589
## 8 0.11716423 0.050316476 0.21126231 -0.035350897 -0.01751039 0.094896089
## 9 0.09794605 0.077129229 0.10132526 0.055636570 0.03786105 0.067680430
## 10 -0.02906036 -0.056765574 0.20436525 -0.131155907 0.05122193 0.136694350
## 11 -0.01209498 0.081873124 -0.13140718 0.199703669 0.18629079 0.030873007
## 12 0.09285990 0.104513848 0.01812731 0.131114317 0.07550894 0.044246890
## 13 0.15541865 0.125438973 0.08744449 0.109054124 0.01789770 0.046274418
## 14 -0.12402490 -0.005427535 -0.12246527 0.112857904 0.23285894 0.067134558
## 15 -0.05129385 -0.039271650 0.11324781 -0.060157783 0.09995191 0.116029165
## 7 8 9 10 11 12
## 1 0.17558129 0.11716423 0.09794605 -0.02906036 -0.01209498 0.092859897
## 2 0.14464850 0.05031648 0.07712923 -0.05676557 0.08187312 0.104513848
## 3 0.07654437 0.21126231 0.10132526 0.20436525 -0.13140718 0.018127310
## 4 0.13352309 -0.03535090 0.05563657 -0.13115591 0.19970367 0.131114317
## 5 0.01345706 -0.01751039 0.03786105 0.05122193 0.18629079 0.075508940
## 6 0.03695559 0.09489609 0.06768043 0.13669435 0.03087301 0.044246890
## 7 0.18301556 0.07160552 0.08894348 -0.08682757 0.04935470 0.112467995
## 8 0.07160552 0.13896449 0.08399596 0.13551596 -0.03237026 0.042396988
## 9 0.08894348 0.08399596 0.07465547 0.05440619 0.04101064 0.069478345
## 10 -0.08682757 0.13551596 0.05440619 0.34795579 -0.01326471 -0.021162536
## 11 0.04935470 -0.03237026 0.04101064 -0.01326471 0.20329083 0.095597926
## 12 0.11246799 0.04239699 0.06947834 -0.02116254 0.09559793 0.094228911
## 13 0.15702161 0.07705558 0.08545596 -0.04568349 0.04428588 0.099852268
## 14 -0.07689788 -0.02789930 0.01907176 0.16357209 0.20867158 0.042323339
## 15 -0.07939330 0.08995724 0.04540362 0.29018859 0.04818497 -0.001554438
## 13 14 15
## 1 0.15541865 -0.124024902 -0.051293849
## 2 0.12543897 -0.005427535 -0.039271650
## 3 0.08744449 -0.122465266 0.113247813
## 4 0.10905412 0.112857904 -0.060157783
## 5 0.01789770 0.232858944 0.099951911
## 6 0.04627442 0.067134558 0.116029165
## 7 0.15702161 -0.076897883 -0.079393301
## 8 0.07705558 -0.027899299 0.089957240
## 9 0.08545596 0.019071756 0.045403621
## 10 -0.04568349 0.163572088 0.290188586
## 11 0.04428588 0.208671580 0.048184973
## 12 0.09985227 0.042323339 -0.001554438
## 13 0.13743085 -0.052866482 -0.044080529
## 14 -0.05286648 0.352392093 0.210699107
## 15 -0.04408053 0.210699107 0.262089133
# Matriz M
matrizz_M<-diag(n)-matrizz_P
print(matrizz_M)
## 1 2 3 4 5 6
## 1 0.80218522 -0.127154573 -0.16766180 -0.062524965 0.03527291 -0.057620774
## 2 -0.12715457 0.875704761 -0.03396629 -0.140073563 -0.05334477 -0.038710181
## 3 -0.16766180 -0.033966286 0.64414205 0.137368460 0.10168744 -0.123125512
## 4 -0.06252497 -0.140073563 0.13736846 0.742399154 -0.15524536 -0.006698639
## 5 0.03527291 -0.053344771 0.10168744 -0.155245361 0.81591003 -0.046742309
## 6 -0.05762077 -0.038710181 -0.12312551 -0.006698639 -0.04674231 0.913681912
## 7 -0.17558129 -0.144648497 -0.07654437 -0.133523089 -0.01345706 -0.036955589
## 8 -0.11716423 -0.050316476 -0.21126231 0.035350897 0.01751039 -0.094896089
## 9 -0.09794605 -0.077129229 -0.10132526 -0.055636570 -0.03786105 -0.067680430
## 10 0.02906036 0.056765574 -0.20436525 0.131155907 -0.05122193 -0.136694350
## 11 0.01209498 -0.081873124 0.13140718 -0.199703669 -0.18629079 -0.030873007
## 12 -0.09285990 -0.104513848 -0.01812731 -0.131114317 -0.07550894 -0.044246890
## 13 -0.15541865 -0.125438973 -0.08744449 -0.109054124 -0.01789770 -0.046274418
## 14 0.12402490 0.005427535 0.12246527 -0.112857904 -0.23285894 -0.067134558
## 15 0.05129385 0.039271650 -0.11324781 0.060157783 -0.09995191 -0.116029165
## 7 8 9 10 11 12
## 1 -0.17558129 -0.11716423 -0.09794605 0.02906036 0.01209498 -0.092859897
## 2 -0.14464850 -0.05031648 -0.07712923 0.05676557 -0.08187312 -0.104513848
## 3 -0.07654437 -0.21126231 -0.10132526 -0.20436525 0.13140718 -0.018127310
## 4 -0.13352309 0.03535090 -0.05563657 0.13115591 -0.19970367 -0.131114317
## 5 -0.01345706 0.01751039 -0.03786105 -0.05122193 -0.18629079 -0.075508940
## 6 -0.03695559 -0.09489609 -0.06768043 -0.13669435 -0.03087301 -0.044246890
## 7 0.81698444 -0.07160552 -0.08894348 0.08682757 -0.04935470 -0.112467995
## 8 -0.07160552 0.86103551 -0.08399596 -0.13551596 0.03237026 -0.042396988
## 9 -0.08894348 -0.08399596 0.92534453 -0.05440619 -0.04101064 -0.069478345
## 10 0.08682757 -0.13551596 -0.05440619 0.65204421 0.01326471 0.021162536
## 11 -0.04935470 0.03237026 -0.04101064 0.01326471 0.79670917 -0.095597926
## 12 -0.11246799 -0.04239699 -0.06947834 0.02116254 -0.09559793 0.905771089
## 13 -0.15702161 -0.07705558 -0.08545596 0.04568349 -0.04428588 -0.099852268
## 14 0.07689788 0.02789930 -0.01907176 -0.16357209 -0.20867158 -0.042323339
## 15 0.07939330 -0.08995724 -0.04540362 -0.29018859 -0.04818497 0.001554438
## 13 14 15
## 1 -0.15541865 0.124024902 0.051293849
## 2 -0.12543897 0.005427535 0.039271650
## 3 -0.08744449 0.122465266 -0.113247813
## 4 -0.10905412 -0.112857904 0.060157783
## 5 -0.01789770 -0.232858944 -0.099951911
## 6 -0.04627442 -0.067134558 -0.116029165
## 7 -0.15702161 0.076897883 0.079393301
## 8 -0.07705558 0.027899299 -0.089957240
## 9 -0.08545596 -0.019071756 -0.045403621
## 10 0.04568349 -0.163572088 -0.290188586
## 11 -0.04428588 -0.208671580 -0.048184973
## 12 -0.09985227 -0.042323339 0.001554438
## 13 0.86256915 0.052866482 0.044080529
## 14 0.05286648 0.647607907 -0.210699107
## 15 0.04408053 -0.210699107 0.737910867
3. Compruebe que los residuos en el objeto “modelo_ventas” son
iguales al producto de M*y, donde “y” es la variable endógena en el
modelo (“Tiempo”)
library(magrittr)
residuos_modelos<-modelos_cajas$residuals
matriz_y<-datos_cajas$Tiempo
residuos_por_matrices<-matrizz_M%*%matriz_y
cbind(residuos_modelos,residuos_por_matrices,residuos_modelos-residuos_por_matrices) %>% as.data.frame() %>% round(digits = 2) -> comparativa
names(comparativa)<-c("residuos_modelo","residuos_matrices","diferencia")
head(comparativa)
## residuos_modelo residuos_matrices diferencia
## 1 -0.76 -0.76 0
## 2 0.13 0.13 0
## 3 -0.32 -0.32 0
## 4 2.94 2.94 0
## 5 -9.27 -9.27 0
## 6 0.77 0.77 0
4. Muestre que los autovalores de x’x son positivos (use el comando
eigen)
descomposicion<-eigen(matrizz_XX)
autovalores<-descomposicion$values
print(autovalores)
## [1] 16976.7781334 709.9345923 0.2872743
## [1] TRUE TRUE TRUE
Ejercicio 3.
Para los EEUU se ha estimado un modelo que relaciona el “número de
crímenes” en un estado con el “Nivel de pobreza” y la cantidad de
solteros en el mismo. Dicho modelo se encuentra en
“modelo_estimado.RData”
Archivo con el que se trabajara.
modelo_estimado<-load("C:/Users/50372/Desktop/Fatima U/Econometria/Guia de ejercicios MCO/modelo_estimado.RData")
View(modelo_estimado)
1. Calcule las matrices A, P, M
# Construccion de Matriz X
X <- model.matrix(modelo_estimado_1)
y <- modelo_estimado_1$model$crime
# Matriz A
A <- solve(t(X) %*% X) %*% t(X)
# Matriz P
P <- X %*% solve(t(X) %*% X) %*% t(X)
# Matriz M
n <- nrow(X)
M<-diag(n)-P
2. Compruebe que los residuos en el objeto “modelo_estimado” son
iguales al producto de M*y, donde “y” es la variable endógena en el
modelo (“crime”) 3. Muestre que los autovalores de x’x son positivos
(use el comando eigen)
residuos_modelo <- residuals(modelo_estimado_1)
residuos_M <- M%*%y
all.equal(as.vector(residuos_modelo), as.vector(residuos_M))
## [1] TRUE
Ejercicio 4.
Dentro del archivo “Investiment_Equation.xlsx” se encuentran datos
para estimar una función de inversión, para un país, y contiene las
siguientes variables.
Archivo con el que se trabajara.
library(readxl)
investment_equation <- read_excel("C:/Users/50372/Downloads/Investiment_Equation.xlsx")
View(investment_equation)
b) Calcule los residuos a traves de la matriz M
# Matriz M
model.matrix(ecuacion_inversion)->matrz_X
n<-nrow(matrz_X)
M<-diag(n)-matrz_X%*%solve(t(matrz_X)%*%matrz_X)%*%t(matrz_X)
Y<-investment_equation$InvReal
residuos<-M%*%Y
print(residuos)
## [,1]
## 1 -0.0100602233
## 2 -0.0009290882
## 3 0.0029656679
## 4 0.0078576839
## 5 0.0028109133
## 6 0.0006259732
## 7 0.0075909286
## 8 -0.0055352778
## 9 -0.0037254127
## 10 0.0006953129
## 11 0.0019904770
## 12 -0.0001288433
## 13 -0.0101976729
## 14 0.0068712384
## 15 -0.0008316770
c) Calcule un intervalo de confianza del 93% para el impacto del
PNBr en la Inversion, e interpretelo.
intervalo_confianza<-confint(object = ecuacion_inversion, parm = "PNBr", level = .93)
intervalo_confianza
## 3.5 % 96.5 %
## PNBr 0.554777 0.774317
Ejercicio 5.
Dentro del archivo “consumption_equation.RData” se encuentran
objetos relacionados a una función de consumo, que se construyó usando
las variables:
Archivo con el que se trabajara.
load("C:/Users/50372/Desktop/Fatima U/Econometria/Guia de ejercicios MCO/consumption_equation.RData")
a) Calcule los residuos del modelo.
consumo_estimado<-P%*%C
residuo_consumption<-C-consumo_estimado
head(residuo_consumption)
## [,1]
## 1 -5.859103
## 2 2.605057
## 3 45.765735
## 4 31.102448
## 5 -21.037889
## 6 7.008120
b) Calcule la varianza del error del modelo.
# Varianza del error.
numero_obsrv<-length(C)
numero_parametros<-ncol(XX)
varianza_error<-as.numeric(t(residuo_consumption)%*%residuo_consumption/(numero_obsrv-numero_parametros))
varianza_error
## [1] 1428.746
c) Obtenga la matriz de Var-Cov del modelo.
# Matriz Var-Cov del modelo
var_cov<-varianza_error*solve(XX)
var_cov
## (Intercept) Yd W I
## (Intercept) 164.522304918 -0.09333539523 0.009670913575 10.5186890800
## Yd -0.093335395 0.00018911268 -0.000032769561 -0.0072901023
## W 0.009670914 -0.00003276956 0.000006165749 0.0004193421
## I 10.518689080 -0.00729010228 0.000419342092 5.3203789879
d) Obtenga las estimaciones del Consumo, del modelo propuesto.
# Estimaciones del consumo
estimacion_consumo<-P%*%C
head(estimacion_consumo)
## [,1]
## 1 982.2591
## 2 995.4949
## 3 979.5343
## 4 1059.7976
## 5 1128.1379
## 6 1135.3919
Ejercicio 6.
Dentro del archivo “datos_ventas.RData” se encuentran los datos para
estimar una función de ventas, para una empresa, y contiene las
siguientes variables:
Archivo con el que se trabajara.
load("C:/Users/50372/Desktop/Fatima U/Econometria/Guia de ejercicios MCO/datos_ventas.RData")
View(datos_ventas)
b) Calcule los residuos a través de la matriz M
# Matriz M
matrizX <- model.matrix(ecuacion_ventas)
y <- datos_ventas$ventas
n <- nrow(matrizX)
I <- diag(n)
M<- I - matrizX %*% solve(t(matrizX) %*% matrizX) %*% t(matrizX)
residuos_M <- M %*% y
head(residuos_M)
## [,1]
## 1 -17.85246
## 2 19.08216
## 3 33.79319
## 4 -17.35090
## 5 10.25721
## 6 74.20385
c) Calcule un intervalo de confianza del 96.8% para el impacto del
gasto de publicidad en TV, en las ventas, e interprételo.
# Intervalo de Confianza de TV
intervalo_de_tv<-confint(object = ecuacion_ventas, parm = "tv", level = 0.968)
intervalo_de_tv
## 1.6 % 98.4 %
## tv -0.2097376 0.2998052
# Interpretacion: Con un nivel de confianza del 96.8%, se estima que el verdadero impacto del gasto en publicidad en televisión sobre las ventas se encuentra entre −0.2097.