大数据技术技能分析大赛——第六章 时间序列

第六章 时间序列

获取当前时间

时间运算

时间序列分析

1、获取当前时间

(1)Datetime模块

在time模块上做了封装,提供了更多更好的类,常用的有

date,年月日

time,时分秒

datetime,综合年月日时分秒

timedelta,时间的加减运算

tzinfo

【例】获取当前日期

import datetime
current_date=datetime.datetime.today()
print(current_date)
print(current_date.year)
print(current_date.month)
print(current_date.day)
print(current_date.hour)
print(current_date.minute)
print(current_date.second)
2022-11-17 21:24:23.910913
2022
11
17
21
24
23

2、时间运算

【例】给定两个时间类型的数据,计算两个时间的不同之处

import datetime
delta=dateime.datetime(2022,1,16)-datetime.datetime(2021,1,1,9,15)
print(delta)

【例】以天为单位

import datetime
delta=dateime.datetime(2022,1,16)-datetime.datetime(2021,1,1,9,15)
delta.days

3、时间序列分析

时间序列是把同一事件的历史统计资料按照时间顺序排列起来得到的一组数据序列,主要的分析方法包括移动平均和指数平滑

时间序列预测法是以时间数列所能反应的社会竞技现象的发展过程和规律性进行引伸外推,预测其发展趋势的方法

时间序列预测法就是通过编制和分析时间序列,根据时间系列所反应出来的发展过程、方向和趋势,借以预测下一段时间或以后若干年内可能达到的水平

(1)自回归模型

简称AR模型,仅通过时间序列变量的自身历史观测值来反映有关因素的对预测目标的影响和作用,不受模型变量相互独立的假设条件约束,所构成的模型可以消除普通回归预测方法中由于自变量选择、多重共线性等造成的困难,是最常见的平稳时间序列模型之一

单摆系统

【例】请利用自回归(AR)模型进行数据拟合,输出AR模型的阶数和拟合效果图

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
IndexData=pd.read_csv('csv的地址')
data=IndexData['close']
temp=np.array(data)
model=sm.tsa.AR(temp)
results_AR=model.fit()
plt.figure(figsize=(10,4))
plt.plot(temp,'b',label='close')
plt.plot(results_AR.fittedvalues,'r',label='AR model')
plt.legend()
print(len(results_AR.roots))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gmejaS65-1668693669474)(C:\Users\kzk\AppData\Roaming\Typora\typora-user-images\image-20221117214852781.png)]

(2)滑动平均模型

也称移动平均模型,是过去各个时期的随机干扰或预测误差的线性组合来表达当前预测值

在一定的范围内进行波动

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
IndexData=pd.read_csv('csv的地址')
data=IndexData['close']
temp=np.array(data)
for q in range(10):
    try:
        model=sm.tsa.ARMA(temp,order=(0,q))
        results_MA=model.fit()
    except:
        pass
plt.figure(figsize=(10,4))
plt.plot(temp,'b',label='close')
plt.plot(results_MA.fittedvalues,'r',label'MA model')
plt.legend()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eOxYbmM3-1668693669475)(C:\Users\kzk\AppData\Roaming\Typora\typora-user-images\image-20221117215604999.png)]

(3)自回归滑动平均模型

ARMA混合

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import statsmodels.api as sm
IndexData=pd.read_csv('csv的地址')
data=IndexData['close']
temp=np.array(data)
for q in range(10):
    try:
        model=sm.tsa.ARMA(temp,order=(0,q))
        results_MA=model.fit()
    except:
        pass
plt.figure(figsize=(10,4))
plt.plot(temp,'b',label='close')
plt.plot(results_ARMA.fittedvalues,'r',label='ARMA model')
plt.legend()

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觉行悟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值