我正在运行here用R开发的MRF示例。以下块工作完美:
set.seed(0)
data=matrix(rnorm(15*200),200,15)
#DGP
library(pracma)
X=data[,1:3]
y=crossprod(t(X),rep(1,3))*(1-0.5*I(c(1:200)>75))+rnorm(200)/2
trend=1:200
data.in=cbind(y,data,trend)
假设我们想要预测最后 50 个观测值。我们可以如下设置 oos_pos:
oos_position = nrow(data.in)-50: nrow(data.in)
但是,我在运行下面的代码时发现以下错误Error in commitee[b, ] <- rt.output$pred : number of items to replace is not a multiple of replacement length。
有人能够复制以下代码块吗?
mrf.output = MRF(data = data.in,
y.pos = 1,
x.pos = 2:4,
S.pos = 2:ncol(data.in),
oos.pos = oos_position,
mtry.frac = 0.25,
trend.push = 4,
quantile.rate = 0.3,
B = 100)
有什么建议吗?
我不认为
oos_position
指定不正确 - 它似乎指定了前 150 行,而不是最后 50 行。请尝试以下操作:
mrf.output = MRF(data = data.in,
y.pos = 1,
x.pos = 2:4,
S.pos = 2:ncol(data.in),
oos.pos = 151:200,
mtry.frac = 0.25,
trend.push = 4,
quantile.rate = 0.3,
B = 100)