我不确定我的问题是否有意义。但是,我正在考虑使用时间序列数据修改计量经济学模型。这是一个多元回归。自变量之一是 5 年期国债利率。该变量分为两个时间段。一个变量是从 1950 年到 1986 年的 5 年期国债利率。1986 年之后,这个变量取值为 0。第二个变量是从 1986 年到现在的 5 年期国债利率。在 1986 年之前,第二个变量的值为 0。有人建议我将 0 值替换为空白(相当于缺失数据)。因为正如建议的那样,这些变量的含义应该会更好地指定。你能用子集()函数做到这一点。换句话说,您是否可以在不实际删除或忽略整行数据的情况下从这些变量中删除或忽略 0 值,并从其他自变量中删除所有值。我知道这个编码问题取决于这个过程是否有意义。我不确定它确实如此。我已经通过了交叉验证的理论问题。但是,我不确定我会得到任何答案。我想我会继续在这里问编码问题。
问问题
1368 次
1 回答
2
假设您的数据在数据框中,答案是“否”。您不能subset
仅用于data.frame
. 这是因为subset
在一个数据帧上返回另一个数据帧,并且在一个数据帧中所有变量的长度必须相同。
有很多方法可以解决此限制,但它们不适用于lm
. 想想回归是如何工作的:必须充分观察每一个观察结果。如果您缺少数据,您有以下三种选择:
- 删除缺少数据的观察。这称为列表删除,它是默认的
lm
(通过na.omit
函数,隐藏在model.matrix
函数内部,即 insidelm
) - 估算缺失的数据。这是一个庞大的领域和活跃的研究领域
- 使用某种其他方法,例如可以整合缺失数据的贝叶斯模型
您应该能够从 Cross Validated 获得这方面的帮助。但事实仍然存在,根本无法lm
对长度不等的变量使用,也无法subset
返回包含长度不等的变量的数据帧,因为数据帧中的所有变量必须具有相同的长度。
于 2015-09-13T00:43:52.070 回答