Sugerencias y/o comentarios: https://url2.cl/1LgV6 (Abrir en nueva pestaña)

A continuación se resolverá 10 preguntas para ver el paso a paso en la toma de decisión de elegir o no una variable exógena dummy para un modelo de regresión lineal. Usando la base de datos “auto”

Descargando base de datos auto

Llamamos a las librerías que utilizaremos y descargamos la base de datos auto

library(dplyr)
library(Hmisc)
library(car)
library(haven)
auto <- read_dta("https://github.com/JoseConde95/Data-auto/raw/master/auto.dta")

1. Renombrar las variables del siguiente modo:

auto = rename(auto, Proc="foreign", Lmaletera="trunk", Precio="price")
head(auto)
## # A tibble: 6 x 12
##   make  Precio   mpg rep78 headroom Lmaletera weight length  turn displacement
##   <chr>  <dbl> <dbl> <dbl>    <dbl>     <dbl>  <dbl>  <dbl> <dbl>        <dbl>
## 1 AMC ~   4099    22     3      2.5        11   2930    186    40          121
## 2 AMC ~   4749    17     3      3          11   3350    173    40          258
## 3 AMC ~   3799    22    NA      3          12   2640    168    35          121
## 4 Buic~   4816    20     3      4.5        16   3250    196    40          196
## 5 Buic~   7827    15     4      4          20   4080    222    43          350
## 6 Buic~   5788    18     3      4          21   3670    218    43          231
## # ... with 2 more variables: gear_ratio <dbl>, Proc <dbl+lbl>

2. Etiquetar las variables del siguiente modo:

label(auto$Proc)="Procedencia del auto"
label(auto$Lmaletera)="Longitud del auto"
label(auto$Precio)="Precio del automovil"
label(auto)
##                     make                   Precio                      mpg 
##         "Make and Model"   "Precio del automovil"          "Mileage (mpg)" 
##                    rep78                 headroom                Lmaletera 
##     "Repair Record 1978"         "Headroom (in.)"      "Longitud del auto" 
##                   weight                   length                     turn 
##          "Weight (lbs.)"           "Length (in.)"     "Turn Circle (ft.) " 
##             displacement               gear_ratio                     Proc 
## "Displacement (cu. in.)"             "Gear Ratio"   "Procedencia del auto"

3. Generar etiquetas de valores mediante el uso de factor sobre la variable Proc siguiendo las siguientes instrucciones:

auto$Proc <- factor(auto$Proc, levels = c(0,1), labels = c("Local","Extranjero"))
table(auto$Proc)
## 
##      Local Extranjero 
##         52         22

4. Estimar un modelo con la siguiente forma:

\[Precio = \beta_0 +\beta_1Proc+\beta_2Lmaletera\] Observamos que tenemos un R^2 del 12%. Y un p-value de la prueba F del 0.7% siendo menor al 5% nos dice que en general las dos variables no explican al modelo. Sin embargo, más adelante haremos los tests necesarios para este caso, dado que estamos haciendo uso de una variable exógena dummy.

modelo1 <- lm(Precio ~ Proc + Lmaletera, data = auto)
summary(modelo1)
## 
## Call:
## lm(formula = Precio ~ Proc + Lmaletera, data = auto)
## 
## Residuals:
## Precio del automovil 
##     Min      1Q  Median      3Q     Max 
## -3372.7 -1665.3  -759.4   315.3 10293.4 
## 
## Coefficients:
##                Estimate Std. Error t value Pr(>|t|)   
## (Intercept)     2196.54    1267.86   1.732  0.08753 . 
## ProcExtranjero  1190.15     760.80   1.564  0.12219   
## Lmaletera        262.77      81.85   3.210  0.00199 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2791 on 71 degrees of freedom
## Multiple R-squared:  0.1288, Adjusted R-squared:  0.1043 
## F-statistic:  5.25 on 2 and 71 DF,  p-value: 0.007475

5. Valide si Proc es una variable de tipo factor.

Mediante el comando “is.factor” verificamos que efectivamente la variable Proc es una de tipo factor, dado que en la pregunta 3 hicimos la transformación.

is.factor(auto$Proc)
## [1] TRUE

6. ¿Explique las razones del cambio a factor de la variable Proc? (Máximo 3 líneas).

