MuMin(R)中的挖空使模型具有较高阶项,而没有它们各自的较低阶项

时间:2019-03-20 00:47:52

标签: r mumin

我正在使用软件包MuMin中的功能挖泥机进行模型选择。我的模型中包含多项式。我的印象是(https://www.rdocumentation.org/packages/MuMIn/versions/1.42.1/topics/dredge,请参见“交互作用”),MuMin作为标准沟渠模型,其中包括较高阶项而没有其各自的较低阶项;但是,当我使用它时,顶级模型仅包含高阶项。

这是我用来创建全局模型的代码,其中包括hour:一阶和二阶

sc.mod.env.hour<-clmm(seedcat~hour+I(hour^2)+MeanSpeed+RH+TKE+AirTemp+MeanUpdraft+(1|jdayfac), data=sc.data, na.action = na.fail, Hess =TRUE)

但是当我运行挖泥机时:

dro.env.hour<-dredge(sc.mod.env.hour)

输出中包含包含I(hour^2)但不包含hour

的模型
Model selection table 
    (Intrc)   ArTmp    hour hour^2 MnSpd    MnUpd     RH      TKE df   logLik   AICc  delta weight
46        + -1.2170         -3.340 1.894          -4.219          13 -571.772 1170.5   0.00  0.154
62        + -1.3410         -3.478 1.964  0.30990 -4.269          14 -570.882 1170.9   0.37  0.128
45        +                 -2.882 2.052          -3.214          12 -573.245 1171.3   0.81  0.103
47        +         -0.3595 -2.670 1.942          -3.601          13 -572.374 1171.7   1.20  0.084
63        +         -0.4495 -2.712 2.010  0.33870 -3.645          14 -571.350 1171.8   1.30  0.080

我也尝试过使用poly(hour,2)来定义全局模型,但这导致只包含一个小时的术语。

我正在使用clmm,但是已经尝试使用lm来简化模型,并且得到了相同的结果。

任何指导表示感谢。我不确定是否应该对它进行交叉验证,但这是编程问题,而不是统计问题,因此认为应该在此处。

编辑:我已经通过使用子集解决了这个问题:

dro.env.hour<-dredge(sc.mod.env.hour, subset=(dc(hour, I(hour^2)))

尽管目前尚不清楚为什么这是一个问题。

1 个答案:

答案 0 :(得分:0)

万一有人有这个问题,我可以在MuMin手册中找到以下解决方案:

首先创建一个具有名称的子集,在这种情况下,我希望获得X和Y的二次效应)

msubset <- expression(  dc(X, `I(X^2)`) &
                        dc(`Y`, `I(Y^2)`))

然后是模型,例如

mglm <- glm(response~X + I(X^2) + Y + I(Y^2)+ Z,
                  family=binomial,
                  na.action = "na.fail",
                  data=mdata)

现在使用您指定的子集挖泥

mmodels<-dredge(mglm, subset=msubset)

检查摘要表

model.sel(mmodels)