library(haven)
auto_1_ <- read_dta("C:/Users/daffy/Downloads/auto (1).dta")
View(auto_1_)

Modelo ANOVA

attach(auto_1_)
modelo1<- lm(price~factor(foreign))
summary(modelo1)
## 
## Call:
## lm(formula = price ~ factor(foreign))
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2781.4 -1885.6 -1160.4   259.8  9833.6 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        6072.4      411.4  14.762   <2e-16 ***
## factor(foreign)1    312.3      754.4   0.414     0.68    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2966 on 72 degrees of freedom
## Multiple R-squared:  0.002374,   Adjusted R-squared:  -0.01148 
## F-statistic: 0.1713 on 1 and 72 DF,  p-value: 0.6802

Interpretación: Los modelos ANOVA se caracterizan por solo presentar variables del tipo categoricas en las exogenes en el modelo1 se toma el precio en función de la procedencia del auto es decir \(0=Nacioanl & 1=Internacioanl\) al ver los resultados podemos ver que solo la pendiente es significativa al \(\alpha=5%\), la respectiva interpretación seria de esta forma: - Si el auto es extranjero tiene un precio promedio de 312.3 más que por ser nacional.

Modelo Ancova:

modelo2 <- lm(price~factor(foreign)+trunk+length+gear_ratio,data = auto_1_)
summary(modelo2)
## 
## Call:
## lm(formula = price ~ factor(foreign) + trunk + length + gear_ratio, 
##     data = auto_1_)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -3560  -1529   -807   1092   7681 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)       -490.37    5592.71  -0.088   0.9304    
## factor(foreign)1  4025.07     877.34   4.588 1.95e-05 ***
## trunk              -51.08      96.04  -0.532   0.5965    
## length              74.58      22.40   3.330   0.0014 ** 
## gear_ratio       -2605.48    1008.09  -2.585   0.0119 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2395 on 69 degrees of freedom
## Multiple R-squared:  0.3769, Adjusted R-squared:  0.3408 
## F-statistic: 10.43 on 4 and 69 DF,  p-value: 1.145e-06

Nota: El modelo ANCOVA se caracteriza por incluir variables binarias y númeriacas en las exogenas. el modelo tiene la siguiente forma \(y= D_1+ b_1x_1 + b_2x_2 + b_3x_3\). La interpretación es la siguiente; - Ls unica variable que no es significante es trunk, si el auto es extranjero tendra un precio promedio mayor de 4025.07$ en comparación con que si fuera nacioanal.

modelo3 <- lm(price~factor(foreign)+length+length*factor(foreign),data = auto_1_)
summary(modelo3)
## 
## Call:
## lm(formula = price ~ factor(foreign) + length + length * factor(foreign), 
##     data = auto_1_)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2874.7 -1521.5  -793.2   875.7  9224.8 
## 
## Coefficients:
##                          Estimate Std. Error t value Pr(>|t|)    
## (Intercept)              -9107.10    3348.33  -2.720  0.00823 ** 
## factor(foreign)1        -10975.87    7362.05  -1.491  0.14049    
## length                      77.39      16.98   4.557 2.14e-05 ***
## factor(foreign)1:length     79.64      42.34   1.881  0.06410 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2431 on 70 degrees of freedom
## Multiple R-squared:  0.3483, Adjusted R-squared:  0.3204 
## F-statistic: 12.47 on 3 and 70 DF,  p-value: 1.265e-06

Interpretación: Si la longitud aumenta en un 1% y este es extranjero tiene un incremento en el precio de 157.03 en promedio sobre el precio

El mejor modelo es:

library(tidyverse)
## -- Attaching packages ------------------------------------------------------------------------------------- tidyverse 1.3.0 --
## v ggplot2 3.3.0     v purrr   0.3.4
## v tibble  3.0.3     v dplyr   1.0.0
## v tidyr   1.1.0     v stringr 1.4.0
## v readr   1.3.1     v forcats 0.5.0
## -- Conflicts ---------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(broom)
m1<-glance(modelo1)
m2<- glance(modelo2)
m3<- glance(modelo3)
s=labels(m1)
cuadro<- matrix(c(s[[2]],m1,m2,m3),nrow = 11)
cuadro1<- as.data.frame(cuadro)
names(cuadro1)<-c("caracteristicas","modelo1","modelo2","modelo3") 
View(cuadro1)

Resulatdos: Al ver los criterios AIC podemos ver que el mejor modelo es el 2.

Una prueba más drastica podría ser la prueba resett del paquete lmtest

library(lmtest)
## Loading required package: zoo
## 
## Attaching package: 'zoo'
## The following objects are masked from 'package:base':
## 
##     as.Date, as.Date.numeric
reset(modelo2)
## 
##  RESET test
## 
## data:  modelo2
## RESET = 9.1274, df1 = 2, df2 = 67, p-value = 0.0003122

Interpretación: El modelo si esta bien formulado ya que no hay evidencias suficientes para rechazar la hipótesis nula, la cual nos dice que el modelo si esta bien formulado.