Pruebas de Normalidad para los residuos

MSF Ademir Pérez

Econometría UES

Carga de Datos

library(readr)
ejemplo_regresion <- read_csv("E:/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 = "text",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
library(psych)
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.469
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")