我使用 R 运行了一个基本的逻辑回归模型,我计算的概率永远不会小于 .5,这对我来说听起来不对。



我正在尝试学习R和预测建模,所以我想我会做一个逻辑回归来确定我的梦幻足球联赛中球队进入季后赛的概率。

我有一个表格,其中包含上个赛季的数据,其中包含球队名称,总胜利,总损失,积分,反对积分以及他们是否进入季后赛(1或0(。然后我运行以下回归模型。

见下表。

Team    Wins    Losses  PointsFor   PointsAgainst   Playoffs
<fctr>  <dbl>   <dbl>   <dbl>   <dbl>   <dbl>
Team 1  6   1   649.4   567.3   1
Team 2  5   2   603.3   523.5   1
Team 3  5   2   603.0   491.2   1
Team 4  4   3   604.7   616.0   1
Team 5  4   3   581.2   587.9   0
Team 6  3   4   635.1   623.5   0
Team 7  3   4   626.6   619.8   0
Team 8  3   4   577.1   620.6   0
Team 9  3   4   556.5   552.4   0
Team 10 3   4   551.9   637.4   0
Team 11 3   4   517.1   515.7   1
Team 12 0   7   446.3   596.9   0

然后我运行下面的模型。

playoff.lm <- glm( Playoffs ~ Wins + Losses + PointsFor + PointsAgainst, data = predict.2017, family = binomial(link = "logit"))

具有以下结果

Call:
glm(formula = Playoffs ~ Wins + Losses + PointsFor + PointsAgainst, 
family = binomial(link = "logit"), data = predict.2017)
Deviance Residuals: 
Min        1Q    Median        3Q       Max  
-1.46807  -0.22076  -0.07455   0.05830   1.44255  
Coefficients: (1 not defined because of singularities)
Estimate Std. Error z value Pr(>|z|)
(Intercept)   15.45650   20.16166   0.767    0.443
Wins           3.27222    3.04645   1.074    0.283
Losses              NA         NA      NA       NA
PointsFor     -0.01558    0.08507  -0.183    0.855
PointsAgainst -0.03203    0.06161  -0.520    0.603
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 16.3006  on 11  degrees of freedom
Residual deviance:  5.7816  on  8  degrees of freedom
AIC: 13.782
Number of Fisher Scoring iterations: 8

然后,我使用本赛季数据的预测来估计球队进入季后赛的概率。

playoffpredict <-  predict(playoff.lm,newdata = summary.2018, type="response")
invlogit <- function(x)
{
1/(1+exp(-x))
}
prob <- sapply(playoffpredict, invlogit)

results <- cbind(summary.2018,prob)
results

问题是我的概率永远不会低于 .5。这似乎不对。

Team    Wins    Losses  PointsFor   PointsAgainst   Prob of Playoff
Team 1  7   0   829.7   561.3   0.7309
Team 2  5   2   743.9   673.0   0.5522
Team 3  5   2   694.8   609.0   0.6933
Team 4  5   2   649.7   634.4   0.6897
Team 5  4   3   696.9   610.1   0.5339
Team 6  3   4   694.2   679.7   0.5002
Team 7  3   4   679.8   666.8   0.5003
Team 8  3   4   569.5   621.9   0.5072
Team 9  2   5   797.5   818.3   0.5000
Team 10 2   5   662.7   853.8   0.5000
Team 11 2   5   655.3   732.0   0.5000
Team 12 1   6   549.8   763.5   0.5000

我知道这很简单,而且数据不多。我会添加更多前几个赛季的数据,但我只是想开始。

首先,您的模型似乎不是很准确。您的 p 值很高,因此您没有任何显著变量。尝试组合并记录它们(例如日志(损失((或其他东西。您的错误预测可能来自模型的糟糕功效

最新更新