如何使用分类变量进行时间序列分析

数据挖掘 机器学习 时间序列 分类数据
2021-10-06 15:11:50

我读过的大多数时间序列分析教程/教科书,无论是单变量还是多变量时间序列数据,通常都处理连续的数值变量。

我目前有一个处理多元时间序列数据的问题,但这些字段都是分类变量。因此,我想知道是否有任何方法可以使用标准时间序列分析技术(例如 ARIMA、ARMA 等)

具体来说,我的数据是一个警报数据流,在每个时间戳中,警报监控系统、问题位置等信息都存储在警报中。这些字段都是分类变量。

3个回答

根据定义,时间序列 ARIMA 模型假设,给定时间的数值观测 -ķ, 数值变量的值 X 有时 可以近似为

X=j=1p一个jX-j+ε+C
在哪里 ε 是白噪声误差项,而 一个j是待确定的参数。这个想法是数值变量X 有时 只依赖于它以前的一些值;如您所见,通过构造,上述仅适用于数值变量。然后引入了一些关于移动平均线和偏差的更多条件以进行验证,并且能够证明在这种条件下,系数的形式一个j可以确定。

在这些情况下处理分类变量的标准方法是使用 one-hot 编码,即您为类别的每个级别引入虚拟变量,并根据该类别是否存在于 1 或 0 来拟合虚拟变量时间-ķ. 此处提出了类似的问题,您可能想看看。

您可能想问自己的另一件事是时间序列是否真的是您正在寻找的,而不仅仅是提供给定一组类别和季节性变量的预测的任何分类模型。

@布莱恩日元,

由于声誉点的阻碍,我正在回答而不是发表评论。

@couturierc 的上述回答并没有解决这个问题,令人惊讶的是人们经常使用它来回复,而不仅仅是......压制他们的想法。

回归量是用作输出影响因素的自变量。你的情况——还有我的!— 是预测分类变量,这意味着类别本身就是输出。你是绝对正确的,Brian,99.7% 的 TSA 文献专注于预测连续值,例如温度或库存值。

我的问题是预测传感器数据,它可以完全打开或关闭。完全,我的意思是我有一组传感器,在任何给定时间,只有一个可以打开。所以,我的数据本质上是单热的。更有趣的是,我的时间戳不是均匀分布的。

我能做的最远的事情是使用traces和一些玩Prophet,但到目前为止,我能想出的只是独立的类别价值预测。事实上,Prophet 非常明显地表明一次只分析一个值。

向我建议的替代方案包括使用 scikit-learn 进行标签编码(注意!使用 执行此操作的新方法from sklearn.compose import ColumnTransformer),但这提出了在类别上使用数值的古老问题。

由于您的帖子是 9 个月前的,如果您提出了一些解决方案,我很想听听。

你试过先知吗?

它允许您添加回归量:https ://facebook.github.io/prophet/docs/seasonality,_holiday_effects,_and_regressors.html#additional-regressors

您可能需要对分类变量进行一次性编码(或标签编码),然后使用该add_regressor()方法将它们传递给模型。