objetivo Realizar un análisis de datos determinando el coeficiente de correlación y aplicando el modelo de regresión lineal simple (RLS) para relizar predicciones.

Se busca una interpretación de los resultados del modelo

Librerias

library(dplyr)     # Para select filter y otras cosas
library(ggplot2)    # Para gráficos
library(corrplot)  # Para correlaciones
library(readr)     # Leer datos

Datos

datos <- read.csv("../Datos/rutas millas tarifas de vuelos.csv")

datos
##                        ruta millas costo
## 1            Dallas-Austin     178   125
## 2           Houston-Dallas     232   123
## 3          Chicago-Detroit     238   148
## 4         Chicago-San Luis     262   136
## 5        Chicago-Cleveland     301   129
## 6           Chicago-Atlanta    593   162
## 7         Nueva York-Miami    1092   224
## 8       Nueva York-San Juan   1608   264
## 9        Nueva York-Chicago    714   287
## 10          Chicago-Denver     901   256
## 11        Dallas-Salt Lake    1005   365
## 12       Nueva York-Dallas    1374   459
## 13          Chicago-Seattle   1736   424
## 14      Los Angeles-Chicago   1757   361
## 15      Los Angeles-Atlanta   1946   309
## 16   Nueva York-Los Angeles   2463   444
## 17     Los Angeles-Honolulu   2556   323
## 18 Nueva York-San Francisco   2574   513

Explorar los datos

str(datos)
## 'data.frame':    18 obs. of  3 variables:
##  $ ruta  : Factor w/ 18 levels "Chicago-Atlanta",..: 7 9 4 5 2 1 16 18 13 3 ...
##  $ millas: int  178 232 238 262 301 593 1092 1608 714 901 ...
##  $ costo : int  125 123 148 136 129 162 224 264 287 256 ...
summary(datos)
##                  ruta        millas         costo      
##  Chicago-Atlanta   : 1   Min.   : 178   Min.   :123.0  
##  Chicago-Cleveland : 1   1st Qu.: 374   1st Qu.:151.5  
##  Chicago-Denver    : 1   Median :1048   Median :275.5  
##  Chicago-Detroit   : 1   Mean   :1196   Mean   :280.7  
##  Chicago-San Luis  : 1   3rd Qu.:1752   3rd Qu.:364.0  
##  Chicago-Seattle   : 1   Max.   :2574   Max.   :513.0  
##  (Other)           :12

Visualizar los datos

Visulizar los puntos que se obtienen de las coordenadas x & y es decir para cada cantidad de millas en el eje de las x’s, existe un costo en el eje de las y’s.

Se utiliza la variable graf para ir construyendo la gráfica poco a poco además de que queda preparado para que se le agregue la linea de tendencia toda vez que se genere el modelo.

graf <- ggplot(data = datos, mapping = aes(x=millas, y = costo)) 
graf <- graf +  geom_point()

graf

Coeficiente de correlación

r <- cor(datos$millas, datos$costo)

r <- round(r, 4)

r
## [1] 0.8358

Interpretación de la Correlación

El valor del coeficiente de Correlación es 0.8358 que significa que estadísticamente es Correlación positiva considerable.

Crear el modelo de Regresión Lineal Simple (RLS)

La fórmula del modelo de regresión lineal simple implica que el costo de vuelo está en función de las millas: \(costo = a + b * millas\)

modelo <- lm(data = datos, formula = costo ~ millas)
modelo
## 
## Call:
## lm(formula = costo ~ millas, data = datos)
## 
## Coefficients:
## (Intercept)       millas  
##    128.5770       0.1272
summary(modelo)
## 
## Call:
## lm(formula = costo ~ millas, data = datos)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -130.58  -40.95  -18.36   46.06  155.71 
## 
## Coefficients:
##              Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 128.57699   30.24824   4.251  0.00061 ***
## millas        0.12715    0.02088   6.089 1.57e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 72.38 on 16 degrees of freedom
## Multiple R-squared:  0.6985, Adjusted R-squared:  0.6797 
## F-statistic: 37.07 on 1 and 16 DF,  p-value: 1.567e-05

Visualizar la linea de tendencia lineal

linea <- data.frame(modelo$model$millas, modelo$fitted.values)
colnames(linea) <- c("millas", "ajuste")


linea
##    millas   ajuste
## 1     178 151.2103
## 2     232 158.0766
## 3     238 158.8395
## 4     262 161.8912
## 5     301 166.8502
## 6     593 203.9790
## 7    1092 267.4286
## 8    1608 333.0398
## 9     714 219.3646
## 10    901 243.1423
## 11   1005 256.3662
## 12   1374 303.2859
## 13   1736 349.3154
## 14   1757 351.9856
## 15   1946 376.0176
## 16   2463 441.7560
## 17   2556 453.5813
## 18   2574 455.8700
graf <-  graf + 
  geom_line(data = linea, mapping =  aes( x = millas, y = ajuste, color = "red"))

graf

Determinar los coeficientes

A partir del modelo en la variable ‘coefficientes’, siendo un vector creado del modelo, se obtienen los coeficientes en la posición 1 y 2 respecivamente.

La posición 1 es el valor de \(a\) y la posición 2 es el valor de \(b\) dentro de la ecuación de mínimos cuadrados. \(y = a + b * millas\)

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]

a 
## (Intercept) 
##     128.577
b
##    millas 
## 0.1271535

Predecir manualmente

millas.nuevo <- 200
prediccion <- a + b * millas.nuevo

prediccion
## (Intercept) 
##    154.0077

Interpretación. Para una distancia 200 millas entre una ciudad a otra el costo del boleto d avión debiera ser de 154.0076802 conforme al modelo de regresión Lineal

Nuevos valores

Predecir por medio de predict()

prediccion <- predict(modelo, newdata = data.frame(millas = c(290,760, 1100,1400,1650)))
prediccion
##        1        2        3        4        5 
## 165.4515 225.2136 268.4458 306.5918 338.3802

Interpretación de la Predicción