如何解决使用 lmSupport::modelEffectSizes() 对具有两个以上级别的分类变量进行回归的效果大小? 问题
当我进行回归并想要效果大小时,我通常会这样做:
library(lmSupport)
mod <- lm(mpg ~ disp*hp,data=mtcars)
sum <- summary(mod)$coefficients[-1,-2]
sr2 <- modelEffectSizes(mod)$Effects[-1,4]
(table.stats <- cbind(sum,sr2))
# sr2 is the partial semi-correlation squared,also known as the delta R2
Estimate t value Pr(>|t|) sr2
disp -0.0733730341 -5.100113 2.109284e-05 0.16735440
hp -0.0978942509 -3.956175 4.725449e-04 0.10069980
disp:hp 0.0002900495 3.336151 2.407037e-03 0.07160925
一切都按预期工作。现在有一个具有两个级别的分类变量:
mod <- lm(mpg ~ disp*factor(vs),sr2))
Estimate t value Pr(>|t|) sr2
disp -0.02936965 -4.353711 0.0001617349 0.14843949
factor(vs)1 8.39770888 2.785376 0.0094830921 0.06075720
disp:factor(vs)1 -0.04218648 -2.641439 0.0133540144 0.05464007
一切都按预期工作。现在有一个多于两个级别的分类变量:
mod <- lm(mpg ~ disp*factor(cyl),sr2))
Estimate t value Pr(>|t|) sr2
disp -0.1351418 -4.842228 5.096471e-05 0.1171143
factor(cyl)6 -21.7899679 -4.106201 3.542378e-04 0.1220738
factor(cyl)8 -18.8391564 -4.085112 3.743301e-04 0.0864844
disp:factor(cyl)6 0.1387469 3.816621 7.528445e-04 0.1171143 [repeated value for sr2!]
disp:factor(cyl)8 0.1155077 3.909096 5.923212e-04 0.1220738 [repeated value for sr2!]
Warning message:
In cbind(sum,sr2) :
number of rows of result is not a multiple of vector length (arg 2)
我们收到警告,看到前两个 sr2 值在第三个值之后重复。这里的问题好像是summary有五行,但是对于效果大小,只有三个值/行:
sr2
disp factor(cyl) disp:factor(cyl)
0.1171143 0.1220738 0.0864844
这可以通过查看效果大小的原始输出来验证:
modelEffectSizes(mod)
lm(formula = mpg ~ disp * factor(cyl),data = mtcars)
Coefficients
SSR df pEta-sqr dR-sqr # last column is sr2
(Intercept) 1030.0951 1 0.8757 NA
disp 131.8762 1 0.4742 0.1171
factor(cyl) 137.4609 2 0.4845 0.1221
disp:factor(cyl) 97.3855 2 0.3997 0.0865
Sum of squared errors (SSE): 146.2
Sum of squared total (SST): 1126.0
在尝试将效果大小分配给回归项时会产生问题,因为它们的行数不同。解释似乎是 lm()
将第一组作为参考,并为剩余的两个组提供了不同的术语,而 modelEffectSizes()
没有(它只是给出了整个组变量的效果大小).
帮助说:
?modelEffectSizes
For categorical variables coded as factors,it calculates these for multi-df effect.
Manually code regressors to get 1 df effects
但我不确定这意味着什么。
问题
鉴于这种情况,为每个回归项分配效果大小的正确/推荐方法是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。