簡體   English   中英

從 R gamlss 對象預測新擬合值時出錯

[英]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 包中實現。 此外, modmod2應該是相同的模型。 參見: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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM