Grupo conformado por Andrés Sánchez, Juan Felipe Lopez, Matheo Sanchez

Introducción:

La regresión lineal es una herramienta estadística fundamental utilizada para modelar la relación entre una variable dependiente y una o más variables independientes. Su objetivo principal es identificar y cuantificar la influencia de las variables explicativas sobre la variable de respuesta, permitiendo hacer predicciones y evaluar tendencias en los datos.

El modelo de regresión lineal más sencillo es el de regresión lineal simple, que se expresa mediante la ecuación:

Y=β0+β1X+εY = \beta_0 + \beta_1 X + \varepsilon

donde YY es la variable dependiente, XX es la variable independiente, β0\beta_0 es el intercepto, β1\beta_1 es el coeficiente de regresión que mide el impacto de XX sobre YY, y ε\varepsilon es el término de error que captura la variabilidad no explicada por el modelo.

Cuando se incorporan múltiples variables independientes, el modelo se convierte en una regresión lineal múltiple, que se expresa como:

Y=β0+β1X1+β2X2+⋯+βnXn+εY = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n + \varepsilon

en donde cada XiX_i representa una variable independiente y su correspondiente coeficiente βi\beta_i indica el efecto de esa variable sobre la variable dependiente YY.

Para estimar los coeficientes del modelo, se emplea el método de mínimos cuadrados ordinarios (MCO), que busca minimizar la suma de los cuadrados de las diferencias entre los valores observados y los valores predichos por el modelo. Esta minimización permite obtener la mejor recta de ajuste que describe la relación entre las variables de manera eficiente.

Uno de los aspectos clave en la regresión lineal es la validación de sus supuestos. Entre ellos se encuentran la linealidad entre las variables, la independencia de los errores, la homocedasticidad (varianza constante de los errores) y la normalidad de los errores. Si estos supuestos no se cumplen, la interpretación de los coeficientes y la confiabilidad de las predicciones pueden verse afectadas.

El análisis de regresión lineal es ampliamente utilizado en diversas disciplinas, como la economía, la ingeniería, la biología y las ciencias sociales. En el ámbito académico y profesional, se aplica para entender relaciones causa-efecto, identificar factores determinantes y optimizar procesos con base en datos históricos y tendencias observadas.

En este contexto, el presente trabajo tiene como finalidad evaluar nuestros conocimientos en regresión lineal y ponerlos a prueba mediante la aplicación de sus principios a un conjunto de datos específico. A través del análisis de los resultados obtenidos, podremos reforzar nuestra comprensión de los conceptos estadísticos y mejorar nuestra capacidad para interpretar modelos y tomar decisiones basadas en evidencia.

Punto 1:

  1. Con base a las gráficas se observa que la participación en el mercado (X1) tiene una fuerte relación lineal positiva con la utilidad, mientras que el descuento (X2) no muestra una relación significativa. Esto indica que en un modelo de regresión, X1 podría ser un predictor mas relevante de la utilidad que X2
parcial1 <- readxl::read_excel("parcial1.xlsx")
require(ggplot2)
library(gridExtra)

# Gráfico de dispersión de Utilidad vs Descuento concedido (X2)
g1 = ggplot(parcial1, aes(x=descuento, y=utilidad)) +geom_point(color="blue") +  # Puntos en azul
  theme_bw() + 
  geom_smooth(method = "lm", se=FALSE, color="red") +  # Línea de regresión en rojo
  labs(title = paste("Correlación =", round(cor(parcial1$descuento, parcial1$utilidad), 4)),
       x="Descuento concedido (%)", 
       y="Utilidad (millones de $)") 

# Gráfico de dispersión de Utilidad vs Participación en el mercado (X1)
g2 = ggplot(parcial1, aes(x=Mercado, y=utilidad)) +
  geom_point(color="blue") + 
  theme_bw() + 
  geom_smooth(method = "lm", se=FALSE, color="red") +
  labs(title = paste("Correlación =", round(cor(parcial1$Mercado, parcial1$utilidad), 4)),
       x="Participación en el mercado (%)", 
       y="Utilidad (millones de $)") 

# Mostrar gráficos en la misma fila
grid.arrange(g1, g2, nrow = 1)

