1. importar los datos
library(readr)
library(dplyr)
ruta_archivo<-"C:/Users/74/Desktop/MONETARIA/DATA FRAME 1.2.csv"
datos<-read_csv(file = ruta_archivo)
datos
library(readr)
library(stargazer)
ejemplo_regresion <- read_csv("C:/Users/74/Desktop/MONETARIA/DATA FRAME 1.2.csv")
Parsed with column specification:
cols(
`A<d1>OS` = [32mcol_double()[39m,
Y = [32mcol_double()[39m,
X1 = [32mcol_double()[39m,
X2 = [32mcol_double()[39m,
X3 = [32mcol_double()[39m
)
modelo_lineal<-lm(Y~X1+X2+X3,data = datos)
stargazer(modelo_lineal,title = "modelo estimado",type = "text")
length of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changedlength of NULL cannot be changed
modelo estimado
===============================================
Dependent variable:
---------------------------
Y
-----------------------------------------------
X1 0.338***
(0.079)
X2 -0.004
(0.051)
X3 0.765*
(0.412)
Constant -2.857
(2.243)
-----------------------------------------------
Observations 59
R2 0.439
Adjusted R2 0.408
Residual Std. Error 9.114 (df = 55)
F Statistic 14.328*** (df = 3; 55)
===============================================
Note: *p<0.1; **p<0.05; ***p<0.01
plot(modelo_lineal$residuals,main = "Residuos",
ylab = "RESIDUOS",xlab = "CASOS")

print(modelo_lineal)
Call:
lm(formula = Y ~ X1 + X2 + X3, data = datos)
Coefficients:
(Intercept) X1 X2 X3
-2.856922 0.337985 -0.003854 0.764639
summary(modelo_lineal)
Call:
lm(formula = Y ~ X1 + X2 + X3, data = datos)
Residuals:
Min 1Q Median 3Q Max
-21.9637 -5.0566 -0.3311 3.9487 30.3667
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -2.856922 2.243179 -1.274 0.2082
X1 0.337985 0.079182 4.268 7.83e-05 ***
X2 -0.003854 0.051305 -0.075 0.9404
X3 0.764639 0.411844 1.857 0.0687 .
---
Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1
Residual standard error: 9.114 on 55 degrees of freedom
Multiple R-squared: 0.4387, Adjusted R-squared: 0.4081
F-statistic: 14.33 on 3 and 55 DF, p-value: 5.15e-07
confint(object = modelo_lineal,level = .95)
2.5 % 97.5 %
(Intercept) -7.35235303 1.63850998
X1 0.17930117 0.49666965
X2 -0.10667074 0.09896351
X3 -0.06071498 1.58999317
#Matriz de varianza covarianza de los parametros para el modelo
var_cov<-vcov(modelo_lineal)
print(var_cov)
(Intercept) X1 X2 X3
(Intercept) 5.03185278 -0.067016732 -0.0626546060 -0.5413268868
X1 -0.06701673 0.006269786 0.0022153009 -0.0093605793
X2 -0.06265461 0.002215301 0.0026321827 0.0009548028
X3 -0.54132689 -0.009360579 0.0009548028 0.1696155854
#Valores ajustados
plot(modelo_lineal$fitted.values,main = "Valores Ajustados", ylab = "Y",xlab = "casos")

#Ajuste de los residuos a la distribucion normal
library(fitdistrplus)
package <U+393C><U+3E31>fitdistrplus<U+393C><U+3E32> was built under R version 3.5.3Loading required package: MASS
package <U+393C><U+3E31>MASS<U+393C><U+3E32> was built under R version 3.5.3
Attaching package: <U+393C><U+3E31>MASS<U+393C><U+3E32>
The following object is masked from <U+393C><U+3E31>package:dplyr<U+393C><U+3E32>:
select
Loading required package: survival
Loading required package: npsurv
Loading required package: lsei
library(stargazer)
fit_normal<-fitdist(data = modelo_lineal$residuals,distr = "norm")
NaNs producedNaNs produced
plot(fit_normal)

#Prueba de Normalidad Jarque Bera
library(normtest)
jb.norm.test(modelo_lineal$residuals)
Jarque-Bera test for normality
data: modelo_lineal$residuals
JB = 8.1036, p-value = 0.025
#Prueba de Normalidad de Kolmogorov - Smirnov
library(nortest)
lillie.test(modelo_lineal$residuals)
Lilliefors (Kolmogorov-Smirnov) normality test
data: modelo_lineal$residuals
D = 0.09953, p-value = 0.155
# Prueba de Normalidad de Shapiro - Wilk
shapiro.test(modelo_lineal$residuals)
Shapiro-Wilk normality test
data: modelo_lineal$residuals
W = 0.97104, p-value = 0.1715
#el p-value>0.05 por lo tanto se acepta la hipoteis nula, lo que quiere decir que hay evidencia de que los errores se distribuyan de una manera normal.'
hist(modelo_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "Frecuencia")

#Calcular la matriz |X´X|
library(stargazer)
X_mat<-model.matrix(modelo_lineal)
stargazer(head(X_mat,n=6),type="text")
==================================
(Intercept) X1 X2 X3
----------------------------------
1 1 -10.197 10 5.124
2 1 12.721 9.090 4.919
3 1 4.091 0 2.106
4 1 14.814 0 7.407
5 1 2.350 0 3.275
6 1 20.682 0 -0.340
----------------------------------
XX_matrix<-t(X_mat)%*%X_mat
stargazer(XX_matrix,type = "text")
=========================================================
(Intercept) X1 X2 X3
---------------------------------------------------------
(Intercept) 59 706.222 729.070 223.168
X1 706.222 30,341.080 -10,171.020 3,985.591
X2 729.070 -10,171.020 56,947.370 1,444.944
X3 223.168 3,985.591 1,444.944 1,413.778
---------------------------------------------------------
#Indice de Condición
#Normalizacion |X´X|
library(stargazer)
options(scipen = 999)
Sn<-solve(diag(sqrt(diag(XX_matrix))))
stargazer(Sn,type = "text")
=======================
0.130 0 0 0
0 0.006 0 0
0 0 0.004 0
0 0 0 0.027
-----------------------
#|X´X| Normalizada
library(stargazer)
XX_norm<-(Sn%*%XX_matrix)%*%Sn
stargazer(XX_norm,type = "text",digits = 4)
=============================
1 0.5278 0.3977 0.7727
0.5278 1 -0.2447 0.6085
0.3977 -0.2447 1 0.1610
0.7727 0.6085 0.1610 1
-----------------------------
#Autovalores de |X´X| Normalizada:
library(stargazer)
#autovalores
lambdas<-eigen(XX_norm,symmetric = TRUE)
stargazer(lambdas$values,type = "text")
=======================
2.312 1.235 0.277 0.175
-----------------------
K<-sqrt(max(lambdas$values)/min(lambdas$values))
print(K)
[1] 3.632369
#Prueba de Farrar-Glaubar
#Calculo de |R|
library(stargazer)
Zn<-scale(X_mat[,-1])
stargazer(head(Zn,n=6),type = "text")
======================
X1 X2 X3
----------------------
1 -1.141 -0.082 0.428
2 0.039 -0.114 0.363
3 -0.406 -0.430 -0.535
4 0.146 -0.430 1.157
5 -0.495 -0.430 -0.162
6 0.448 -0.430 -1.315
----------------------
#Calcular la matriz R
library(stargazer)
n<-nrow(Zn)
R<-(t(Zn)%*%Zn)*(1/(n-1))
#También se puede calcular R a través de cor(X_mat[,-1])
stargazer(R,type = "text",digits = 4)
==========================
X1 X2 X3
--------------------------
X1 1 -0.5834 0.3722
X2 -0.5834 1 -0.2512
X3 0.3722 -0.2512 1
--------------------------
#Determinante de la matriz R
determinante_R<-det(R)
print(determinante_R)
[1] 0.5670862
#Aplicando la prueba de Farrer Glaubar (Bartlett)
#Estadistico X2FG
m<-ncol(X_mat[,-1])
n<-nrow(X_mat[,-1])
chi_FG<--(n-1-(2*m+5)/6)*log(determinante_R)
print(chi_FG)
[1] 31.8602
# Valor critico
gl<-m*(m-1)/2
VC<-qchisq(p = 0.95,df = gl)
print(VC)
[1] 7.814728
#VIFs para el modelo estimado:
library(car)
package <U+393C><U+3E31>car<U+393C><U+3E32> was built under R version 3.5.3Loading required package: carData
Attaching package: <U+393C><U+3E31>car<U+393C><U+3E32>
The following object is masked from <U+393C><U+3E31>package:dplyr<U+393C><U+3E32>:
recode
VIFs_car<-vif(modelo_lineal)
print(VIFs_car)
X1 X2 X3
1.652113 1.519093 1.163200
library(mctest)
mc.plot(x = X_mat[,-1],y = datos$Y,vif = 2,)

LS0tDQp0aXRsZTogIk1PREVMTyBQYXNzLVRocm91Z2giDQphdXRob3I6ICJERU5JUyBGTEFNRU5DTyINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6IA0KICAgIHRvYzogeWVzDQogIGh0bWxfZG9jdW1lbnQ6IA0KICAgIGRmX3ByaW50OiBrYWJsZQ0KICAgIHRvYzogeWVzDQotLS0NCg0KYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUpDQpgYGANCg0KDQojIDEuIGltcG9ydGFyIGxvcyBkYXRvcw0KYGBge3Isd2FybmluZz1GQUxTRSxtZXNzYWdlPUZBTFNFLGV2YWw9VFJVRSxlY2hvPVRSVUV9DQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShkcGx5cikNCnJ1dGFfYXJjaGl2bzwtIkM6L1VzZXJzLzc0L0Rlc2t0b3AvTU9ORVRBUklBL0RBVEEgRlJBTUUgMS4yLmNzdiINCmRhdG9zPC1yZWFkX2NzdihmaWxlID0gcnV0YV9hcmNoaXZvKQ0KZGF0b3MNCmBgYA0KDQpgYGB7cn0NCmxpYnJhcnkocmVhZHIpDQpsaWJyYXJ5KHN0YXJnYXplcikNCmVqZW1wbG9fcmVncmVzaW9uIDwtIHJlYWRfY3N2KCJDOi9Vc2Vycy83NC9EZXNrdG9wL01PTkVUQVJJQS9EQVRBIEZSQU1FIDEuMi5jc3YiKQ0KbW9kZWxvX2xpbmVhbDwtbG0oWX5YMStYMitYMyxkYXRhID0gZGF0b3MpDQpzdGFyZ2F6ZXIobW9kZWxvX2xpbmVhbCx0aXRsZSA9ICJtb2RlbG8gZXN0aW1hZG8iLHR5cGUgPSAidGV4dCIpDQpgYGANCg0KDQoNCg0KDQpgYGB7cix3YXJuaW5nPUZBTFNFLG1lc3NhZ2U9RkFMU0UsZXZhbD1UUlVFLGVjaG89VFJVRX0NCg0KcGxvdChtb2RlbG9fbGluZWFsJHJlc2lkdWFscyxtYWluID0gIlJlc2lkdW9zIiwNCiAgICAgeWxhYiA9ICJSRVNJRFVPUyIseGxhYiA9ICJDQVNPUyIpDQoNCmBgYA0KDQoNCmBgYHtyfQ0KcHJpbnQobW9kZWxvX2xpbmVhbCkNCmBgYA0KDQpgYGB7cn0NCnN1bW1hcnkobW9kZWxvX2xpbmVhbCkNCmBgYA0KDQpgYGB7cn0NCmNvbmZpbnQob2JqZWN0ID0gbW9kZWxvX2xpbmVhbCxsZXZlbCA9IC45NSkNCmBgYA0KDQpgYGB7cn0NCiNNYXRyaXogZGUgdmFyaWFuemEgY292YXJpYW56YSBkZSBsb3MgcGFyYW1ldHJvcyBwYXJhIGVsIG1vZGVsbyANCg0KdmFyX2NvdjwtdmNvdihtb2RlbG9fbGluZWFsKQ0KcHJpbnQodmFyX2NvdikNCg0KDQpgYGANCg0KYGBge3J9DQojVmFsb3JlcyBhanVzdGFkb3MgDQoNCnBsb3QobW9kZWxvX2xpbmVhbCRmaXR0ZWQudmFsdWVzLG1haW4gPSAiVmFsb3JlcyBBanVzdGFkb3MiLCB5bGFiID0gIlkiLHhsYWIgPSAiY2Fzb3MiKQ0KDQpgYGANCg0KDQpgYGB7cn0NCiNBanVzdGUgZGUgbG9zIHJlc2lkdW9zIGEgbGEgZGlzdHJpYnVjaW9uIG5vcm1hbA0KDQpsaWJyYXJ5KGZpdGRpc3RycGx1cykNCmxpYnJhcnkoc3RhcmdhemVyKQ0KZml0X25vcm1hbDwtZml0ZGlzdChkYXRhID0gbW9kZWxvX2xpbmVhbCRyZXNpZHVhbHMsZGlzdHIgPSAibm9ybSIpDQpwbG90KGZpdF9ub3JtYWwpDQpgYGANCg0KDQpgYGB7cn0NCiNQcnVlYmEgZGUgTm9ybWFsaWRhZCBKYXJxdWUgQmVyYQ0KDQpsaWJyYXJ5KG5vcm10ZXN0KSAgDQpqYi5ub3JtLnRlc3QobW9kZWxvX2xpbmVhbCRyZXNpZHVhbHMpDQoNCg0KYGBgDQoNCg0KYGBge3J9DQojUHJ1ZWJhIGRlIE5vcm1hbGlkYWQgZGUgS29sbW9nb3JvdiAtIFNtaXJub3YNCg0KbGlicmFyeShub3J0ZXN0KQ0KbGlsbGllLnRlc3QobW9kZWxvX2xpbmVhbCRyZXNpZHVhbHMpDQoNCg0KI2VsIHAtdmFsdWU+MC4wNSBwb3IgbG8gdGFudG8gc2UgYWNlcHRhIGxhIGhpcG90ZWlzIG51bGEsIGxvIHF1ZSBxdWllcmUgZGVjaXIgcXVlIGhheSBldmlkZW5jaWEgZGUgcXVlIGxvcyBlcnJvcmVzIHNlIGRpc3RyaWJ1eWFuIGRlIHVuYSBtYW5lcmEgbm9ybWFsLicgDQoNCmBgYA0KDQpgYGB7cn0NCiMgUHJ1ZWJhIGRlIE5vcm1hbGlkYWQgZGUgU2hhcGlybyAtIFdpbGsNCg0Kc2hhcGlyby50ZXN0KG1vZGVsb19saW5lYWwkcmVzaWR1YWxzKQ0KDQojZWwgcC12YWx1ZT4wLjA1IHBvciBsbyB0YW50byBzZSBhY2VwdGEgbGEgaGlwb3RlaXMgbnVsYSwgbG8gcXVlIHF1aWVyZSBkZWNpciBxdWUgaGF5IGV2aWRlbmNpYSBkZSBxdWUgbG9zIGVycm9yZXMgc2UgZGlzdHJpYnV5YW4gZGUgdW5hIG1hbmVyYSBub3JtYWwuJyANCg0KYGBgDQoNCg0KYGBge3J9DQpoaXN0KG1vZGVsb19saW5lYWwkcmVzaWR1YWxzLG1haW4gPSAiSGlzdG9ncmFtYSBkZSBsb3MgcmVzaWR1b3MiLHhsYWIgPSAiUmVzaWR1b3MiLHlsYWIgPSAiRnJlY3VlbmNpYSIpDQpgYGANCg0KDQpgYGB7cn0NCiNDYWxjdWxhciBsYSBtYXRyaXogfFi0WHwNCg0KDQpsaWJyYXJ5KHN0YXJnYXplcikNClhfbWF0PC1tb2RlbC5tYXRyaXgobW9kZWxvX2xpbmVhbCkNCnN0YXJnYXplcihoZWFkKFhfbWF0LG49NiksdHlwZT0idGV4dCIpDQoNCmBgYA0KDQpgYGB7cn0NClhYX21hdHJpeDwtdChYX21hdCklKiVYX21hdA0Kc3RhcmdhemVyKFhYX21hdHJpeCx0eXBlID0gInRleHQiKQ0KYGBgDQoNCmBgYHtyfQ0KI0luZGljZSBkZSBDb25kaWNp824NCg0KI05vcm1hbGl6YWNpb24gfFi0WHwNCg0KDQpsaWJyYXJ5KHN0YXJnYXplcikNCm9wdGlvbnMoc2NpcGVuID0gOTk5KQ0KU248LXNvbHZlKGRpYWcoc3FydChkaWFnKFhYX21hdHJpeCkpKSkNCnN0YXJnYXplcihTbix0eXBlID0gInRleHQiKQ0KDQoNCmBgYA0KDQoNCmBgYHtyfQ0KI3xYtFh8IE5vcm1hbGl6YWRhDQoNCmxpYnJhcnkoc3RhcmdhemVyKQ0KWFhfbm9ybTwtKFNuJSolWFhfbWF0cml4KSUqJVNuDQpzdGFyZ2F6ZXIoWFhfbm9ybSx0eXBlID0gInRleHQiLGRpZ2l0cyA9IDQpDQoNCg0KYGBgDQoNCmBgYHtyfQ0KDQojQXV0b3ZhbG9yZXMgZGUgfFi0WHwgTm9ybWFsaXphZGE6DQoNCmxpYnJhcnkoc3RhcmdhemVyKQ0KI2F1dG92YWxvcmVzDQpsYW1iZGFzPC1laWdlbihYWF9ub3JtLHN5bW1ldHJpYyA9IFRSVUUpDQpzdGFyZ2F6ZXIobGFtYmRhcyR2YWx1ZXMsdHlwZSA9ICJ0ZXh0IikNCg0KYGBgDQoNCmBgYHtyfQ0KSzwtc3FydChtYXgobGFtYmRhcyR2YWx1ZXMpL21pbihsYW1iZGFzJHZhbHVlcykpDQpwcmludChLKQ0KYGBgDQoNCmBgYHtyfQ0KI1BydWViYSBkZSBGYXJyYXItR2xhdWJhcg0KDQojQ2FsY3VsbyBkZSB8UnwNCg0KDQpsaWJyYXJ5KHN0YXJnYXplcikNClpuPC1zY2FsZShYX21hdFssLTFdKQ0Kc3RhcmdhemVyKGhlYWQoWm4sbj02KSx0eXBlID0gInRleHQiKQ0KDQpgYGANCg0KYGBge3J9DQoNCiNDYWxjdWxhciBsYSBtYXRyaXogUg0KDQpsaWJyYXJ5KHN0YXJnYXplcikNCm48LW5yb3coWm4pDQpSPC0odChabiklKiVabikqKDEvKG4tMSkpDQojVGFtYmnpbiBzZSBwdWVkZSBjYWxjdWxhciBSIGEgdHJhdulzIGRlIGNvcihYX21hdFssLTFdKQ0Kc3RhcmdhemVyKFIsdHlwZSA9ICJ0ZXh0IixkaWdpdHMgPSA0KQ0KDQoNCmBgYA0KDQpgYGB7cn0NCiNEZXRlcm1pbmFudGUgZGUgbGEgbWF0cml6IFINCg0KZGV0ZXJtaW5hbnRlX1I8LWRldChSKQ0KcHJpbnQoZGV0ZXJtaW5hbnRlX1IpDQpgYGANCg0KDQpgYGB7cn0NCiNBcGxpY2FuZG8gbGEgcHJ1ZWJhIGRlIEZhcnJlciBHbGF1YmFyIChCYXJ0bGV0dCkNCiNFc3RhZGlzdGljbyBYMkZHDQoNCg0KbTwtbmNvbChYX21hdFssLTFdKQ0KbjwtbnJvdyhYX21hdFssLTFdKQ0KY2hpX0ZHPC0tKG4tMS0oMiptKzUpLzYpKmxvZyhkZXRlcm1pbmFudGVfUikNCnByaW50KGNoaV9GRykNCg0KDQpgYGANCg0KDQpgYGB7cn0NCiMgVmFsb3IgY3JpdGljbyANCg0KZ2w8LW0qKG0tMSkvMg0KVkM8LXFjaGlzcShwID0gMC45NSxkZiA9IGdsKQ0KcHJpbnQoVkMpDQoNCmBgYA0KDQpgYGB7cn0NCiNWSUYncyBwYXJhIGVsIG1vZGVsbyBlc3RpbWFkbzoNCg0KbGlicmFyeShjYXIpDQpWSUZzX2NhcjwtdmlmKG1vZGVsb19saW5lYWwpDQpwcmludChWSUZzX2NhcikNCg0KYGBgDQoNCg0KYGBge3J9DQpsaWJyYXJ5KG1jdGVzdCkNCm1jLnBsb3QoeCA9IFhfbWF0WywtMV0seSA9IGRhdG9zJFksdmlmID0gMiwpDQpgYGANCg0K