Ejercicio practico 3: pruebas de normailidad

Martínez Ayala, Carlos Enrique

27 de abril del 2019

Primer ejercicio: Exportar datos

library(readr)
dataframe <- read.csv("C:/Users/ejhar/Desktop/econometria/ej2.csv")
colnames(dataframe) <- c("x1", "x2", "y")
head(dataframe, n=10)
##      x1   x2    y
## 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.70
## 6  3.11 6402 0.72
## 7  3.21 6368 0.77
## 8  3.26 6340 0.74
## 9  3.42 6349 0.90
## 10 3.42 6352 0.82

1. Estimacion del modelo

library(stargazer)
options(scipen=9999)
mod_lineal<-lm(formula = y~x1+x2, data= dataframe)
stargazer(mod_lineal, title = "Ejemplo deRegresion Multiple",
          type = "text", digits = 8)
## 
## Ejemplo deRegresion 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

1. Ajuste de Residuos a la Distribución Normal

library(fitdistrplus)
library(stargazer)
fit_normal<- fitdist(data = mod_lineal$residual, 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

1. Prueba de Normalidad Jarque-Bera

Para considerar que la distribución de los errores sigue una normal el valor JB debe ser menor al valor crítico. Como el valor obtenido para el estadístico es menor que el valor crítico tabulado V.C. = 5.9915 y JB = 0.93032, No se puede rechazar la hipótesis nula de normalidad de los residuos, cumpliéndose por tanto este supuesto básico.

library(normtest)
jb.norm.test(mod_lineal$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  mod_lineal$residuals
## JB = 0.93032, p-value = 0.4835

1. Normal Q-Q Plot Jarque-Bera

qqnorm(mod_lineal$residuals)
qqline(mod_lineal$residuals)

1. Histograma de residuos Jarque-Bera

hist(mod_lineal$residuals, main = "Histograma de residuos", 
     xlab = "Residuos", ylab = "Freciencias")

1. Prueba de Normalidad Kolmogorov - Smirnov

library(nortest)
lillie.test(mod_lineal$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  mod_lineal$residuals
## D = 0.082345, p-value = 0.9328

1. Normal Q-Q Plot Kolmogorov-Smirnov

qqnorm(mod_lineal$residuals)
qqline(mod_lineal$residuals)

## 1. Histograma de residuos Kolmogorov-Smirnov

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

1. Prueba de Normalidad de Shapiro - Wilk

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

Segundo Ejercicio: Exportar datos

library(dplyr)
dtframe <- read.csv("C:/Users/ejhar/Desktop/trabajo 1/matrizXY.csv")
colnames(dtframe) <- c("y", "x1", "x2")
dtframe %>% mutate(x3=x1*x2) %>% dplyr :: select("y","x1","x2","x3") -> dfram
head(dfram, n=10)
##      y  x1   x2     x3
## 1  320  50  7.4  370.0
## 2  450  53  5.1  270.3
## 3  370  60  4.2  252.0
## 4  470  63  3.9  245.7
## 5  420  69  1.4   96.6
## 6  500  82  2.2  180.4
## 7  570 100  7.0  700.0
## 8  640 104  5.7  592.8
## 9  670 113 13.1 1480.3
## 10 780 130 16.4 2132.0

2. Estimacion del modelo

library(stargazer)
options(scipen=9999)
mode_lineal<-lm(formula = y~x1+x2+x3, data= dfram)
stargazer(mode_lineal, title = "Segundo Ejemplo deRegresion Multiple",
          type = "text", digits = 8)
## 
## Segundo Ejemplo deRegresion Multiple
## ================================================
##                         Dependent variable:     
##                     ----------------------------
##                                  y              
## ------------------------------------------------
## x1                         2.32927500***        
##                             (0.47698220)        
##                                                 
## x2                         -25.07113000**       
##                            (11.48487000)        
##                                                 
## x3                         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

2. Ajuste de Residuos a la Distribución Normal

library(fitdistrplus)
library(stargazer)
fit_normal<- fitdist(data = mode_lineal$residual, 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

2. Prueba de Normalidad Jarque-Bera

Para considerar que la distribución de los errores sigue una normal el valor JB debe ser menor al valor crítico. Como el valor obtenido para el estadístico es menor que el valor crítico tabulado V.C. = 5.9915 y JB = 0.58681, No se puede rechazar la hipótesis nula de normalidad de los residuos, cumpliéndose por tanto este supuesto básico.

library(normtest)
jb.norm.test(mode_lineal$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  mode_lineal$residuals
## JB = 0.58681, p-value = 0.671

2. Normal Q-Q Plot Jarque-Bera

qqnorm(mode_lineal$residuals)
qqline(mode_lineal$residuals)

2. Histograma de residuos Jarque-Bera

hist(mode_lineal$residuals, main = "Histograma de residuos", 
     xlab = "Residuos", ylab = "Freciencias")

2. Prueba de Normalidad Kolmogorov - Smirnov

library(nortest)
lillie.test(mode_lineal$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  mode_lineal$residuals
## D = 0.14222, p-value = 0.3594

2. Normal Q-Q Plot Kolmogorov-Smirnov

qqnorm(mode_lineal$residuals)
qqline(mode_lineal$residuals)

## 2. Histograma de residuos Kolmogorov-Smirnov

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

2. Prueba de Normalidad de Shapiro - Wilk

shapiro.test(mode_lineal$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  mode_lineal$residuals
## W = 0.95957, p-value = 0.5352