El modelo de regresión lineal esperado es: Y=240.133+4.739X1-0.376X2. Donde Y= utilidad, X1 = participación en el mercado (%) y x2 = descuento concedido (%). Entonces, el modelo de regresión indica que la participación en el mercado (X1) tiene un impacto positivo en la utilidad mientras que el descuento concedido no tiene efecto relevante. Es decir si se aumenta un 1% en la participación en el mercado, aumenta la utilidad en 4.739 millones de dolares. Por otro lado, si se sube el 1% en el descuento concedido reduce la utilidad en 0.376 millones de dolares

# Ajustar el modelo de regresión lineal múltiple
modelo <- lm(utilidad ~ Mercado + descuento, data = parcial1)

# Mostrar resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = utilidad ~ Mercado + descuento, data = parcial1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -30.567 -13.460  -4.608  12.914  40.956 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  240.133     49.694   4.832  0.00189 **
## Mercado        4.739      1.335   3.551  0.00934 **
## descuento     -0.376      3.045  -0.123  0.90519   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.78 on 7 degrees of freedom
## Multiple R-squared:  0.6537, Adjusted R-squared:  0.5548 
## F-statistic: 6.608 on 2 and 7 DF,  p-value: 0.02443

Se tiene en cuenta el analisis realizado anteriormente en el punto B. Además, cuando el mercado =0% y el descuento =0%, se espera una utilidad de 240.133 millones de dolares

Teniendo en cuenta el valor de prueba 0.05, podemos evaluar el resultado. El valor que nos da el modelo es 0.0244<0.05, por lo que confirmamos que el modelo . Es estadísiticamente significativo. Esto se debe a que rechazamos la hipótesis de que ninguna variable influye en Y (descuento y mercado). Como el valor es menor que 0.05, se concluye que al menos una de las variables tiene impacto en la utilidad. Esto quiere decir que hay menos del 2.44% de probabilidad de que los resutlados sean por casualidad.

# Ajustar el modelo de regresión
modelo <- lm(utilidad ~ Mercado + descuento, data = parcial1)

# Mostrar el resumen del modelo (aquí aparece el p-valor de la prueba F)
summary(modelo)
## 
## Call:
## lm(formula = utilidad ~ Mercado + descuento, data = parcial1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -30.567 -13.460  -4.608  12.914  40.956 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  240.133     49.694   4.832  0.00189 **
## Mercado        4.739      1.335   3.551  0.00934 **
## descuento     -0.376      3.045  -0.123  0.90519   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.78 on 7 degrees of freedom
## Multiple R-squared:  0.6537, Adjusted R-squared:  0.5548 
## F-statistic: 6.608 on 2 and 7 DF,  p-value: 0.02443
# Extraer el p-valor de la prueba F
p_valor_f <- summary(modelo)$fstatistic
p_valor <- pf(p_valor_f[1], p_valor_f[2], p_valor_f[3], lower.tail = FALSE)
cat("P-valor de la prueba F:", p_valor, "\n")
## P-valor de la prueba F: 0.02442749
# Evaluación de la significancia global del modelo
if (p_valor < 0.05) {
  cat("El modelo es estadísticamente significativo (rechazamos H0).")
} else {
  cat("El modelo NO es estadísticamente significativo (no se rechaza H0).")
}
## El modelo es estadísticamente significativo (rechazamos H0).

Realizando la prueba de a=0.05 (5%)

  • Mercado: 0.00933, es signifivatica porque es menor que 0.05

  • Descuento: 0.90519, no es significativa porque es mucho mayor que 0.05, por lo que se podría eliminar del modelo. Esto se debe a que es 90.5% probable que sea por azar su efecto

# Ajustar el modelo de regresión
modelo <- lm(utilidad ~ Mercado + descuento, data = parcial1)

