我有一个经过修改的时间序列问题。我有2个索引变量,日期和用户ID。对于每个用户ID,日期,我想预测一个值。
有趣的部分是每个新用户ID的重置日期。
此时间段内存在标准时间序列问题,预计未来n天。
在火车数据中,我具有每个用户ID,对于1月1-3日,我具有其目标值。
在我的测试数据中,对于每个用户ID,测试日期为1月4日至6日。
对于训练和测试数据,数据框的索引均为日期。
我的数据
id,date,week_day,target
1,2019-01-01,1,10
1,2019-01-02,2,6
1,2019-01-03,3,7
2,2019-01-01,1,8
2,2019-01-02,1,5
2,2019-01-03,1,4
如您所见,对于新ID,日期将重置。所以我无法创建火车数据集,我说前N行是火车数据,接下来N行是测试数据。
我只在日期和索引中保留日期和目标在火车数据中。
我的测试数据集
id,date,week_day,target
1,2019-01-4,1,15
1,2019-01-5,2,13
1,2019-01-6,3,8
2,2019-01-4,1,7
2,2019-01-5,1,7
2,2019-01-6,1,4
就像火车数据集一样,每个新用户ID的日期都会重置。
我只保留日期和user_id,日期作为测试索引。
我的代码
(因此,这是香港专业教育学院的尝试,但我不确定我是否做对了)
stepwise_model = auto_arima(df[['target']],exogenous=df[['id']],
start_p=1, start_q=1,
max_p=3, max_q=3, m=12,
start_P=0, seasonal=True,
d=1, D=0, trace=True,
error_action='ignore',
suppress_warnings=True,
stepwise=True)
predicted = stepwise_model.predict(n_periods = len(test),exogenous = test)
所以这可行,但是我认为n_periods需要是我们要预测的未来几天? (在我的情况下应该是3),但是我使用了n_periods =测试数据的长度,因为它给我一个错误,即周期的长度与测试数据的长度不同。
我这样做正确吗?