1.1. Primer paso:
Importo las siguientes librerias
library(plyr)
library(Hmisc)
## Loading required package: lattice
## Loading required package: survival
## Loading required package: Formula
## Loading required package: ggplot2
##
## Attaching package: 'Hmisc'
## The following objects are masked from 'package:plyr':
##
## is.discrete, summarize
## The following objects are masked from 'package:base':
##
## format.pval, units
library(car)
## Loading required package: carData
1.2. Segundo paso:
Exporto la base datos
library(haven)
auto <- read_dta("C:/Users/daffy/Downloads/auto.dta")
head(auto)
## # A tibble: 6 x 12
## make price mpg rep78 headroom trunk 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>, foreign <dbl+lbl>
1.3. Tercer paso:
Renombro las variables
auto=rename(auto,c("trunk"="Lmaletera",
"foreign"="Proc","price"="Precio" ))
2.1. Etiqueto las variables:
label(auto$Proc)="Procedencia del auto"
label(auto$Lmaletera)="Longitud del maletero"
label(auto$Precio)="Precio del automovil"
auto$proc=factor(auto$Proc,labels =
c("0"="Local","1"="Extranjero"))
head(auto)
## # A tibble: 6 x 13
## make Precio mpg rep78 headroom Lmaletera weight length turn displacement
## <chr> <labe> <dbl> <dbl> <dbl> <labelle> <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 3 more variables: gear_ratio <dbl>, Proc <dbl+lbl>, proc <fct>
attach(auto)
## The following object is masked from package:ggplot2:
##
## mpg
modelo<- lm(Precio~proc+Lmaletera,
data = auto)
summary(modelo)
##
## 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
la variable Proc es una variable tipo factor ya que esta nos indica la procedencia del auto además como nos da una cualidad del auto podemos aceptar que esta variable es dicotoma y que el modelo propuesto es un modelo dummy.
La variable Proc dentro de la data es del tipo categorico , esta variable tiene información la procedencia del auot en donde 0 nos indica que el auto es local y 1 que es extranjero , al indicar cualidades del auto se puede entender que esta variable es categorica , ademas al ser de ese tipo se necesita otro tratamiento para la variable en este caso usando el software R se procede a cambiar su tipo a factor que nos arroja una variable que toma cero y uno , esto se hace para realizar una regresioncon variables dummy esto quiero decir que unas de las regresoras exogenas es una variable categorica .
library(ggplot2)
ggplot(auto,aes(proc,Precio,colour=proc))+geom_boxplot()+labs(title = "Box Plot")+
theme_minimal()+ylab("Procedencia")+labs(subtitle = "Precio VS Procedencia")
A simpre vista se puede ver que hay una diferencia respecto a la mediana de las dos categorias, esto no es definitivo para saber si hay diferencia entre estas dos categorías en la siguiente pregunta se hara el test de levene,
Levene test
leveneTest(auto$Precio,auto$Proc,center = median)
## Warning in leveneTest.default(auto$Precio, auto$Proc, center = median):
## auto$Proc coerced to factor.
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 1 0.001 0.9751
## 72
Al ejecutar la prueba de levene para verificar si las medianas de los dos grupos son iguales o diferentes se optiene un p-value mayor al nivel de siginifcancia al de 5% lo cual nos permite no rechazar la hipótesis nula la cual nos dice que las madianas son iguales.
Al ejecutar la prueba de levene nos dio un p-value mayor a 0.05 lo cual no nos pernmite rechazar la hipótesis nula entoncesno hay difrencia en los grupos. Esto nos da señal que el uso de la variable categorica en el modelo no es necesario. Pero esto no es concluyente ya que la muestra esta desvalanciada para esto suamos la función t1way de la siguiente forma.
library(WRS2)
ata=unstack(auto,Precio~proc)
a1<- data.frame("precio"=ata[[1]][1:22],"nivel"=factor(1))
b1<-data.frame("precio"=ata[[2]][1:22],"nivel"=factor(2))
ata2<- rbind(a1,b1)
t1way(ata2)
## Call:
## t1way(formula = ata2)
##
## 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.02; 0.7]
Esta prueba necesita tener una muestra valanciada la cual no se tiene para eso use las transformaciones precentadas en el códig, el resultado del test nos arrojo un p-value de 0.31069 el cual es mayor al nivel de significancia de 0.05 lo cual nos lleva a no rechazar la hipotesis nula de que no existe diferencia entre los dos grupo.
Nota: Esta prueba nos es concluyente ya que debo de hacer un loop con un remuentreo para esto se puede usar la función sample.
El modelo se conoce como modelo con variable dummy la cual la variable categorica toma relevancia como variable exogona, en este caso el modelo es un Ancova ya que incluye tanto variables categoricas como numericas.