0

我有 2 个高度相关的变量(尽管不是完全线性的,因此是广义加性模型),它们是在一个时间段内测量的。我可以在这些之间构建一个可靠的 GAM,其中包含大量的偏差解释和良好的验证图。因此,例如在一些假设数据上(忽略此示例中解释的验证图和偏差),

date <- as.data.frame(seq(from = as.POSIXct("2007/9/01"), 
                      to = as.POSIXct("2008/3/01"), by = "day"))
a1 <- as.data.frame(matrix(sample(0:1000, 18.3*10, replace=TRUE), ncol=1))
b1 <- as.data.frame(matrix(sample(0:1000, 18.3*10, replace=TRUE), ncol=1))
df1 <- cbind(date,a1,b1)
colnames(df1) <- c("date","a1","b1")
library(mgcv)
gam <- gam(a1 ~ s(b1), data = df1)

现在在一个单独的数据框中,我在更长的时间段内测量了这些变量之一。有没有办法在这段时间内预测第二个响应变量?所以例如...

date2 <- as.data.frame(seq(from = as.POSIXct("2006/1/01"), 
                       to = as.POSIXct("2008/12/31"), by = "day"))
a2 <- as.data.frame(matrix(sample(0:1000, 109.6*10, replace=TRUE), ncol=1))
df2 <- cbind(date2,a2)
colnames(df2) <- c("date","a2")

我试过这个似乎不起作用。

    b2_predict <- predict.gam(gam,df2$a2)

我收到此错误消息

b2_predict <- predict.gam(gam,df2$a2)
model.frame.default(ff, data = newdata, na.action = na.act) 中的错误:
变量“b1”的类型(列表)无效

知道如何解决吗?

4

1 回答 1

0

也许这会有所帮助:

b2_predict <- predict.gam(gam,data.frame(b1=df2$a2))
于 2015-07-24T13:53:10.860 回答