我有一些关于航空公司航班的数据(在名为的数据框中flights
),我想看看飞行时间是否对到达时间明显延迟(意味着10分钟或更长时间)有任何影响。我以为我会使用逻辑回归,将飞行时间作为预测指标,并将每次飞行是否都显着延迟(一堆伯努利)作为响应。我用下面的代码...
flights$BigDelay <- flights$ArrDelay >= 10
delay.model <- glm(BigDelay ~ ArrDelay, data=flights, family=binomial(link="logit"))
summary(delay.model)
...但是得到以下输出。
> flights$BigDelay <- flights$ArrDelay >= 10
> delay.model <- glm(BigDelay ~ ArrDelay, data=flights, family=binomial(link="logit"))
Warning messages:
1: In glm.fit(x = X, y = Y, weights = weights, start = start, etastart = etastart, :
algorithm did not converge
2: In glm.fit(x = X, y = Y, weights = weights, start = start, etastart = etastart, :
fitted probabilities numerically 0 or 1 occurred
> summary(delay.model)
Call:
glm(formula = BigDelay ~ ArrDelay, family = binomial(link = "logit"),
data = flights)
Deviance Residuals:
Min 1Q Median 3Q Max
-3.843e-04 -2.107e-08 -2.107e-08 2.107e-08 3.814e-04
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -312.14 170.26 -1.833 0.0668 .
ArrDelay 32.86 17.92 1.833 0.0668 .
---
Signif. codes: 0 â***â 0.001 â**â 0.01 â*â 0.05 â.â 0.1 â â 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 2.8375e+06 on 2291292 degrees of freedom
Residual deviance: 9.1675e-03 on 2291291 degrees of freedom
AIC: 4.0092
Number of Fisher Scoring iterations: 25
算法没有收敛是什么意思?我以为是因为BigDelay
值是TRUE
and FALSE
而不是0
and 1
,但是转换完所有内容后出现了同样的错误。有任何想法吗?
首先想到的是:完美分离,这意味着预测变量“太好了”,对数变为+/-无穷大,一切都掉了。再想一想:代码是否按照您的想法去做?您的变量名似乎与您的描述不太吻合。您可能会详细说明数据的准确性,因为看起来您可能正在尝试自己预测一些数据。
—
conjugateprior 2010年
不确定我应得的“接受”。@Conjugate Prior的答案解释了您的模型出了什么问题。我认为有必要解释您在算法方面提到的警告。
—
恢复莫妮卡-辛普森
如果您具有实际的延迟时间,则可以通过对它们建模而不是将其简化为二进制变量来获得更好的信息。
—
ub
相关问题
—
user603 2012年