我正在尝试学习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
问题是我的概率永远不会低于0.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
我知道这很简单,并且没有很多数据。我将添加来自先前季节的更多数据,但我只是在尝试入门。
答案 0 :(得分:0)
首先,您的模型似乎不太准确。您的p值很高,因此您没有任何重要的变量。尝试组合并记录它们(例如对数(损失))或其他内容。您的错误预测可能来自模型的强大功能