首页 > 解决方案 > R:预测函数结果因版本而异,响应超出范围(0-1)

问题描述

首先,感谢您阅读本文。

我刚买了一台新电脑,正在安装最新版本的 R (4.0.3) 和 Rstudio。我使用install.packages()下载了所有包,这些包与我在旧计算机上的包相同,因此我为每个包下载了最新版本。

我打开了一个项目并尝试运行一个已经在我的旧计算机上产生结果的脚本。除了predict()函数之外,所有函数的响应结果都与我的旧计算机相同。

predict()函数生成的概率不在 0-1 之间。Rstudio 在我的“新机器”上生成的每个输出都与旧的相同,除了预测。

# Create the probit model
myprobit <- glm(Delta ~ L4+L10, family = binomial(link = "probit"), 
                data = office_data)
### FINAL RESULTS ###
# Make predictions
probabilities <- myprobit %>% predict(final_model, type = "response")
probabilities<-probabilities[!is.na(probabilities)]
prob <- data.frame(probabilities)

生成的概率为: (1. -1.519594872) (2. -1.259374062) (3. -0.825930396) (4. -0.554464690) (5. 0.338585816) (6. 1.738214267) (7. 2.538773665) (8. 2.08) 9. 1.719974131) , 等...

当脚本在我的旧计算机上运行时,概率介于 0 和 1 之间。

这是我到目前为止尝试过的

以前的版本方案:我尝试下载以前版本的库(统计)以匹配我拥有的版本,但我的版本比 Rstudio 固定的限制旧,我有 3.4.3 并且我有一个错误,指出我需要 3.5版本或更高版本。新的 R (4.0.3) 不支持旧的东西。看起来我的大部分脚本运行良好,所以我想保留我的包的更新版本,我只想知道如何从 predict() 函数中获得正确的概率

在旧计算机上设置 R 版本 3.4.3 RStudio 版本 1.1.456 (2009-2018) library(stats) 3.4.3

在新计算机上设置 R 版本 4.0.3 RStudio 版本 1.1.456 (2009-2018) library(stats) 4.0.3

所以我的问题是:版本 3.4.3 和 4.0.3 之间是否有可能影响 predict() 函数的变化?以及如何将概率作为输出

最后,这是我之前结果的图表 某个事件的概率

这是我在新版本和新计算机上的结果与 以前相同的代码,除了该值现在不在概率范围内

非常感谢您的宝贵时间。这是我在论坛上的第一篇文章。

标签: rstatisticspredict

解决方案


我解决了我的问题。对于可能遇到此问题的任何人,请在运行代码之前验证您加载的库。就我而言,我加载了太多的库,有些库没有在我的脚本中使用。

我认为加载太多库导致活动功能的优先级被搞砸了,虽然我的旧计算机上没有问题,但新计算机上出现了问题。


推荐阅读