head(mtcars)
##                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
## Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
## Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
## Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
## Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
## Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
## Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

Con 32 observaciones Si dice factor es el nombre de las etiquetas

mpg = millas por galón –>

variable númerica cyl = cilindros

hp = caballos de fuerza

disp = Mide el volumen del motor y representa el poder que genera el motor

wt = peso del auomovil en toneladas (1000 lbs)

qsec = 1/4 milla de tiempo (Tiempo que se demora el carro en recorrer 1/4 de milla)

Motor (0 = en forma de V, 1 = recto)

am = Trasmisión (0=automático, 1=manual)

gear = número de engranajes de la trasmisión

carb = número de carburadores

la variable vs es una variable categórica que indica si un automóvil tiene un motor de 8 cilindros (vs = 1) o un motor de menos de 8 cilindros (vs = 0). Por lo tanto, vs es la respuesta o la variable dependiente en el modelo.

En la base de datos mtcars, la variable wt representa el peso del vehículo en libras. Es una variable continua y puede ser utilizada como predictor o variable independiente en un modelo estadístico.

En la base de datos mtcars, la variable disp representa el desplazamiento del motor en pulgadas cúbicas. Es una variable continua y puede ser utilizada como predictor o variable independiente en un modelo estadístico.

cyl” es el número de cilindros en el motor del automóvil.

“hp” es la potencia del motor en caballos de fuerza.

“wt” es el peso del automóvil en toneladas.

mpg”millas por galon

Preparación de datos

Como vamos a trabajar con transmisión por engranajes la convertiremos a variable factorial

mtcars$am<-as.factor(mtcars$am)
levels(mtcars$am)<-c("Automatic","Manual")
par(mfrow = c(1, 2))
boxplot(mtcars$mpg, col="blue", xlab="Millas por galón", ylab="Millas por galón", main="MPG boxplot")
h <- hist(mtcars$mpg, breaks=10, col="blue", xlab="Millas por galón", main="Histograma de Millas por galón")
xx <-seq(min(mtcars$mpg),max(mtcars$mpg),length=40)
yy <-dnorm(xx,mean=mean(mtcars$mpg),sd=sd(mtcars$mpg))
yy <- yy * diff(h$mids[1:2])*length(mtcars$mpg)
lines(xx, yy, col="black", lwd=2)

boxplot(mpg~am, data=mtcars, col = c("red", "green"), xlab = "Transmisión", ylab = "Millas por galón",
        main = "MPG por Tipo de Transmisión")

Del diagrama anterior vemos que:

El 75% de los autos con más de 20 mpg son de transición manual

solo el 25 por ciento de los autos con transición automatizada tienen mpg más de 20

Veamos la correlación entre MPG y otras variables:

boxplot(mpg~vs, data=mtcars, col = c("red", "green"), xlab = "n de motor 8 o menor", ylab = "Millas por galón",
        main = "vs por n de motor 8 o menos")

boxplot(cyl~am, data=mtcars, col = c("red", "green"), xlab = "Tipo de Transmisión", ylab = "N de cilindros",
        main = "cyl por por Tipo de Transmisión")

autoCars <- mtcars[mtcars$am == "Automatic",]
manualCars <- mtcars[mtcars$am == "Manual",]
t.test(autoCars$mpg, manualCars$mpg)
## 
##  Welch Two Sample t-test
## 
## data:  autoCars$mpg and manualCars$mpg
## t = -3.7671, df = 18.332, p-value = 0.001374
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  -11.280194  -3.209684
## sample estimates:
## mean of x mean of y 
##  17.14737  24.39231

La hipótesis nula ambos grupos tienen la misma media, NO existe una diferencia en la media de MPG de los automóviles con transmisión automática y manual

La hipótesis alternativa las medias de los grupos son diferentes, existe una diferencia en la media de MPG de los automóviles con transmisión automática y manual

Decisión: Si el p-valor =0.001374<0.05 es menor que el nivel de significancia establecido, se rechazará a hipótesis nula.

onclusión: Con un nivel de significancia del 5%, existe evidncia estadística para rechazar la hipótesis nula, por lo tanto, se concluirá que existe una diferencia en la media de MPG de los automóviles con transmisión automática y manual.

modelo de regresión lineal

