Guía Práctica 3 - Pruebas de Normalidad para los Residuos

Alisson Samaria Vaquerano Morales VM17011 Econometría GT02

27 de Abril de 2019

Ejercicio 1

Cargar datos

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readr)
ejemploregresion <- read_csv("C:/Users/aliss/Documents/Ciclo 0519/Econometria/practica2.csv")
## Parsed with column specification:
## cols(
##   X1 = col_double(),
##   X2 = col_double(),
##   Y = col_double()
## )
head(ejemploregresion,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)
## 
## Please cite as:
##  Hlavac, Marek (2018). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.2. https://CRAN.R-project.org/package=stargazer
options(scipen = 9999)
modelolineal<-lm(formula = Y~X1+X2,data = ejemploregresion)
summary(modelolineal)
## 
## Call:
## lm(formula = Y ~ X1 + X2, data = ejemploregresion)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.085090 -0.039102 -0.003341  0.030236  0.105692 
## 
## Coefficients:
##                Estimate  Std. Error t value            Pr(>|t|)    
## (Intercept)  1.56449677  0.07939598  19.705 0.00000000000000182 ***
## X1           0.23719747  0.05555937   4.269            0.000313 ***
## X2          -0.00024908  0.00003205  -7.772 0.00000009508790794 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.0533 on 22 degrees of freedom
## Multiple R-squared:  0.8653, Adjusted R-squared:  0.8531 
## F-statistic: 70.66 on 2 and 22 DF,  p-value: 0.000000000265
stargazer(modelolineal,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

library(fitdistrplus)
## Warning: package 'fitdistrplus' was built under R version 3.5.3
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
## 
##     select
## Loading required package: survival
## Loading required package: npsurv
## Loading required package: lsei
library(stargazer)
fit_normal<-fitdist(data = modelolineal$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) 
jb.norm.test(modelolineal$residuals) 
## 
##  Jarque-Bera test for normality
## 
## data:  modelolineal$residuals
## JB = 0.93032, p-value = 0.488
#Al aplicar la prueba Jarque - Bera, observamos que el valor p es mayor que alpha
#Entonces, no se rechaza la hipótesis. 
#Los residuos siguen una distribución normal
qqnorm(modelolineal$residuals)
qqline(modelolineal$residuals)

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

Prueba de Normalidad de Kolmogorov-Smirnov

library(nortest)
lillie.test(modelolineal$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelolineal$residuals
## D = 0.082345, p-value = 0.9328
#Al aplicar la prueba Kolmogorov-Smirnov, observamos que el valor p es mayor que alpha
# (0.9328 > 0.05) Entonces, no se rechaza la hipótesis. 
#Los residuos siguen una distribución normal
qqnorm(modelolineal$residuals)
qqline(modelolineal$residuals)

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

Prueba de Normalidad de Shapiro-Wilk

shapiro.test(modelolineal$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelolineal$residuals
## W = 0.97001, p-value = 0.6453
#Al aplicar la prueba Shapiro-Wilk, observamos que el valor p es mayor que alpha
# (0.6453 > 0.05) Entonces, no se rechaza la hipótesis. 
#Los residuos siguen una distribución normal

Ejercicio 2

Cargar datos

ejemplo2 <- read_csv("C:/Users/aliss/Documents/Ciclo 0519/Econometria/prac2.csv")
## Parsed with column specification:
## cols(
##   X1 = col_double(),
##   X2 = col_double(),
##   Y = col_double()
## )
head(ejemplo2,n = 6)
## # A tibble: 6 x 3
##      X1    X2     Y
##   <dbl> <dbl> <dbl>
## 1    50   7.4   320
## 2    53   5.1   450
## 3    60   4.2   370
## 4    63   3.9   470
## 5    69   1.4   420
## 6    82   2.2   500

Estimando el modelo

options(scipen = 9999)
modelo2<-lm(formula = Y~X1+X2+X1*X2,data = ejemplo2)
summary(modelo2)
## 
## Call:
## lm(formula = Y ~ X1 + X2 + X1 * X2, data = ejemplo2)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -108.527  -37.595   -2.745   52.292  102.808 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 303.50401   71.54695   4.242 0.000621 ***
## X1            2.32927    0.47698   4.883 0.000166 ***
## X2          -25.07113   11.48487  -2.183 0.044283 *  
## X1:X2         0.28617    0.07681   3.726 0.001840 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 67.68 on 16 degrees of freedom
## Multiple R-squared:  0.9634, Adjusted R-squared:  0.9566 
## F-statistic: 140.4 on 3 and 16 DF,  p-value: 0.00000000001054
stargazer(modelo2,title = "Ejemplo de Regresión Multiple",type = "text",digits = 8)
## 
## Ejemplo de Regresión Multiple
## ================================================
##                         Dependent variable:     
##                     ----------------------------
##                                  Y              
## ------------------------------------------------
## X1                         2.32927500***        
##                             (0.47698220)        
##                                                 
## X2                         -25.07113000**       
##                            (11.48487000)        
##                                                 
## X1:X2                      0.28616860***        
##                             (0.07681293)        
##                                                 
## Constant                  303.50400000***       
##                            (71.54695000)        
##                                                 
## ------------------------------------------------
## Observations                     20             
## R2                           0.96341370         
## Adjusted R2                  0.95655370         
## Residual Std. Error    67.67775000 (df = 16)    
## F Statistic         140.44060000*** (df = 3; 16)
## ================================================
## Note:                *p<0.1; **p<0.05; ***p<0.01

Ajuste de los residuos a la distribución normal

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

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##                       estimate Std. Error
## mean -0.0000000000000004440892  13.535551
## sd   60.5328216633827125292555   9.571082
## Loglikelihood:  -110.4425   AIC:  224.885   BIC:  226.8764 
## Correlation matrix:
##      mean sd
## mean    1  0
## sd      0  1

Prueba de normalidad de Jarque - Bera

library(normtest) 
jb.norm.test(modelo2$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo2$residuals
## JB = 0.58681, p-value = 0.662
#Al aplicar la prueba Jarque - Bera, observamos que el valor p es mayor que alpha
#Entonces, no se rechaza la hipótesis. 
#Los residuos siguen una distribución normal
qqnorm(modelo2$residuals)
qqline(modelo2$residuals)

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

Prueba de Normalidad de Kolmogorov-Smirnov

library(nortest)
lillie.test(modelo2$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo2$residuals
## D = 0.14222, p-value = 0.3594
#Al aplicar la prueba Kolmogorov-Smirnov, observamos que el valor p es mayor que alpha
# (0.3594 > 0.05) Entonces, no se rechaza la hipótesis. 
#Los residuos siguen una distribución normal
qqnorm(modelo2$residuals)
qqline(modelo2$residuals)

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

Prueba de Normalidad de Shapiro-Wilk

shapiro.test(modelo2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo2$residuals
## W = 0.95957, p-value = 0.5352
#Al aplicar la prueba Shapiro-Wilk, observamos que el valor p es mayor que alpha
# (0.5352 > 0.05) Entonces, no se rechaza la hipótesis. 
#Los residuos siguen una distribución normal