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.