Pruebas de Normalidad para los residuos

MSF Ademir Pérez

Econometría UES

Carga de Datos

library(readr)
ejemplo_regresion <- read_csv("C:/R_archivos/ejemplo_regresion.csv")
head(ejemplo_regresion,n = 6)
## # A tibble: 6 x 3
##      X1    X2     Y
##   <dbl> <dbl> <dbl>
## 1  3.92  7298  0.75
## 2  3.61  6855  0.71
## 3  3.32  6636  0.66
## 4  3.07  6506  0.61
## 5  3.06  6450  0.7 
## 6  3.11  6402  0.72

Estimando el modelo

library(stargazer)
options(scipen = 9999)
modelo_lineal<-lm(formula = Y~X1+X2,data = ejemplo_regresion)
stargazer(modelo_lineal,title = "Ejemplo de Regresión Multiple",type = "html",digits = 8)
Ejemplo de Regresión Multiple
Dependent variable:
Y
X1 0.23719750***
(0.05555937)
X2 -0.00024908***
(0.00003205)
Constant 1.56449700***
(0.07939598)
Observations 25
R2 0.86529610
Adjusted R2 0.85305030
Residual Std. Error 0.05330222 (df = 22)
F Statistic 70.66057000*** (df = 2; 22)
Note: p<0.1; p<0.05; p<0.01

Ajuste de los residuos a la Distribución Normal

Verificando el ajuste de los residuos a la distribución normal, se usará la librería fitdistrplus

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

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##                        estimate  Std. Error
## mean 0.000000000000000007770748 0.010000382
## sd   0.050001911895951975384200 0.007058615
## Loglikelihood:  39.41889   AIC:  -74.83778   BIC:  -72.40002 
## Correlation matrix:
##      mean sd
## mean    1  0
## sd      0  1

Prueba de Normalidad de Jarque - Bera

library(normtest) #Carga los comandos para las pruebas de normalidad
jb.norm.test(modelo_lineal$residuals) #Ejecuta la prueba de Jarque -Bera
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_lineal$residuals
## JB = 0.93032, p-value = 0.491
qqnorm(modelo_lineal$residuals)
qqline(modelo_lineal$residuals)

hist(modelo_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "frecuencia") 

Prueba de Normalidad de Kolmogorov - Smirnov

library(nortest)  #Carga los comandos para las pruebas de normalidad
lillie.test(modelo_lineal$residuals) #Ejecuta la prueba KS, con la corrección de Lilliefors
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_lineal$residuals
## D = 0.082345, p-value = 0.9328
qqnorm(modelo_lineal$residuals)
qqline(modelo_lineal$residuals)

hist(modelo_lineal$residuals,main = "Histograma de los residuos",xlab = "Residuos",ylab = "frecuencia") 

Prueba de Normalidad de Shapiro - Wilk

shapiro.test(modelo_lineal$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_lineal$residuals
## W = 0.97001, p-value = 0.6453