Practica 4 correlacion y regresion lineal de millas costo de aerolinea

Roque Emilio Alvarez Delgado

14/02/2019

Correlacion y regresión lineal de Aerolinea

Las librerías

library(readr)
library(ggplot2)
library(stats)

Cargar los datos

datos <- read_csv("D:/Escuela/Clases/8vo-semestre/Analisis-inteligente-de-datos/RStudio/datos/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 Correlació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 respueta o predictiva
  • ~ Significa determinar costo en función de las mill
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 raiz * Coeficente de relció raiz 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 exsite estadísticamente relación significativa entre las variables * Anque 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
sqrt(0.6985) # La raiz debe ser igual a cor()
## [1] 0.8357631

Hacer la linea de tendencia en rojo

y.precit significa los valores de y para cada dato de x original eso permie dibujar 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
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("Linea de tendencia sobre Conjunto de Datos. Millas Costo")

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

  • c(800, 1200, 1800, 2680)
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 variaable 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

Interpretaciones

  • Primeramente para poder saber que tipo de algoritmo utilizaremos necesitamos saber si existe una correlacion entre los datos en este caso a la hora de sacar esto nos da una correlacion de 0.8357631 lo cual significa que existe una correlacion positiva considerable lo cual significa que los datos son candidatos para aplicarles una regresion lineal
  • Al momento de ya haber hecho el modelo le metemos nuevos datos los cuales son 800,1200,1800,2680 los cuales son las distancia del viaje y nos arrolo los resultados de 230.2998, 281.1612, 357.4532, 469.3483 que es el costo de viaje
  • Por ultimo cabe recalcar que el costo del viaje es mas alto entre mas largo sea el viaje