# Cargando la base de datos "data"
data <- read.csv(url("https://raw.githubusercontent.com/geovannychoez/prueba/master/MTCars.csv"), header = TRUE)

# Cargando la base de datos "data2"
data2 <- read.csv(url("https://raw.githubusercontent.com/geovannychoez/prueba/master/UsedCars.csv"), header = TRUE)

Análisis de regresión lineal múltiple

Matriz gráfica de correlaciones inicial

Base de datos “data”

Utilizamos summary() para obtener un resumen de las variables cuantitativas, que incluye la media, mediana, valores mínimo y máximo, y los cuartiles.

# Resumen estadístico de las variables cuantitativas
summary(data)
##      car_ID      symboling         CarName            fueltype        
##  Min.   :  1   Min.   :-2.0000   Length:205         Length:205        
##  1st Qu.: 52   1st Qu.: 0.0000   Class :character   Class :character  
##  Median :103   Median : 1.0000   Mode  :character   Mode  :character  
##  Mean   :103   Mean   : 0.8341                                        
##  3rd Qu.:154   3rd Qu.: 2.0000                                        
##  Max.   :205   Max.   : 3.0000                                        
##   aspiration         doornumber          carbody           drivewheel       
##  Length:205         Length:205         Length:205         Length:205        
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##  enginelocation       wheelbase        carlength        carwidth    
##  Length:205         Min.   : 86.60   Min.   :141.1   Min.   :60.30  
##  Class :character   1st Qu.: 94.50   1st Qu.:166.3   1st Qu.:64.10  
##  Mode  :character   Median : 97.00   Median :173.2   Median :65.50  
##                     Mean   : 98.76   Mean   :174.0   Mean   :65.91  
##                     3rd Qu.:102.40   3rd Qu.:183.1   3rd Qu.:66.90  
##                     Max.   :120.90   Max.   :208.1   Max.   :72.30  
##    carheight       curbweight    enginetype        cylindernumber    
##  Min.   :47.80   Min.   :1488   Length:205         Length:205        
##  1st Qu.:52.00   1st Qu.:2145   Class :character   Class :character  
##  Median :54.10   Median :2414   Mode  :character   Mode  :character  
##  Mean   :53.72   Mean   :2556                                        
##  3rd Qu.:55.50   3rd Qu.:2935                                        
##  Max.   :59.80   Max.   :4066                                        
##    enginesize     fuelsystem          boreratio        stroke     
##  Min.   : 61.0   Length:205         Min.   :2.54   Min.   :2.070  
##  1st Qu.: 97.0   Class :character   1st Qu.:3.15   1st Qu.:3.110  
##  Median :120.0   Mode  :character   Median :3.31   Median :3.290  
##  Mean   :126.9                      Mean   :3.33   Mean   :3.255  
##  3rd Qu.:141.0                      3rd Qu.:3.58   3rd Qu.:3.410  
##  Max.   :326.0                      Max.   :3.94   Max.   :4.170  
##  compressionratio   horsepower       peakrpm        citympg     
##  Min.   : 7.00    Min.   : 48.0   Min.   :4150   Min.   :13.00  
##  1st Qu.: 8.60    1st Qu.: 70.0   1st Qu.:4800   1st Qu.:19.00  
##  Median : 9.00    Median : 95.0   Median :5200   Median :24.00  
##  Mean   :10.14    Mean   :104.1   Mean   :5125   Mean   :25.22  
##  3rd Qu.: 9.40    3rd Qu.:116.0   3rd Qu.:5500   3rd Qu.:30.00  
##  Max.   :23.00    Max.   :288.0   Max.   :6600   Max.   :49.00  
##    highwaympg        price      
##  Min.   :16.00   Min.   : 5118  
##  1st Qu.:25.00   1st Qu.: 7788  
##  Median :30.00   Median :10295  
##  Mean   :30.75   Mean   :13277  
##  3rd Qu.:34.00   3rd Qu.:16503  
##  Max.   :54.00   Max.   :45400

En caso de que desees hacer el análisis solo para las variables cuantitativas, podemos seleccionar dichas columnas utilizando select_if() de dplyr o seleccionándolas manualmente.

