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

第六章 时间序列

获取当前时间

时间运算

时间序列分析

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))

大数据技术技能分析大赛——第六章 时间序列_第1张图片

(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()

大数据技术技能分析大赛——第六章 时间序列_第2张图片

(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()

大数据技术技能分析大赛——第六章 时间序列_第3张图片

你可能感兴趣的:(python,大数据)