27 de abril de 2019

Ejercicio 1

Cargar datos

library(readr)
regre <- read.csv("C:/Users/luisn/Downloads/ejemplo_regresion (1).csv")
colnames(regre) <- c("X1","X2","Y")
head(regre, 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

Estimación del modelo

library(stargazer)
options(scipen=9999)
modelo_lineal <- lm(formula = Y~X1+X2, data = regre)
stargazer(modelo_lineal, title="Ejemplo de regresion lineal", type= "text", digits= 8)
## 
## Ejemplo de regresion lineal
## ===============================================
##                         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

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

-Un nivel de significancia del 5% , V.C. = 5.9915,JB=0.93032 La Hipótesis Nula no se rechaza -JB ##Histograma de residuos

hist(modelo_lineal$residuals, main = "Histograma de residuos", xlab =  "Residuos", ylab = "Frecuencia")

##Prueba de Normalidad de Kolmogorov - Smirnov -Con un nivel de significancia del 5%, tamaño muestral n=25, V.C.=0.175 D=0.082345. La Hipótesis Nula no se rechaza. -D ≤ VC, por lo que poder decir que la prueba tiene una distribución normal

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

Normal Q-Q plot

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

##Histograma de residuos

hist(modelo_lineal$residuals, main = "Histograma de residuos", xlab = "Residuos", ylab = "Frecuencia")

##Prueba de Normalidad de Shapiro - Wilk -Un nivel de significancia del 5%, un tamaño muestral de n=25, V.C. = 0.264 y W = 0.97001. La Hipótesis Nula no se rechaza. -La prueba tiene una distribución normal, porque W > VC

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

Ejercicio 2

Cargar datos

library(readr)
library(dplyr)
Mnueva<-read_csv("C:/Users/luisn/Downloads/ejercicio econometria.csv")

Mnueva%>%mutate(x3=x1*x2)%>%select(Y,x1,x2,x3)->Mnueva
print(Mnueva)
## # A tibble: 14 x 4
##        Y    x1    x2     x3
##    <dbl> <dbl> <dbl>  <dbl>
##  1   320    50   7.4  370  
##  2   450    53   5.1  270. 
##  3   370    60   4.2  252  
##  4   470    63   3.9  246. 
##  5   420    69   1.4   96.6
##  6   500    82   2.2  180. 
##  7   570   100   7    700  
##  8   640   104   5.7  593. 
##  9   670   113  13.1 1480. 
## 10   780   130  16.4 2132  
## 11   690   150   5.1  765  
## 12   700   181   2.9  525. 
## 13   910   202   4.5  909  
## 14   930   217   6.2 1345.
head(Mnueva,n=6)
## # A tibble: 6 x 4
##       Y    x1    x2    x3
##   <dbl> <dbl> <dbl> <dbl>
## 1   320    50   7.4 370  
## 2   450    53   5.1 270. 
## 3   370    60   4.2 252  
## 4   470    63   3.9 246. 
## 5   420    69   1.4  96.6
## 6   500    82   2.2 180.

Estimando el modelo

options(scipen = 9999)
modelo_lineal2 <- lm(formula = Y~x1+x2+(x1*x2), data = Mnueva)
stargazer(modelo_lineal2, title = "Ejemplo de Regresión Múltiple", type = "text", digits = 8)
## 
## Ejemplo de Regresión Múltiple
## ===============================================
##                         Dependent variable:    
##                     ---------------------------
##                                  Y             
## -----------------------------------------------
## x1                         1.89347600**        
##                            (0.72255180)        
##                                                
## x2                         -19.28153000        
##                            (16.61324000)       
##                                                
## x1:x2                       0.25080920*        
##                            (0.13808420)        
##                                                
## Constant                  329.03170000***      
##                            (85.58103000)       
##                                                
## -----------------------------------------------
## Observations                    14             
## R2                          0.94974120         
## Adjusted R2                 0.93466350         
## Residual Std. Error    48.90988000 (df = 10)   
## F Statistic         62.99002000*** (df = 3; 10)
## ===============================================
## Note:               *p<0.1; **p<0.05; ***p<0.01

Ajuste de los residuos.

Verificando el ajuste de los residuos a la distribución normal.

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.000000000000005329071  11.047616
## sd   41.336391536725230366756   7.811844
## Loglikelihood:  -71.96955   AIC:  147.9391   BIC:  149.2172 
## Correlation matrix:
##      mean sd
## mean    1  0
## sd      0  1

Prueba de Normalidad de Jarque-Bera.

  • Con un nivel de significancia del 5%, V.C. = 5.9915 y JB = 0.9454, la Hipótesis Nula no se rechaza.
  • La prueba tiene una distribución normal, porque JB<VC.
jb.norm.test(modelo_lineal2$residuals) #Ejecuta la prueba de Jarque-Bera.
## 
##  Jarque-Bera test for normality
## 
## data:  modelo_lineal2$residuals
## JB = 0.9454, p-value = 0.393

Nomal Q-Q Plot.

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

Histograma de los Residuos.

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

Prueba de Normalidad Kolmogorov-Smirnov.

  • Con un nivel de significancia del 5%, un tamaño de la muestra de n=20, V.C. = 0.190 y D = 0.082345, la Hipótesis Nula no se rechaza.
  • La prueba tiene una distribución normal, porque D \(\leq\) VC.
lillie.test(modelo_lineal$residuals) #Ejecuta la prueba KS, con la correción de Lilliefors.
## 
##  Lilliefors (Kolmogorov-Smirnov) normality test
## 
## data:  modelo_lineal$residuals
## D = 0.082345, p-value = 0.9328

Nomal Q-Q Plot.

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

Histograma de los Residuos.

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

Prueba de Normalidad de Shapiro-Wilk.

  • Con un nivel de significancia del 5% y un tamaño de la muestra de n=20, V.C. = 0.294 y W = 0.97001, la Hipótesis Nula no se rechaza.
  • La prueba tiene una distribución normal, porque W > VC.
shapiro.test(modelo_lineal$residuals)
## 
##  Shapiro-Wilk normality test
## 
## data:  modelo_lineal$residuals
## W = 0.97001, p-value = 0.6453