我需要在我的项目中使用多元线性回归,我有两个因变量:mean_1和mean_2。自变量为YYYY-mm-dd格式的日期。我一直在浏览各种stackoverflow帖子,以了解如何在回归中使用date作为变量。一些人建议将日期转换为数值(https://stackoverflow.com/a/40217971/13713750),而另一个选项是将日期转换为伪变量
我不明白的是如何将数据集中的每个日期转换为一个伪变量,并将其用作自变量。是否有可能或者有更好的方法使用日期作为自变量
注:我更喜欢在日期格式中使用日期,这样可以方便地绘制和分析回归结果。此外,我正在与pyspark合作,但如有必要,我可以切换到pandas。因此,任何实现示例都会有所帮助。谢谢
如果要将日期转换为数字(但我不推荐),可以执行以下操作:
您也可以这样做,但总秒数为:
此外,您可以使用基准日期,并从日期变量中减去基准日期,然后获得天数,这将为您提供一个有意义的整数(差值越大表示日期越晚,而差值越小表示日期越早)。对于我来说,将此值用作模型中的自变量是有意义的
首先,我们创建一个基线日期(可以是您想要的任何日期),并将其添加到dataframe的static列中:
然后我们得到静态日期与您的日期的天数差
这里有一个数字,可以用作自变量
您可以创建新列
year
、month
、day_of_year
、day_of_month
、day_of_week
。您还可以添加一些二进制列,如is_weekday
、is_holiday
。在某些情况下,添加第三方数据是有益的,例如每日天气统计数据(我正在处理一个案例,证明额外的每日天气数据非常有用)。这取决于你所从事的领域。任何一列都可以揭示数据背后的某种模式。至于虚拟变量,将
month
和day_of_week
转换为虚拟变量是有意义的。另一个选择是,为每个月构建一个模型
相关问题 更多 >
编程相关推荐