挖掘具有多个参数的 nlme 模型

dredge an nlme model with multiple parameters

免责声明:

Adding covariates to nlme model in R

概览:

使用来自多个站点的解释性非自然变量(自变量)对固着物种(因变量)的覆盖百分比进行建模。

在其他人的帮助下,我使用 R 中的 nlme 包创建了以下逻辑增长模型。百分比覆盖率依赖于四个模型参数。 Days 只是进行测量的天数。 MaxPop = 每个给定站点的最大人口(百分比覆盖 - 在 0 -100% 之间)。 Days50 = 50% 的 MaxPop 花费的时间(以天为单位)。 Hill = 通过拐点控制增长和斜率的滞后。 MaxPop、Days50 和 Hill 均由独立的非生物变量、温度、水加速度、盐度和 pH 值(必要时居中)组成。

Global_Model <- nlme(PercentCover ~ I(100 *((inv.logit(exp(MaxPop) *Days^Hill/(exp(Days50)^Hill + Days^Hill))-0.5)*2)),
                 data = Data15,
                 fixed = list(MaxPop ~ I(Temp-14) + Accel + I(Sal-30) + I(pH-8), LogDays50 ~ I(Temp-14) + Accel + I(Sal-30) +I(pH-8), Hill ~ I(Temp-14) + Accel + I(Sal-30) + I(pH-8)),
                 random = MaxPop ~1|Site,
                 start = c(11, -1, -1925,  1.6, 0, 7.4, -0.2, -776, 0.6, 0,  3.9, -.004, 2009, -0.3, 0), control = nlmeControl(maxIter=100), verbose = T)

我从一组预定义的理论模型开始,但我继续开发一个全局模型,因为所有非生物变量都是预先选择的,并且都有包含在模型中的理论原因。希望这会降低全局模型过度拟合的风险。

使用 MuMIn 包,我尝试使用 dredge(Global_Model) 到 运行 全局模型中的所有嵌套模型,但得到 "Error in FUN(X[[i]], ...) : subscript out of bounds"

我不确定如何着手尝试这个,因为每个模型参数(MaxPop、Day50 和 Hill)都由相同的四个独立变量组成。我想要 运行 一个测试参数内和参数间 IV 的每个排列的挖掘机。

问题:

是否可以在 nlme 中执行 'dredge-like' 过程?

怎么办?

______

非常感谢您的建议。

干杯!

您需要围绕 nlme 编写一个 "wrapper" 函数,将线性公式(例如 y ~ x1 + x2 + x3)映射到三个 nlme 分量:fixedrandom(我假设你想对所有人保持相同的 model),然后将其提供给 dredge。这是可行的,但很棘手。