# Obtener el resumen del modelo (incluye los p-valores de cada variable)
summary(modelo)
## 
## Call:
## lm(formula = utilidad ~ Mercado + descuento, data = parcial1)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -30.567 -13.460  -4.608  12.914  40.956 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)   
## (Intercept)  240.133     49.694   4.832  0.00189 **
## Mercado        4.739      1.335   3.551  0.00934 **
## descuento     -0.376      3.045  -0.123  0.90519   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 25.78 on 7 degrees of freedom
## Multiple R-squared:  0.6537, Adjusted R-squared:  0.5548 
## F-statistic: 6.608 on 2 and 7 DF,  p-value: 0.02443
# Extraer los p-valores de los coeficientes del modelo
p_valores <- summary(modelo)$coefficients[,4]
cat("P-valor de Mercado:", p_valores["Mercado"], "\n")
## P-valor de Mercado: 0.009336619
cat("P-valor de Descuento:", p_valores["descuento"], "\n")
## P-valor de Descuento: 0.9051922
# Evaluar la significancia de cada variable
if (p_valores["Mercado"] < 0.05) {
  cat("La variable 'Mercado' es significativa y debe mantenerse en el modelo.\n")
} else {
  cat("La variable 'Mercado' NO es significativa y podría eliminarse.\n")
}
## La variable 'Mercado' es significativa y debe mantenerse en el modelo.
if (p_valores["descuento"] < 0.05) {
  cat("La variable 'descuento' es significativa y debe mantenerse en el modelo.\n")
} else {
  cat("La variable 'descuento' NO es significativa y podría eliminarse.\n")
}
## La variable 'descuento' NO es significativa y podría eliminarse.

El modelo tiene una buena capacidad de predicción de la utilidad, aunque no perfecta. El 80.85% de la variabilidad de la utilidad. Se puede explicar con las variables mercado y descuento (teniendo en cuenta que después se debe eliminar el descuento por lo que se explicó en el punto E)

# Ajustar el modelo de regresión múltiple
modelo <- lm(utilidad ~ Mercado + descuento, data = parcial1)

# Extraer R^2
r_cuadrado <- summary(modelo)$r.squared

# Calcular el coeficiente de correlación múltiple (R)
r_multiple <- sqrt(r_cuadrado)

# Mostrar los resultados
cat("R^2 (Coeficiente de determinación):", r_cuadrado, "\n")
## R^2 (Coeficiente de determinación): 0.6537467
cat("Coeficiente de correlación múltiple (R):", r_multiple, "\n")
## Coeficiente de correlación múltiple (R): 0.808546
# Interpretación
if (r_multiple > 0.8) {
  cat("El modelo tiene una fuerte relación con la utilidad.\n")
} else if (r_multiple > 0.5) {
  cat("El modelo tiene una relación moderada con la utilidad.\n")
} else {
  cat("El modelo tiene una relación débil con la utilidad.\n")
}
## El modelo tiene una fuerte relación con la utilidad.

R^2 = 0.6537. Esto significa que el 65.37% de la variabilidad de la utilidad es explicada por las variables del modelo. Concluimos que el modelo tiene una capacidad moderada de predicción.

# Ajustar el modelo de regresión
modelo <- lm(utilidad ~ Mercado + descuento, data = parcial1)

# Obtener el coeficiente de determinación R^2
r_cuadrado <- summary(modelo)$r.squared

# Mostrar el resultado
cat("Coeficiente de determinación (R^2):", r_cuadrado, "\n")
## Coeficiente de determinación (R^2): 0.6537467
# Interpretación del R^2
if (r_cuadrado > 0.8) {
  cat("El modelo explica muy bien la variabilidad de la utilidad.\n")
} else if (r_cuadrado > 0.5) {
  cat("El modelo explica moderadamente la variabilidad de la utilidad.\n")
} else {
  cat("El modelo explica pobremente la variabilidad de la utilidad.\n")
}
## El modelo explica moderadamente la variabilidad de la utilidad.

Al eliminar la variable descuento, el modelo final es: Y=234.588+4.698*Mercado. Al comparar este modelo con el anterior R^2 casi no cambió (de 0.6537 a 0.653) Lo que confirma que el descuento no aporta valor. Se concluye que el modelo final es útil, simple y eficiente, ya que solo usa una variable significativa.

  • 234.588 es el intercepto: Si la empresa no tuviera participación en el mercado, su utlidad sería de 234.588 millones de dolares.
  • El 4.698 es la pendiente: Por cada 1% adicional de participación en le mercado, la utilidad aumenta en 4.698 millones de dolares

Conclusión punto 1:

Si una empresa quiere aumentar su utilidad, debe enfocarse en aumenta su participacion en el mercado, ya que está directamente relacionada con sus ganancias.

Punto 2:

Para este problema el modelo que se utilizará es el siguiente:

  • Y= 23.03885 - 1.21388X_1 + 0.04284X_2 + 0.18289X_3.
library(readxl)