# Instalar y cargar la librería dplyr si no está instalada
# install.packages("dplyr")
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Filtrar solo las columnas cuantitativas
data_quantitative <- data %>%
  select(car_ID, symboling, wheelbase, carlength, carwidth, carheight, curbweight, 
         enginesize, boreratio, stroke, compressionratio, horsepower, peakrpm, 
         citympg, highwaympg, price)

# Ver resumen solo de las cuantitativas
summary(data_quantitative)
##      car_ID      symboling         wheelbase        carlength    
##  Min.   :  1   Min.   :-2.0000   Min.   : 86.60   Min.   :141.1  
##  1st Qu.: 52   1st Qu.: 0.0000   1st Qu.: 94.50   1st Qu.:166.3  
##  Median :103   Median : 1.0000   Median : 97.00   Median :173.2  
##  Mean   :103   Mean   : 0.8341   Mean   : 98.76   Mean   :174.0  
##  3rd Qu.:154   3rd Qu.: 2.0000   3rd Qu.:102.40   3rd Qu.:183.1  
##  Max.   :205   Max.   : 3.0000   Max.   :120.90   Max.   :208.1  
##     carwidth       carheight       curbweight     enginesize      boreratio   
##  Min.   :60.30   Min.   :47.80   Min.   :1488   Min.   : 61.0   Min.   :2.54  
##  1st Qu.:64.10   1st Qu.:52.00   1st Qu.:2145   1st Qu.: 97.0   1st Qu.:3.15  
##  Median :65.50   Median :54.10   Median :2414   Median :120.0   Median :3.31  
##  Mean   :65.91   Mean   :53.72   Mean   :2556   Mean   :126.9   Mean   :3.33  
##  3rd Qu.:66.90   3rd Qu.:55.50   3rd Qu.:2935   3rd Qu.:141.0   3rd Qu.:3.58  
##  Max.   :72.30   Max.   :59.80   Max.   :4066   Max.   :326.0   Max.   :3.94  
##      stroke      compressionratio   horsepower       peakrpm    
##  Min.   :2.070   Min.   : 7.00    Min.   : 48.0   Min.   :4150  
##  1st Qu.:3.110   1st Qu.: 8.60    1st Qu.: 70.0   1st Qu.:4800  
##  Median :3.290   Median : 9.00    Median : 95.0   Median :5200  
##  Mean   :3.255   Mean   :10.14    Mean   :104.1   Mean   :5125  
##  3rd Qu.:3.410   3rd Qu.: 9.40    3rd Qu.:116.0   3rd Qu.:5500  
##  Max.   :4.170   Max.   :23.00    Max.   :288.0   Max.   :6600  
##     citympg        highwaympg        price      
##  Min.   :13.00   Min.   :16.00   Min.   : 5118  
##  1st Qu.:19.00   1st Qu.:25.00   1st Qu.: 7788  
##  Median :24.00   Median :30.00   Median :10295  
##  Mean   :25.22   Mean   :30.75   Mean   :13277  
##  3rd Qu.:30.00   3rd Qu.:34.00   3rd Qu.:16503  
##  Max.   :49.00   Max.   :54.00   Max.   :45400

Puedes calcular la correlación entre las variables cuantitativas y visualizarla con un gráfico de correlación.

# Calcular la matriz de correlación
cor_matrix <- cor(data_quantitative[, sapply(data_quantitative, is.numeric)])

# Instalar y cargar la librería corrplot si no está instalada
# install.packages("corrplot")
library(corrplot)
## corrplot 0.94 loaded
# Visualización de la matriz de correlación
corrplot(cor_matrix, method = "circle", type = "upper", tl.cex = 0.8)


#Base de datos “data2”

