我目前正在一个项目上,需要一些帮助。我想使用统计模型预测航班延误的时长。该数据集不包含航班延误的时间长度,但是可以根据实际和计划的起飞时间进行计算,我知道实际的起飞时间-计划的起飞时间会给我带来作为因变量的航班延迟。我正在努力以有用的形式获取解释性(独立)变量以进行回归分析-主要问题是从csv文件中读取表时前两列的时间格式。我已经将数据文件附加到该问题上,因为我不太确定如何附加我的文件,我对这种编码方式还是陌生的。任何帮助将不胜感激。 xx
https://drive.google.com/file/d/11BXmJCB5UGEIRmVkM-yxPb_dHeD2CgXa/view?usp=sharing
编辑:
首先感谢您的所有帮助
好的,我将尝试就该主题提出更精确的问题:
因此,使用以下命令导入文件后:
1)
Delays <- read.table("FlightDelaysSM.csv",header =T,sep=",")
2)我遇到的主要问题是将列计划时间和deptime转换为可以进行算术计算的格式
3)我尝试了以下
Delays[,1] - Delays[,2]
出现明显问题的地方,例如800(8am)-756(7.56am)= 44,而不是4分钟
4)我曾尝试过@kerry Jackson的帮助(谢谢您,您太棒了x)
DepartureTime <- strptime(formatC(Delays$deptime, width = 4, format = "d", flag = "0", %H%M)
ScheduleTime <- strptime(formatC(Delays$schedtime, width = 4, format = "d", flag = "0", %H%M)
DelayTime = DepartureTime - ScheduleTime
还给出了以秒为单位的值,我希望差异以分钟为单位,我将如何去做呢?
5)然后,我执行以下操作:
DelayData <- data.frame(ScheduleTime, DepartureTime, DelayTime, Delays[, 4:7])
What I attain after making the DelayData
从图像中可以看到,我在名为DelayTime的列中有秒单位,如我在4)中所述,我不想这样做,而日期在ScheduleTime和DepartureTime列中,我可能会得到一些建议纠正这个问题?
答案 0 :(得分:-1)
创建一个名为flight_delay
的新列:
install.packages('tidyverse')
library(tidyverse)
your_data <- your_data %>%
mutate(flight_delay=deptime-schedtime)
现在,创建一个线性回归模型,以每个其他变量预测flight_delay
:
mod <- lm(flight_delay ~ ., data=your_data)
要优化模型,请使用step
函数:
mod <- step(mod)
分析结果:
summary(mod)