[英]Error when predicting new fitted values from R gamlss object
我有一個 gamlss 模型,我想用它來做出新的 y 預測(和置信區間),以便可視化模型與真實數據的擬合程度。 我想從隨機預測值的新數據集(而不是原始數據)中進行預測,但我遇到了錯誤消息。 下面是一些示例代碼:
library(gamlss)
# example data
irr <- c(0,0,0,0,0,0.93,1.4,1.4,2.3,1.5)
lite <- c(0,1,2,2.5)
blck <- 1:8
raw <- data.frame(
css =abs(rnorm(500, mean=0.5, sd=0.1)),
nit =abs(rnorm(500, mean=0.72, sd=0.5)),
irr =sample(irr, 500, replace=TRUE),
lit =sample(lite, 500, replace=TRUE),
block =factor(sample(blck, 500, replace=TRUE))
)
# the model
mod <- gamlss(css~nit + irr + lit + random(block),
sigma.fo=~irr*nit + random(block), data=raw, family=BE)
# new data (predictors) for making css predictions
pred <- data.frame(
nit =abs(rnorm(500, mean=0.72, sd=0.5)),
irr =sample(irr, 500, replace=TRUE),
lit =sample(lite, 500, replace=TRUE),
block =factor(sample(blck, 500, replace=TRUE))
)
# make predictions
predmu <- predict(mod, newdata=pred, what="mu", type="response")
這給出了以下錯誤:
Error in data[match(names(newdata), names(data))] :
object of type 'closure' is not subsettable
當我在我的真實數據上運行這個時,它給出了這個稍微不同的錯誤:
Error in `[.data.frame`(data, match(names(newdata), names(data))) :
undefined columns selected
當我在沒有newdata
情況下使用predict
,它可以很好地對原始數據進行預測,如下所示:
predmu <- predict(mod, what="mu", type="response")
我使用預測錯誤嗎? 任何建議都非常感謝! 謝謝你。
不,你沒有錯。 我也遇到過同樣的問題。
文檔表明 predict 的實現不完整。 這似乎是一個不完整的特性/功能的例子。
Hedgehog 提到基於新數據的預測尚不可能。 因此,BonnieM 將模型“移動”到 lmer() 中。
我想進一步評論這個想法:BonniM 試圖根據對象mod
預測
mod <- gamlss(css~nit + irr + lit + random(block),
sigma.fo=~irr*nit + random(block), data=raw, family=BE)
在這種情況下,“進入 lme()”可能如下所示:
mod2 <- gamlss(css~nit + irr + lit + re(random=~1|block),
sigma.fo=~irr*nit + re(random=~1|block),
data=raw,
family=BE)
基於mod2
新數據預測在 gamlss2 包中實現。 此外, mod
和mod2
應該是相同的模型。 參見:Stasinopoulos, MD, Rigby, RA, Heller, GZ, Voudouris, V., & De Bastiani, F. (2017)。 靈活的回歸和平滑:在 R. Chapman 和 Hall/CRC 中使用 GAMLSS。 第 10.9.1 章
最好的問候凱
我在這個方向上遇到了很多隨機問題,並發現使用權重參數進行擬合,並將一些額外的虛擬觀察設置為權重為零(但我感興趣的預測變量)作為一種解決方法。
通過確保 newdata 參數的新數據具有與運行 gamlss 模型時使用的列結構相同的結構,我能夠克服 undefined columns selected 錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.