# Importar datos desde el archivo Excel (ya que mencionaste que usaste "import dataset", este paso puede omitirse)
datos <- read_excel("paricalpt2.xlsx")

# Ajustar el modelo de regresión lineal múltiple
modelo <- lm(Y ~ X_1 + X_2 + X_3, data = datos)

# Resumen del modelo
summary(modelo)
## 
## Call:
## lm(formula = Y ~ X_1 + X_2 + X_3, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.3011 -0.9608 -0.2925  1.0013  3.1938 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 23.03885    4.35332   5.292 7.29e-05 ***
## X_1         -1.21388    0.23970  -5.064 0.000115 ***
## X_2          0.04284    0.04676   0.916 0.373139    
## X_3          0.18298    0.10113   1.809 0.089216 .  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.491 on 16 degrees of freedom
## Multiple R-squared:  0.6995, Adjusted R-squared:  0.6432 
## F-statistic: 12.42 on 3 and 16 DF,  p-value: 0.0001899
  • X_1 es altamente significativo ya que p<0.05
  • X_2 no es tan significativo (p>0.05) lo que no tiene un impacto claro sobre Y
  • X_3 es marginalmente significativo (p<0.1) lo que signifca que puede tener un efecto leve pero no concluyente

Se entiende que si una variable evaluada en a=0.05 esta probando que tenga un 5% de probabilidad de que afecte el resultado cuando es un p<5% significa que no es tan probable que sea por azar, es decir, se confía en el impacto que tiene dicha variable en Y

El nuevo modelo es : Y=26.1204-1.0379X_1. Se interpreta que cuando X_1 = 0, el tiempo estimado de actividad deportiva es aproximadamente 26.12. Esto indica que el aumento en una unidad de X_1 reduce el tiempo de actividad deportiva en 1.31 horas

library(readxl)


datos <- read_excel("C:/Users/andre/OneDrive/Escritorio/Estadistica/paricalpt2.xlsx")

# Ajustar el modelo sin variables no significativas (solo X_1)

modelo_refinado <- lm(Y ~ X_1, data = datos)

# Resumen del nuevo modelo

summary(modelo_refinado)
## 
## Call:
## lm(formula = Y ~ X_1, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -2.5787 -0.6846 -0.5405  1.4213  3.4977 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  26.1204     4.1316   6.322 5.87e-06 ***
## X_1          -1.3079     0.2393  -5.465 3.44e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1.573 on 18 degrees of freedom
## Multiple R-squared:  0.6239, Adjusted R-squared:  0.603 
## F-statistic: 29.86 on 1 and 18 DF,  p-value: 3.436e-05

Con la primera prueba vemos que la linealidad se cumple por lo que es confiable el nuevo modelo #DE la segunda pruba de homocedasticidad se ve que los residuos no muestran un patrón claro, pero hay cierta dispericón uniforme. Lo que muestra que hay ciertas dudas con esta prueba . Puede que los residuos no sean perfectamente normales. Sin embargo, con la prueba que realizamos en la C, el modelo matematico nuevo tiene una certeza del (R^2) 62.39%. Demostrando que el modelo explica dicho porcentaje de la vairbalidad de Y a partir de X1

Prueba 1: Linealidad: Este supuesto indica la relación entre Y y X_1 debe ser líneal

plot(datos$X_1, datos$Y, main = "Relacion entre X_1 y Y", 
     xlab = "X_1", ylab = "Y", pch = 19)
abline(modelo_refinado, col = "red", lwd = 2)

Prueba 2: Homocedasticidad: Este supuesto es para comprobar que los residuos tienen varianza constante

Prueba 3: Normalidad de residuos: Este supuesto verifica que si los residuos siguen una distribucion aproximadamente normal, el supuesto se cumple.

hist(residuals(modelo_refinado), main = "Histograma de los residuos", 
     xlab = "Residuos", col = "lightblue", border = "black")

qqnorm(residuals(modelo_refinado))
qqline(residuals(modelo_refinado), col = "red", lwd = 2)

Para el interrogante: ¿Cuánto tiempo por semana invierte un estudiante de una universidad local en alguna práctica deportiva?. Se puede responder que solo se tiene que remplazar X_1 que es el numero de creditos matriculados

