1.1 Corriendo base de datos

library(foreign)
datos_regresion <- read.dta("https://stats.idre.ucla.edu/stat/data/crime.dta")

1.2 Explicacion de parametros

crime: Crimens violentos por cada 100,000 habitantes

pctmetro: Porcentaje de poblacion que vive en areas metropolitanas

pctwhite: Porcentaje de poblacion blancas

pcths: Porcentaje de poblacion con unminomo de secundaria como educacion

poverty: Porcentaje de poblacion por debajo de la linea de probreza

single: Porcentaje de la poblacion que es padre soltero

2. Modelo estimado

library(stargazer)
modelo_estimado_1<-lm(crime~pctmetro+pctwhite+pcths+poverty+single,data=datos_regresion)
print(modelo_estimado_1)
## 
## Call:
## lm(formula = crime ~ pctmetro + pctwhite + pcths + poverty + 
##     single, data = datos_regresion)
## 
## Coefficients:
## (Intercept)     pctmetro     pctwhite        pcths      poverty  
##   -1796.322        7.609       -4.486        8.658       26.250  
##      single  
##     109.452
stargazer(modelo_estimado_1, title= "Modelo Estimado", type = "text", digits = 8)
## 
## Modelo Estimado
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                                crime           
## -----------------------------------------------
## pctmetro                   7.60873200***       
##                            (1.29511100)        
##                                                
## pctwhite                    -4.48645400        
##                            (2.77713400)        
##                                                
## pcths                       8.65751100         
##                            (7.82644400)        
##                                                
## poverty                    26.24974000**       
##                            (11.08248000)       
##                                                
## single                    109.45190000***      
##                            (20.35401000)       
##                                                
## Constant                 -1,796.32200000**     
##                           (668.61390000)       
##                                                
## -----------------------------------------------
## Observations                    51             
## R2                          0.84986150         
## Adjusted R2                 0.83317950         
## Residual Std. Error   180.16160000 (df = 45)   
## F Statistic         50.94466000*** (df = 5; 45)
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

3. Verificando supuesto de multicolinealidad

##Mediante VIF'S 
X<-datos_regresion[,-1]
X1<-X[,1]
X_math<-X[,-2]
library(mctest)
mc.plot(x = X_math[,-1],y = datos_regresion$crime,vif = 2,)

Indice de condición

library(mctest)
eigprop(x= X_math[,-1])
## 
## Call:
## eigprop(x = X_math[, -1])
## 
##   Eigenvalues      CI Intercept murder pctmetro pctwhite  pcths poverty
## 1      6.2770  1.0000    0.0000 0.0017   0.0017   0.0002 0.0000  0.0005
## 2      0.5680  3.3243    0.0001 0.1734   0.0004   0.0019 0.0001  0.0002
## 3      0.0980  8.0029    0.0000 0.0027   0.4510   0.0016 0.0000  0.0800
## 4      0.0418 12.2521    0.0007 0.1619   0.4048   0.0174 0.0061  0.2288
## 5      0.0105 24.4338    0.0011 0.5516   0.0300   0.4199 0.0026  0.0038
## 6      0.0039 40.1010    0.0734 0.0628   0.0281   0.5512 0.1009  0.0560
## 7      0.0008 88.1336    0.9246 0.0460   0.0841   0.0079 0.8902  0.6307
##   single
## 1 0.0002
## 2 0.0000
## 3 0.0003
## 4 0.0044
## 5 0.3458
## 6 0.6401
## 7 0.0092
## 
## ===============================
## Row 5==> murder, proportion 0.551596 >= 0.50 
## Row 6==> pctwhite, proportion 0.551185 >= 0.50 
## Row 7==> pcths, proportion 0.890159 >= 0.50 
## Row 7==> poverty, proportion 0.630717 >= 0.50 
## Row 6==> single, proportion 0.640096 >= 0.50

Prueba FG

library(psych)
FG_test<-cortest.bartlett(X_math[,-1])
print(FG_test)
## $chisq
## [1] 178.8333
## 
## $p.value
## [1] 4.085989e-30
## 
## $df
## [1] 15

4.Uso umbral de 3 para las VIF’S

X<-datos_regresion[,-1]
X1<-X[,1]
X_math<-X[,-2]
library(mctest)
mc.plot(x = X_math[,-1],y = datos_regresion$crime,vif = 3,)

