ARIMA中使用的平滑时间序列数据

问题描述 投票:0回答:2

我是机器学习的新手。我想做的是平滑数据集,绘制时看起来像这样。

Train and test dataset

蓝线是训练数据,橙线是测试数据。时间序列数据是股票的每日收盘价。

有没有办法使它平滑?我曾尝试应用日志转换,但似乎并没有太大帮助。

生成图形的代码:

#general
import pandas as pd
import numpy as np
import matplotlib.pylab as plt
%matplotlib inline
import yfinance as yf

#ML stuff
from sklearn.preprocessing import MinMaxScaler

ticker = "0118.KL"
data = yf.Ticker(ticker)
df = data.history(start="2019-01-01",end="2020-04-30")

df = df.filter(items=['Close'])
train = df[:-30]
test = df[-30:]

train = np.log(train['Close'])
test = np.log(test['Close'])

plt.plot(train)
plt.plot(test)
plt.show()
python time-series smoothing
2个回答
0
投票

最简单的方法是使用移动平均线。可以找到教程here

从时间序列的角度来看,在Box-Jenkins设置(我认为这是您的AI框架中使用的设置)中,平滑数据不会对标识(例如模型)产生太大影响。但是,如果您对数据prior]进行平滑处理以使用另一个估计范式训练模型,则可能会使标准误差和估计值产生偏差。

平滑数据之后

估计可能有助于可视化您在做什么,但不会反映您训练后的模型的预测。

0
投票

您可以使用某种低通滤波器来完成工作

© www.soinside.com 2019 - 2024. All rights reserved.