首页 > 编程语言 >Python时间序列分析库介绍:statsmodels、tslearn、tssearch、tsfresh

Python时间序列分析库介绍:statsmodels、tslearn、tssearch、tsfresh

时间:2023-10-28 10:00:11浏览次数:31  
标签:tslearn adft dataframe Python 序列 statsmodels import tsfresh sensor

时间序列分析在金融和医疗保健等领域至关重要,在这些领域,理解随时间变化的数据模式至关重要。在本文中,我们将介绍四个主要的Python库——statmodels、tslearn、tssearch和tsfresh——每个库都针对时间序列分析的不同方面进行了定制。这些库为从预测到模式识别的任务提供了强大的工具,使它们成为各种应用程序的宝贵资源。

我们使用来自Kaggle的数据集,通过加速度计数为各种身体活动进行分析。这些活动被分为12个不同的类别,每个类别对应一个特定的身体动作,如站立、坐着、行走,或从事更有活力的活动,如慢跑和骑自行车。每个活动都记录了一分钟的持续时间,提供了丰富的时间序列数据源。

用于此分析的库有:

  1. # statsmodels
  2. from statsmodels.tsa.seasonal import seasonal_decompose
  3. from statsmodels.tsa.stattools import adfuller
  4. from statsmodels.graphics.tsaplots import plot_acf
  5. #tslearn
  6. from tslearn.barycenters import dtw_barycenter_averaging
  7. # tssearch
  8. from tssearch import get_distance_dict, time_series_segmentation, time_series_search, plot_search_distance_result
  9. # tsfresh
  10. from tsfresh import extract_features
  11. from tsfresh.feature_selection.relevance import calculate_relevance_table
  12. from tsfresh.feature_extraction import EfficientFCParameters
  13. from tsfresh.utilities.dataframe_functions import impute

Statsmodels

从statmodels库中,两个基本函数在理解从x, y和z方向收集的加速度数据的特征方面起着关键作用。

adfuller函数是确定时间序列信号平稳性的有力工具。通过对我们的数据进行Augmented Dickey-Fuller检验,可以确定加速度信号是否表现出平稳的行为,这是许多时间序列分析技术的基本要求。这个测试帮助我们评估数据是否随时间而变化。

  1. def activity_stationary_test(dataframe, sensor, activity):
  2. dataframe.reset_index(drop=True)
  3. adft = adfuller(dataframe[(dataframe['Activity'] == activity)][sensor], autolag='AIC')
  4. output_df = pd.DataFrame({'Values':[adft[0], adft[1], adft[4]['1%']], 'Metric':['Test Statistics', 'p-value', 'critical value (1%)']})
  5. print('Statistics of {} sensor:\n'.format(sensor), output_df)
  6. print()
  7. if (adft[1] < 0.05) & (adft[0] < adft[4]['1%']):
  8. print('The signal is stationary')
  9. else:
  10. print('The signal is non-stationary')

seasonal_decomposition函数提供了对时间序列数据结构的宝贵见解。它将时间序列分解为三个不同的组成部分:趋势、季节性和残差。这种分解使我们能够可视化和理解加速度数据中的潜在模式和异常。

  1. def activity_decomposition(dataframe, sensor, activity):
  2. dataframe.reset_index(drop=True)
  3. data = dataframe[(dataframe['Activity'] == activity)][sensor]
  4. decompose = seasonal_decompose(data, model='additive', extrapolate_trend='freq', period=50)
  5. fig = decompose.plot()
  6. fig.set_size_inches((12, 7))
  7. fig.axes[0].set_title('Seasonal Decomposition Plot')
  8. fig.axes[3].set_xlabel('Indices')
  9. plt.show()

https://avoid.overfit.cn/post/ce023e947e0246c09a10a3d71f0181c5

标签:tslearn,adft,dataframe,Python,序列,statsmodels,import,tsfresh,sensor
From: https://www.cnblogs.com/deephub/p/17793701.html

相关文章

  • python123 第二章:我的读书笔记
    print("后四位学号:3114")print("\n03")#03运行超市抹零结账行为‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪......
  • [Python急救站]草莓熊的绘制
    草莓熊也是一个热门的图案,今天就用Pythonimportturtleast#设置背景颜色,窗口位置以及大小t.colormode(255)#颜色模式t.speed(0)t.screensize(850,760)t.setup(width=850,height=760,startx=None,starty=None)#绘图窗口的大小和起始坐标t.resizemode('nores......
  • Python 利用pandas和mysql-connector获取Excel数据写入到MySQL数据库
    如何将Excel数据插入到MySQL数据库中在实际应用中,我们可能需要将Excel表格中的数据导入到MySQL数据库中,以便于进行进一步的数据分析和处理。本文将介绍如何使用Python将Excel表格中的数据插入到MySQL数据库中。导入必要的库首先,我们需要导入pandas库和MySQLConnector/Python库......
  • Python 中多态性的示例和类的继承多态性
    单词"多态"意味着"多种形式",在编程中,它指的是具有相同名称的方法/函数/操作符,可以在许多不同的对象或类上执行。函数多态性一个示例是Python中的len()函数,它可以用于不同的对象。字符串对于字符串,len()返回字符的数量:示例x="HelloWorld!"print(len(x))元组......
  • Python根据列表在指定目录寻找对应前缀的文件
    现在有一个txt列表,里面包含的是一些文件名,如a,b等等,现在需求是在一个多级文件夹下,需要寻找以a为名字的任何格式文件,如a.001,a.002等等,寻找这个txt列表里包含的文件名的对应文件,复制到指定文件夹下importosimportshutil#读取文件名列表withopen('msg.txt','r')asfile:......
  • 如何通过python实现导出题库到pdf?
    要通过Python实现将题库导出为PDF,你可以使用第三方库如pdfkit或weasyprint来完成。以下是一种可行的方法:安装所需的库:使用pip命令安装pdfkit或weasyprint库。准备HTML模板:创建一个HTML模板文件,其中包含题目、答案、图片等内容。确保在HTML中使用CSS样式来控制文本和图像的外......
  • Python 中多态性的示例和类的继承多态性
    单词"多态"意味着"多种形式",在编程中,它指的是具有相同名称的方法/函数/操作符,可以在许多不同的对象或类上执行。函数多态性一个示例是Python中的len()函数,它可以用于不同的对象。字符串对于字符串,len()返回字符的数量:示例x="HelloWorld!"print(len(x))元组对......
  • python基于动态数量个列表求笛卡尔积
    需求有N个list,分别是listA,listB,listC。。。等等,N的数量不确定,现在对这些list的所有可能组合的值求笛卡尔积,比如(listA,listB),(listA,listC),(listB,listC),(listA,listB,listC)。。。求这里每个组合的笛卡尔积。分析对实现以上需求,可分解为2个部分:1.求所有list的组合2.对所......
  • 第 11 节 Python程序调试和异常处理技巧
    常见的错误语法错误:例如,不正确的缩进、未定义的变量、括号不匹配等。运行时错误:例如,尝试访问不存在的文件、内存溢出等。类型错误:例如,将字符串与整数相加等。逻辑错误:例如,程序没有按照预期的流程执行、条件判断不正确等。输入错误:例如,无效的输入、输入的数据类型不正确等。常见的......
  • python django项目安装虚拟环境
    开发环境搭建1.虚拟环境+库安装django(mac使用python3)python-mvenvmyvenvmyvenv\Scripts\activate.batpipinstallDjango 2.startproject项目创建python-mdjangostartprojectdjangosite 3.startapp应用程序创建cddjangosite(外面的djangosite)......