据我了解,标准化系数可以用作效应大小的指标(可以使用经验法则,如Cohen's 1988)。我还了解到标准化的系数是expressed in terms of standard deviation,这使它们相对接近Cohen的d。
我还理解,获取标准化系数的一种方法是事先对数据进行标准化。另一种方法是使用std.coef
包中的MuMIn
函数。
使用线性预测变量时,这两种方法是等效的:
library(tidyverse)
library(MuMIn) # For stds coefs
df <- iris %>%
select(Sepal.Length, Sepal.Width) %>%
scale() %>%
as.data.frame() %>%
mutate(Species = iris$Species)
fit <- lm(Sepal.Length ~ Sepal.Width, data=df)
round(coef(fit), 2)
round(MuMIn::std.coef(fit, partial.sd = TRUE), 2)
在两种情况下,系数均为-0.12。我的解释如下:每增加1个Sepal.Width标准差,Sepal.Length就会减小其SD的0.12 。
然而,这两种方法给出的分类结果为不同的结果:
fit <- lm(Sepal.Length ~ Species, data=df)
round(coef(fit), 2)
round(MuMIn::std.coef(fit, partial.sd = TRUE), 2)
相对于 setosa (截距),杂色的效果分别为1.12和0.46。
我应该能够说“ versicolor 和 setosa 之间的区别是Sepal.Length的SD ...”?非常感谢
答案 0 :(得分:2)
您没有标准化与Species
关联的隐式变量,因此这些系数不会被标准化。
您可以按照以下步骤操作:
dummies <- scale(contrasts(df$Species)[df$Species,])
fit <- lm(Sepal.Length ~ dummies, data = df)
round(coef(fit), 2)
# (Intercept) dummiesversicolor dummiesvirginica
# 0.00 0.53 0.90
如果将MuMIn::std.coef
参数设置为partial.sd
,则这与FALSE
的结果一致。