我正在处理一些监测站的历史养分浓度数据以及相应的历史流量。我正在尝试编写预测回归方程,以估计现在关闭的站点的浓度。我已经看了一些关于MGCV软件包的教程,并决定马尔可夫随机场将适合我正在做的事情。我不知道如何从更大的数据框架中选择某些参数来构建回归,所以我已经定制了数据框架,只包含每个站点回归所需的信息。下面是Station C9的一个示例:
C9_TP_Reg
Station, Date.x, Month, Year, Day, TP, SWP, CVP
D19, 1975-1-07, 1, 1975, 7, 0.1, 3593, 1071
C9, 1975-1-22, 1, 1975, 22, 0.16, 1914, 3483
D28A, 1975-02-03, 2, 1975, 3, 0.11, 2360, 4506
...
这是一个跨越数年的大数据集..。
我试图使用以下代码编写我的回归:
TP_C9 <- gam(TP ~ s(Date.x) + s(Station,bs="mrf",xt=list(nb=nb)) +
s(SWP) + s(CVP), data=C9_TP_reg)
我发现了一个错误:
名称中的
错误(Dat) <- object$term:‘name’属性1必须与向量的长度相同
如果有人能帮我,我会非常感激的。我花了几个小时看MGCV软件包上的教程,但无法让它起作用。
我假设,如果我只是适合所有的站,我可以重新计算方程和C9的计算,以估计未来浓度.
发布于 2020-06-25 11:58:41
您可以在公式中包含as.factor函数:
s(as.factor(Station),bs="mrf",xt=list(nb=objectpolygon))
并向nb对象提供正在使用的形状文件的名称,如
names(objectpolygon) <- attr(objectpolygon, "station.id")
我最近读到一个关于这个问题的问题。当我找到链接时,我会添加它。也许问题就在这里。我是新来的mgcv,并试图适应一个模型与mrf平滑。顺便说一下,我用函数poly2nb
从spdep包创建了对象多边形。
https://stackoverflow.com/questions/62314493
复制相似问题