Base Datos

library(wooldridge)
data(hprice1)
head(force(hprice1),n=5)
##   price assess bdrms lotsize sqrft colonial   lprice  lassess llotsize   lsqrft
## 1   300  349.1     4    6126  2438        1 5.703783 5.855359 8.720297 7.798934
## 2   370  351.5     3    9903  2076        1 5.913503 5.862210 9.200593 7.638198
## 3   191  217.7     3    5200  1374        0 5.252274 5.383118 8.556414 7.225482
## 4   195  231.8     3    4600  1448        1 5.273000 5.445875 8.433811 7.277938
## 5   373  319.1     4    6095  2514        1 5.921578 5.765504 8.715224 7.829630

1. Estimando el modelo

library(stargazer)
options(scipen = 999999)
modelo_lineal<-lm(formula = price~lotsize+sqrft+bdrms,data = hprice1)
stargazer(modelo_lineal,title="Ejemplo de Regresion Multiple",type = "html",digits = 8)
Ejemplo de Regresion Multiple
Dependent variable:
price
lotsize 0.00206771***
(0.00064213)
sqrft 0.12277820***
(0.01323741)
bdrms 13.85252000
(9.01014500)
Constant -21.77031000
(29.47504000)
Observations 88
R2 0.67236220
Adjusted R2 0.66066090
Residual Std. Error 59.83348000 (df = 84)
F Statistic 57.46023000*** (df = 3; 84)
Note: p<0.1; p<0.05; p<0.01

2. Verificando el supuesto de normalidad

#Para verificar si los datos se ajustan a una distribucion normal
library(fitdistrplus)
ajuste_normal<-fitdist(data=modelo_lineal$residuals,distr="norm")
plot(ajuste_normal)

a) Prueba de Normalidad Jarque-Bera

Las Hipotesis de la Prueba

Ho: S=0 ⋀ K-3=0

Hi: S≠0 ⋀ K−3≠0

library(normtest)

jb.norm.test(modelo_lineal$residuals)->JB
print(JB)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_lineal$residuals
## JB = 32.278, p-value = 0.001
#Calculamos el Valor Critico 
VC_JB<-qchisq(p=0.95,df=2)

print(VC_JB)
## [1] 5.991465
#Graficamos el Estadistico de Prueba
library(fastGraph)
shadeDist(xshade = JB$statistic,ddist = "dchisq",parm1 = 2,lower.tail = FALSE,sub=paste("VC:",VC_JB,"JB:",JB$statistic))

Dado de que el Estadistico de Prueba JB es mayor al Valor Critico (32.27 > 5.99), se rechaza la Hipotesis Nula. En otras palabras, los Residuales no tienen una distribucion normal.

Analizando el valor-p, este es menor al nivel de significancia del 5%, por lo que se llega a la misma decision de rechazar la Hipotesis Nula

b) Prueba de Normalidad de Kolmogorov Smirnov

Ho: ε~N (0, σ2ε)

(Hay evidencia de que la distribucion de los residuos poseen una distribucion normal)

Ho: ε≁N (0, σ2ε)

(Hay evidencia de que la distribucion de los residuos no poseen una distribucion normal)
library(nortest)
lillie.test(modelo_lineal$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_lineal$residuals
## D = 0.075439, p-value = 0.2496
matriz_X<- model.matrix(modelo_lineal)

#Calcular el Valor Critico
n<-nrow(matriz_X)
VC_KS<-((0.875897)/sqrt(n))
print(VC_KS)
## [1] 0.09337093

Con base al Valor-p (Valor-p > α) se concluye que no se rechaza la Hipotesis Nula. Segun esta prueba de normalidad existe evidencia de que la distribucion de los residuos es normal.

De igual forma, si analizamos el Estadistico D, este es menor al Valor Critico (0.075 < 0.093), por lo que se llega a la decision de no Rechazar la Hipotesis Nula

c) Prueba de Normalidad Shapiro-Wilk

shapiro.test(modelo_lineal$residuals)->SW
print(SW)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_lineal$residuals
## W = 0.94132, p-value = 0.0005937
#Calculamos el Valor Critico
VC_SW<-qnorm(p = 0.95)
print(VC_SW)
## [1] 1.644854
shadeDist(xshade = 0.9413, ,ddist = "dnorm",parm1 = 0,parm2 = 1, lower.tail = FALSE, sub=paste("SW:",SW,"VC:",VC_SW))

Analizando el estadistico de Prueba, El estadistico SW es menor al Valor Critico (0.9413 < 1.64), por lo que la Hipotesis Nula no se Rechaza.

Sin embargo, si analizamos el valor-p, este es menor al nivel de significancia del 5%, Lo que indica que Si se debe rechazar la Hipotesis Nula.

Por lo tanto, en esta prueba tomamos la condicion del valor-p y rechazamos la Hipotesis Nula, lo queindica que los residuales no poseen una distribucion normal