使用循环变量(0~23 小时)作为预测变量的回归

机器算法验证 回归 循环统计
2022-03-15 19:03:18

我的问题最初来自阅读这篇文章 Use of circular predictors in linear regression

现在,我正在尝试使用 https://archive.ics.uci.edu/ml/datasets/bike+sharing+dataset 中的“自行车共享数据集”构建线性回归,该数据集基本上试图对不同变量的自行车租赁计数进行回归

我有疑问的预测变量之一是使用租赁发生时间的“小时”,其值从 0 到 23。原始帖子建议使用正弦函数转换循环数据(一天中的时间)以保持循环特性。

我试图将相同的方法应用于我的情况来转换 Hour 变量。但是,使用sin(π hour/180)转换 0~23会让 00:00 和 12:00 变为 0。但我认为人们在午夜 (00:00) 和下午 (12: 00)

在这种情况下,最好只使用 23 个虚拟变量来计算小时,还是我误解了循环回归的概念?

2个回答

循环回归通常是指具有循环结果的回归。

在这种情况下,我们使用循环预测器进行线性回归。在这种情况下,我们会将角度的正弦和余弦都添加到回归中,以便我们预测结果为y^=β1cos(πhour/12)+β2sin(πhour/12).添加正弦和余弦自然可以解决您提到的问题。请注意,在这里,与您不同,我假设您hour以小时而不是度数表示。

有关如何执行此操作及其含义的更详细答案,请参阅此 SO question 的答案

你想映射间隔(0,24)到区间(0,2π)- 一个完整的周期 -; 这样做的功能是

2πhour24

然后,您需要线性模型中的两项(回想一下,等效的非线性参数化使用相位和幅度):

β1sin(2πhour24)+β2cos(2πhour24)

中午和午夜不限于产生相等的预测值,因为相位是根据您的数据估计的。中午可能是波峰,午夜可能是波谷。

(并且您可以以类似于高阶多项式项的方式继续使用谐波:+β3sin(2×2πhour24)+β4cos(2×2πhour24)+)