Para el interrogante de ¿El rendimiento académico afecta esta práctica? podemos decir que X_2 siendo la variable de promedio acumulado, no tiene mucha relevancia por la prueba de a=0.05. Teniendo en cuenta que el r^2 es de 62.39%, si se podría explicar cuantas horas semanales se le dedica al deporte. Además, es facil de interpretar ya que solo usa una variable (x_1). Sin embargo, no incluye todas la variables necesarias para determinar la cantidad de horas exactas por semana, como la motivación personal ,el acceso a instalaciones deportivas o carga laboral.

Conclusiones punto 2:

  • El tiempo semanal dedicado al deporte varía según X_1, y la tendencia muestra que a mayor X_1​, menor es el tiempo invertido.

  • El rendimiento académico parece influir en la práctica deportiva, pero no se puede concluir que sea la única causa.

  • El modelo es útil, pero no es perfecto para predicciones exactas.

Punto 3:

Punto a)

library(readxl)
Base_de_datos_Parcial_3 <- read_excel("C:/Users/andre/OneDrive/Escritorio/Estadistica/punto3.xlsx")
## 
## Call:
## lm(formula = `PIB a precios corrientes (Miles de millones de pesos)` ~ 
##     `Azúcar (Toneladas)` + `Cemento Gris (Toneladas)` + `Lingotes de acero (Toneladas)` + 
##         `Producción de carbón (Toneladas)` + `Vehículos ensamblados (Unidades)`, 
##     data = Base_de_datos_Parcial_3)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -54350 -11581   -933   9944  70161 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)   
## (Intercept)                         3.643e+05  2.177e+05   1.674  0.13805   
## `Azúcar (Toneladas)`               -5.554e-01  7.209e-01  -0.770  0.46629   
## `Cemento Gris (Toneladas)`         -1.877e-01  3.675e-01  -0.511  0.62515   
## `Lingotes de acero (Toneladas)`    -1.780e+01  6.002e+00  -2.966  0.02092 * 
## `Producción de carbón (Toneladas)`  2.616e+02  7.183e+01   3.642  0.00827 **
## `Vehículos ensamblados (Unidades)`  2.797e+01  1.148e+01   2.437  0.04494 * 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 43090 on 7 degrees of freedom
## Multiple R-squared:  0.9533, Adjusted R-squared:   0.92 
## F-statistic:  28.6 on 5 and 7 DF,  p-value: 0.0001611

Punto B

  • Representa el valor estimado del PIB cuando todas las variables explicativas son cero.

  • Aunque no tiene una interpretación económica relevante en este caso, indica el punto base del PIB.

Análisis de variables:

Azúcar:

  • Un incremento de 1 tonelada en la producción de azúcar reduce el PIB en 0.55 unidades (miles de millones de pesos). Esto sugiere que la producción de azúcar podría no estar directamente vinculada al crecimiento económico del país o su efecto ser indirecto.

Cemento gris:

  • Un aumento de 1 tonelada en la producción de cemento gris reduce el PIB en 0.19 unidades. Aunque el cemento es esencial en la construcción, su producción puede no reflejar un impacto inmediato en el crecimiento económico.

Lingotes de acero:

  • Un incremento de 1 tonelada en la producción de lingotes de acero disminuye el PIB en 17.8 unidades. A pesar de su importancia industrial, podría estar vinculado a sectores de menor productividad o industrias con menor valor agregado.

Producción de carbón:

  • Un aumento de 1 tonelada en la producción de carbón incrementa el PIB en 261.6 unidades. Esto indica que el carbón es un sector clave, posiblemente debido a su papel en la exportación y generación de energía.

Vehículos ensamblados:

  • Un aumento de 1 unidad en la producción de vehículos ensamblados eleva el PIB en 27.97 unidades. La industria automotriz, al ser un sector de alto valor agregado, genera empleo y contribuye significativamente al crecimiento económico.

Punto c)

  • El coeficiente de correlación múltiple obtenido es R = 0.976391, lo que refleja una relación muy fuerte entre las variables predictoras (azúcar, cemento gris, lingotes de acero, producción de carbón y vehículos ensamblados) y el PIB a precios corrientes.

  • Dado que R está muy próximo a 1, se evidencia una fuerte relación lineal entre el PIB y las variables explicativas.

    modelo <- lm(`PIB a precios corrientes (Miles de millones de pesos)` ~ 
                   `Azúcar (Toneladas)` + `Cemento Gris (Toneladas)` + 
                   `Lingotes de acero (Toneladas)` + `Producción de carbón (Toneladas)` + 
                   `Vehículos ensamblados (Unidades)`, 
                 data = Base_de_datos_Parcial_3)
    
    R2 <- summary(modelo)$r.squared
    R <- sqrt(R2)
    cat("El coeficiente de correlación múltiple R es:", R, "\n")
    ## El coeficiente de correlación múltiple R es: 0.976391

