Exportar datos

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

Estimacion del modelo

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

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.4845

Normal Q-Q Plot Jarque-Bera

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

Histograma de residuos Jarque-Bera

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

Prueba de Normalidad Kolmogorov - Smirnov

En este caso si el p-valor >= alpha (el nivel de significancia) no rechazamos la hipotesis nula y observamos que p=0.9328 es mayor que 0.05 por lo que No se rechaza la hipotesis nula

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

Normal Q-Q Plot Kolmogorov-Smirnov

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

## Histograma de residuos Kolmogorov-Smirnov

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

Prueba de Normalidad de Shapiro - Wilk

Este caso tambiƩn tenemos que el p-valor = 0.6453 por lo que es mayor que 0.05 nivel de significacia y No se rechaza la hipotesis nula

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