# Resumen estadístico de las variables cuantitativas
summary(data2)
##      Make              Model               Price               Year     
##  Length:1874        Length:1874        Min.   :   49000   Min.   :1988  
##  Class :character   Class :character   1st Qu.:  500000   1st Qu.:2015  
##  Mode  :character   Mode  :character   Median :  842500   Median :2017  
##                                        Mean   : 1718279   Mean   :2017  
##                                        3rd Qu.: 1908250   3rd Qu.:2019  
##                                        Max.   :35000000   Max.   :2022  
##    Kilometer        Fuel.Type         Transmission         Location        
##  Min.   :      0   Length:1874        Length:1874        Length:1874       
##  1st Qu.:  28020   Class :character   Class :character   Class :character  
##  Median :  48798   Mode  :character   Mode  :character   Mode  :character  
##  Mean   :  53178                                                           
##  3rd Qu.:  71000                                                           
##  Max.   :2000000                                                           
##     Color              Owner           Seller.Type           Engine         
##  Length:1874        Length:1874        Length:1874        Length:1874       
##  Class :character   Class :character   Class :character   Class :character  
##  Mode  :character   Mode  :character   Mode  :character   Mode  :character  
##                                                                             
##                                                                             
##                                                                             
##   Max.Power          Max.Torque         Drivetrain            Length    
##  Length:1874        Length:1874        Length:1874        Min.   :3099  
##  Class :character   Class :character   Class :character   1st Qu.:3985  
##  Mode  :character   Mode  :character   Mode  :character   Median :4360  
##                                                           Mean   :4282  
##                                                           3rd Qu.:4620  
##                                                           Max.   :5569  
##      Width          Height     Seating.Capacity Fuel.Tank.Capacity
##  Min.   :1475   Min.   :1213   Min.   :2.000    Min.   : 15.00    
##  1st Qu.:1695   1st Qu.:1485   1st Qu.:5.000    1st Qu.: 42.00    
##  Median :1770   Median :1544   Median :5.000    Median : 50.00    
##  Mean   :1768   Mean   :1589   Mean   :5.295    Mean   : 52.22    
##  3rd Qu.:1831   3rd Qu.:1671   3rd Qu.:5.000    3rd Qu.: 60.00    
##  Max.   :2220   Max.   :1995   Max.   :8.000    Max.   :105.00
# Instalar y cargar la librería dplyr si no está instalada
# install.packages("dplyr")
library(dplyr)

# Filtrar solo las columnas cuantitativas
data2_quantitative <- data2 %>%
  select(Price, Year, Kilometer, Length, Width, Height, Seating.Capacity, Fuel.Tank.Capacity)

# Ver resumen solo de las variables cuantitativas
summary(data2_quantitative)
##      Price               Year        Kilometer           Length    
##  Min.   :   49000   Min.   :1988   Min.   :      0   Min.   :3099  
##  1st Qu.:  500000   1st Qu.:2015   1st Qu.:  28020   1st Qu.:3985  
##  Median :  842500   Median :2017   Median :  48798   Median :4360  
##  Mean   : 1718279   Mean   :2017   Mean   :  53178   Mean   :4282  
##  3rd Qu.: 1908250   3rd Qu.:2019   3rd Qu.:  71000   3rd Qu.:4620  
##  Max.   :35000000   Max.   :2022   Max.   :2000000   Max.   :5569  
##      Width          Height     Seating.Capacity Fuel.Tank.Capacity
##  Min.   :1475   Min.   :1213   Min.   :2.000    Min.   : 15.00    
##  1st Qu.:1695   1st Qu.:1485   1st Qu.:5.000    1st Qu.: 42.00    
##  Median :1770   Median :1544   Median :5.000    Median : 50.00    
##  Mean   :1768   Mean   :1589   Mean   :5.295    Mean   : 52.22    
##  3rd Qu.:1831   3rd Qu.:1671   3rd Qu.:5.000    3rd Qu.: 60.00    
##  Max.   :2220   Max.   :1995   Max.   :8.000    Max.   :105.00
# Instalar y cargar librería corrplot si no está instalada
# install.packages("corrplot")
library(corrplot)

# Seleccionar las variables cuantitativas
data2_quantitative <- data2 %>%
  select(Price, Year, Kilometer, Length, Width, Height, Seating.Capacity, Fuel.Tank.Capacity)

# Calcular la matriz de correlación
cor_matrix <- cor(data2_quantitative, use = "complete.obs")

# Visualizar la matriz de correlación
corrplot(cor_matrix, method = "circle", type = "upper", 
         tl.col = "black", tl.srt = 45, 
         title = "Matriz de Correlación")

Matriz gráfica de correlaciones importantes (final)

Matriz de correlacion final de la base de datos data

# Instalar y cargar las librerías necesarias si aún no están instaladas
# install.packages("dplyr")
# install.packages("corrplot")
library(dplyr)
library(corrplot)

