R中MuMIn包中的标准化

时间:2014-07-31 13:08:52

标签: r lme4 standardized mumin

我使用R中的'MuMIn'包来选择模型并计算输入变量(rain,brk,onset,wid)的效果大小。为了使我的效果大小在变量之间具有可比性,我使用arm包中的标准化函数对它们进行了标准化。以下是我要遵循的代码:

供参考,请参阅本文的附录:http://onlinelibrary.wiley.com/doi/10.1111/j.1420-9101.2010.02210.x/full Grueber等。 2011:生态学和进化中的多模型推理:挑战和解决方案

data1<-read.csv("data.csv",header=TRUE)       #reads the data

global.model<-lmer(yld.res ~ rain + brk + onset + wid + (1|state),data=data1,REML="FALSE")               # prepares a global model

stdz.model <- standardize(global.model,standardize.y = FALSE)          # standardise the input varaibles 

model.set <- dredge(stdz.model)      ### generates the full submodel set

top.models <- get.models(model.set, subset= delta<2)   # selects models with delta AIC <2

model.avg(top.models)       # calculates the average effect size of input variables

以下是model.avg(top.models)的结果,它给出了每个输入变量的平均效果大小

Coefficients: 
         (Intercept)     brk         rain         wid        onset
subset -4.281975e-14   -106.0919   51.54688    39.82837    35.68766

我读到了标准化函数如何工作 - 减去平均值并除以2SD。

我的问题是:由于我已经对输入变量进行了标准化,因此效果大小不应该介于-1到1之间吗?或输出显示的效果大小是否正确?

请告知

非常感谢

1 个答案:

答案 0 :(得分:3)

这更像是一个统计问题,而不是一个编程问题,但是:你只是标准化预测变量,而不是响应变量(你指定standardize.y=FALSE);因此,每个系数表示预测变量中每2个SD变化的响应的预期变化(在响应的单位中!)。如果响应的范围很大(因为它必须在您的示例中),那么可能会有非常大的变化。例如,如果我正在分析以毫克为单位测量的大象重量的变化,我可以预期,对于预测因子(例如性别,年龄,食物供应)的相当小的变化,响应会发生非常大的变化。如果你想要真正的无量纲/无单位效果大小,你应该使用standardize.y=TRUE。即使是非维度效应也不一定限制在介于-1和+1之间,但如果它们如此之大,那将是令人惊讶的。

顺便说一句,我认为您的standardize功能来自arm包,而不是来自MuMInlibrary("sos"); findFn("standardize",sortby="Function))。