微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么总结 R 中的线性模型没有显示所有需要的级别?

如何解决为什么总结 R 中的线性模型没有显示所有需要的级别?

我正在尝试在 R 中做一个线性模型。我有 24 个实验(完整的因子分析)。我对这个模型有 3 个因素。但是,密度因子有 3 个水平(B、M、A)。我知道不需要出现 DensityB,因为如果 DensityM 和 DensityA 的值为 0,则间接激活 DensityB。但是在交互中我们需要 DensityB:MatS。因为如果我们有 MatN,我们可以使用 0 激活它。但是会发生这种情况:

            Estimate Std. Error t value Pr(>|t|)    

(Intercept)    0.35500    0.06094   5.826 2.03e-05 ***

Thickness2     0.11516    0.04606   2.500  0.02294 *  

DensityM      -0.05080    0.07978  -0.637  0.53279    

DensityA      -0.24315    0.07978  -3.048  0.00728 ** 

MatS           0.22882    0.07978   2.868  0.01066 *  

**DensityM:MatS** -0.21393    0.11283  -1.896  0.07509 . 
 
**DensityA:MatS** -0.27452    0.11283  -2.433  0.02631 *

当我不使用此重新排序因子的级别时不会发生这种情况:

df$Density  = factor(df$Density,levels=c("B","M","A"))

当我不使用它时,结果如下:

(Intercept)    0.11185    0.06094   1.835  0.08399 . 

Thickness2     0.11516    0.04606   2.500  0.02294 * 

DensityB       0.24315    0.07978   3.048  0.00728 **

DensityM       0.19235    0.07978   2.411  0.02751 * 

**DensityA:MatS** -0.04570    0.07978  -0.573  0.57426   

**DensityB:MatS**  0.22882    0.07978   2.868  0.01066 * 

**DensityM:MatS**  0.01489    0.07978   0.187  0.85412 

他们是对的。

为什么重新排列因子的水平会改变这种相互作用?我需要对级别重新排序,因为我希望 DensistyM 和 DensityA 出现在线性模型中(并且 DensityB 作为较低级别;因此,如果 DensityM 和 DensityA 值为 0,则激活 DensistyB)。

调整后的平方 R 和线性模型的 p 值相同。

谢谢!

解决方法

这只是过度参数化的结果,无需担心。您的建模代码只是将因子 Density 的最终水平作为参考水平。其他水平的影响只是与参考水平的差异。

要看到这一点,在您的第一个模型中,以“B”为参考电平,“A”和“M”之间的差值为 -0.05080 - -0.24315 = 0.19235。在您的第二个模型中,以“A”为参考水平,“M”的系数(即“A”和“M”之间的估计差异)为 0.19235。完全相同的值。

您可以从任一模型中计算出您喜欢的任何效果的值,并且这两个值将相同。您只需要考虑模型使用的参数化。

我投票结束这个问题,因为我相信它更适合 stackexchange:这是一个统计问题,而不是一个编程问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。