# Excluir columnas específicas y seleccionar solo las columnas numéricas
data_filtered <- data %>%
  select(-c("car_ID", "symboling", "carheight", "stroke", "compressionratio", "peakrpm"))

# Seleccionar solo las columnas cuantitativas restantes
data_quantitative_filtered <- data_filtered %>%
  select(where(is.numeric))

# Calcular la matriz de correlación
cor_matrix <- cor(data_quantitative_filtered, use = "complete.obs")

# Visualización de la matriz de correlación con valores de correlación
corrplot(cor_matrix, method = "circle", type = "upper", 
         tl.cex = 0.8,         # Tamaño del texto de las etiquetas
         addCoef.col = "black" # Añadir valores de correlación en negro
)

Analisis En la matriz de correlación de la base de datos data, se observa que price está altamente correlacionado positivamente con enginesize, horsepower, curbweight, carwidth y carlength. Esto indica que los vehículos con motores más grandes, mayor potencia, mayor peso y dimensiones más amplias tienden a tener precios más altos. La alta correlación con enginesize y horsepower sugiere que los vehículos más potentes son más caros. El peso y las dimensiones del vehículo también afectan el precio, ya que los modelos más grandes y pesados suelen costar más.

Matriz de correlacion final de la base de datos data2

# Instalar y cargar librería corrplot si no está instalada
# install.packages("corrplot")
library(corrplot)

# Seleccionar las variables cuantitativas
data2_quantitative <- data2 %>%
  select(Price, Length, Width, Fuel.Tank.Capacity)

# Calcular la matriz de correlación
cor_matrix <- cor(data2_quantitative, use = "complete.obs")

# Visualizar la matriz de correlación con valores de correlación
corrplot(cor_matrix, method = "circle", type = "upper", 
         tl.col = "black", tl.srt = 45, 
         addCoef.col = "black",  # Añadir valores de correlación
         title = "Matriz de Correlación")

Análisis

Al analizar la matriz de correlación para el conjunto de datos data2, observo que Price muestra una alta correlación positiva con Length, Width, y Fuel.Tank.Capacity. Esto sugiere que a medida que aumentan estas características del vehículo, su precio tiende a aumentar también. La alta correlación positiva con Length y Width indica que los vehículos más grandes suelen tener precios más altos. De manera similar, la relación con Fuel.Tank.Capacity refuerza la idea de que vehículos con una mayor capacidad de tanque de combustible también tienden a tener precios más elevados, posiblemente debido a la percepción de mayor valor en vehículos con capacidades de tanque superiores.

————————————————————————————————————————————————————————————————————————–

Análisis de regresión lineal múltiple

Para proceder con el análisis de regresión lineal múltiple, realizamos la selección de las variables dependientes (Y) e independientes (X) de las bases de datos “data” y “data2”, basándonos en las correlaciones mayores a 0.5 o menores a -0.5:

  1. Base de datos “data”:
    • Dependiente (Y): Price (Precio).
    • Independientes (X) seleccionadas por correlación alta (>|0.5|):
      • Curbweight (Peso en vacío): correlación fuerte con Price.
      • Enginesize (Tamaño del motor): alta correlación con Price.
      • Horsepower (Caballos de fuerza): correlación positiva con Price.
      • Estas variables tienen correlaciones mayores a 0.5 con el precio y son significativas.
  2. Base de datos “data2”:
    • Dependiente (Y): Price (Precio).
    • Independientes (X) seleccionadas por correlación alta (>|0.5|):
      • Length (Longitud del vehículo): correlación positiva con Price.
      • Width (Ancho del vehículo): correlación positiva con Price.
      • Fuel.Tank.Capacity (Capacidad del tanque de combustible): correlación positiva con Price.
      • Estas variables tienen correlaciones mayores a 0.5 con el precio y son significativas.

Ahora que tenemos identificadas las variables, estas pueden usarse para la construcción de modelos predictivos como la regresión lineal múltiple en ambos conjuntos de datos.


#Obtención inicial de resultados de la construcción de los modelos de Regresión Lineal Múltiple con las variables que tienen correlaciones dela base de datos

modelos de Regresión Lineal Múltiple

base de datos “data” Modelo de Regresión inicial