-Se debe excluir poverty

5.“Fit” a los residuos del modelo final

library(fitdistrplus)
library(stargazer)
fit_normal<-fitdist(data = modelo_estimado_1$residuals,distr = "norm")
plot(fit_normal)

6.Pruebas de normalidad JB, KS y SW

##Mediante Jarque-Bera
library(normtest) 
jb.norm.test(modelo_estimado_1$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_estimado_1$residuals
## JB = 2.2973, p-value = 0.1855

-Un nivel de significancia del 5% , V.C. = 5.9915,JB=0.93032 La Hipótesis Nula no se rechaza -p-value>Nivel de signicancia, Entonces podemos decir que la prueba tiene una distribución normal, no hay evidencia de autocorrelacion de 1er orden

Kolmogorov - Smirnov

library(nortest)  
lillie.test(modelo_estimado_1$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_estimado_1$residuals
## D = 0.065404, p-value = 0.8468

-Con un nivel de significancia del 5% La Hipótesis Nula no se rechaza. -p-value>nivel de significancia, por lo que poder decir que la prueba tiene una distribución normal, no hay evidencia de autocorrelacion de 1er orden

Shapiro - Wilk

shapiro.test(modelo_estimado_1$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_estimado_1$residuals
## W = 0.98127, p-value = 0.594

-Un nivel de significancia del 5%, p-value>Nivel de significancia, La Hipótesis Nula no se rechaza. -La prueba tiene una distribución normal, no hay evidencia de autocorrelacion de 1er orden

7. Verificar si la matriz de covarianzas es escalar

## Prueba de White, Heterocedasticidad 
library(lmtest)
prueba_white<-bptest(modelo_estimado_1,~I(poverty^2)+I(single^2)+I(pctmetro^2)+I(pctwhite^2)+I(pcths^2)+(poverty*single*pctmetro*pctwhite*pcths),data = datos_regresion)
print(prueba_white)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_estimado_1
## BP = 47.234, df = 36, p-value = 0.09962

Como 0.09962>0.05 No se rechaza la Ho, por lo tanto hay evidencia de que la varianza de los residuos es homocedástica.

Autocorrelacion 1er orden, Prueba de Durbin – Watson

library(lmtest)
dwtest(modelo_estimado_1,alternative = "two.sided",iterations = 1000)
## 
##  Durbin-Watson test
## 
## data:  modelo_estimado_1
## DW = 1.7632, p-value = 0.3568
## alternative hypothesis: true autocorrelation is not 0

Se rechaza la presencia de autocorrelación (No se rechaza la H0), ya que el pvalue>0.05

Autocorrelacion 2do orden, prueba de Breusch-Godfrey

library(lmtest)
bgtest(modelo_estimado_1,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_estimado_1
## LM test = 2.8363, df = 2, p-value = 0.2422

Como pvalue>0.05 No se rechaza H0, por lo tanto puede concluirse que los residuos del modelo, no siguen autocorrelación de orden “2”

8.Correccion del modelo

library(lmtest)
library(sandwich)
#Sin corregir:

coeftest(modelo_estimado_1)
## 
## t test of coefficients:
## 
##               Estimate Std. Error t value  Pr(>|t|)    
## (Intercept) -1796.3220   668.6139 -2.6866   0.01008 *  
## pctmetro        7.6087     1.2951  5.8750 4.786e-07 ***
## pctwhite       -4.4865     2.7771 -1.6155   0.11319    
## pcths           8.6575     7.8264  1.1062   0.27452    
## poverty        26.2497    11.0825  2.3686   0.02221 *  
## single        109.4519    20.3540  5.3774 2.594e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Corregido:

estimacion_omega<-vcovHC(modelo_estimado_1,type = "HC1")
coeftest(modelo_estimado_1,vcov. = estimacion_omega)
## 
## t test of coefficients:
## 
##               Estimate Std. Error t value  Pr(>|t|)    
## (Intercept) -1796.3220   750.7679 -2.3926   0.02096 *  
## pctmetro        7.6087     1.6436  4.6294 3.124e-05 ***
## pctwhite       -4.4865     3.4340 -1.3065   0.19803    
## pcths           8.6575     8.0870  1.0705   0.29008    
## poverty        26.2497    11.4622  2.2901   0.02675 *  
## single        109.4519    24.4221  4.4817 5.051e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1