lEYENDO LOS DATOS

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

Cada parametro significa:

Realizando estimación del modelo

library(stargazer)
modelo_estimado<-lm(crime~pctmetro+pctwhite+pcths+poverty+single,data=datos_regresion)
stargazer(modelo_estimado,  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

Verificar supuesto de multicolinealidad, a traves de VIF, indice de condicion y FG

Prueba de VIF

library(mctest)
#A traves de car
X<- datos_regresion[,-1]
X1<- X[,-1]
X_math<- X1[,-2]
#A traves de mctest
library(mctest)
mc.plot(x=X_math[,-1], y= datos_regresion$crime, vif = 2) #en Y seleccionamos la variable dependiente.

Si VIF>2 presenta colinealidad Si VIF>5 son altamente colineales En este caso todos los que son mayores a 2 presentan colinealidad y mayores a 5 colinealidad severa

Prueba de FG

# colocamos la matriz x dentro y ya.
library(psych)
FG_test<-cortest.bartlett(X_math[,-1])
print(FG_test)
## $chisq
## [1] 104.7377
## 
## $p.value
## [1] 6.114823e-18
## 
## $df
## [1] 10

3.3 Calculamos Valor critico

m<-ncol(X_math[,-1])
n_2<-nrow(X_math[,-1])
gl<-m*(m-1)/2
VC<-qchisq(p = 0.95,df = gl)
print(VC)
## [1] 18.30704

La condicion es la siguiente:

  • Si X > VC

Se rechaza la Ho

  • En este caso X es mayor, por lo que hay evidencia de colinealidad en los regresores

Indice de condicion

eigprop(x=X_math[,-1])
## 
## Call:
## eigprop(x = X_math[, -1])
## 
##   Eigenvalues      CI Intercept pctmetro pctwhite  pcths poverty single
## 1      5.7820  1.0000    0.0000   0.0021   0.0003 0.0001  0.0006 0.0003
## 2      0.1044  7.4426    0.0001   0.1578   0.0061 0.0008  0.1393 0.0049
## 3      0.0868  8.1617    0.0006   0.4701   0.0403 0.0014  0.0046 0.0038
## 4      0.0219 16.2524    0.0003   0.2775   0.0816 0.0056  0.1684 0.2806
## 5      0.0041 37.5563    0.0823   0.0255   0.8712 0.0934  0.0665 0.6241
## 6      0.0008 82.7494    0.9167   0.0669   0.0005 0.8987  0.6206 0.0862
## 
## ===============================
## Row 5==> pctwhite, proportion 0.871175 >= 0.50 
## Row 6==> pcths, proportion 0.898729 >= 0.50 
## Row 6==> poverty, proportion 0.620577 >= 0.50 
## Row 5==> single, proportion 0.624139 >= 0.50

Prueba VIF con umbral de 3

mc.plot(x=X_math[,-1], y= datos_regresion$crime, vif = 3) #en Y seleccionamos la variable dependiente.

En caso de que el umbral de las VIF = 3 deben excluirse la variable poverty porque presenta colinealidad.

Pruebas de normalidad

Fit de normalidad

modelo_estimado2<-lm(crime~pctmetro+pctwhite+pcths+single,data=datos_regresion)
library(fitdistrplus)
library(stargazer)
fit_normal<-fitdist(data = modelo_estimado2$residuals,distr = "norm")
plot(fit_normal)

Prueba de Jarque Bera

library(normtest)
jb.norm.test(modelo_estimado2$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_estimado2$residuals
## JB = 2.4363, p-value = 0.158
  • En caso de la prueba de Jarque-Bera la condicion de no rechazar de la Ho se puede evaluar por medio del p-value en la cual no se rechasa si p > \(\alpha\) y cuando el estadístico JB<V.C. JB(2.4363) < V.C(5.9915) p (0.153) > \(\alpha\)(0.05)

  • NO SE RECHAZA LA HIPOTESIS NULA POR LO QUE HAY EVIDENCIA QUE LOS RESIDUOS SIGUEN UNA DISTRIBUCION NORMAL

Kolmogorov Smirnov

library(nortest)
lillie.test(modelo_estimado2$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_estimado2$residuals
## D = 0.084074, p-value = 0.4912
  • En caso de la prueba de Kolmogorov-Smirnov para un nivel de significancia del 5% y una muesta n=51 el V.C. = 0.26404 la condicion de no rechazar de la \(H_o\) es que el estadistico D < V.C., ademas tambien se puede evaluar por medio del p-value en la cual la condicion de no rechazo es p-value > \(\alpha\)

D (0.084074) < V.C.(0.1904381) p-value (0.4912) > \(\alpha\)(0.05)

  • NO SE RECHAZA LA HIPOTESIS NULA POR LO QUE HAY EVIDENCIA QUE LOS RESIDUOS SIGUEN UNA DISTRIBUCION NORMAL

Shapiro Wilk

shapiro.test(modelo_estimado2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_estimado2$residuals
## W = 0.97686, p-value = 0.4153

En caso de la prueba de Shapiro-Wilk para un nivel de significanciadel 5% el V.C. = 1.644854 la condicion de no rechazar de la \(H_o\) es que el estadistico SW < V.C., ademas tambien se puede evaluar por medio del p-value en la cual la condicion de no rechazo es p-value > \(\alpha\)

SW (0.97686) < V.C.(1.644854) p-value (0.4153) > \(\alpha\)(0.05)

  • NO SE RECHAZA LA HIPOTESIS NULA POR LO QUE HAY EVIDENCIA QUE LOS RESIDUOS SIGUEN UNA DISTRIBUCION NORMAL

Verificar si matriz de Cov es escalar

Pruebas de heterocedasticidad y autocorrelacion

Prueba de Breusch Pagan (White)

library(lmtest)
prueba_white<-bptest(modelo_estimado2,~I(pctmetro^2)+I(single^2)+I(pctwhite^2)+I(pcths^2)+pctwhite*pctmetro*pcths*single,data = datos_regresion)
print(prueba_white)
## 
##  studentized Breusch-Pagan test
## 
## data:  modelo_estimado2
## BP = 32.434, df = 19, p-value = 0.02791

En este el p-value es menor que \(\alpha\) Por lo que es posible rechazar la Ho, Hay evidencia de que existe homocedasticidad

Prueba de Breusch Godfrey

# Verificando autocorrelacion de 1er Orden
bgtest(modelo_estimado2,order = 1)
## 
##  Breusch-Godfrey test for serial correlation of order up to 1
## 
## data:  modelo_estimado2
## LM test = 0.039428, df = 1, p-value = 0.8426

No hay evidencia de autocorrelación de 1° orden ya que (pvalue>0.05)

# Verificancdo autorcorrelacion de 2do Orden
bgtest(modelo_estimado2,order = 2)
## 
##  Breusch-Godfrey test for serial correlation of order up to 2
## 
## data:  modelo_estimado2
## LM test = 1.4324, df = 2, p-value = 0.4886

No hay evidencia de autocorrelación de 2° orden ya que (pvalue>0.05)

ESTIMACION ROBUSTA

En caso que se detecte heterocedasticidad

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

coeftest(modelo_estimado2)
## 
## t test of coefficients:
## 
##              Estimate Std. Error t value  Pr(>|t|)    
## (Intercept) -700.8799   506.4730 -1.3838    0.1731    
## pctmetro       6.7559     1.3049  5.1773 4.837e-06 ***
## pctwhite      -3.2788     2.8635 -1.1450    0.2581    
## pcths         -5.8351     5.1188 -1.1399    0.2602    
## single       139.4207    16.7234  8.3369 9.472e-11 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#Corregido:

estimacion_omega<-vcovHC(modelo_estimado2,type = "HC1")
coeftest(modelo_estimado2,vcov. = estimacion_omega)
## 
## t test of coefficients:
## 
##              Estimate Std. Error t value  Pr(>|t|)    
## (Intercept) -700.8799   550.5977 -1.2729 0.2094340    
## pctmetro       6.7559     1.6821  4.0163 0.0002165 ***
## pctwhite      -3.2788     3.2358 -1.0133 0.3162226    
## pcths         -5.8351     5.0538 -1.1546 0.2542253    
## single       139.4207    23.1021  6.0350 2.566e-07 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

INTERPRETACION

En caso de la existencia de ña heterocedasticidad se sabe que la varianza de la diagonal principal es sesgada por lo que no es constante, al hacer la corrección incrementa el rango del error para hacer el modelo más significativo.