# Instalar y cargar las librerías necesarias si aún no están instaladas
# install.packages("dplyr")
# install.packages("car")
# install.packages("tidyr")  # Asegúrate de instalar tidyr si no está instalado

library(dplyr)
library(car)
## Cargando paquete requerido: carData
## 
## Adjuntando el paquete: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
library(tidyr)  # Cargar tidyr para usar drop_na()

# Filtrar las variables cuantitativas y eliminar filas con NA
data_cleaned_initial <- data %>%
  select(price, curbweight, enginesize, horsepower) %>%
  drop_na()

# Construir el modelo de regresión lineal múltiple inicial
modelo_data_inicial <- lm(price ~ curbweight + enginesize + horsepower, data = data_cleaned_initial)

# Mostrar el resumen del modelo inicial
summary(modelo_data_inicial)
## 
## Call:
## lm(formula = price ~ curbweight + enginesize + horsepower, data = data_cleaned_initial)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -9003  -1701    -24   1340  13760 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.346e+04  1.333e+03 -10.100  < 2e-16 ***
## curbweight   4.263e+00  9.065e-01   4.702 4.78e-06 ***
## enginesize   8.488e+01  1.276e+01   6.651 2.69e-10 ***
## horsepower   4.875e+01  1.070e+01   4.557 8.99e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3473 on 201 degrees of freedom
## Multiple R-squared:  0.8138, Adjusted R-squared:  0.811 
## F-statistic: 292.9 on 3 and 201 DF,  p-value: < 2.2e-16

Modelo de Regresión Final de la base de datos data

# Filtrar las variables relevantes y eliminar filas con NA
data_cleaned_final <- data %>%
  select(price, curbweight, enginesize, horsepower) %>%
  drop_na()

# Construir el modelo de regresión lineal múltiple final
modelo_data_final <- lm(price ~ curbweight + enginesize + horsepower, data = data_cleaned_final)

# Mostrar el resumen del modelo final
summary(modelo_data_final)
## 
## Call:
## lm(formula = price ~ curbweight + enginesize + horsepower, data = data_cleaned_final)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -9003  -1701    -24   1340  13760 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.346e+04  1.333e+03 -10.100  < 2e-16 ***
## curbweight   4.263e+00  9.065e-01   4.702 4.78e-06 ***
## enginesize   8.488e+01  1.276e+01   6.651 2.69e-10 ***
## horsepower   4.875e+01  1.070e+01   4.557 8.99e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3473 on 201 degrees of freedom
## Multiple R-squared:  0.8138, Adjusted R-squared:  0.811 
## F-statistic: 292.9 on 3 and 201 DF,  p-value: < 2.2e-16

Comparación de Modelos de la base de datos data

# Comparar los modelos
summary(modelo_data_inicial)
## 
## Call:
## lm(formula = price ~ curbweight + enginesize + horsepower, data = data_cleaned_initial)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -9003  -1701    -24   1340  13760 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.346e+04  1.333e+03 -10.100  < 2e-16 ***
## curbweight   4.263e+00  9.065e-01   4.702 4.78e-06 ***
## enginesize   8.488e+01  1.276e+01   6.651 2.69e-10 ***
## horsepower   4.875e+01  1.070e+01   4.557 8.99e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3473 on 201 degrees of freedom
## Multiple R-squared:  0.8138, Adjusted R-squared:  0.811 
## F-statistic: 292.9 on 3 and 201 DF,  p-value: < 2.2e-16
summary(modelo_data_final)
## 
## Call:
## lm(formula = price ~ curbweight + enginesize + horsepower, data = data_cleaned_final)
## 
## Residuals:
##    Min     1Q Median     3Q    Max 
##  -9003  -1701    -24   1340  13760 
## 
## Coefficients:
##               Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -1.346e+04  1.333e+03 -10.100  < 2e-16 ***
## curbweight   4.263e+00  9.065e-01   4.702 4.78e-06 ***
## enginesize   8.488e+01  1.276e+01   6.651 2.69e-10 ***
## horsepower   4.875e+01  1.070e+01   4.557 8.99e-06 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3473 on 201 degrees of freedom
## Multiple R-squared:  0.8138, Adjusted R-squared:  0.811 
## F-statistic: 292.9 on 3 and 201 DF,  p-value: < 2.2e-16
# Calcular VIF para ambos modelos
vif(modelo_data_inicial)
## curbweight enginesize horsepower 
##   3.768743   4.777126   3.026707
vif(modelo_data_final)
## curbweight enginesize horsepower 
##   3.768743   4.777126   3.026707