fit <- lm(mpg~am, data = mtcars)
summary(fit)
## 
## Call:
## lm(formula = mpg ~ am, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -9.3923 -3.0923 -0.2974  3.2439  9.5077 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   17.147      1.125  15.247 1.13e-15 ***
## amManual       7.245      1.764   4.106 0.000285 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 4.902 on 30 degrees of freedom
## Multiple R-squared:  0.3598, Adjusted R-squared:  0.3385 
## F-statistic: 16.86 on 1 and 30 DF,  p-value: 0.000285

Del modelo lineal anterior, vemos:

Hipótesis Nula: El modelo no es válido

Hipótesis Alternante: el modelo es válido

Decisión: El valor p =0.0002<0.05. Se rechaza Ho.

Conclusión: A un nivel de significancia del 5%, existe evidencia estadística para rechazar H0, es decir, muestra que la diferencia en la media es significativa y no es casual. El modelo es válido.

El valor R-Squared (0.3598) muestra que nuestro modelo solo cubre el 35.98% de la varianza, por lo que este modelo no está calificado para el ajuste.

La ecuación de regresión

mpg =17.147 + 7.245* am

Los autos automatizados tendrían 17.147 Millas por galón, en promedio.

Los autos manuales tienen 7.245 millas por galón más qie los autos automatizados

am = Trasmisión (0=automático, 1=manual)

Modelo de regresión lineal multivariable

m1<-lm(mpg ~ cyl+disp+hp+drat+wt+qsec+factor(vs)+factor(am)+gear+carb, data = mtcars)
summary(m1)
## 
## Call:
## lm(formula = mpg ~ cyl + disp + hp + drat + wt + qsec + factor(vs) + 
##     factor(am) + gear + carb, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4506 -1.6044 -0.1196  1.2193  4.6271 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)  
## (Intercept)      12.30337   18.71788   0.657   0.5181  
## cyl              -0.11144    1.04502  -0.107   0.9161  
## disp              0.01334    0.01786   0.747   0.4635  
## hp               -0.02148    0.02177  -0.987   0.3350  
## drat              0.78711    1.63537   0.481   0.6353  
## wt               -3.71530    1.89441  -1.961   0.0633 .
## qsec              0.82104    0.73084   1.123   0.2739  
## factor(vs)1       0.31776    2.10451   0.151   0.8814  
## factor(am)Manual  2.52023    2.05665   1.225   0.2340  
## gear              0.65541    1.49326   0.439   0.6652  
## carb             -0.19942    0.82875  -0.241   0.8122  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.65 on 21 degrees of freedom
## Multiple R-squared:  0.869,  Adjusted R-squared:  0.8066 
## F-statistic: 13.93 on 10 and 21 DF,  p-value: 3.793e-07

El valor R-Squared (0.869) muestra que nuestro modelo solo cubre el 86.90% de la varianza, por lo que este modelo está calificado para el ajuste.

Del resumen anterior, vemos que ninguna de las variables son buenos predictores de MPG con respecto al valor p (más de 0.05)

Selección de variables paso a paso

Construimos el siguiente comando para tomar una decisión sobre las variables a incluir:

library(MASS)
fit <- lm(mpg ~ cyl+disp+hp+drat+wt+qsec+factor(vs)+factor(am)+gear+carb, data = mtcars)
summary(fit)
## 
## Call:
## lm(formula = mpg ~ cyl + disp + hp + drat + wt + qsec + factor(vs) + 
##     factor(am) + gear + carb, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4506 -1.6044 -0.1196  1.2193  4.6271 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)  
## (Intercept)      12.30337   18.71788   0.657   0.5181  
## cyl              -0.11144    1.04502  -0.107   0.9161  
## disp              0.01334    0.01786   0.747   0.4635  
## hp               -0.02148    0.02177  -0.987   0.3350  
## drat              0.78711    1.63537   0.481   0.6353  
## wt               -3.71530    1.89441  -1.961   0.0633 .
## qsec              0.82104    0.73084   1.123   0.2739  
## factor(vs)1       0.31776    2.10451   0.151   0.8814  
## factor(am)Manual  2.52023    2.05665   1.225   0.2340  
## gear              0.65541    1.49326   0.439   0.6652  
## carb             -0.19942    0.82875  -0.241   0.8122  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.65 on 21 degrees of freedom
## Multiple R-squared:  0.869,  Adjusted R-squared:  0.8066 
## F-statistic: 13.93 on 10 and 21 DF,  p-value: 3.793e-07

