INTRODUCCIÓN

En este análisis, se utiliza un conjunto de datos relacionados con las ventas de vehículos en Colombia, el cual contiene información sobre las unidades vendidas, la edad de los vehículos y el valor de ventas asociado. La base de datos analizada está compuesta por un total de 9 observaciones o registros individuales, y cada uno de ellos incluye información distribuida en 5 variables que representan distintas características o atributos observados, como el tipo de vehículo, el año, las unidades vendidas, entre otros. En total, esta base de datos tiene 45 datos.

OBJETIVO

El objetivo de este análisis es construir un modelo de regresión lineal para predecir el valor de ventas de vehículos en función de las unidades vendidas, evaluar la precisión del modelo y explorar la relación entre estas dos variables. Además, se analizará la normalidad de los residuos y se utilizarán gráficos para ilustrar la relación entre las variables.

Analisis de datos

Carga de datos

Se carga el archivo de datos desde una fuente remota. El conjunto de datos contiene tres variables principales: unidades vendidas, edad del vehículo y valor de ventas.

# Instalar solo si no está instalada
# install.packages("readxl")

library(readxl)

# Ver archivos disponibles en el entorno
list.files()
##  [1] "Base Datos Vehiculos Colombia.csv" "boseto 1 proyect a rrrr.R"        
##  [3] "boseto 1 proyect a.R"              "boseto 1 proyect.RData"           
##  [5] "boseto 1 proyecto kamikase.RData"  "boseto 1 proyecto kamikase.Rmd"   
##  [7] "de momento.Rmd"                    "de-momento.html"                  
##  [9] "de-momento.Rmd"                    "project.Rproj"                    
## [11] "rsconnect"                         "terminadooooooooooo.RData"        
## [13] "vehiculos de colombia nueva.xlsx"  "vehiculos de colombia.xlsx"
# Leer el archivo Excel
vehiculos <- read_excel("vehiculos de colombia.xlsx")

# Corregir nombres de columnas: reemplazar espacios por puntos
names(vehiculos) <- make.names(names(vehiculos))

# Crear variable de valor de ventas simulada
vehiculos$Valor_Ventas <- vehiculos$Unidades.Vendidas * 50000000  # 50 millones por unidad

Exploracion inicial

## # A tibble: 6 × 6
##     Año Trimestre Marca     Unidades.Vendidas Color  Valor_Ventas
##   <dbl> <chr>     <chr>                 <dbl> <chr>         <dbl>
## 1  2020 I         Toyota                 1500 Blanco  75000000000
## 2  2020 I         Renault                1200 Gris    60000000000
## 3  2020 I         Chevrolet              1100 Negro   55000000000
## 4  2021 II        Toyota                 1600 Blanco  80000000000
## 5  2021 II        Renault                1300 Gris    65000000000
## 6  2021 II        Chevrolet              1150 Rojo    57500000000

Análisis Gráfico y Correlación:

# Matriz de dispersión para variables numéricas
pairs(vehiculos[sapply(vehiculos, is.numeric)])

# Matriz de correlación
cor(vehiculos[sapply(vehiculos, is.numeric)], use = "complete.obs")
##                         Año Unidades.Vendidas Valor_Ventas
## Año               1.0000000         0.3073744    0.3073744
## Unidades.Vendidas 0.3073744         1.0000000    1.0000000
## Valor_Ventas      0.3073744         1.0000000    1.0000000

MODELO DE REGRESIÓN LINEAL:

El modelo de regresión lineal permite analizar la relación entre una variable independiente (Unidades_Vendidas) y una dependiente (Valor_Ventas), con la ecuación:

\[ Valor\_Ventas = \beta_0 + \beta_1 \cdot Unidades\_Vendidas + \varepsilon \]

# Ajustar el modelo de regresión
modelo <- lm(Valor_Ventas ~ Unidades.Vendidas, data = vehiculos)

# Resumen del modelo
summary(modelo)
## Warning in summary.lm(modelo): essentially perfect fit: summary may be
## unreliable
## 
## Call:
## lm(formula = Valor_Ventas ~ Unidades.Vendidas, data = vehiculos)
## 
## Residuals:
##        Min         1Q     Median         3Q        Max 
## -4.396e-06 -1.902e-06 -1.133e-06 -1.041e-06  1.177e-05 
## 
## Coefficients:
##                    Estimate Std. Error   t value Pr(>|t|)    
## (Intercept)       2.035e-05  1.153e-05 1.764e+00    0.121    
## Unidades.Vendidas 5.000e+07  8.486e-09 5.892e+15   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 5.072e-06 on 7 degrees of freedom
## Multiple R-squared:      1,  Adjusted R-squared:      1 
## F-statistic: 3.471e+31 on 1 and 7 DF,  p-value: < 2.2e-16

Visualización del Modelo:

# Gráfico de dispersión con línea de regresión
plot(vehiculos$Unidades.Vendidas, vehiculos$Valor_Ventas,
     xlab = "Unidades Vendidas", ylab = "Valor de Ventas (Simulado)",
     main = "Regresión Lineal: Unidades vs Valor")
abline(modelo, col = "blue", lwd = 2)

PREDICCIÓN Y PRECISIÓN:

# Nuevos valores para predicción
nuevos_datos <- data.frame(Unidades.Vendidas = seq(1000, 2000, 100))