Punto D)

  • El 95.33% de la variabilidad del PIB es explicada por las variables independientes incluidas en el modelo.

  • El 4.67% restante se debe a factores no considerados en el modelo, como otras variables económicas o influencias externas.

modelo <- lm(`PIB a precios corrientes (Miles de millones de pesos)` ~ 
              `Azúcar (Toneladas)` + `Cemento Gris (Toneladas)` + 
              `Lingotes de acero (Toneladas)` + `Producción de carbón (Toneladas)` + 
              `Vehículos ensamblados (Unidades)`, 
            data = Base_de_datos_Parcial_3)

summary(modelo)$r.squared
## [1] 0.9533394

Punto e)

Interpretación:

  • Si el p-valor es menor a 0.10, la variable es significativa y contribuye a explicar el PIB

  • Si el p-valor es mayor o igual a 0.10, la variable no es significativa y debería considerarse su eliminación

Análisis de variables:

Azúcar:

  • Cada tonelada adicional de azúcar reduciría el PIB en aproximadamente 0.5554 unidades.

Cemento gris:

  • Cada tonelada adicional de cemento gris disminuiría el PIB en 0.1877 unidades.

Lingotes de acero

  • Un aumento de una tonelada en la producción de lingotes de acero se asocia con una reducción de 17.80 unidades en el PIB. Esta variable es estadísticamente significativa y debe permanecer en el modelo.

Producción de carbón:

  • Cada tonelada adicional de carbón está vinculada a un incremento de 261.6 unidades en el PIB. Es una variable altamente significativa en la predicción del PIB y, por lo tanto, esencial en el modelo.

Vehículos ensamblados:

  • Cada vehículo ensamblado adicional incrementa el PIB en 27.97 unidades. Dado su impacto positivo y su significancia estadística, esta variable debe mantenerse en el modelo.

    Punto F)

    Lingotes de acero:

    • Presentan un coeficiente de -19.141, lo que implica que un incremento en su producción se asocia con una ligera disminución del PIB, manteniendo constantes las demás variables.

    Producción de carbón:

    • Con un coeficiente de 239.330, cada tonelada adicional de carbón aumenta el PIB en 239.33 mil millones de pesos.

    Vehículos ensamblados:

    • Su coeficiente de 25.723 indica que la producción de un vehículo adicional incrementa el PIB en 25.72 mil millones de pesos

    Conclusión

    • La producción de carbón es la variable con mayor impacto positivo en el PIB.

    • La producción de lingotes de acero tiene un efecto negativo en el PIB, posiblemente debido a factores externos como costos de producción o dinámicas de exportación.

    • Todas las variables del modelo final son estadísticamente significativas, por lo que no es necesario excluir ninguna.

modelo_nuevo <- lm(`PIB a precios corrientes (Miles de millones de pesos)` ~ 
                   `Lingotes de acero (Toneladas)` + `Producción de carbón (Toneladas)` + 
                   `Vehículos ensamblados (Unidades)`, 
                   data = Base_de_datos_Parcial_3)
summary(modelo_nuevo)
## 
## Call:
## lm(formula = `PIB a precios corrientes (Miles de millones de pesos)` ~ 
##     `Lingotes de acero (Toneladas)` + `Producción de carbón (Toneladas)` + 
##         `Vehículos ensamblados (Unidades)`, data = Base_de_datos_Parcial_3)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
## -54020 -13956   -677  18116  69856 
## 
## Coefficients:
##                                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)                        220570.405 131029.645   1.683 0.126594    
## `Lingotes de acero (Toneladas)`       -19.141      5.270  -3.632 0.005468 ** 
## `Producción de carbón (Toneladas)`    239.330     42.116   5.683 0.000301 ***
## `Vehículos ensamblados (Unidades)`     25.723      9.051   2.842 0.019339 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 40140 on 9 degrees of freedom
## Multiple R-squared:  0.9479, Adjusted R-squared:  0.9306 
## F-statistic: 54.63 on 3 and 9 DF,  p-value: 4.242e-06

