时序数据分析——周期性-平稳性检验

网友投稿 889 2022-05-30

时间序列分析,即输入特征都是与时间相关的数据,同时需要考虑周期、趋势、节假日、突变等因素,通过一些手段来分析时间序列的特点,发现其中的变化规律,并用于预测未来时序数据的统计技术。分析时间序列,进行合理预测,做到提前掌握未来的发展趋势,为业务决策提供依据,这也是决策科学化的前提。

代码块导入

在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帮助文档汇总请参考:

数据挖掘

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:AJAX简单实现登录效果
下一篇:Scala语法详解:特质 (Traits)
相关文章