library(readr)
library(dplyr)
library(ggplot2)
library(corrplot)
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
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
graf<- ggplot(data = datos, mapping = aes(x=millas, y=costo))
graf<- graf+geom_point()
graf
Las las millas es variable independiente o x
El costo es la variable dependiente o y
Recordando los rangos para la correlacion:
−1.00 = correlación negativa perfecta. (“A mayor X, menor Y”, de manera proporcional. Es decir, cada vez que X aumenta una unidad, Y disminuye siempre una cantidad constante).Esto también se aplica “a menor X, mayor Y”.
−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).
r<- cor(datos$millas, datos$costo)
r
## [1] 0.835779
r<- round(r,4) # Redondear a 4 decimales
r
## [1] 0.8358
La formula del modelo implica que el costo del boleto esta en relacion a las millas: \[Costo = a+b*millas\]
Calculo manual
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
a<- modelo$coefficients[1]
b<- modelo$coefficients[2]
a
## (Intercept)
## 128.577
b
## millas
## 0.1271535
millas.nuevo<-200
prediccion<- a+b*millas.nuevo
prediccion
## (Intercept)
## 154.0077
Interpretación: Para una distancia de 200millas el costo del boleto sería de 154.0076802 de acuerdo al Modelo de Regresion Lineal.
millas.nuevo<-290
prediccion<- a+b*millas.nuevo
prediccion #Costo para distancia de 290 millas
## (Intercept)
## 165.4515
millas.nuevo<- 760
prediccion<- a+b*millas.nuevo
prediccion #Costo para distancia de 760 millas
## (Intercept)
## 225.2136
millas.nuevo<- 1100
prediccion<- a+b*millas.nuevo
prediccion #Costo para distancia de 1,100 millas
## (Intercept)
## 268.4458
millas.nuevo<- 1400
prediccion<- a+b*millas.nuevo
prediccion #Costo para distancia de 1,400 millas
## (Intercept)
## 306.5918
millas.nuevo<- 1650
prediccion<- a+b*millas.nuevo
prediccion #Costo para distancia de 1,650 millas
## (Intercept)
## 338.3802
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