Punto 4:

library(readxl)
kia_picanto_cali <- readxl::read_excel("C:/Users/andre/OneDrive/Escritorio/Estadistica/kia_picanto_cali.xlsx")

Análisis:

  • Relación negativa: La línea de regresión (en rojo) muestra una correlación inversa entre los kilómetros recorridos y el precio del vehículo. Es decir, a mayor kilometraje, el valor del automóvil tiende a reducirse.

  • Distribución de los datos: Se aprecia una alta concentración de vehículos con pocos kilómetros y precios elevados. Sin embargo, también existen algunos casos atípicos con valores significativamente más altos o bajos en relación con su kilometraje.

library(ggplot2)
ggplot(kia_picanto_cali, aes(x = modelo, y = precio)) +
  geom_point(color = "blue", alpha = 0.6) +
  geom_smooth(method = "lm", color = "red", se = TRUE) +
  scale_x_continuous(breaks = seq(min(kia_picanto_cali$modelo, na.rm = TRUE), max(kia_picanto_cali$modelo, na.rm = TRUE), by = 1)) +
  scale_y_continuous(labels = scales::comma) +
  labs(title = "Relacion entre Modelo y Precio",
       x = "Modelo",
       y = "Precio") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

Análisis:

  • Relación positiva: La línea de regresión (en rojo) evidencia una correlación directa entre el año del modelo y el precio del vehículo. En otras palabras, los modelos más recientes tienden a tener un valor más elevado.
  • Variabilidad en los datos: Si bien la tendencia general es clara, los precios presentan cierta fluctuación, especialmente en los modelos más nuevos (2020-2024), donde la dispersión es más pronunciada.
  • Valores atípicos: Se identifican algunos casos inusuales, como un vehículo antiguo con un precio excepcionalmente alto y ciertos modelos recientes con valores más bajos de lo esperado.
ggplot(kia_picanto_cali, aes(x = antigüedad, y = precio)) +
  geom_point(color = "blue", alpha = 0.6) +
  geom_smooth(method = "lm", color = "red") +
  scale_x_continuous(breaks = seq(0, 20, by = 2),  # Asegurar que llegue a 20
                     limits = c(0, 20),
                     labels = scales::comma) + 
  scale_y_continuous(labels = scales::comma) +  
  labs(title = "Relacion entre Antiguedad y Precio",
       x = "Antiguedad",
       y = "Precio") +
  theme_minimal()

Análisis:

  • Relación negativa: La línea de regresión (en rojo) muestra una fuerte correlación inversa entre la antigüedad del vehículo y su precio. En otras palabras, a medida que el vehículo envejece, su valor tiende a disminuir.
  • Valores atípicos: Se detecta un caso inusual de un vehículo con muchos años de antigüedad pero un precio significativamente alto, lo que podría deberse a factores como un bajo kilometraje o ser una edición especial.

c. Proponer un modelo de regresión lineal múltiple e interpretar los resultados (betas)

library(ggplot2)
modelo <- lm(precio ~ kilo + modelo + antigüedad, data = kia_picanto_cali)
summary(modelo)
## 
## Call:
## lm(formula = precio ~ kilo + modelo + antigüedad, data = kia_picanto_cali)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -12191622  -3151596   -613316   2597327  36968158 
## 
## Coefficients: (1 not defined because of singularities)
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -4.701e+09  3.610e+08 -13.024   <2e-16 ***
## kilo         1.816e+01  1.166e+01   1.557    0.122    
## modelo       2.350e+06  1.785e+05  13.165   <2e-16 ***
## antigüedad          NA         NA      NA       NA    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5686000 on 117 degrees of freedom
## Multiple R-squared:  0.7253, Adjusted R-squared:  0.7206 
## F-statistic: 154.4 on 2 and 117 DF,  p-value: < 2.2e-16

Análisis:

  • Kilometraje: La estimación indica que, en promedio, cada kilómetro adicional se asocia con un incremento de 18,160 pesos en el precio del vehículo. No obstante, dado que el valor p es 0.122, esta relación no es estadísticamente significativa, lo que implica que no hay suficiente evidencia para afirmar que el kilometraje influye en el precio.

  • Año del modelo: Se observa que por cada año más reciente, el precio del vehículo aumenta en aproximadamente 2.35 millones de pesos. Como el valor p es menor a 0.05, esta variable tiene un impacto claro y significativo en el precio.

