安装"MuMIn“包时,使用predict.gls时会收到错误消息。
以下(Ex. )( 1)工程:
### EX. 1
library(nlme)
# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
predict(fm1, newOvary)
# [1] 9.441686 13.116003 11.316793 13.116003 14.991110
# attr(,"label")
# [1] "Predicted values"然而,以下(Ex. )2)生成错误消息,尽管库(MuMIn)行是与Ex的唯一不同之处。1:
### EX. 2
library(nlme)
library(MuMIn) # (This is the only thing different from Ex. 1)
# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
predict(fm1, newOvary)
# Error in eval(predvars, data, env) : object 'follicles' not found,有人知道为什么会这样吗?在安装MuMIn时使用“预测”似乎存在不兼容性。
有趣的是,以下(Ex。( 3)直接调用predict.gls,将其还原为工作状态:
### EX. 3
library(nlme)
library(MuMIn)
# example code from https://stat.ethz.ch/R-manual/R-devel/library/nlme/html/predict.gls.html
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75))
nlme:::predict.gls(fm1, newOvary) # (This is the only thing different from Ex. 2)
# [1] 9.441686 13.116003 11.316793 13.116003 14.991110
# attr(,"label")
# [1] "Predicted values"但是,我已经读到,使用'nlme:::predict.gls‘作为’::‘可能’有风险‘是不可取的,因为它访问的内部函数并不是直接可用的。
下面是我当前的R.version输出:
x86_64-w64-mingw32 32平台
arch x86_64
os mingw32
系统x86_64,mingw32
状态
专业3
未成年人4.0
2017年
04年月
第21天
svn rev 72570
语言R
version.string R版本3.4.0 (2017-04-21)昵称“你愚蠢的黑暗”
顺便说一句,我的旧电脑上没有这个问题,它使用了一个旧版本的R。我有个朋友试着用Ex。在他的电脑上,也产生了一条错误信息。
对Ex中错误消息的原因的任何洞察。2,以及如何在不诉诸Ex解决办法的情况下修复它。3,非常感谢!
发布于 2017-05-24 19:59:18
"MuMIn“实现了自己的predict.gls方法,该方法允许使用se.fit,但事实证明,它可能有一个错误。如果您在 "MuMIn“之后加载"nlme”,将使用"nlme“中的原始方法。
编辑:,现在已经修好了。请将MuMIn更新为1.16.5版,来自R:install.packages("MuMIn", repos="http://R-Forge.R-project.org")
发布于 2017-05-24 20:48:00
绕过这个问题的一种方法是使用函数MuMIn:::predict.gls将响应变量follicles添加到newdata数据集中。可以向响应变量输入随机值,它们将不用于计算。
library(nlme)
library(MuMIn)
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
correlation = corAR1(form = ~ 1 | Mare))
newOvary <- data.frame(Time = c(-0.75, -0.5, 0, 0.5, 0.75), follicles=rep(1,5))
predict(fm1, newOvary)
############
[1] 9.441686 13.116003 11.316793 13.116003 14.991110
attr(,"label")
[1] "Predicted values"这些估计与nlme:::predict.gls给出的估计完全相同
nlme:::predict.gls(fm1)
[1] 9.441686 13.116003 11.316793 13.116003 14.991110
attr(,"label")
[1] "Predicted values"https://stackoverflow.com/questions/44166621
复制相似问题