#el mejor modelo

mejor_modelo <- step(fit, direction = "both")
## Start:  AIC=70.9
## mpg ~ cyl + disp + hp + drat + wt + qsec + factor(vs) + factor(am) + 
##     gear + carb
## 
##              Df Sum of Sq    RSS    AIC
## - cyl         1    0.0799 147.57 68.915
## - factor(vs)  1    0.1601 147.66 68.932
## - carb        1    0.4067 147.90 68.986
## - gear        1    1.3531 148.85 69.190
## - drat        1    1.6270 149.12 69.249
## - disp        1    3.9167 151.41 69.736
## - hp          1    6.8399 154.33 70.348
## - qsec        1    8.8641 156.36 70.765
## <none>                    147.49 70.898
## - factor(am)  1   10.5467 158.04 71.108
## - wt          1   27.0144 174.51 74.280
## 
## Step:  AIC=68.92
## mpg ~ disp + hp + drat + wt + qsec + factor(vs) + factor(am) + 
##     gear + carb
## 
##              Df Sum of Sq    RSS    AIC
## - factor(vs)  1    0.2685 147.84 66.973
## - carb        1    0.5201 148.09 67.028
## - gear        1    1.8211 149.40 67.308
## - drat        1    1.9826 149.56 67.342
## - disp        1    3.9009 151.47 67.750
## - hp          1    7.3632 154.94 68.473
## <none>                    147.57 68.915
## - qsec        1   10.0933 157.67 69.032
## - factor(am)  1   11.8359 159.41 69.384
## + cyl         1    0.0799 147.49 70.898
## - wt          1   27.0280 174.60 72.297
## 
## Step:  AIC=66.97
## mpg ~ disp + hp + drat + wt + qsec + factor(am) + gear + carb
## 
##              Df Sum of Sq    RSS    AIC
## - carb        1    0.6855 148.53 65.121
## - gear        1    2.1437 149.99 65.434
## - drat        1    2.2139 150.06 65.449
## - disp        1    3.6467 151.49 65.753
## - hp          1    7.1060 154.95 66.475
## <none>                    147.84 66.973
## - factor(am)  1   11.5694 159.41 67.384
## - qsec        1   15.6830 163.53 68.200
## + factor(vs)  1    0.2685 147.57 68.915
## + cyl         1    0.1883 147.66 68.932
## - wt          1   27.3799 175.22 70.410
## 
## Step:  AIC=65.12
## mpg ~ disp + hp + drat + wt + qsec + factor(am) + gear
## 
##              Df Sum of Sq    RSS    AIC
## - gear        1     1.565 150.09 63.457
## - drat        1     1.932 150.46 63.535
## <none>                    148.53 65.121
## - disp        1    10.110 158.64 65.229
## - factor(am)  1    12.323 160.85 65.672
## - hp          1    14.826 163.35 66.166
## + carb        1     0.685 147.84 66.973
## + factor(vs)  1     0.434 148.09 67.028
## + cyl         1     0.414 148.11 67.032
## - qsec        1    26.408 174.94 68.358
## - wt          1    69.127 217.66 75.350
## 
## Step:  AIC=63.46
## mpg ~ disp + hp + drat + wt + qsec + factor(am)
## 
##              Df Sum of Sq    RSS    AIC
## - drat        1     3.345 153.44 62.162
## - disp        1     8.545 158.64 63.229
## <none>                    150.09 63.457
## - hp          1    13.285 163.38 64.171
## + gear        1     1.565 148.53 65.121
## + cyl         1     1.003 149.09 65.242
## + factor(vs)  1     0.645 149.45 65.319
## + carb        1     0.107 149.99 65.434
## - factor(am)  1    20.036 170.13 65.466
## - qsec        1    25.574 175.67 66.491
## - wt          1    67.572 217.66 73.351
## 
## Step:  AIC=62.16
## mpg ~ disp + hp + wt + qsec + factor(am)
## 
##              Df Sum of Sq    RSS    AIC
## - disp        1     6.629 160.07 61.515
## <none>                    153.44 62.162
## - hp          1    12.572 166.01 62.682
## + drat        1     3.345 150.09 63.457
## + gear        1     2.977 150.46 63.535
## + cyl         1     2.447 150.99 63.648
## + factor(vs)  1     1.121 152.32 63.927
## + carb        1     0.011 153.43 64.160
## - qsec        1    26.470 179.91 65.255
## - factor(am)  1    32.198 185.63 66.258
## - wt          1    69.043 222.48 72.051
## 
## Step:  AIC=61.52
## mpg ~ hp + wt + qsec + factor(am)
## 
##              Df Sum of Sq    RSS    AIC
## - hp          1     9.219 169.29 61.307
## <none>                    160.07 61.515
## + disp        1     6.629 153.44 62.162
## + carb        1     3.227 156.84 62.864
## + drat        1     1.428 158.64 63.229
## - qsec        1    20.225 180.29 63.323
## + cyl         1     0.249 159.82 63.465
## + factor(vs)  1     0.249 159.82 63.466
## + gear        1     0.171 159.90 63.481
## - factor(am)  1    25.993 186.06 64.331
## - wt          1    78.494 238.56 72.284
## 
## Step:  AIC=61.31
## mpg ~ wt + qsec + factor(am)
## 
##              Df Sum of Sq    RSS    AIC
## <none>                    169.29 61.307
## + hp          1     9.219 160.07 61.515
## + carb        1     8.036 161.25 61.751
## + disp        1     3.276 166.01 62.682
## + cyl         1     1.501 167.78 63.022
## + drat        1     1.400 167.89 63.042
## + gear        1     0.123 169.16 63.284
## + factor(vs)  1     0.000 169.29 63.307
## - factor(am)  1    26.178 195.46 63.908
## - qsec        1   109.034 278.32 75.217
## - wt          1   183.347 352.63 82.790
summary(mejor_modelo)
## 
## Call:
## lm(formula = mpg ~ wt + qsec + factor(am), data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -3.4811 -1.5555 -0.7257  1.4110  4.6610 
## 
## Coefficients:
##                  Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        9.6178     6.9596   1.382 0.177915    
## wt                -3.9165     0.7112  -5.507 6.95e-06 ***
## qsec               1.2259     0.2887   4.247 0.000216 ***
## factor(am)Manual   2.9358     1.4109   2.081 0.046716 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.459 on 28 degrees of freedom
## Multiple R-squared:  0.8497, Adjusted R-squared:  0.8336 
## F-statistic: 52.75 on 3 and 28 DF,  p-value: 1.21e-11

