时序数据分析——周期性-平稳性检验
【摘要】 时间序列分析,即输入特征都是与时间相关的数据,同时需要考虑周期、趋势、节假日、突变等因素,通过一些手段来分析时间序列的特点,发现其中的变化规律,并用于预测未来时序数据的统计技术。分析时间序列,进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。代码块导入在NAIE训练平台的JupyterLab界面操作时,不需要手动添加这一部分,因为在新创建的特...
时间序列分析,即输入特征都是与时间相关的数据,同时需要考虑周期、趋势、节假日、突变等因素,通过一些手段来分析时间序列的特点,发现其中的变化规律,并用于预测未来时序数据的统计技术。分析时间序列,进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。
代码块导入
在NAIE训练平台的JupyterLab界面操作时,不需要手动添加这一部分,因为在新创建的特征工程下已经包含了导入代码。
import os
os.chdir("/home/ma-user/work/test_anomaly_detection_noah")
from naie.context import Context
from naie.datasets import data_reference
from naie.feature_processing import data_flow
from naie.feature_analysis import data_analysis
from naie.feature_processing.expression import col, cols, cond, f_and, f_not, f_or
from naie.common.data.typedefinition import StepType, ColumnRelationship, JoinType, ColumnSelector,DynamicColumnsSelectorDetails, StaticColumnsSelectorDetails, ColumnsSelectorDetails, DataProcessMode
选择数据1
如果是在NAIE平台上操作,则以下代码可通过点击菜单栏中“数据集”下的“选择数据”自动生成。
dataset = 'ts_data'
dataset_entity = 'ts_decomposition'
attrs={'is_time_series': True, 'time_column': 'time', 'time_format': 'timestamp(s)'}
datareference = data_reference.get_data_reference(dataset, dataset_entity, attrs=attrs)
dataflow = data_flow.create_data_flow(datareference)
dataflow.to_pandas_dataframe()
1. 周期检测
检测给定时序数据的周期,或判断指定的周期是否为时序数据的周期
参数:
- data: 时序数据,可以是dataframe,数据路径或者dataflow
- columns: 待进行时序数据分析的目标列,list类型
- id_column: 代表时序数据id列,没有id列则使用默认值None,即认为整个数据为同一个id下的数据
- time_column: 时序数据的时间列,没有时间列则使用默认值None. 如果不为None,则会根据给定的时间列对时序数据排序
- specified_period: 待验证的指定周期,以样本为单位,默认为None。若为None,则根据{'day', 'week', 'month', 'quarter', 'year'}进行遍历周期检测。
返回:
- 如果时序数据具有周期,则返回检测到的周期,否则返回None。如果给定待检验周期,则检测其是时序的周期时返回True,否则返回False.
from naie.ts_data_analysis import PeriodicityTest
# 周期检测
pt = PeriodicityTest(dataflow, columns=['traffic'], time_column='time')
result = pt.fit()
print('Periodicity test: ')
result
Periodicity test:
# 周期验证
pt = PeriodicityTest(dataflow, columns=['traffic'], time_column='time')
result = pt.fit(specified_period=8640)
print('Periodicity test: ')
result
Periodicity test:
选择数据2
dataset = 'ts_data_analysis'
dataset_entity = 'ts_analysis'
datareference = data_reference.get_data_reference(dataset, dataset_entity)
dataflow = data_flow.create_data_flow(datareference)
2. 平稳性判断
参数:
- significance_level: 显著性水平
返回:
- 如果数据平稳,则返回True;否则,返回False
from naie.ts_data_analysis import StationarityTest
st = StationarityTest(data=dataflow, columns=['col_1_20_100', 'col_1_200_100'], id_column=None, time_column=None)
result = st.fit(significance_level=0.001)
print('Stationarity test: ')
result
Stationarity test:
NAIE SDK帮助文档汇总请参考:
网络人工智能园地:NAIE SDK帮助文档汇总
文章来源: zhuanlan.zhihu.com,作者:网络人工智能园地,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuanlan.zhihu.com/p/381022084
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)