我正在尝试提取我的游戏的时变平滑参数。
这是模型:
gam1 <- gam(as.numeric(A5_1)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
gam2 <- gam(as.numeric(A5_2)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
gam5 <- gam(as.numeric(A5_5)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
gam9 <- gam(as.numeric(A5_9)~s(tt,k=k)+s(tt,by=A5_1L,k=k)+s(tt,by=A5_2L,k=k)+
s(tt,by=A5_5L,k=k)+s(tt,by=A5_9L,k=k),data=data_subset)
summary(gam1)
看起来像这样:
我可以创建如下图,显示随时间推移的平滑参数:
plot(gam1, select=2,ylim=c(-3,1),rug=F,xlab="time points",
ylab=substitute(paste("Joy",italic("(t-1)"), "on Joy",italic("(t)"))))
情节看起来像这样:
到目前为止,我发现了predict.gam()
函数:
predict.gam(gam1, type = "terms")
预测函数给我:
(nrows = 103)
但是输出与图不匹配。
图中的线从0.2开始,而平滑
predict.gam()
中的参数约为1.1。我如何提取
随着时间的推移,正确的平滑参数是什么?
在一般情况下,我需要这些参数,以便可以创建不同的参数 随着时间的推移qgraphs()。在开始,中间和结尾处有一个qgraph。 就像网络分析图一样。如果有直接的方法 从随时间变化的游戏创建多个qgraph()图,我将 欣然接受这个。
也许一旦创建矩阵我甚至会使用qgraph.animate() 这些参数。
非常感谢!
答案 0 :(得分:0)
它看起来不像该图,因为该图显示了在tt
的观察范围内100个有序值的估计效果。 predict()
调用正在返回数据的拟合值,因为您没有向newdata
参数提供任何东西。
两个选项是:
保存来自plot.gam()
的输出:plt <- plot.gam(....)
现在plt
将包含一个对象,其中包含用于创建绘图的所有数据。如果您绘制所有平滑而不是仅绘制一个,则将获得一个列表,其中包含每个平滑的数据对象。
准备一些新数据以进行预测并将其作为predict()
传递给newdata
。您需要提供tt
以及模型中使用的所有by
变量的数据。 expand.grid()
对此很有用。