如何处理R中的错误,例如“系数:14由于奇异而未定义”?


17

当执行GLM时,在方差分析输出中出现“由于奇异而未定义”错误,如何抵消这种错误的发生?

有人认为这是由于协变量之间的共线性或数据集中不存在其中一个级别(请参阅:在lm中解释“由于奇异而未定义”

如果我想看看这“特殊治疗”驱动模式,我有4个级别的待遇:Treat 1Treat 2Treat 3Treat 4,这是记录在我的电子表格是:当Treat 1是1,其余都是零,如果Treat 2是1,其余都是零,等,我该怎么办?


我看到很多人都有这个问题-有人能理解对这个人查询的回答吗?stat.ethz.ch/pipermail/r-help/2006-April/103836.html
Platypezid 2011年

Answers:


28

您可能会收到该错误,因为您的两个或多个自变量是完全共线的(例如,错误编码虚拟变量以制作相同的副本)。

在数据上使用cor()或在模型上使用alias()进行仔细检查。


11
谢谢不知道alias()函数。那真的很方便。干杯,O.
OFish

也不知道功能alias。挺棒的。
igorkf

1

由于您的自变量之间的强相关性,将发生错误“由于奇异而未定义”。可以通过使用n-1个虚拟变量来避免这种情况。对于您的情况,对于处理变量,应使用3个二进制虚拟变量(Treat1,Treat2,Treat3)。

在R程序中,线性回归函数lm()将导致“ NA”作为高相关变量的系数。


1
您能否说出您认为这是对现有答案的补充?也许通过编辑呢?
mdewey
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.