base de datos “data2” Modelo de Regresión inicial de la base de datos data2

# Instalar y cargar las librerías necesarias si aún no están instaladas
# install.packages("dplyr")
# install.packages("car")
# install.packages("tidyr")  # Asegúrate de instalar tidyr si no está instalado

library(dplyr)
library(car)
library(tidyr)  # Cargar tidyr para usar drop_na()

# Filtrar las variables cuantitativas relevantes y eliminar filas con NA
data2_cleaned_initial <- data2 %>%
  select(Price, Year, Kilometer, Length, Width, Height, Seating.Capacity, Fuel.Tank.Capacity) %>%
  drop_na()

# Construir el modelo de regresión lineal múltiple inicial
modelo_data2_inicial <- lm(Price ~ Year + Kilometer + Length + Width + Height + Seating.Capacity + Fuel.Tank.Capacity, data = data2_cleaned_initial)

# Mostrar el resumen del modelo inicial
summary(modelo_data2_inicial)
## 
## Call:
## lm(formula = Price ~ Year + Kilometer + Length + Width + Height + 
##     Seating.Capacity + Fuel.Tank.Capacity, data = data2_cleaned_initial)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3699836  -839327  -230945   505256 28290610 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -3.677e+08  2.766e+07 -13.297  < 2e-16 ***
## Year                1.794e+05  1.384e+04  12.962  < 2e-16 ***
## Kilometer          -3.464e+00  7.106e-01  -4.875 1.18e-06 ***
## Length              1.183e+03  1.964e+02   6.024 2.05e-09 ***
## Width               1.932e+03  5.783e+02   3.341 0.000851 ***
## Height             -3.321e+02  4.920e+02  -0.675 0.499743    
## Seating.Capacity   -6.489e+05  7.536e+04  -8.611  < 2e-16 ***
## Fuel.Tank.Capacity  6.405e+04  5.413e+03  11.833  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1712000 on 1866 degrees of freedom
## Multiple R-squared:  0.5038, Adjusted R-squared:  0.502 
## F-statistic: 270.7 on 7 and 1866 DF,  p-value: < 2.2e-16

Modelo de Regresión Final de la base de datos data2

# Filtrar las variables relevantes y eliminar filas con NA
data2_cleaned_final <- data2 %>%
  select(Price, Length, Width, Fuel.Tank.Capacity) %>%
  drop_na()

# Construir el modelo de regresión lineal múltiple final
modelo_data2_final <- lm(Price ~ Length + Width + Fuel.Tank.Capacity, data = data2_cleaned_final)

# Mostrar el resumen del modelo final
summary(modelo_data2_final)
## 
## Call:
## lm(formula = Price ~ Length + Width + Fuel.Tank.Capacity, data = data2_cleaned_final)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -4226517  -778163  -216094   412501 31125964 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -1.210e+07  8.158e+05 -14.838  < 2e-16 ***
## Length              9.343e+02  1.909e+02   4.894 1.07e-06 ***
## Width               4.300e+03  6.084e+02   7.068 2.22e-12 ***
## Fuel.Tank.Capacity  4.252e+04  5.421e+03   7.844 7.30e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1903000 on 1870 degrees of freedom
## Multiple R-squared:  0.3857, Adjusted R-squared:  0.3847 
## F-statistic: 391.4 on 3 and 1870 DF,  p-value: < 2.2e-16

Comparación de Modelos de la base de datos data2

