Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Final-Comparación Modelos
Trabajo Final-Comparación Modelos
FACULTAD DE INGENIERÍA
ASIGNATURA:
ANÁLISIS ESTADÍSTICO DE DATOS
MAESTRANTES:
• RUTH CECILIA BARRENO LÓPEZ
• MYRIAM PAOLA LLUMINQUINGA ÑATO
• CARLOS AGUSTO MOLINA BAUTISTA
• JOHANNA CRISTINA QUIZHPILEMA BALCÁZAR
DOCENTE:
ING. ALFONSO PRADO MSc.
INTRODUCCIÓN
En general, los retrasos de los vuelos son un problema grave en muchas partes del mundo debido a que
repercute negativamente para todos los usuarios implicados. La saturación de muchos aeropuertos, así
como de la infraestructura y servicios de control del tráfico aéreo (ATC, air traffic control) hacen de esta
problemática en el transporte aéreo una relativa habitualidad.
En este contexto, este trabajo pretende describir los retrasos de los vuelos mediante la creación de un
modelo que se ajuste a las observaciones e información obtenida a lo largo del año 2013. Esta información
contiene variables de tipo climatológico y condicional (tales como la hora real de salida, hora programa de
salida, tiempo de vuelo, distancia entre aeropuertos, meses, etc.).
El diseño del modelo óptimo parte por el tratamiento de los datos. Luego se establecen tres características
combinadas entre variables climatológicas y condicionales en donde se ha observado influencia sobre el
retraso de los vuelos a lo largo de las referencias tomadas para la elaboración de este proyecto. Para la
selección de los tres mejores modelos, se hace un análisis previo con ANOVA de forma de seleccionar a
los mejores candidatos.
Finalmente mediante el uso de las herramientas AIB y BIC se selecciona el mejor modelo en base a su
cuantificador numérico propio de cada una de estas metodologías aplicadas para establecer las
conclusiones y recomendaciones obtenidas del desarrollo de este proyecto.
OBJETIVO
• Crear varios modelos de predicción del retraso de los vuelos (variable dep_delay), a partir de los
datos obtenidos de los datasets “flights”, “weather” y “planes”.
REFERENCIAS
• https://www.youtube.com/watch?v=JiKDQORgDvk&t=467s)
• https://www.youtube.com/watch?v=JiKDQORgDvk&t=467s)
• https://www.youtube.com/watch?v=tHkCyz8Rfkg
• https://www.youtube.com/watch?v=EnIaNFVC3vM
GLOSARIO DE VARIABLES
Tabla 1. Denominación de las variables del dataset flights
Nombre
Descripción Variable
Variable
Year Fecha de Salida (año)
Month Fecha de Salida (mes)
Day Fecha de Salida (día)
dep_time Hora real de salida [HMM]
sched_dep_time Hora programada de salida [formato HHMM o HMM]
dep_delay Retrasos de salida [minutos]. Los tiempos negativos representan salidas anticipadas
arr_time Hora real de llegada [formato HHMM o HMM]
sched_arr_time Hora programada de llegada [formato HHMM o HMM]
Retrasos de llegada [minutos]. Los tiempos negativos representan llegada
arr_delay
anticipadas
Carrier Nombre de Aerolínea
P á g i n a 4 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Nombre
Descripción Variable
Variable
Flight Número de vuelo
Año de fabricación / Tipo de avión / Fabricante / modelo / número de motores y
Tailnum
asientos / tipo de motor / velocidad promedio crucero
Origin Origen
Dest Destino
air_time Tiempo pasado en el Aire [minutos]
Distance Distancia entre aeropuertos [millas]
Hour Hora de salida programada dividida en horas
Minute Hora de salida programada dividida en minutos
Scheduled date and hour of the flight as a POSIXct date. Along with origin, can be
time_hour
used to join flights data to weather data
P á g i n a 5 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Nombre
Descripción Variable
Variable
manufacturer Fabricante
model Modelo del avión
engine Número de motores
seats Número de asientos
speed Promedio crusing velocidad en mph (millas por hora)
engine Tipo de motor
GLOSARIO DE TÉRMINOS
• airlines: Nombre de las aerolíneas.
• airports: Información de la ubicación de aeropuertos.
• flights: Vuelos del 2013 que partieron de New York (JFK, LGA, EWR).
• planes: Detalles técnicos del vuelo.
• weather: Datos climatológicos de LGA, JFK y EWR.
P á g i n a 6 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
DESARROLLO
1. TRABAJO PREPARATORIO
> data(weather)
> names(weather)
[1] "origin" "year" "month" "day" "hour" "temp" "dewp" "humid" "wind_dir"
[10] "wind_speed" "wind_gust" "precip" "pressure" "visib" "time_hour"
> data(flights)
> names(flights)
[1] "year" "month" "day" "dep_time" "sched_dep_time" "dep_delay" "arr_time"
[8] "sched_arr_time" "arr_delay" "carrier" "flight" "tailnum" "origin" "dest"
[15] "air_time" "distance" "hour" "minute" "time_hour"
> data(planes)
> names(planes)
[1] "tailnum" "year" "type" "manufacturer" "model" "engines"
[7] "seats" "speed" "engine"
> class(planes)
[1] "tbl_df" "tbl" "data.frame"
> View(planes)
P á g i n a 7 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
w <- as.data.frame(weather)
f <- as.data.frame(flights)
p <- as.data.frame(planes)
i. Redondeo de variables
Código de Programación
f$dep_time=round(f$dep_time,digits=-2)/100
f$sched_dep_time=round(f$sched_dep_time,digits=-2)/100
P á g i n a 8 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
#Incluir variable punto de rocío
updatedewp <- function (row)
{
origen<-row[13] #nombre el aeropuerto
mes<-row[2]
dia<-row[3] #dia del mes 1 a 31
hora<-row[4] # hora formato 1 a 23
templist<-w[w$origin==origen &
w$month==as.numeric(mes) &
w$day==as.numeric(dia) &
w$hour==as.numeric(hora) ,7]
if( length(templist)> 1)
sprintf("mas de uno registro %s %s %s %s ", origen, mes , dia , hora )
temp=templist[1]
return(temp)
}
P á g i n a 9 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
f$precip <- apply(f ,1, updateprecip)
P á g i n a 10 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
for(col in cols){
#name <- paste(names[col], "inputed", sep = ".")
name <- names[col]
#Adquiere un valor aleatorio en los datos que contiene NA
dataframe[name] = rand.input(dataframe[,col])
}
dataframe
}
Ahora verificamos la existencia de valores “NA” en las variables del DataFrame “f”, luego estos son
reemplazados y finalmente se comprueba la existencia de valores “NA” en las variables donde se tenía
esta condición.
Código de Programación
#LIMPIEZA DE DATOS DE DATAFRAME f
#Revisamos si tenemos NA en las columnas de w
f <- random.input.dataframe(f,c(4,6,7,9,12,15))
f <- random.input.dataframe(f,c(20:24))
#Comprobamos la limpieza de NA en las variables del DataFrame "f"
any(is.na(f$dep_time)) # Reemplazar contenido NA
any(is.na(f$dep_delay)) # Reemplazar contenido NA
any(is.na(f$arr_time)) # Reemplazar contenido NA
any(is.na(f$arr_delay)) # Reemplazar contenido NA
any(is.na(f$tailnum)) # Reemplazar contenido NA
any(is.na(f$air_time)) # Reemplazar contenido NA
any(is.na(f$distance)) # Reemplazar contenido NA
any(is.na(f$temp)) # Reemplazar contenido NA
any(is.na(f$dewp)) # Reemplazar contenido NA
any(is.na(f$humid)) # Reemplazar contenido NA
any(is.na(f$precip)) # Reemplazar contenido NA
any(is.na(f$visib)) # Reemplazar contenido NA
any(is.na(f$sched_dep_time))
any(is.na(f$month))
P á g i n a 11 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Para el segundo modelo necesitamos definir a la variable month como string, ya que actualmente está definida como entero
P á g i n a 12 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 13 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
i. Modelo 1
• Cuando la temperatura (temp) y el punto de rocío (dew point) están muy cerca (menos de 5
grados), en los aeropuertos se tienen presencia de nubes bajas, poca visibilidad y formación de
neblina toda vez que la atmósfera está saturada al 100% de la humedad (humid), consecuencia
de esto se tiene poca visibilidad (visib) en los aeropuertos tanto de origen (origin) y destino
(dest).
Interpretación:
• En general, la correlación de la variable de respuesta con las variables temp, dewp, humid y precip
es baja.
• Toda vez que la mayor correlación se observa con la variable humid, esta será considerada como
candidata a elegible para el modelo 1, sin embargo, dado su baja correlación (0.15), pues se
espera que el modelo no describa adecuadamente la variable de respuesta.
• Se observa una alta correlación entre las variables predictoras temp y dewp (0.85). Esta respuesta
es esperada, considerando que, de acuerdo con la investigación previa, al igualarse la temperatura
con el punto de rocío se tiene como respuesta poca visibilidad, alta humedad y nubosidad (nubes
bajas). Con este antecedente se descarta utilizar estas variables para el modelado (posible
multicolinealidad), se utilizara la variable humid por ser la variable con mayor correlación con la
variable de respuesta.
P á g i n a 14 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• Gráficamente apreciamos que si bien las variables humid, dewp y temp tienen una correlación fría
respecto a la variable de respuesta, estas tienen mejor correlación con respecto a las variables
visib y precip.
• También se observa alta correlación entre las variables predictoras temp y dewp, de acuerdo con
lo esperado y explicado en la sección anterior, por lo que únicamente se utilizara la variable humid.
P á g i n a 15 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
P á g i n a 16 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Call:
lm(formula = dep_delay ~ humid, data = train.data)
Residuals:
Min 1Q Median 3Q Max
-54.12 -30.70 -18.28 11.11 1254.48
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 14.270724 0.528037 27.03 <2e-16 ***
humid 0.408483 0.008198 49.83 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Interpretación:
Código de Programación
Modelo1_2 <- lm(dep_delay ~ humid+dest, data=train.data)
summary(Modelo1_2)
coefplot(Modelo1_2)
Visualización de resultados en consola
Call:
lm(formula = dep_delay ~ humid + dest, data = train.data)
Residuals:
Min 1Q Median 3Q Max
-75.40 -30.19 -16.77 10.71 1258.08
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.689027 5.645453 0.122 0.902860
humid 0.419580 0.008161 51.414 < 2e-16 ***
destACK 2.642299 8.750392 0.302 0.762681
destALB 24.058062 6.959139 3.457 0.000546 ***
destANC 0.796296 24.475770 0.033 0.974046
destATL 15.421125 5.666264 2.722 0.006498 **
destAUS 7.846422 5.916079 1.326 0.184747
destAVL 8.920952 8.455974 1.055 0.291433
destBDL 18.037756 7.027347 2.567 0.010266 *
P á g i n a 17 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 18 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• El R2 ajustado es 0.03981, esto podría interpretarse que la humedad en los destinos de los vuelos,
retrasan los vuelos. El valor propuesto significa que únicamente el 3.981% de las observaciones
son explicadas por el modelo.
• Pese a esta mejora, los residuos muestran que el modelo no es bueno.
P á g i n a 19 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
Modelo1_3 <- lm(dep_delay ~ humid+dest:origin, data=train.data)
summary(Modelo1_3)
coefplot(Modelo1_3)
Visualización de resultados en consola
Call:
lm(formula = dep_delay ~ humid + dest:origin, data =
train.data)
Residuals:
Min 1Q Median 3Q Max
-84.72 -30.05 -16.28 10.75 1231.80
P á g i n a 21 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 22 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 23 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 24 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• El R2 ajustado es 0.04457, esto podría interpretarse que la humedad en los destinos de los vuelos,
retrasan los vuelos. El valor propuesto significa que únicamente el 4.457% de las observaciones
son explicadas por el modelo.
• Pese a esta mejora, los residuos muestran que el modelo no es bueno.
P á g i n a 25 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• Observamos que al aplicar ANOVA, éste rechaza la hipótesis nula y toma la hipótesis alternativa,
siendo estas el Modelo1_2 y Modelo1_3.
• De acuerdo con el valor de los residuos y la gráfica, observamos que el Modelo1_3 es el mejor
modelo.
P á g i n a 26 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Call:
lm(formula = dep_delay ~ humid + dest:origin, data = train.data)
Residuals:
Min 1Q Median 3Q Max
-84.72 -30.05 -16.28 10.75 1231.80
Interpretación:
• De la gráfica which = 1, indica que en los residuos podría existir outliers, sin embargo, al no ser
los residuos estudentizados o estandarizados, no es posible definir claramente esta condición.
• El diagrama Q-Q (which = 2), podemos observar que los residuos no siguen una distribución
normal. En los extremos de la recta observamos que los residuos no se alinean a la recta,
concluyendo q a los extremos de los valores tenemos una desviación que no siguen una
distribución normal.
• Para el gráfico 3 (which 3), observamos los residuos estandarizados muy altos, lo que significa
que tenemos mayor de 3 desviaciones estándar hacia arriba, provocando que la media de los
residuos, está mucho más desviado. Los residuos demasiados grandes por lo q es necesario
revisar los outliers.
• Con respecto a la gráfica 4 (which = 4), observamos que las distancias de cook no son mayores a
1, que lo que significa que las observaciones en el punto central no causan influencia en el modelo.
• Como resumen en el gráfico 6 (which = 6) notamos el apalancamiento causado por los outliers
identificado en el gráfico 3. No se observa valores que impliquen influencia.
• Bajo este antecedente se revisará los outliers a partir de eliminar los valores extremos de la
variable de respuesta.
P á g i n a 27 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
#
resdf_M1 <- data.frame(res=Modelo1$residuals)
ggplot(data=resdf_M1 ,aes (y=res, x=1))+
geom_boxplot(color="blue")
GRÁFICAS MODELO 1 MEJORADO
GRÁFICAS MODELO 1 ORIGINAL
SIN OUTLIERS
P á g i n a 28 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 29 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Call:
lm(formula = dep_delay ~ humid + dest:origin, data =
Call: test.data[!(test.data$dep_delay >
lm(formula = dep_delay ~ humid + dest:origin, data = train.data) extreme.threshold.upper | test.data$dep_delay <
extreme.threshold.lower),
Residuals: ])
Min 1Q Median 3Q Max
-84.72 -30.05 -16.28 10.75 1231.80 Residuals:
Min 1Q Median 3Q Max
Residual standard error: 53.14 on 105057 degrees of freedom -53.211 -18.992 -9.103 12.115 100.404
Multiple R-squared: 0.04659, Adjusted R-squared: 0.04457
F-statistic: 23.12 on 222 and 105057 DF, p-value: < 2.2e-16 Residual standard error: 26.9 on 23907 degrees of freedom
Multiple R-squared: 0.05682, Adjusted R-squared: 0.04845
F-statistic: 6.793 on 212 and 23907 DF, p-value: < 2.2e-16
Interpretación:
P á g i n a 30 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 31 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 32 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 33 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 34 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 35 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• Podemos observar que los valores ajustados obtenidos para el Modelo 1 no son cercanos al valor
real, es decir, el modelo no es un buen predictor para los resultados, toda vez que
aproximadamente solo el 5% de los valores estarían explicados por este modelo.
P á g i n a 36 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
ii. Modelo 2
Para Monje (2015), la variable de minutos de salida del vuelo (dep_time) expresa el tiempo computado en
el momento en el que la aeronave abandona la puerta o gate. Dato esencial para calcular y prever los
colapsos en función de la hora del día, horas punta y picos de trabajo.
El mismo autor señala que la variable hora programa de salida (sched_dep_time) puede definirse como la
hora de salida que la compañía estima a la que va a salir cada vuelo. Dato muy útil para comprobar la
diferencia entre la hora real de salida y la hora estimada por la compañía. Indicador de la “on-time
performace” de cada aerolínea.
En cuanto a la variable (air_time) definida como el tiempo real de vuelo en aire, desde la salida en origen
hasta la llegada en destino, contabilizado desde que el avión abandona la pista hasta vuelve a entrar en
contacto con ella, expresado en minutos como un numero entero. Dato útil para la estimación e
identificación de comportamientos o retrasos en ruta.
La variable distancia (distance) entre los aeropuertos origen y destino, expresada en millas náuticas como
un numero entero. Dato útil para estimar la relación entre los retrasos y la distancia de vuelo entre varios
saltos
Adicionalmente, la variable mes (month) fue elegida ya que, la proporción de los retrasos varía en función
del aeropuerto y de la época del año en la que se viaje. Es decir, los resultados estarían condicionados,
por las temporadas altas o bajas de vacaciones en los EE. UU.
Interpretación:
P á g i n a 37 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
P á g i n a 38 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación
• Podemos observar que la relación de la variable dep_time con dep_delay no se ajusta a una
función lineal, más bien, podría ser una relación cuadrática, lo que nos ayudaría a mejorar su
aporte en el modelo. Para el modelo se utilizará su forma cuadrática.
• Así también, la gráfica nos indica que mientras mayor sean el tiempo de retraso, el tiempo de
salida fluctuará en picos altos y bajos.
P á g i n a 39 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
ggplot(train.data, aes(x=air_time , y=dep_delay)) +
geom_point()
ggplot(f2, aes(x=air_time , y=dep_delay)) +
geom_point()+
geom_smooth(level=.99, se=TRUE )
Interpretación:
• Podemos observar que la relación de la variable air_time con dep_delay no se ajusta a una función
lineal, más bien tiene una forma polinómica y se divide en dos grupos, sin embargo, desde el
diagrama de calor, no muestra una relación fuerte con la variable que necesitamos predecir
• Además, podemos apreciar que se concentra una gran cantidad de atrasos en vuelos en tiempos
de vuelo de hasta 400 minutos en el aíre, por otro lado, existe otro grupo bastante pequeño de
atrasos que se concentra entre aproximadamente 560 a 700 minutos en el aire, este grupo se
caracteriza por contar con menos minutos de atraso.
P á g i n a 40 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
ggplot(train.data, aes(x=distance , y=dep_delay)) +
geom_point()
ggplot(train.data, aes(x=distance , y=dep_delay)) +
geom_point()+
geom_smooth(level=.99, se=TRUE )
Interpretación:
• Podemos observar que la relación de la variable distance con dep_delay no se ajusta a una función
lineal, y en realidad no tiene la forma de alguna distribución conocida, además se ven dos grupos
bastante marcados.
• La grafica también nos indica que, a distancias de hasta aproximadamente 2800 millas, se están
concentrando el mayor número de atrasos en los vuelos con picos altos y bajos; y a distancias
mayores de 3000 milas existe un número bastante reducido de retrasos.
P á g i n a 41 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
ggplot(train.data, aes(x=sched_dep_time , y=dep_delay)) +
geom_point()
ggplot(train.data, aes(x=sched_dep_time , y=dep_delay)) +
geom_point()+
geom_smooth(level=.99, se=TRUE )
Interpretación
P á g i n a 42 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Residuals:
Min 1Q Median 3Q Max
-102.75 -26.23 -13.73 11.13 1300.31
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.034e+02 1.154e+00 89.58 <2e-16 ***
dep_time -1.353e-01 1.703e-03 -79.42 <2e-16 ***
I(dep_time^2) 5.705e-05 5.985e-07 95.32 <2e-16 ***
air_time:distance -1.235e-05 5.218e-07 -23.68 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Interpretación:
• En el primer modelo observamos que la variable dep_time con su grado cuadrático y la interacción de
las variables air_time:distance logran explicar el 12,61% de la variable dep_delay, y las variables son
significativas para el modelo. Sin embargo, en base al gráfico de coeficientes los coeficientes de las
variables son muy cercanos a cero.
• Para el siguiente modelo incluiremos la variable de mes. Es importante indicar que se coloca la
interacción de las dos variables ya que en el diagrama de calor mostraron una fuerte correlación.
P á g i n a 43 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
Modelo2_2 <- lm(dep_delay ~ dep_time+I(dep_time^2)+air_time:distance + month, data = train.data)
summary(Modelo2_2)
Call:
lm(formula = dep_delay ~ dep_time + I(dep_time^2) +
air_time:distance +
month, data = train.data)
Residuals:
Min 1Q Median 3Q Max
-108.13 -26.60 -13.11 11.19 1303.38
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.932e+01 1.271e+00 78.134 < 2e-16 ***
dep_time -1.324e-01 1.698e-03 -77.971 < 2e-16 ***
I(dep_time^2) 5.595e-05 5.969e-07 93.730 < 2e-16 ***
month10 -4.183e+00 8.274e-01 -5.056 4.29e-07 ***
month11 -6.327e+00 8.374e-01 -7.556 4.18e-14 ***
month12 1.534e+00 7.410e-01 2.070 0.03845 *
month2 -6.424e-01 8.055e-01 -0.798 0.42515
month3 2.395e+00 7.707e-01 3.108 0.00189 **
month4 6.263e+00 7.827e-01 8.002 1.24e-15 ***
month5 2.311e+00 7.718e-01 2.994 0.00275 **
month6 1.115e+01 7.505e-01 14.854 < 2e-16 ***
month7 9.460e+00 7.368e-01 12.840 < 2e-16 ***
month8 5.191e-01 7.658e-01 0.678 0.49787
month9 -2.394e-01 8.457e-01 -0.283 0.77712
air_time:distance -1.248e-05 5.199e-07 -24.008 < 2e-16
***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Interpretación:
• Al incluir la variable de mes el modelo mejora un poco, ya que las variables dep_time,
air_time:distance y month explican el 13,41% de la variable dependiente dep_delay. La mayoría
de las variables incluidas en el modelo son significativas, exceptuando algunos meses del año.
• Por otro lado, el grafico de coeficientes ya nos muestra variables diferentes de cero en los
coeficientes, lo que nos indica que incluir el mes en el modelo ha mejorado el modelo.
P á g i n a 44 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Código de Programación
Modelo2_3 <- lm(dep_delay~ sched_dep_time + I(sched_dep_time^3)+ dep_time+I(dep_time^2)+air_time:distance + month, data =
train.data)
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 Residual
standard error: 42.52 on 105262 degrees of freedom
Multiple R-squared: 0.3817, Adjusted R-squared: 0.3816
F-statistic: 4061 on 16 and 105262 DF, p-value: < 2.2e-16
Interpretación:
• El tercer modelo muestra un R ajustada mejor, ya que con las variables utilizadas se logran explicar
el 38,16% de la variable dep_delay, así también, tanto la variable dep_time, sched_arr_time y
air_time:distance son significativas y también algunos meses del año.
• Así también, el grafico de coeficientes nos muestra coeficientes diferentes de cero, lo cual es
buena señal para el modelo.
• Hasta este punto, parecería que el mejor modelo es el Modelo2_3, sin embargo, realizaremos las
pruebas respectivas para validar este resultado.
P á g i n a 45 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
ANOVA nos indica que el modelo con menor suma de los cuadrados de los residuos, sería el modelo más
recomendable, por lo que el modelo 3 sería el elegido.
P á g i n a 46 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 47 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Call:
lm(formula = dep_delay ~ sched_dep_time +
I(sched_dep_time^3) +
dep_time + I(dep_time^2) + air_time:distance
+ month, data = train.data)
Residuals:
Min 1Q Median 3Q Max
-350.71 -21.32 -10.80 9.01 1249.88
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 1.846e+02 1.256e+00 147.043
< 2e-16 ***
sched_dep_time 2.429e+01 1.751e-01
138.704 < 2e-16 ***
I(sched_dep_time^3) -5.596e-02 3.030e-04 -
184.666 < 2e-16 ***
dep_time -5.879e-01 2.762e-03 -212.893
< 2e-16 ***
I(dep_time^2) 2.427e-04 1.050e-06
231.182 < 2e-16 ***
month10 -2.703e+00 6.993e-01 -3.865
0.000111 ***
month11 -4.049e+00 7.078e-01 -5.721
1.06e-08 ***
month12 1.460e+00 6.262e-01 2.331
0.019751 *
month2 -3.482e-01 6.807e-01 -0.511
0.609013
month3 3.071e+00 6.513e-01 4.714
2.43e-06 ***
month4 4.863e+00 6.616e-01 7.351
1.98e-13 ***
month5 1.602e+00 6.524e-01 2.455
0.014076 *
month6 7.621e+00 6.347e-01 12.008
< 2e-16 ***
month7 6.618e+00 6.229e-01 10.624
< 2e-16 ***
month8 9.979e-01 6.473e-01 1.542
0.123164
month9 -8.281e-02 7.148e-01 -0.116
0.907775
air_time:distance -1.071e-05 4.394e-07 -
24.383 < 2e-16 ***
P á g i n a 48 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1
‘’1
Interpretación
• La gráfica which = 1, indica que en los residuos podría existir outliers, sin embargo, al no ser los
residuos estandarizados, no es posible definir claramente esta condición.
• El diagrama Q-Q (which = 2), podemos observar que los residuos no siguen una distribución
normal. Ya que en los extremos de la recta observamos que los residuos no se alinean a la recta.
Como resultado los extremos de los valores tenemos una desviación que no siguen una
distribución normal.
• Para el gráfico 3 (which 3), observamos los residuos estandarizados muy altos, lo que significa
que tenemos mayor de 3 desviaciones estándar hacia arriba, provocando que la media de los
residuos está mucho más desviada. Los residuos están demasiados grandes por lo que es
importante tratar a los outliers.
• Con respecto a la gráfica 4 (which = 4), observamos que las distancias de cook no son mayores a
1, que lo que significa que las observaciones en el punto central no causan influencia en el modelo
• Como resumen en el gráfico 6 (which = 6) notamos el apalancamiento causado por los outliers
identificado en el gráfico 3. No se observa valores que impliquen influencia.
En esta sección realizaremos se revisará los outliers a partir de eliminar los valores extremos de la
variable de respuesta dep_delay.
Código de Programación
P3 = quantile(train.data$dep_delay, probs = c(0.75), na.rm = TRUE)
#P3 = mean(f2$dep_delay) + 3*std(f2$dep_delay)
P1 = quantile(train.data$dep_delay, probs = c(0.25), na.rm = TRUE)
upperq <- P3
lowerq <- P1
iqr = upperq - lowerq
base=1.5
extreme.threshold.upper = (iqr * base) + upperq
extreme.threshold.lower = lowerq - (iqr * base)
P á g i n a 49 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 50 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Call: Call:
lm(formula = dep_delay ~ sched_dep_time + lm(formula = dep_delay ~ sched_dep_time +
I(sched_dep_time^3) + I(sched_dep_time^3) +
P á g i n a 51 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
dep_time + I(dep_time^2) + air_time:distance + month, data dep_time + I(dep_time^2) + air_time:distance + month, data
= train.data) = train.data[!(train.data$dep_delay >
extreme.threshold.upper | train.data$dep_delay <
Residuals: extreme.threshold.lower),
Min 1Q Median 3Q Max ])
-350.71 -21.32 -10.80 9.01 1249.88
Residuals:
Coefficients: Min 1Q Median 3Q Max
Estimate Std. Error t value Pr(>|t|) -169.521 -16.860 -7.761 10.995 210.556
(Intercept) 1.846e+02 1.256e+00 147.043 < 2e-16
*** Coefficients:
sched_dep_time 2.429e+01 1.751e-01 138.704 < 2e-16 Estimate Std. Error t value Pr(>|t|)
*** (Intercept) 8.964e+01 8.712e-01 102.888 < 2e-16 ***
I(sched_dep_time^3) -5.596e-02 3.030e-04 -184.666 < 2e-16 sched_dep_time 1.092e+01 1.477e-01 73.910 < 2e-16
*** ***
dep_time - 5.879e-01 2.762e-03 -212.893 < 2e-16 I(sched_dep_time^3) -2.563e-02 2.602e-04 -98.488 < 2e-16
*** ***
I(dep_time^2) 2.427e-04 1.050e-06 231.182 < 2e-16 *** dep_time -2.673e-01 2.628e-03 -101.733 < 2e-16 ***
month10 -2.703e+00 6.993e-01 -3.865 0.000111 *** I(dep_time^2) 1.139e-04 9.853e-07 115.630 < 2e-16 ***
month11 -4.049e+00 7.078e-01 -5.721 1.06e-08 *** month10 -1.709e+00 4.163e-01 -4.105 4.04e-05 ***
month12 1.460e+00 6.262e-01 2.331 0.019751 * month11 -2.311e+00 4.197e-01 -5.507 3.66e-08 ***
month2 -3.482e-01 6.807e-01 -0.511 0.609013 month12 1.421e+00 3.742e-01 3.798 0.000146 ***
month3 3.071e+00 6.513e-01 4.714 2.43e-06 *** month2 2.182e-01 4.063e-01 0.537 0.591257
month4 4.863e+00 6.616e-01 7.351 1.98e-13 *** month3 1.416e+00 3.904e-01 3.627 0.000287 ***
month5 1.602e+00 6.524e-01 2.455 0.014076 * month4 2.841e+00 3.983e-01 7.134 9.82e-13 ***
month6 7.621e+00 6.347e-01 12.008 < 2e-16 *** month5 1.225e+00 3.909e-01 3.134 0.001724 **
month7 6.618e+00 6.229e-01 10.624 < 2e-16 *** month6 4.594e+00 3.838e-01 11.970 < 2e-16 ***
month8 9.979e-01 6.473e-01 1.542 0.123164 month7 4.044e+00 3.758e-01 10.761 < 2e-16 ***
month9 -8.281e-02 7.148e-01 -0.116 0.907775 month8 8.307e-01 3.872e-01 2.145 0.031920 *
air_time:distance -1.071e-05 4.394e-07 -24.383 < 2e-16 *** month9 -2.369e+00 4.285e-01 -5.529 3.23e-08 ***
--- air_time:distance -8.324e-06 2.619e-07 -31.779 < 2e-16 ***
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 ---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 42.52 on 105262 degrees of freedom
Multiple R-squared: 0.3817, Adjusted R-squared: 0.3816 Residual standard error: 24.54 on 96844 degrees of freedom
F-statistic: 4061 on 16 and 105262 DF, p-value: < 2.2e-16 Multiple R-squared: 0.2091, Adjusted R-squared: 0.209
F-statistic: 1600 on 16 and 96844 DF, p-value: < 2.2e-16
Interpretación
P á g i n a 52 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
• Las desviaciones estándar de los residuos bajan de mayores a 5 a menores de 3, mejorando los
resultados del modelo propuesto.
• Como consecuencia se tiene una distribución más cercana a la normal.
• Con la ayuda del tratamiento de datos atípicos en la variable dependiente observamos que nuestro
modelo baja su capacidad de predicción, pero este modelo sería más real para nuestro análisis.
P á g i n a 53 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 54 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 55 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 56 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 57 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación
• Podemos observar que los valores ajustados obtenidos para el Modelo 2 no son tan cercanos al
valor real, ya que, con el modelo propuesto llegamos a explicar hasta el 20,9% de la variable
dependiente dep_delay Esto indica que existen más variables que podrían ayudar a predecir el
retraso en los vuelos, lo cual lo estudiaremos con el planteamiento del modelo 3.
P á g i n a 58 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
iii. Modelo 3
• La hora programada de salida aporta a los retrasos de las salidas de los vuelos, esto puede
explicarse debido a que en horas de alta demanda de usuarios, los andenes, pistas de vuelo y
demás equipos e instalaciones de los aeropuertos están trabajando a su capacidad máxima o en
su defecto, se encuentran saturados.
• De la misma manera, la hora real de salida aporta al retraso en la salida de los vuelos. Esto podría
explicarse sobre todo por el estancamiento de los aviones sobre la pista.
• Los meses de mayor congestión son marzo, abril, junio y julio, consecuencia posiblemente por
afluencia de pasajeros por vacaciones.
• El aporte del tiempo de vuelo y la distancia no aportan significativamente al modelo
Con estos antecedentes, para la definición del Modelo 3, se ha considerado la eliminación de las variables
tiempo de vuelo (air_time), distancia (distance) y meses (month), toda vez que se observa que su aporte
es poco significativo al modelo.
Paralelamente se incluye la variable de retrasos de llegada (arr_delay), toda vez que es común que los
vuelos se retrasen debido a retrasos en las llegadas de estos. Esto es consecuencia que las aerolíneas
programan vuelos bajo la modalidad de escala.
Interpretación:
• De acuerdo con el supuesto, la correlación obtenida entre las variables dep_delay y arr_delay es
alta, siendo este un indicativo de buena selección en la variable.
P á g i n a 59 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• De acuerdo con lo esperado, visualmente se obtiene alta correlación entre las variables dep_delay
y arr_delay.
P á g i n a 60 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• De acuerdo con lo esperado, la distribución de las observaciones es descrita por una función
inicialmente lineal, sin embargo, debido a la inflexión en la parte inferior de la línea de tendencia,
esta variable formará parte del modelo mediante una transformación a polinomio de grado 2.
• Toda vez que el tratamiento de ANOVA para la selección del modelo 2 indicó como candidato al
Modelo2_3, se utilizará los mismos resultados pero incluyendo a la variable arr_delay como
polinomio de grado 2.
P á g i n a 61 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Residuals:
Min 1Q Median 3Q Max
-897.11 -7.49 -0.53 6.73 1142.69
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.187e+01 2.500e-01 127.5 <2e-16 ***
arr_delay 5.996e-01 1.007e-03 595.6 <2e-16 ***
I(arr_delay^2) 6.483e-04 3.538e-06 183.3 <2e-16 ***
sched_dep_time 6.767e-02 5.282e-04 128.1 <2e-16 ***
I(sched_dep_time^3) -1.422e-08 9.215e-11 -154.3 <2e-16 ***
dep_time -1.425e-01 8.909e-04 -160.0 <2e-16 ***
I(dep_time^2) 6.009e-05 3.427e-07 175.3 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Interpretación:
P á g i n a 62 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Call:
lm(formula = dep_delay ~ arr_delay + I(arr_delay^2) +
sched_dep_time + I(sched_dep_time^3) + dep_time +
I(dep_time^2), data = train.data)
Residuals:
Min 1Q Median 3Q Max
-897.11 -7.49 -0.53 6.73 1142.69
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.187e+01 2.500e-01 127.5 <2e-16 ***
arr_delay 5.996e-01 1.007e-03 595.6 <2e-16 ***
I(arr_delay^2) 6.483e-04 3.538e-06 183.3 <2e-16 ***
sched_dep_time 6.767e-02 5.282e-04 128.1 <2e-16 ***
I(sched_dep_time^3) -1.422e-08 9.215e-11 -154.3 <2e-16
***
dep_time -1.425e-01 8.909e-04 -160.0 <2e-16 ***
I(dep_time^2) 6.009e-05 3.427e-07 175.3 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
P á g i n a 63 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Interpretación:
• De la gráfica which = 1, indica que en los residuos podría existir outliers, sin embargo, al no ser
los residuos estudentizados o estandarizados, no es posible definir claramente esta condición.
• El diagrama Q-Q (which = 2), podemos observar que los residuos no siguen una distribución
normal. En los extremos de la recta observamos que los residuos no se alinean a la recta,
concluyendo q a los extremos de los valores tenemos una desviación que no siguen una
distribución normal.
• Para el gráfico 3 (which 3), observamos los residuos estandarizados muy altos, lo que significa
que tenemos mayor de 5 desviaciones estándar hacia arriba, provocando que la media de los
residuos, está mucho más desviado. Los residuos demasiados grandes por lo q es necesario
revisar los outliers.
• Con respecto a la gráfica 4 (which = 4), observamos que las distancias de cook son mayores a 1,
que lo que significa que las observaciones en el punto central causan influencia en el modelo.
• Como resumen en el gráfico 6 (which = 6) notamos el apalancamiento causado por los outliers
identificado en el gráfico 3. También existen valores que implican influencia.
• Bajo este antecedente se revisará los outliers a partir de eliminar los valores extremos de la
variable de respuesta.
P á g i n a 64 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
P á g i n a 65 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
Residuals:
Min 1Q Median 3Q Max
-897.11 -7.49 -0.53 6.73 1142.69
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 3.187e+01 2.500e-01 127.5 <2e-16 ***
arr_delay 5.996e-01 1.007e-03 595.6 <2e-16 ***
I(arr_delay^2) 6.483e-04 3.538e-06 183.3 <2e-16 ***
sched_dep_time 6.767e-02 5.282e-04 128.1 <2e-16 ***
I(sched_dep_time^3) -1.422e-08 9.215e-11 -154.3 <2e-16
***
dep_time -1.425e-01 8.909e-04 -160.0 <2e-16 ***
I(dep_time^2) 6.009e-05 3.427e-07 175.3 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Interpretación:
P á g i n a 66 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
4. COMPARACIÓN DE MODELOS
Código de Programación
Modelo1 <- lm(dep_delay ~ humid+dest:origin, data=test.data[!(test.data$dep_delay > extreme.threshold.upper |
test.data$dep_delay < extreme.threshold.lower),])
Modelo2 <- lm(dep_delay~ sched_dep_time + I(sched_dep_time^3)+ dep_time+I(dep_time^2)+air_time:distance + month, data =
train.data[!(train.data$dep_delay > extreme.threshold.upper | train.data$dep_delay < extreme.threshold.lower),])
Modelo3 <- lm(dep_delay ~ arr_delay+ I(arr_delay^2)+sched_dep_time+I(sched_dep_time^3)+dep_time+I(dep_time^2),
data=train.data[!(train.data$dep_delay > extreme.threshold.upper | train.data$dep_delay < extreme.threshold.lower),])
Interpretación:
• De acuerdo con lo esperado, el mejor modelo es el 3, dado que se ha podido concluir que en
mayor parte, el retraso de la salida de los vuelos (dep_delay) se debe al retraso de la llegada de
los vuelos (arr_delay). Siendo esta una condición lógica esperada considerando que la mayor parte
de vuelos realizan escala en los aeropuertos, si esto ocurre y si el avión retrasa al arribo, se prevé
que la salida se verá forzada a ser retrasada.
P á g i n a 67 | 68
ANÁLISIS, EVALUACIÓN Y COMPARACIÓN DE MODELOS
CONCLUSIONES
Inicialmente, consideramos que las variables climatológicas afectarían en los retrasos de los vuelos, sin
embargo, según informa la revista 'Best Life', hay demoras climáticas generales y luego hay otras que son
extremas. Las primeras incluyen vientos fuertes, tormentas eléctricas o niebla, las segundas van desde
las tormentas de nieve a los huracanes. Esto puede suceder en el aeropuerto de llegada o de salida, sin
embargo, al revisar los estadísticos y modelos tratados, observando que tan solo el 5% de los retrasos en
vuelos se deben a esta razón; razón por la cual el Modelo 1 no podría ser buen candidato para
predicciones. Los resultados obtenidos de las metodologías aplicadas AIB y BIC concuerdan con esta
condición vista inicialmente desde el punto de vista lógico en función de los primeros resultados obtenidos
(R2 ajustado y visualización de datos)
Para el segundo modelo se han planteado el uso de variables condicionales independientes (hora real de
salida, hora programa de salida, tiempo de vuelo, distancia entre aeropuertos y meses). Parte del proceso
de análisis para obtención del modelo 2 consistió en el uso de transformaciones para ciertas variables que
no se ajustaban a una función lineal y en base a este tratamiento se obtuvo que estas variables describan
hasta el 20,9% de los retrasos en los vuelos, sin embargo, todavía no es un buen modelo para predecir
los atrasos en los vuelos, ya que como recomendación el R ajustado debería ser mayor a 50%.
Con el modelo 3 logramos predecir aproximadamente un 65% con la inclusión de la variable dep_delay en
el modelo 2, y presenta la siguiente interpretación mientras mayor sea el retraso en la salida de un vuelo,
mayor será su retraso en la llegada, así también sucede, que mientras más minutos de retraso en la salida
exista, el vuelo no cumplirá con su hora real de salida y esto también afectara a la hora programa de salida.
Esto podría ser descrito como una condición lógica esperada considerando que la mayor parte de vuelos
realizan escala en los aeropuertos, si esto ocurre y si el avión retrasa al arribo, se prevé que la salida se
verá forzada a ser retrasada.
• Restricciones de tráfico,
• Problemas mecánicos,
• Preparación de la aeronave,
• Retrasos de equipaje y
• Retrasos de seguridad.
En este contexto, para tener una mejor aproximación al modelo se deben contar con algunas de estas
variables en las bases de datos trabajadas, pudiendo mejorar la predicción con el modelo propuesto.
Finalmente, para estudios futuros se propone trabajar con bases de datos que incluyan al menos alguna
de estas variables, con la finalidad que ayuden a entender de mejor manera este fenómeno.
P á g i n a 68 | 68