2

我正在模拟四个河口的盐度水平与一条大河的淡水排放(影响所有 4 个河口)的关系,其中每个盐度站都作为随机效应包括在内(每个河口有多个传感器)。

我的 df 看起来像这样:*注意 = 实际上,每个站都有几十个,如果不是几百个,每个观测

estuary    station   salinity     discharge
A          s1        10.8         1185.18
A          s2        11.1         1551.91
A          s3        12.5         1749.98
B          s4        9.2          1100.65
B          s5        11.8         1692.67
C          s6        8.1          591.41
C          s7        8.7          742.88
D          s8        10.4         1098.1
D          s9        11.9         1174.6

我使用自启动函数 SSasymp 为数据拟合了指数衰减函数。该模型将站点作为随机效应。下面的代码:

df$station <- as.factor(df$station)
df.g <- groupedData(salinity ~ discharge | station, data = df)
df.nlis <- nlsList(salinity ~ SSasymp(discharge, Asym, R0, lrc), data = df.g)

## Fit a nonlinear mixed model
df.nlme <- nlme(df.nlis, control=list(MaxIter = 200, msVerbose = T))

我还想运行另一个将河口作为固定效应的模型,但是我不确定如何编写模型。我试过了:

df.g <- groupedData(salinity ~ discharge + estuary | station, data = df)
df.nlis <- nlsList(salinity ~ SSasymp(discharge, Asym, R0, lrc) + estuary, data = df.g)
df.nlme <- nlme(df.nlis, control=list(MaxIter = 200, msVerbose = T))

但是当它运行时,我收到消息:

Error in names(start$fixed) <- names(cf) : attempt to set an attribute on 
NULL
4

1 回答 1

0

这对于我虚构的示例还不起作用,但这是我要开始的地方:

df.nlis2 <- gnls(salinity ~ SSasymp(discharge, Asym, R0, lrc), data = df.g,
                 params = Asym + R0 + lrc ~ estuary,
                 start = rep(fixef(df.nlme), 4))
于 2021-09-22T00:37:23.910 回答