我正在使用软件包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)))
尽管目前尚不清楚为什么这是一个问题。
答案 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)