Alan Martínez

19/2/2020

Correlacion y regresión lineal de Aerolinea

Las librerías

library(readr)
library(ggplot2)
library(stats)
ruta="C:/Users/AlanA/Desktop/8vo/Analisis Datos/datos"
setwd(ruta)
datos <- read.csv("rutas.csv")
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

Ver el coeficiente de correlacion con funcion cor()

cr= cor(datos$millas,datos$costo)
cr
## [1] 0.835779

Modelo de regresión

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 dispersion

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 linea en rojo

  • y predict son los calores de y para cada dato de x original y eso permite 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
  • La recta de tendencia 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("Linea de tendencia sobre Conjunto de Datos. Millas Costo")

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

  • c (800,1200,2680)
nuevosdatos= data.frame(millas <- c(800, 1200, 1800, 2680))
nuevosdatos
##   millas....c.800..1200..1800..2680.
## 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

Interpretación

  • Lo primero que podemos observar en nuestra presente practica es el coeficiente de correlacion el cual nos da un valor de 0.835779 Lo cual significa que tenemos una correlación positiva considerable. En primera instancia y observando este coeficiente podemos determinar que nuestros datos son candidatos a tener una correlacion y una vez interpretado dicho coeficiente de correlacion podemos decidir si continuar con nuestro analisis. Si es asi podemos aplicar algoritmos de regresión.

  • Una vez que hemos desarrollado nuestro algoritmo de regresion podemos comprobar datos determinando los estadisticos de dichos datos.

  • Con nuestro diagrama de dispersion, y creando nuestra linea de tendencia y basicamente lo que modemos observar es:

  • Existe una relacion no muy fuerte entre el costo y las millas recorridas, esta relacion si bien no es muy fuerte, existe lo cual nos permite determinar un aproximado de millas recorridas y costos.

  • Por ejemplo y deacuerdo a nuestros estadisticos con el conjunto de datos 800, 1200, 1800, 2680 podemos realizar con la funcion predict() podemos ver que el resultado de los respectivos datos en costo es: 230.2998,281.1612,357.4532,469.3483