对应于 R 中这个 gam 模型拟合的数学模型公式是什么?

机器算法验证 r 广义加法模型
2022-04-09 12:34:21

如果我有一个广义的加法模型,我将如何在科学论文中以正确的方式编写它?例如:

set.seed(10)
RandData <- rnorm(8760*2)
America <- rep(c('NewYork','Miami'),each=8760)

Date = seq(from=as.POSIXct("1991-01-01 00:00"), 
           to=as.POSIXct("1991-12-31 23:00"), length=8760)

DatNew <- data.frame(Loc = America,
                     Doy = as.numeric(format(Date,format = "%j")),
                     Tod = as.numeric(format(Date,format = "%H")),
                     Temp = RandData,
                     DecTime = rep(seq(1, length(RandData)/2) / (length(RandData)/2),
                                   2))
require(mgcv)
mod1 <- gam(Temp ~ Loc + s(Doy) + s(Doy,by = Loc) +
  s(Tod) + s(Tod,by = Loc),data = DatNew, method = "ML")

所以,如果我想写两个位置的温度,可以用下面的模型来描述……我该怎么写?

1个回答

gam撇开对(例如data, )的其他调用method,您的模型公式是:

Temp ~ Loc + s(Doy) + s(Doy,by = Loc) + s(Tod) + s(Tod,by = Loc)

gam 公式的帮助文件在这里,是我获取信息的地方。s()项表示该项中的平滑函数,当by标签包含在s()中时,表示平滑函数乘以相应项。周围没有的项s()是普通的线性项。所以,你的模型可以写成:

Temp=Loc+f1(Doy)+f2(Doy)Loc+f3(Tod)+f4(Tod)Loc+ε

其中是模型通过最大似然估计的平滑函数。您可以考虑用符号替换变量名称(例如而不是),但这是您编写它的方式,使用与代码中相同的变量名称。 f1,f2,f3,f4TTempR