Explorando y describiendo datos Rutas - Millas

Cargar librerías

#install.packages("readr") SI ES QUE NO LO TENEMOS INSTALADO AÚN
library(readr)
library(ggplot2)

Cargar los datos

En RUTA, reemplazar la ruta con su directorio de trabajo en donde se encuentre rutas_millas_tarifas_de_vuelos.csv

#En RUTA, reemplazar la ruta con su directorio de trabajo en donde se encuentre Sales.csv
ruta <- "D:/inspiron 1545/ESCUELA/ITD/OCTAVO/Analisis Inteligente de Datos/R/datos"
setwd(ruta)
datos <- read_csv("rutas_millas_tarifas_de_vuelos.csv")
## Parsed with column specification:
## cols(
##   ruta = col_character(),
##   millas = col_double(),
##   costo = col_double()
## )
str(datos)
## Classes 'spec_tbl_df', 'tbl_df', 'tbl' and 'data.frame': 18 obs. of  3 variables:
##  $ ruta  : chr  "Dallas-Austin" "Houston-Dallas" "Chicago-Detroit" "Chicago-San Luis" ...
##  $ millas: num  178 232 238 262 301 ...
##  $ costo : num  125 123 148 136 129 162 224 264 287 256 ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   ruta = col_character(),
##   ..   millas = col_double(),
##   ..   costo = col_double()
##   .. )
summary(datos)
##      ruta               millas         costo      
##  Length:18          Min.   : 178   Min.   :123.0  
##  Class :character   1st Qu.: 374   1st Qu.:151.5  
##  Mode  :character   Median :1048   Median :275.5  
##                     Mean   :1196   Mean   :280.7  
##                     3rd Qu.:1752   3rd Qu.:364.0  
##                     Max.   :2574   Max.   :513.0

Ver el Coeficiente de Correlacción con función cor()

CR <- cor(datos$millas, datos$costo)
CR
## [1] 0.835779

Mediante la función cor() se genera el coeficiente de correlación entre dos o mas variables

  • -0.90 = Correlación negativa muy fuerte.
  • -0.75 = Correlación negativa considerable.
  • -0.50 = Correlación negativa media.
  • -0.25 = Correlación negativa débil.
  • -0.10 = Correlación negativa muy débil.
  • 0.00 = No existe correlación alguna entre las variables.
  • +0.10 = Correlación positiva muy débil.
  • +0.25 = Correlación positiva débil.
  • +0.50 = Correlación positiva media.
  • +0.75 = Correlación positiva considerable.
  • +0.90 = Correlación positiva muy fuerte.
  • +1.00 = Correlación positiva perfecta (“A mayor X, mayor Y” o “a menor X, menor Y”, de manera proporcional. Cada vez que X aumenta, Y aumenta siempre una cantidad constante).

Modelo de regresión

  • Variable independiente; millas.
  • Variable dependiente o respuesta predictiva.
  • ~ significa determinar costo en función de las millas.
modelo <- lm(costo ~ millas, datos)
modelo
## 
## Call:
## lm(formula = costo ~ millas, data = datos)
## 
## Coefficients:
## (Intercept)       millas  
##    128.5770       0.1272

Valores de los coeficientes

a <- modelo$coefficients[1]
b <- modelo$coefficients[2]
a; b
## (Intercept) 
##     128.577
##    millas 
## 0.1271535

Visualizar el diagrama de dispersión

ggplot(datos, aes(millas, costo)) + geom_point()

Determinar otros estadísticos significativos

  • El coeficiente de relación antes de su raíz.
  • Coeficiente de relación raíz que debe ser igual a CR.
  • Valores de p-value que deben ser menores a 0.05 ó 0.01 para decir que la pendiente es diferente de 0 y que existe estadísticamente relación significativa entre las variables.
  • Aunque el valor de 0.83 es una relación moderada entre las variables.
  • Multiple R-squared: 0.6985.
  • p-value: 1.567e-05 es mucho menor que 0.05 de tal forma que si hay relación estadísticamente significativa.
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

Hacer la línea de tendencia en rojo

y.predict significa los valores de y para cada dato de x original. Eso permite hacer la recta.

y.predict <- predict(modelo,  datos)
y.predict
##        1        2        3        4        5        6        7        8 
## 151.2103 158.0766 158.8395 161.8912 166.8502 203.9790 267.4286 333.0398 
##        9       10       11       12       13       14       15       16 
## 219.3646 243.1423 256.3662 303.2859 349.3154 351.9856 376.0176 441.7560 
##       17       18 
## 453.5813 455.8700

La recta de tedencia bajo el modelo y = a + bx

ggplot() + geom_point(data = datos, aes(x = millas, y = costo), size = 0.9) + geom_line(aes(x = datos$millas, y = y.predict), color = "red") + xlab("Millas") + ylab("Costo") + ggtitle("Línea de tendencia sobre Conjunto de Datos. *Millas-Costo*")

Pronosticar y Estimar algunos costos con algunas nuevas rutas dadas en millas

nuevosdatos <- data.frame(millas = c(800, 1200, 1800, 2680))
nuevosdatos
##   millas
## 1    800
## 2   1200
## 3   1800
## 4   2680

Predicción de costo

  • Nuevos datos en millas.
  • La variable millas del data.frame se llama igual.
  • Se estiman y pronostican nuevos costos por cada nuevo dato.
prediccion <- predict(modelo, nuevosdatos)
prediccion
##        1        2        3        4 
## 230.2998 281.1612 357.4532 469.3483

Interpretación Personal

  • Al momento de obtener el Coeficiente de Correlación, tenemos un valor de 0.835779, el cual, según la escala mostrada anteriormente, indica que tenemos una Correlación positiva considerable entre las variables de millas y costos. Por lo que las variables son candidatas para que les apliquemos una Regresión Líneal.
  • Cuando sacamos los Coeficientes, obtenemos: a = 128.577 y b = 0.1271535, con estos valores hicimos un diagrama de dispersión y observé que los valores tienden a seguir la recta de tendencia, no tan dispersos.
  • Por último, pronosticamos y estimamos los costos de los viajes con valores de 800, 1,200, 1,800y 2,680 millas. Obtuvimos los valores en costos de:
    • 800 millas = 230.2998 dólares.
    • 1,200 millas = 281.1612 dólares.
    • 1,800 millas = 357.4532 dólares.
    • 2,680 millas = 469.3483 dólares.