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` = col_double(),
  Y = col_double(),
  X1 = col_double(),
  X2 = col_double(),
  X3 = col_double()
)
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
#VIF’s 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