Se encontró el mejor modelo con el AIC, al menor valor elegido se le considera para el análisis siguiente:

Del modelo lineal anterior, vemos:

Hipótesis Nula: El modelo no es válido

Hipótesis Alternante: el modelo es válido

Decisión: El valor p =0.0000=1.21e^-11<0.05. Se rechaza Ho.

Conclusión: A un nivel de significancia del 5%, existe evidencia estadística para rechazar H0, es decir, muestra que la diferencia en la media es significativa y no es casual. El modelo es válido.

El valor R-Squared (0.8497 muestra que nuestro modelo solo cubre el 84.97% de la varianza, por lo que este modelo está calificado para el ajuste.

La ecuación de regresión

mpg =1 9.6178 + 3.9165 *wt + 1.2259 *qsec + 2.9358 *factor(am)

Variable: wt(peso (1000lbras)

# Planteamiento de hipótesis:

# HO: La variable PESO NO influye en el modelo

# H1: La variable PESO SÍ influye en el modelo

# P value = 0000, alfa = 0.05

# P value < alfa. Rechazo Ho , con un nivel de significancia al 5% hay evidencia EStadística para afirmar que la variable Peso influye en la cantidad de millas por galón del automóvil.

Variable: qsec(1/4 milla de tiempo (Tiempo que se demora el carro en recorrer 1/4 de milla))

# Planteamiento de hipótesis:

# HO: La variable Tiempo NO influye en el modelo

# H1: La variable Tiempo SÍ influye en el modelo

# P value = 0000, alfa = 0.05

# P value < alfa. Rechazo Ho , con un nivel de significancia al 5% hay evidencia EStadística para afirmar que la variable Tiempo influye en la cantidad de millas por galón del automóvil.

Variable: factor(AM) am = Trasmisión (0=automático, 1=manual)

# Planteamiento de hipótesis:

# HO: La variable AM NO influye en el modelo

# H1: La variable AM SÍ influye en el modelo

# P value = 0000, alfa = 0.05

# P value < alfa. Rechazo Ho , con un nivel de significancia al 5% hay evidencia EStadística para afirmar que la variable AM influye en la cantidad de millas por galón del automóvil.

# INTERPRETACIÓN DEL COEFICIENTE

Mpg =1 9.6178 - 3.9165 *wt + 1.2259 *qsec + 2.9358 *factor(am)

WT

Por cada mil libras del peso del automóvil, disminuye en 3.9165 las millas por galón, en promedio, manteniendo constante las demás variables.

step <- stepAIC(fit, direction="both", trace=FALSE)
summary(step)$coeff
##                   Estimate Std. Error   t value     Pr(>|t|)
## (Intercept)       9.617781  6.9595930  1.381946 1.779152e-01
## wt               -3.916504  0.7112016 -5.506882 6.952711e-06
## qsec              1.225886  0.2886696  4.246676 2.161737e-04
## factor(am)Manual  2.935837  1.4109045  2.080819 4.671551e-02
summary(step)$r.squared
## [1] 0.8496636

#########################################################

PARTICIÓN DE LOS DATOS A TRAIN Y TEST

library(caret)
## Warning: package 'caret' was built under R version 4.2.2
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.2.2
## Loading required package: lattice
library(caTools)
## Warning: package 'caTools' was built under R version 4.2.2
library(ROCR)
## Warning: package 'ROCR' was built under R version 4.2.2
set.seed(123)
indx <- createDataPartition(mtcars$mpg, p = 0.8, list = FALSE)
train <- mtcars[indx, ]
test <- mtcars[-indx, ]

# Splitting dataset
split <- sample.split(mtcars, SplitRatio = 0.7)
split
##  [1] FALSE FALSE FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE
train_reg <- subset(mtcars, split == "TRUE")
test_reg <- subset(mtcars, split == "FALSE")
# Training model
logistic_model <- glm(vs~ wt + disp,    data = train_reg,   family = "binomial")
logistic_model
## 
## Call:  glm(formula = vs ~ wt + disp, family = "binomial", data = train_reg)
## 
## Coefficients:
## (Intercept)           wt         disp  
##    -0.09383      2.44801     -0.03502  
## 
## Degrees of Freedom: 19 Total (i.e. Null);  17 Residual
## Null Deviance:       27.53 
## Residual Deviance: 12.11     AIC: 18.11
# Summary
summary(logistic_model)
## 
## Call:
## glm(formula = vs ~ wt + disp, family = "binomial", data = train_reg)
## 
## Deviance Residuals: 
##     Min       1Q   Median       3Q      Max  
## -1.8926  -0.2406   0.3729   0.4356   1.7376  
## 
## Coefficients:
##             Estimate Std. Error z value Pr(>|z|)  
## (Intercept) -0.09383    3.34607  -0.028   0.9776  
## wt           2.44801    2.03549   1.203   0.2291  
## disp        -0.03502    0.01719  -2.038   0.0415 *
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## (Dispersion parameter for binomial family taken to be 1)
## 
##     Null deviance: 27.526  on 19  degrees of freedom
## Residual deviance: 12.115  on 17  degrees of freedom
## AIC: 18.115
## 
## Number of Fisher Scoring iterations: 6

la variable vs es una variable categórica que indica si un automóvil tiene un motor de 8 cilindros (vs = 1) o un motor de menos de 8 cilindros (vs = 0). Por lo tanto, vs es la respuesta o la variable dependiente en el modelo.

 # INTERPRETACIONES DE LAS VARIABLES

 # Variable: wt=el peso del vehículo en libras.

 # Planteamiento de hipótesis:

 # HO: La variable WT NO influye en el modelo

 # H1: La variable WT influye en el modelo

 # P value =0.2291>0.05 NO SE RECHAZA H0 con un nivel de significancia al 5% hay evidencia estadística para afirmar que la variable WT NO influye en el modelo. Es decir, el peso del vehículo en libras no influye en el modelo del motor que tiene mas o menos de 8 cilindros.

# Planteamiento de hipótesis:

 # HO: La variable DISP NO influye en el modelo

 # H1: La variable DISP influye en el modelo

 # P value =0.0415<0.05. SE RECHAZA H0 con un nivel de significancia al 5% hay evidencia estadística para afirmar que la variable DISP influye en el modelo. Es decir, el desplazamiento del motor en pulgadas cúbica no influye en el modelo del motor que tiene mas o menos de 8 cilindros.

# INTERPRETACIÓN DEL COEFICIENTES

vs = -0.09383 +2.44801*wt - 0.03502*disp

WT

# 2.4480: Debido a que el coeficiente es positivo, observamos que al aumentar el peso del vehículo en libras, también aumenta la probabilidad de que un atomóvil tenga o o menos cilindros.

# e^2.4480=11.56519

exp(2.4480)
## [1] 11.56519

Donde la variable wt representa el peso del vehículo en libras, la interpretación de la función logística con la exponencial sería que para un aumento en una unidad en wt, el logaritmo de la odds ratio (proporción de éxitos) aumenta en 11.56519 veces

DISP: representa el desplazamiento del motor en pulgadas cúbica

- 0.03502: Debido a que es negativo es mas probable probabilidad de tener un motor de 8 cilindros (vs = 1).

# e^- 0.03502:=11.56519

a<-exp(- 0.03502)
#0.9655861
100*(1-a)
## [1] 3.44139

Vemos que el 3.44139% es menos probable que un motor de un atomóvil tenga 8 cillindros.

El coefciente para la variable DISP es -0.03502, lo que significa que por cada unidad que aumenta “disp”, los odds de tener un motor de 8 cilindros (vs=1) en lugar de tener un motor con menos de 8 clindros (vs=0) disminuyen en un factor de exp(-0.03502)=0.9655861. Esto puede ser interpretado como una reducción del 3.5% en la probabilidad de tener un motor de 8 clindros por cada unidad dque aumenta disp.

# Predict test data based on model
predict_reg <- predict(logistic_model,test_reg, type = "response")
predict_reg
##         Mazda RX4     Mazda RX4 Wag        Datsun 710           Valiant 
##       0.671728620       0.792532070       0.858500506       0.621458049 
##        Merc 450SE        Merc 450SL       Merc 450SLC Chrysler Imperial 
##       0.552252683       0.349202492       0.377506333       0.081656227 
##       AMC Javelin        Camaro Z28  Pontiac Firebird      Lotus Europa 
##       0.088474624       0.049637717       0.009093294       0.569341509
# Changing probabilities
predict_reg <- ifelse(predict_reg >0.5, 1, 0)
# Evaluating model accuracy
# using confusion matrix
table(test_reg$vs, predict_reg)
##    predict_reg
##     0 1
##   0 6 3
##   1 0 3

La tabla muestra que hay 4 casos en los que el modelo predijo correctamente que un automóvil tenía un motor de menos de 8 cilindros (vs = 0), y se identificaron correctamente como vs = 0 en el conjunto de prueba. También hay 2 casos en los que el modelo predijo correctamente que un automóvil tenía un motor de 8 cilindros (vs = 1), y se identificaron correctamente como vs = 1 en el conjunto de prueba.

Sin embargo, hay 3 casos en los que el modelo predijo incorrectamente que un automóvil tenía un motor de 8 cilindros (vs = 1), pero en realidad tenía un motor de menos de 8 cilindros (vs = 0) en el conjunto de prueba.

missing_classerr <- mean(predict_reg != test_reg$vs)
print(paste('Accuracy =', 1 - missing_classerr))
## [1] "Accuracy = 0.75"

valor de 75 % significa que el modelo logístico predijo correctamente el 75% de los casos en el conjunto de datos de prueba. En otras palabras, el modelo clasificó correctamente el 75% de los vehículos en el conjunto de datos de prueba como tener un motor de 8 cilindros o tener un motor de menos de 8 cilindros. Este es un valor de precisión comúnmente utilizado para medir el rendimiento de un modelo de clasificación.