我不习惯在 R 中使用日期格式的变量。我只是想知道是否可以在线性回归模型中添加日期变量作为解释变量。如果可能,我们如何解释系数?是一天对结果变量的影响吗?
以我正在尝试做的一个例子来看看我的要点。
我不习惯在 R 中使用日期格式的变量。我只是想知道是否可以在线性回归模型中添加日期变量作为解释变量。如果可能,我们如何解释系数?是一天对结果变量的影响吗?
以我正在尝试做的一个例子来看看我的要点。
基于早期对 Stack Overflow 的评论:
是的,这是有道理的。在这里,我解决了一般性问题,并很高兴让 R 专家填写关键细节。在我看来,由于这是现在交叉验证,我们不应该过于狭隘地关注发布者最喜欢的软件,尽管这对于志同道合的人来说很重要。
如果不是数字,任何软件中的日期都可以转换为数字变量,以年、天、毫秒或自某个时间起源以来的任何形式表示。与每个日期相关的系数具有分母单位,无论日期的单位是什么。分子单位取决于响应或因变量的分子单位。(非身份链接函数自然会使这复杂化。)
然而,当日期转移到对研究有意义的原点时,通常最有意义。通常,但不一定,原点应该是研究时间段内的日期或非常接近的日期。
也许最简单的情况是以年为单位对日期变量进行线性回归。在这里,一些表示为日期(如 2000 年或 2010 年)的回归response
意味着date
截距是第response
0 年的值。撇开没有这样一年的日历细节不谈,这样的截距通常是大得离谱的正数或负数,即合乎逻辑,但会分散解释和演示的注意力(即使对消息灵通的观众也是如此)。
在与本科生合作的一个真实例子中,某个地区每年的旋风数量随日期略有增加,线性趋势看起来是合理的第一次尝试。回归的截距是一个很大的负数,这引起了很多困惑,直到人们意识到这和往常一样是对第 0 年的外推。将原点移到 2000 年会产生更好的结果。(实际上,确保积极预测的泊松回归甚至更好,但这是另一回事。)
因此,回归date - 2000
或其他任何事情都是一个好主意。一项研究的实质性细节通常表明一个好的基准日期,即一个新的起源。
使用其他模型和/或其他预测器不会破坏这一原则;它只是掩盖了它。
使用最容易想到的任何日期来绘制结果也是一个好主意。这些可能是原始日期;这并不矛盾,因为它只是使用最容易想到的任何东西的相同原则。
稍微思考一下,这个原理就更普遍了。(年龄 - 20 岁)或类似的情况通常会更好,以避免对 0 岁做出合乎逻辑但尴尬的预测。
编辑 2019 年 3 月 21 日(原 2013 年 7 月 29 日):这些论点已在 2015 年新泽西州考克斯的 Stata 上下文中进行了讨论。原产地物种。Stata Journal 15:574-587 见这里
编辑 2 也是 2015 年 12 月 4 日@whuber 在评论中也提出了数值精度的重要问题。通常时间单位很好,并且生成的日期或日期时间可能非常大,从而引发了平方和等重要问题。他从 R 中举了一个例子。我们可以添加(例如)Stata 中的日期时间是自 1960 年初以来的毫秒数。这个问题根本不是特定于日期的,因为它通常会出现在非常大的数字上或非常小,但也值得标记。
如上所述,通过适当的缩放,日期是很好的回归量。与典型的协变量相比,时间效应不太可能是线性的,因此我几乎总是及时使用回归样条。一些复杂的时间趋势需要很多节(例如,7 个或更多)来拟合。受限三次样条(自然样条)在观察时间结束后提供更安全的线性外推,尽管外推很少是完全安全的。