0

我正在使用包 MuMin 中的函数 dredge 进行模型选择。我的模型中有一个多项式。我的印象是(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)))

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

4

1 回答 1

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)
于 2020-10-22T14:02:22.227 回答