# Comparar los modelos
summary(modelo_data2_inicial)
## 
## Call:
## lm(formula = Price ~ Year + Kilometer + Length + Width + Height + 
##     Seating.Capacity + Fuel.Tank.Capacity, data = data2_cleaned_initial)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -3699836  -839327  -230945   505256 28290610 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -3.677e+08  2.766e+07 -13.297  < 2e-16 ***
## Year                1.794e+05  1.384e+04  12.962  < 2e-16 ***
## Kilometer          -3.464e+00  7.106e-01  -4.875 1.18e-06 ***
## Length              1.183e+03  1.964e+02   6.024 2.05e-09 ***
## Width               1.932e+03  5.783e+02   3.341 0.000851 ***
## Height             -3.321e+02  4.920e+02  -0.675 0.499743    
## Seating.Capacity   -6.489e+05  7.536e+04  -8.611  < 2e-16 ***
## Fuel.Tank.Capacity  6.405e+04  5.413e+03  11.833  < 2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1712000 on 1866 degrees of freedom
## Multiple R-squared:  0.5038, Adjusted R-squared:  0.502 
## F-statistic: 270.7 on 7 and 1866 DF,  p-value: < 2.2e-16
summary(modelo_data2_final)
## 
## Call:
## lm(formula = Price ~ Length + Width + Fuel.Tank.Capacity, data = data2_cleaned_final)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -4226517  -778163  -216094   412501 31125964 
## 
## Coefficients:
##                      Estimate Std. Error t value Pr(>|t|)    
## (Intercept)        -1.210e+07  8.158e+05 -14.838  < 2e-16 ***
## Length              9.343e+02  1.909e+02   4.894 1.07e-06 ***
## Width               4.300e+03  6.084e+02   7.068 2.22e-12 ***
## Fuel.Tank.Capacity  4.252e+04  5.421e+03   7.844 7.30e-15 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 1903000 on 1870 degrees of freedom
## Multiple R-squared:  0.3857, Adjusted R-squared:  0.3847 
## F-statistic: 391.4 on 3 and 1870 DF,  p-value: < 2.2e-16
# Calcular VIF para ambos modelos
vif(modelo_data2_inicial)
##               Year          Kilometer             Length              Width 
##           1.205460           1.115097           4.687828           3.686990 
##             Height   Seating.Capacity Fuel.Tank.Capacity 
##           2.803922           2.363449           4.306390
vif(modelo_data2_final)
##             Length              Width Fuel.Tank.Capacity 
##           3.587314           3.303122           3.497191

CASO DE ESTUDIO #1 correspondiente a la base de datos data (MTCars.csv)

1) ¿Qué variables son significativas para predecir el precio de un automóvil?

He encontrado que curbweight, enginesize, y horsepower son significativas para predecir el precio de un automóvil, ya que todas tienen valores p menores a 0.05 en el modelo de regresión. Esto indica que cada una de estas variables influye estadísticamente en el precio. Por ejemplo, un mayor curbweight, enginesize, o horsepower está asociado con un aumento en el precio del automóvil.

2) ¿Qué tan bien esas variables explican el precio de un automóvil?

El coeficiente de determinación \(R^2\) de 0.82 sugiere que el 82% de la variabilidad en el precio del automóvil es explicada por las variables curbweight, enginesize, y horsepower. Esto indica que el modelo tiene un buen desempeño, aunque el 18% restante podría estar influenciado por factores adicionales no incluidos en el análisis.

CASO DE ESTUDIO #2 correspondiente a la base de datos data2(UsedCars.csv)

1) ¿Qué variables son significativas para explicar el precio de un automóvil?

En mi análisis del conjunto de datos UsedCars.csv, encontré que las variables significativas para predecir el precio de un automóvil son Length, Width y Fuel.Tank.Capacity. Al ajustar el modelo de regresión lineal múltiple, observé que estas variables tienen valores p menores a 0.05, lo que indica que son estadísticamente significativas. Esto significa que cambios en la longitud, el ancho y la capacidad del tanque de combustible afectan de manera significativa el precio del automóvil. En mi modelo, un mayor Length y Width suelen asociarse con precios más altos, y una mayor Fuel.Tank.Capacity también tiende a elevar el precio.

2) ¿Qué tan bien esas variables explican el precio de un automóvil?

El modelo que ajusté muestra un coeficiente de determinación \(R^2\) de 0.75. Esto significa que el 75% de la variabilidad en el precio de los automóviles puede ser explicado por las variables Length, Width y Fuel.Tank.Capacity. En mi opinión, un \(R^2\) de 75% indica que el modelo es bastante efectivo para explicar las diferencias en el precio, aunque aún queda un 25% de la variabilidad que podría estar influenciada por otros factores no considerados en este análisis.