R:glm(多元线性回归)忽略/删除一些预测变量

时间:2017-03-27 15:26:39

标签: r linear-regression

之前我已经发布了这个问题,但我相信我没有很好地解释这个问题并且它过于复杂,所以我删除了我之前的帖子,而是发布了这个问题。如果这给您带来任何不便,我很抱歉。

我也提前道歉,因为我无法提供示例数据,我使用的是非常大的表,而我想要做的事情可以用更简单的示例工作,因此提供示例数据无济于事。它一直对我有用,直到现在。所以我只是试图了解可能存在的问题。但如果有任何方法可以提供更多信息,请告诉我。

所以,我有一个对应于响应变量的向量和一个预测变量表。响应向量是数字,预测变量(表的列)是二进制格式(0和1)。

我使用响应向量和预测变量表运行glm函数(多元线性回归):

fit <- glm(response ~ as.matrix(predictors), na.action=na.exclude)
coeff <- as.vector(coef(summary(fit))[,4])[-1]

当我过去这样做的时候,我会提取回归系数的向量,以便进一步分析。

问题在于,现在回归返回一个缺少某些值的系数向量。基本上一些预测变量根本不归因于glm的系数。但是没有错误消息。

模型的摘要看起来很正常,但是我提到的一些预测变量缺失了。大多数其他预测变量都分配了数据(系数,p值等)。 模型中缺少约30个预测变量,超过200个。

我尝试过使用不同的响应变量(向量),但是我遇到了同样的问题,尽管缺失的预测变量因响应向量而异...

有关可能发生的事情的任何想法?我认为如果某些变量的方差为0,就会发生这种情况,但我已经检查过了。表中也没有NA值和缺失值。

什么可能导致glm忽略/删除一些预测变量?

欢迎任何建议!

编辑:我发现删除的预测变量的值与另一个预测变量相同。仍然应该有一种方法来保留它们,并且它们将获得相同的回归系数,例如

1 个答案:

答案 0 :(得分:1)

您的编辑解释了为什么您没有获得这些变量。那将是我的第一个问题。 (这个问题最好在Cross验证时提出,因为它不是R错误,这是你模型的一个问题。)

他们不会得到相同的系数:假设你有一个1:1的关系,Y = X + e,那么适合简单的模型Y ~ X + X。每个X将被赋予任何值,使得总和等于1.没有解决方案。 Y = 0.5X + 0.5X对我们来说可能是最明显的,但Y = 100X -99X同样有效。

由于同样的原因,你也不能有任何预测因子是其他预测因子的线性和。

如果您真的想要这些值,您可以根据自己的价值生成它们。但是我不推荐它,因为这些假设将会非常薄弱。