Guia Practica 3

Mario Antonio Herrera Rivera. HR17038. GT02

26 de abril de 2019

Guia Practica 3

Carga de Datos.

library(readr)
ejemp_regresion <- read.csv("M:/Econometria/GUIA3/ejemplo_regresion.csv")
head(ejemp_regresion, n=6)
##   ĆÆ..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

Estimando el modelo.

library(stargazer)
options(scipen = 9999)
modelo_lineal<-lm(formula = Y~ĆÆ..X1+X2, data = ejemp_regresion)
stargazer(modelo_lineal, title="Ejemplo de Regresion Multiple", type="text", digits= 8)
## 
## Ejemplo de Regresion 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 Distribucion Normal.

Verificando el ajuste de los residuos a la distribucion normal, se usarĆ” la libreria \(\mathbf{fitdistrplus}\)

library(fitdistrplus)
## Warning: package 'fitdistrplus' was built under R version 3.5.3
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)
jb.norm.test(modelo_lineal$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_lineal$residuals
## JB = 0.93032, p-value = 0.483

Como el p-value es mayor que el nivel de significancia, \(\mathbf{no}\) \(\mathbf{se}\) \(\mathbf{rechaza}\) \(\mathbf{la}\) \(\mathbf{Hipotesis}\) \(\mathbf{nula}\); por tanto los residuales siguen una distribución normal.

qqnorm(modelo_lineal$residuals)
qqline(modelo_lineal$residuals)

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

Prueba de Normalidad de Kolgomorov - Smirnov

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

Como el p-value es mayor que el nivel de significancia, \(\mathbf{no}\) \(\mathbf{se}\) \(\mathbf{rechaza}\) \(\mathbf{la}\) \(\mathbf{Hipotesis}\) \(\mathbf{nula}\); por tanto los residuales siguen una distribución normal.

qqnorm(modelo_lineal$residuals)
qqline(modelo_lineal$residuals)

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

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

Como el p-value es mayor que el nivel de significancia, \(\mathbf{no}\) \(\mathbf{se}\) \(\mathbf{rechaza}\) \(\mathbf{la}\) \(\mathbf{Hipotesis}\) \(\mathbf{nula}\); por tanto los residuales siguen una distribución normal.

Ejercicio 2

Carga de Datos

library(readr)
ejemp_regresion2<- read.csv("M:/Econometria/GUIA3/guia2.csv")
head(ejemp_regresion2, n = 6)
##   X1  X2   Y
## 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.

library(stargazer)
options(scipen = 9999)
modelo_lineal2<-lm(formula = Y~X1+X2, data = ejemp_regresion2)
stargazer(modelo_lineal2, title = "Ejemplo de Regresion Multiple", type = "text", digits = 8)
## 
## Ejemplo de Regresion Multiple
## ================================================
##                         Dependent variable:     
##                     ----------------------------
##                                  Y              
## ------------------------------------------------
## X1                         3.94065500***        
##                             (0.26658770)        
##                                                 
## X2                         14.80694000**        
##                             (5.51843400)        
##                                                 
## Constant                    85.57848000         
##                            (54.61834000)        
##                                                 
## ------------------------------------------------
## Observations                     20             
## R2                           0.93167600         
## Adjusted R2                  0.92363790         
## Residual Std. Error    89.72397000 (df = 17)    
## F Statistic         115.90730000*** (df = 2; 17)
## ================================================
## 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 distribucion normal, se usarĆ” la libreria \(\mathbf{fitdistrplus}\)

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

summary(fit_normal)
## Fitting of the distribution ' norm ' by maximum likelihood 
## Parameters : 
##                      estimate Std. Error
## mean -0.000000000000002488114   18.49709
## sd   82.721409061040219512506   13.07940
## Loglikelihood:  -116.6883   AIC:  237.3767   BIC:  239.3681 
## Correlation matrix:
##                 mean              sd
## mean  1.000000000000 -0.000001289266
## sd   -0.000001289266  1.000000000000

Prueba de normalidad de Jarque - Bera.

library(normtest)
jb.norm.test(modelo_lineal2$residuals)
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_lineal2$residuals
## JB = 2.7402, p-value = 0.083

Como el p-value es mayor que el nivel de significancia, \(\mathbf{no}\) \(\mathbf{se}\) \(\mathbf{rechaza}\) \(\mathbf{la}\) \(\mathbf{Hipotesis}\) \(\mathbf{nula}\); por tanto los residuales siguen una distribución normal.

qqnorm(modelo_lineal2$residuals)
qqline(modelo_lineal2$residuals)

hist(modelo_lineal2$residuals, main = "Histograma de los Residuos", xlab="Residuos", ylab="Frecuencias")

Prueba de Normalidad de Kolmogorov - Smirnov

library(nortest)
lillie.test(modelo_lineal2$residuals)
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_lineal2$residuals
## D = 0.12278, p-value = 0.5968

Como el p-value es mayor que el nivel de significancia, \(\mathbf{no}\) \(\mathbf{se}\) \(\mathbf{rechaza}\) \(\mathbf{la}\) \(\mathbf{Hipotesis}\) \(\mathbf{nula}\); por tanto los residuales siguen una distribución normal.

qqnorm(modelo_lineal2$residuals)
qqline(modelo_lineal2$residuals)

hist(modelo_lineal2$residuals, main = "Histograma de los Residuos", xlab = "Residuos", ylab = "Frecuencias")

Prueba de Normalidad de Shapiro - Wik

shapiro.test(modelo_lineal2$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_lineal2$residuals
## W = 0.94463, p-value = 0.2929

Como el p-value es mayor que el nivel de significancia, \(\mathbf{no}\) \(\mathbf{se}\) \(\mathbf{rechaza}\) \(\mathbf{la}\) \(\mathbf{Hipotesis}\) \(\mathbf{nula}\); por tanto los residuales siguen una distribución normal.