Porque por más que las variables tengan los valores 0 y 1 inicialmente, en la base de datos, esto no significa que necesariamente sean del tipo factor. Y dado que mi objetivo es crear una dummy exógena para testearla, necesito que esta variable sea del tipo factor, sino estaría forzando a mi variable a comportarse como tal y generaría sesgadez.

7. Realice un boxplot de Proc vs Precio. Añádale un título, nombres a los ejes y un color de su preferencia. Interprete el boxplot haciendo uso de la herramienta summary sobre las variables en cuestión.

¿Intuitivamente me dice algo este gráfico? ¿Es definitivo?

La mediana del precio de autos locales es 4782, mientras que la de extranjeros es 5759. Entonces parece que existe una diferencia en promedio del precio de los automóviles locales contra los extranjeros. Sin embargo, eso es solo una apreciación visual, tendríamos que contrastar mediante un test, para poder determinar si la variable dummy formada nos va a ayudar al modelo o no.

boxplot(auto$Precio~auto$Proc, main = "Gráfico de Cajas Precio Local Vs Precio Extranjero", 
                            xlab = "PROCEDENCIA", ylab = "PRECIO", col="green")

summary(auto$Precio[auto$Proc=="Local"])
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3291    4186    4782    6072    6200   15906
summary(auto$Precio[auto$Proc=="Extranjero"])
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3748    4522    5759    6385    7068   12990

8. Realice la prueba de Levene e interprete los resultados.

Vemos que la el test de Levene tiene un F-Value de 0.9751, entonces cae en zona de no rechazo de la Hipótesis Nula. Por ende, podemos decir que no existe una diferencia entre las medianas de los precios de un auto local contra la de un extranjero. También vamos a crear un modelo Anova para corroborar si la dummy creada es necesaria para mi modelo mediante un test

leveneTest(auto$Precio~auto$Proc, center = median) 
## Levene's Test for Homogeneity of Variance (center = median)
##       Df F value Pr(>F)
## group  1   0.001 0.9751
##       72
mod_anova = aov(auto$Precio~auto$Proc)
summary(mod_anova)
##             Df    Sum Sq Mean Sq F value Pr(>F)
## auto$Proc    1   1507383 1507383   0.171   0.68
## Residuals   72 633558013 8799417

Podemos ver que entra en zona de no rechazo de la hipótesis nula, donde nos está diciendo que la varianza de la variable Procedencia no es significativa.

9. ¿El uso de la variable Proc será conveniente para el modelo?

Como la diferencia entre las medianas no es significativa podemos decir entonces, que no es conveniente dado que la prueba de levene nos revela que las medianas son iguales a un 95% de confianza, no existe una diferencia entre el precio de los autos locales y extranjeros. Un análisis extra que podemos realizar es “one way” mediante el uso del comando “t1way”. Sin embargo, debemos tener muestras balanceadas, así que se va a generar una separación de datos dado que nuestras muestras no están balanceadas. Como existen 52 observaciones locales y 22 extranjeras. Las acomodamos y sacaremos una muestra de 22 datos.

muestras_desbalanceadas = unstack(auto, Precio ~ Proc)
a = data.frame(precio = muestras_desbalanceadas[[1]][1:22], nivel=factor(1))
b = data.frame(precio = muestras_desbalanceadas[[2]][1:22], nivel=factor(2))
fact_columna = rbind(a,b)
library(WRS2)
t1way(fact_columna)
## Call:
## t1way(formula = fact_columna)
## 
## Test statistic: F = 1.069 
## Degrees of freedom 1: 1 
## Degrees of freedom 2: 25.99 
## p-value: 0.31069 
## 
## Explanatory measure of effect size: 0.21 
## Bootstrap CI: [0.01; 0.67]

Nos sale un P-value del 0.31, esto significa que no se rechaza la hipótesis nula del test, por ende, la variable “Procedencia” no es significativa.

10. ¿Qué tipo de modelo es el desarrollado, y a que se debe su denominación?¿Qué tipo de dummy es la variable Proc en el modelo?

\[Precio = \beta_0 +\beta_1Proc+\beta_2Lmaletera\]

El tipo de modelo creado es un modelo ANCOVA dado que se está haciendo uso de una variable cualitativa Dummy llamada “Proc” y otra variable que es cuantitativa llamada “Lmaletera”, ambas exógenas para tratar de explicar el Precio de los autos. Para el modelo “Proc” es una variable dummy del tipo Factor.