# ============================
# Cargar librerías
# ============================
library(dplyr)
library(knitr)
datos <- read.csv("D:/Data/database.csv", header = TRUE, sep = ";", dec = ".")
which(names(datos) == "Annual.Fuel.Cost..FT1.")
## [1] 43
which(names(datos) == "Engine.Displacement")
## [1] 12
x <- as.numeric(as.character(datos[, 12]))
## Warning: NAs introducidos por coerción
y <- as.numeric(as.character(datos[, 43]))
datos_filtrados <- na.omit(data.frame(x = x, y = y))
datos_filtrados <- subset(datos_filtrados, x > 0 & y > 0)
modelo <- lm(y ~ x, data = datos_filtrados)
plot(datos_filtrados$x, datos_filtrados$y,
col = 4, pch = 7,
main = "Regresión Lineal: Cilindrada (L) vs Costo Anual de Combustible",
xlab = "Cilindrada del motor (Engine.Displacement)",
ylab = "Costo anual de combustible (USD)")
abline(modelo, col = "green", lwd = 2)
legend("topright", legend = "Línea de regresión", col = "green", lwd = 2, bty = "n")
R <- cor(datos_filtrados$x, datos_filtrados$y)
R2 <- R^2 * 100
b <- modelo$coefficients[1]
m <- modelo$coefficients[2]
ecuacion <- paste("c_anual = ", round(b, 4), " + ", round(m, 4), " * Engine.Displacement")
cat("=== ECUACIÓN DEL MODELO LINEAL ===\n")
## === ECUACIÓN DEL MODELO LINEAL ===
cat(ecuacion, "\n\n")
## c_anual = 949.4405 + 306.2989 * Engine.Displacement
Tabla_resumen <- data.frame(
Variable = c("Cilindrada del motor (L)", "Costo anual de combustible"),
Tipo = c("Independiente", "Dependiente"),
Correlación_Pearson = c("", round(R * 100, 2)),
R2_Porcentaje = c("", round(R2, 2)),
Intercepto = c("", round(b, 4)),
Pendiente = c("", round(m, 4)),
Ecuación = c("", ecuacion)
)
kable(Tabla_resumen, format = "markdown",
caption = "Tabla: Modelo de regresión lineal entre la cilindrada (L) del motor y el costo anual de combustible")
| Variable | Tipo | Correlación_Pearson | R2_Porcentaje | Intercepto | Pendiente | Ecuación | |
|---|---|---|---|---|---|---|---|
| Cilindrada del motor (L) | Independiente | ||||||
| (Intercept) | Costo anual de combustible | Dependiente | 78.16 | 61.09 | 949.4405 | 306.2989 | c_anual = 949.4405 + 306.2989 * Engine.Displacement |
nuevo_valor_x <- 3.5
prediccion <- 949.4405 + 306.2989 * nuevo_valor_x
cat("=== PREDICCIÓN MANUAL ===\n")
## === PREDICCIÓN MANUAL ===
cat("Para una cilindrada de", nuevo_valor_x, "L, el costo anual estimado es:",
round(prediccion, 2), "USD\n")
## Para una cilindrada de 3.5 L, el costo anual estimado es: 2021.49 USD
Entre la cilindrada del motor (L) y el costo anual del combustible (USD) existe una relación de tipo lineal cuyo modelo matemático es:
c_anual = 949.4405 + 306.2989 * Engine.Displacement
La cilindrada explica el 61.04% del comportamiento
del costo anual. El resto (38.96%) se debe a otros factores
externos.
Para una cilindrada de 3.5 L, el modelo estima un costo
anual de 2021.49 USD.
which(names(datos) == "Annual.Fuel.Cost..FT1.")
## [1] 43
which(names(datos) == "City.MPG..FT1.")
## [1] 18
x <- as.numeric(as.character(datos[, 18]))
## Warning: NAs introducidos por coerción
y <- as.numeric(as.character(datos[, 43]))
datos_filtrados <- na.omit(data.frame(x = x, y = y))
datos_filtrados <- subset(datos_filtrados, x > 0 & y > 0)
datos_filtrados$log_x <- log(datos_filtrados$x)
modelo_log <- lm(y ~ log_x, data = datos_filtrados)
a <- coef(modelo_log)[1]
b <- coef(modelo_log)[2]
R <- cor(datos_filtrados$log_x, datos_filtrados$y)
R2 <- summary(modelo_log)$r.squared * 100
x_seq <- seq(min(datos_filtrados$x), max(datos_filtrados$x), length.out = 200)
y_pred <- a + b * log(x_seq)
plot(datos_filtrados$x, datos_filtrados$y,
col = "blue", pch = 16, cex = 1.3,
main = "Regresión Logarítmica: MPG ciudad vs Costo Anual",
xlab = "MPG ciudad",
ylab = "Costo anual de combustible (USD)")
lines(x_seq, y_pred, col = "red", lwd = 2)
legend("topright",
legend = c(paste0("R = ", round(R, 4)),
paste0("R² = ", round(R2, 2), "%")),
col = c("red", "red"), lwd = 2, bty = "n")
ecuacion <- paste("c_anual = ", round(a, 4), " + ", round(b, 4), "* log(mpg_c)")
cat("=== ECUACIÓN DEL MODELO LOGARÍTMICO ===\n")
## === ECUACIÓN DEL MODELO LOGARÍTMICO ===
cat(ecuacion, "\n")
## c_anual = 6958.696 + -1753.2849 * log(mpg_c)
nuevo_valor_mpg <- 24
prediccion_log <- 1948.5551 + 949.4405 * log(nuevo_valor_mpg)
cat("=== PREDICCIÓN MANUAL — MODELO LOGARÍTMICO ===\n")
## === PREDICCIÓN MANUAL — MODELO LOGARÍTMICO ===
cat("Para un rendimiento de", nuevo_valor_mpg, "MPG en ciudad, el costo anual estimado es:",
round(prediccion_log, 2), "USD\n")
## Para un rendimiento de 24 MPG en ciudad, el costo anual estimado es: 4965.93 USD
Existe una relación de tipo logarítmica entre el MPG en ciudad y el costo anual del combustible, cuyo modelo es:
c_anual = 1948.5551 + 949.4405 * log(mpg_c)
El rendimiento en ciudad explica el 81.21% de la
variación en el costo anual. El resto se debe a otros factores como tipo
de motor, uso del vehículo, etc.
Para un rendimiento de 24 MPG, se espera un costo anual
de 4965.93 USD.