时间序列 —— task01

数据探索与分析

赛题:资金流入流出预测

赛题地址:https://tianchi.aliyun.com/competition/entrance/231573/introduction?spm=5176.12281925.0.0.158c7137tNEr5N

赛题数据:竞赛中使用的数据主要包含四个部分,分别为用户基本信息数据、用户申购赎回数据、收益率表和银行间拆借利率表。

  1. 用户信息表
    用户信息表: user_profile_table 。总共随机抽取了约 3 万用户,其中部分用户在 2014 年 9 月份第一次出现,这部分用户只在测试数据中 。因此用户信息表是约 2.8 万 个用户的基本数据,在原始数据的基础上处理后,主要包含了用户的性别、城市和星座。
    在这里插入图片描述
  2. 用户申购赎回数据表
    用户申购赎回数据表: user_balance_table 。里面有 20130701 至 20140831 申购和赎回信息、以及所有的子类目信息, 数据经过脱敏处理。脱敏之后的数据,基本保持了原数据趋势。数据主要包括用户操作时间和操作记录,其中操作记录包括申购和赎回两个部分。金额的单位是分,即 0.01 元人民币。 如果用户今日消费总量为0,即consume_amt=0,则四个字类目为空。
    在这里插入图片描述

注 1 :上述的数据都是经过脱敏处理的,收益为重新计算得到的,计算方法按照简化后的计算方式处理,具体计算方式在下节余额宝收益计算方式中描述。
注 2 :脱敏后的数据保证了今日余额 = 昨日余额 + 今日申购 - 今日赎回,不会出现负值。

  1. 收益率表
    收益表为余额宝在 14 个月内的收益率表: mfd_day_share_interest 。
    在这里插入图片描述

  2. 上海银行间同业拆放利率(Shibor)表
    银行间拆借利率表是 14 个月期间银行之间的拆借利率(皆为年化利率): mfd_bank_shibor 。
    在这里插入图片描述
    赛题目标
    利用2013年7月~2014年8月的数据,预测2014年9月每一天申购和赎回的总量。

数据分析与探索

# 为数据集添加时间戳

data_balance['date'] = pd.to_datetime(data_balance['report_date'], format= "%Y%m%d")
data_balance['day'] = data_balance['date'].dt.day
data_balance['month'] = data_balance['date'].dt.month
data_balance['year'] = data_balance['date'].dt.year
data_balance['week'] = data_balance['date'].dt.week
data_balance['weekday'] = data_balance['date'].dt.weekday
data_balance.info()

在这里插入图片描述

  1. 数据探索和准备步骤
    1.1 时间序列图
    时间序列图一般指推移图。推移图,又称趋势图,它是以时间为横轴,观察变量为纵轴,用以反映时间与数量之间的关系,观察变量变化发展的趋势及偏差的统计图。
    fig = plt.figure(figsize=(20,6))
    plt.plot(total_balance['date'], total_balance['total_purchase_amt'],label='purchase')
    plt.plot(total_balance['date'], total_balance['total_redeem_amt'],label='redeem')
    
    plt.legend(loc='best')
    plt.title("The lineplot of total amount of Purchase and Redeem from July.13 to Sep.14")
    plt.xlabel("Time")
    plt.ylabel("Amount")
    plt.show()
    
    在这里插入图片描述
    1.2 数据分布可视化
    # 画出4月份以后的时间序列图
    total_balance_1 = total_balance[total_balance['date'] >= datetime.date(2014,4,1)]
    fig = plt.figure(figsize=(20,6))
    plt.plot(total_balance_1['date'], total_balance_1['total_purchase_amt'])
    plt.plot(total_balance_1['date'], total_balance_1['total_redeem_amt'])
    plt.legend()
    plt.title("The lineplot of total amount of Purchase and Redeem from April.14 to Sep.14")
    plt.xlabel("Time")
    plt.ylabel("Amount")
    plt.show()
    
    在这里插入图片描述
    每个月中每天购买赎回量的时间序列图在这里插入图片描述
    通过各种图表来了解,大致判断和找寻规律。之后根据了解进行进一步的分析。
    1.3 变量间相关性分析与独立性分析
    相关分析是研究两个或两个以上处于同等地位的随机变量间的相关关系的统计分析方法。
    独立性检验是统计学的一种检验方式。与适合性检验同属于X2检验(即卡方检验,英文名:chi square test)它是根据次数资料判断两类因子彼此相关或相互独立的假设检验。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
时间序列信号处理中的小波变换是通过对信号进行尺度变换和平移变换来提取信号的特征。小波变换与傅里叶变换不同,它有两个变量:尺度a和平移量b。尺度a控制小波函数的伸缩,平移量b控制小波函数的平移。小波变换是一种自适应的三角波,可以更好地适应信号的变换并提取特征。对于突变信号,小波变换相比傅里叶变换能够更好地处理,因为傅里叶变换需要使用大量的三角波去拟合信号,导致计算复杂并降低信号特征提取效果。 在Python中,可以使用PyWavelets库来实现小波变换。通过安装pycwt库可以实现小波变换的功能。然后,可以使用该库提供的函数进行小波变换的计算。下面是一个小波变换的Python示例代码: ```python import numpy as np import pywt import matplotlib.pyplot as plt # 定义信号 sampling_rate = 1024 t = np.arange(0, 1.0, 1.0 / sampling_rate) f1 = 100 f2 = 200 f3 = 300 f4 = 400 data = np.piecewise(t, [t < 1, t < 0.8, t < 0.5, t < 0.3], [lambda t: 400 * np.sin(2 * np.pi * f4 * t), lambda t: 300 * np.sin(2 * np.pi * f3 * t), lambda t: 200 * np.sin(2 * np.pi * f2 * t), lambda t: 100 * np.sin(2 * np.pi * f1 * t)]) # 进行小波变换 wavename = 'cgau8' totalscal = 256 fc = pywt.central_frequency(w***ename) cparam = 2 * fc * totalscal scales = cparam / np.arange(totalscal, 1, -1) [cwtmatr, frequencies = pywt.cwt(data, scales, wavename, 1.0 / sampling_rate) # 绘制结果 plt.figure(figsize=(8, 4)) plt.subplot(211) plt.plot(t, data) plt.xlabel("t(s)") plt.title('shipinpu', fontsize=20) plt.subplot(212) plt.contourf(t, frequencies, abs(cwtmatr)) plt.ylabel(u"prinv(Hz)") plt.xlabel(u"t(s)") plt.subplots_adjust(hspace=0.4) plt.show() #### 引用[.reference_title] - *1* *2* [时间序列信号处理(五)——小波变换python实现](https://blog.csdn.net/abc1234abcdefg/article/details/123517320)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [一、Python时间序列小波分析——实例分析](https://blog.csdn.net/weixin_48030475/article/details/129070265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值