我不习惯在R中使用日期格式的变量。我只是想知道是否有可能在线性回归模型中将日期变量添加为解释变量。如果有可能,我们如何解释系数?一天对结果变量的影响?
举例说明我的要点。
我不习惯在R中使用日期格式的变量。我只是想知道是否有可能在线性回归模型中将日期变量添加为解释变量。如果有可能,我们如何解释系数?一天对结果变量的影响?
举例说明我的要点。
Answers:
基于对堆栈溢出的早期注释:
是的,这很有道理。在这里,我解决了一般性问题,很高兴让R专家填写关键细节。我认为,由于这是Cross-Validated上的内容,因此我们不应过于狭too地关注发贴者喜欢的软件,尽管这对于志趣相投的人来说很重要。
任何软件中的日期(如果不是数字的话)都可以转换为数字变量,以年,天,毫秒或自某个时间开始的任何数字表示。与每个日期关联的系数的分母单位与日期的单位无关。分子单位取决于响应或因变量的单位。(非身份链接功能自然会使情况复杂化。)
但是,通常将日期移到对研究有意义的原点是最有意义的。通常,但不是必须的,原籍应该是学习期间内的日期,或者非常接近该日期。
也许最简单的情况是对以年为单位的日期变量进行线性回归。这里是一些回归response
上date
表现为像2000年或2010年的日期指的拦截是值response
在0年撇开历法细节,有没有这样的一年,这样的拦截往往是荒谬的大正或负,这是逻辑性强,但会分散解释和表达的注意力(即使对于知情的受众也是如此)。
在与大学生合作的一个真实例子中,在某个地区,每年的气旋数量随着日期的增加而略有增加,线性趋势似乎是一个合理的第一步。回归的截距很大,为负数,这引起了很大的困惑,直到人们意识到这和往常一样都是对0年的外推。将原点移到2000年会产生更好的结果。(实际上,确保正面预测的泊松回归甚至更好,但这是另一回事。)
回归 date - 2000
等等都是一个好主意。一项研究的实质性细节通常表明一个良好的基准日期,即一个新的起点。
使用其他模型和/或其他预测变量不会破坏该原理。它只是模糊了它。
用最容易想到的日期对结果进行图形绘制也是一个好主意。这些可能是原始日期;这不是矛盾,因为使用最容易想到的东西只是同一原则。
稍加思考,就会发现该原理更为笼统。我们通常最好选择(年龄-20岁)或类似的年龄,以避免对0岁年龄段做出逻辑但笨拙的预测。
编辑2019年3月21日(原始2013年7月29日):在新泽西州科克斯市的Stata语境中讨论了这些论点。起源。Stata Journal 15:574-587 参见此处
编辑2也是2015年12月4日@whuber在评论中也提出了数值精度的重要问题。通常,时间单位很好,并且生成的日期或日期时间可能非常大,从而对平方和提出了重要的问题,依此类推等等。他从R提出了一个例子。为此,我们可以加上(例如)Stata中的日期时间是自1960年初以来的毫秒数。这个问题根本不是特定于日期的,因为通常在数字很大时可能会出现或很小,但也值得举报。