最近我正在阅读一篇论文,其中作者使用 GAM 进行预测。简而言之,数据如下所示:
y i j x weekend
5.6 1 1 4.6 Mon.
6.5 1 2 5.6 Mon.
...
4.6 2 1 6.7 Sta.
2.4 2 2 1.2 Sta.
...
其中y, x1,x2是连续数字,weekend是星期几。在论文中,作者使用以下公式:
在公式,是整体平均值,是随机截距,确定是工作日还是周末。Ans 所以我改造从 {Mon., Thu., .., Sun.} 到 {0, 1}。和是具有 17 个样条结的三次回归函数,实际上会生成两个平滑函数,一个用于工作日,另一个用于周末。
我想使用以下代码:
gam(y~ s(i,bs="re") + weekend + s(x, by=weekend, bs="cr", k=17))
但我不确定它是否符合公式。我的问题是:
gam会自动生成模型的均值,所以不需要指定在代码中?- 是不是通过使用
s(i,bs="re"),gam将计算不同的随机效应与分布对于每个具体来说? - 周末改成0-1值好不好?在代码
s(x, by=weekend, bs="cr", k=17)中,by关键字是否意味着它将x为不同的weekend值生成不同的平滑函数? - 最后一个问题是,如果没有指定
knots=list(),如上面的代码,模型的默认行为是将结点均匀放置在值的范围内吗?