Correlacion y regresión lineal de Aerolinea
Las librerias
library(readr)
library(ggplot2)
library(stats)
Cargar datos
datos <- read_csv("../../Datos/rutas_millas_tarifas_de_vuelos.csv")
## Parsed with column specification:
## cols(
## ruta = col_character(),
## millas = col_double(),
## costo = col_double()
## )
datos <- data.frame(datos) # Asegurarse de que es un data.frame
str(datos)
## '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 ...
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
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
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; x
- Variable dependiente o respueta o; y 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 raiz
- Coeficente de relación es la raiz de Multiple R-squared que debe ser igual a CR generado anteriormente.
- El Valor de p-value que debe ser menor 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
- 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
- La recta de tedencia con 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
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
Interpretación
- Primero examinamos los datos para ver de que tipos son y si se puede aplicar la regresion lineal
- Una vez que verificamos que existe una correlacion entre los datos podemos aplicar la regresion lineal *AL final ingresando algunos costos podemos predecir el costo que tendra el viaje