library(caret)

control <- trainControl(method = "cv", number = 10)

modelo_cv <- train(precio ~ kilo + modelo, 
                   data = kia_picanto_cali, 
                   method = "lm", 
                   trControl = control)

print(modelo_cv)
## Linear Regression 
## 
## 120 samples
##   2 predictor
## 
## No pre-processing
## Resampling: Cross-Validated (10 fold) 
## Summary of sample sizes: 108, 109, 108, 107, 108, 108, ... 
## Resampling results:
## 
##   RMSE     Rsquared  MAE    
##   5311568  0.726897  3977396
## 
## Tuning parameter 'intercept' was held constant at a value of TRUE

Análisis del modelo:

  • Coeficiente de determinación (R² = 0.7260808):
    Este valor indica que el modelo explica el 74.4% de la variabilidad en el precio del vehículo. Un R² cercano a 1 representa un mejor ajuste, por lo que este resultado sugiere un buen desempeño del modelo, aunque aún hay un 25.6% de variabilidad que no está explicada.

  • Error cuadrático medio (RMSE = 5,517,913):
    Representa el error promedio en la predicción del precio. En este caso, el modelo tiene una desviación de aproximadamente 5.34 millones de pesos. Por ejemplo, si el precio real de un Kia Picanto es 40 millones de pesos, el modelo podría predecir un valor entre 34.66 y 45.34 millones.

  • Error absoluto medio (MAE = 4,089,897):
    Indica que, en promedio, la diferencia absoluta entre los valores reales y los predichos es de 3.96 millones de pesos. Esto significa que, para un auto con un precio de 25 millones, el modelo podría estimar valores entre 21.04 y 28.96 millones.

En general, el modelo tiene un buen ajuste, pero aún presenta un margen de error considerable en la predicción de precios.

f. Discutir potenciales usos del modelo como herramienta practica (como monetizar los resultados de este modelo).

library(shiny)

ui <- fluidPage(
  titlePanel("Estimador de Precio de Kia Picanto"),
  sidebarLayout(
    sidebarPanel(
      numericInput("kilometros", "Kilómetros recorridos:", value = 50000),
      numericInput("modelo", "Año del modelo:", value = 2020),
      actionButton("calcular", "Calcular Precio")
    ),
    mainPanel(
      textOutput("precio_estimado")
    )
  )
)

server <- function(input, output) {
  modelo <- lm(precio ~ kilo + modelo, data = kia_picanto_cali)
  
  precio <- eventReactive(input$calcular, {
    nuevo_auto <- data.frame(Kilometros = input$kilo, Modelo = input$modelo)
    predict(modelo, newdata = nuevo_auto)
  })
  
  output$precio_estimado <- renderText({
    paste("El precio estimado del auto es:", round(precio(), 2), "COP")
  })
}

shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents

La estimación precisa del precio de un vehículo usado es crucial tanto para compradores como para vendedores. Factores como el kilometraje y el año del modelo impactan directamente en la depreciación del automóvil, por lo que contar con una herramienta confiable para calcular su valor puede ser de gran utilidad para concesionarios, aseguradoras, plataformas de compra y venta, así como para usuarios individuales.

Para responder a esta necesidad, se ha desarrollado un modelo de regresión lineal basado en datos reales de vehículos Kia Picanto, el cual permite predecir su precio en función del kilometraje recorrido y el año de fabricación. Para hacer esta funcionalidad accesible, se ha implementado una aplicación web interactiva utilizando Shiny en R, donde los usuarios pueden ingresar las características de su auto y obtener una estimación del precio en tiempo real.

Este modelo tiene aplicaciones prácticas en distintos sectores de la industria automotriz. Los concesionarios pueden utilizarlo para fijar precios de venta, las aseguradoras para calcular el valor asegurado y las entidades financieras para evaluar montos de financiamiento. Además, su integración en plataformas digitales podría generar oportunidades de monetización a través de consultas pagas, suscripciones o la venta de datos analíticos sobre tendencias de depreciación.

Gracias a su precisión y accesibilidad, esta herramienta contribuye a mejorar la transparencia y eficiencia en el mercado de autos usados, facilitando la toma de decisiones informadas para todos los actores involucrados.