# Predicciones
predict(modelo, nuevos_datos)
##       1       2       3       4       5       6       7       8       9      10 
## 5.0e+10 5.5e+10 6.0e+10 6.5e+10 7.0e+10 7.5e+10 8.0e+10 8.5e+10 9.0e+10 9.5e+10 
##      11 
## 1.0e+11

Diagnóstico del modelo:

residuos vs valores ajustados
residuos <- rstandard(modelo)
valores_ajustados <- fitted(modelo)

plot(valores_ajustados, residuos,
     xlab = "Valores Ajustados", ylab = "Residuos",
     main = "Diagnóstico: Homocedasticidad")
abline(h = 0, col = "red", lty = 2)

Normalidad de los Residuos:

# Gráfico QQ
qqnorm(residuos)
qqline(residuos)

Diagnóstico de regresión lineal

Las gráficas utilizadas son:

Residuals vs Fitted: Este gráfico muestra los residuos en el eje vertical y los valores ajustados del modelo en el eje horizontal. Su objetivo principal es evaluar la linealidad, la constancia de la varianza y la posible presencia de valores atípicos. En este caso, los residuos se distribuyen de manera aleatoria alrededor de la línea cero, lo cual sugiere que la relación entre las variables es adecuadamente lineal. Además, al formar una franja horizontal uniforme, indica que la varianza de los errores es constante. Finalmente, al no observarse puntos que se alejen excesivamente del patrón general, no se evidencian valores atípicos significativos.

Normal Q-Q: El gráfico Q-Q (cuantil-cuantil) permite comparar la distribución de los residuos del modelo con una distribución normal teórica. Si los datos siguen una distribución normal, los puntos se alinearán a lo largo de una línea diagonal de referencia. En este análisis, los puntos caen razonablemente cerca de dicha línea, lo que respalda la validez del supuesto de normalidad en los residuos.

Scale-Location: Este gráfico representa los valores ajustados en el eje X y la raíz cuadrada de los residuos estandarizados en el eje Y. Su propósito es verificar el supuesto de homocedasticidad, es decir, que la dispersión de los residuos sea uniforme a lo largo de todos los valores ajustados. La gráfica muestra que los puntos están distribuidos de manera regular alrededor de una línea casi horizontal, lo que indica que la varianza de los errores se mantiene constante.

Residuals vs Leverage: Este gráfico permite identificar observaciones que puedan influir de forma significativa en el modelo. Cada punto representa una observación, con el apalancamiento (influencia potencial en el ajuste del modelo) en el eje X y los residuos estandarizados en el eje Y. El análisis muestra que no existen puntos con alto apalancamiento ni residuos extremos, lo que sugiere que ninguna observación ejerce una influencia desproporcionada sobre el modelo.

# Mostrar gráficas de diagnóstico del modelo
par(mfrow = c(2, 2))  # Organiza 4 gráficos en una sola ventana
plot(modelo)

#Forma graphical
anova_result <- anova(modelo)
## Warning in anova.lm(modelo): ANOVA F-tests on an essentially perfect fit are
## unreliable
anova_result
## Analysis of Variance Table
## 
## Response: Valor_Ventas
##                   Df     Sum Sq    Mean Sq    F value    Pr(>F)    
## Unidades.Vendidas  1 8.9306e+20 8.9306e+20 3.4715e+31 < 2.2e-16 ***
## Residuals          7 0.0000e+00 0.0000e+00                         
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
if (anova_result$'Pr(>F)'[1] < 0.05) {
  cat("El modelo de regresión es estadísticamente significativo (p < 0.05).")
} else {
  cat("El modelo de regresión NO es estadísticamente significativo (p ≥ 0.05).")
}
## El modelo de regresión es estadísticamente significativo (p < 0.05).

CONCLUSIÓN

Se construyó un modelo de regresión lineal simple con el objetivo de predecir el valor de ventas de vehículos a partir del número de unidades vendidas. El modelo identificó una relación positiva entre ambas variables, lo cual indica que, en general, a mayor número de unidades vendidas, mayor es el valor de las ventas.

Sin embargo, al evaluar los supuestos del modelo, específicamente la normalidad de los residuos, se detectaron problemas. El gráfico Q-Q de los residuos mostró una desviación considerable de la línea teórica de normalidad, lo cual indica que los residuos no se distribuyen normalmente. Este resultado fue respaldado por la prueba de Shapiro-Wilk, que no confirmó la hipótesis de normalidad.

-Este incumplimiento del supuesto de normalidad puede deberse a:

-La presencia de valores atípicos o extremos.

-Un tamaño de muestra pequeño.

-La posible omisión de variables relevantes que afectan el valor de las ventas.

-Una relación no completamente lineal entre las variables.

Dado este resultado, el modelo pierde validez en términos de inferencia estadística (por ejemplo, para construir intervalos de confianza o realizar pruebas de hipótesis precisas). Aunque la relación lineal puede seguir siendo útil a nivel descriptivo, se recomienda mejorar el modelo incorporando más variables predictoras, transformando variables o explorando modelos no lineales.

Este análisis demuestra la importancia no solo de ajustar un modelo, sino también de verificar que se cumplan sus supuestos fundamentales antes de utilizarlo para la toma de decisiones.