欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据学习(十七)-时间序列分析和预测实践

程序员文章站 2022-03-09 09:12:18
...
import pandas as pd
import numpy as np
data=pd.read_excel('E:\date.xlsx')
data
#读取数据

结果如下:
数据学习(十七)-时间序列分析和预测实践
处理数据

def getseason(s):
    #print(s[5:7])
    return s[5:7]
data['季度']=data['日期'].apply(getseason)

def getdate(s):
    #print(s[5:7])
    return s[0:4]
data['date']=data['日期'].apply(getdate)
data

结果如下:
数据学习(十七)-时间序列分析和预测实践

#将数据按季度进行划分,查看每年该季度的变化趋势
import matplotlib.pyplot as plt
plt.plot(data['传统汽车销量'])
plt.show()
#plt.plot(data[data['季度']=='Q1']['传统汽车销量'])
#plt.show()
#由图可知,汽车销量呈现稳步增长

结果如下:
数据学习(十七)-时间序列分析和预测实践

#第一季度的趋势图
plt.plot(data[data['季度']=='Q1']['传统汽车销量'].reset_index()['传统汽车销量'])

结果如下:
数据学习(十七)-时间序列分析和预测实践

#第2季度的趋势图
plt.plot(data[data['季度']=='Q2']['传统汽车销量'].reset_index()['传统汽车销量'])

结果如下:
数据学习(十七)-时间序列分析和预测实践

#第3季度的趋势图
plt.plot(data[data['季度']=='Q3']['传统汽车销量'].reset_index()['传统汽车销量'])

结果如下:
数据学习(十七)-时间序列分析和预测实践

#第4季度的趋势图
plt.plot(data[data['季度']=='Q4']['传统汽车销量'].reset_index()['传统汽车销量'])

结果如下:
数据学习(十七)-时间序列分析和预测实践

#1. 假设用简单平均法计算三期的值
#第二季度
Y1=data[data['季度']=='Q2']['传统汽车销量'].mean()
print("第一期:{}".format(Y1))

#第三季度
Y2=data[data['季度']=='Q3']['传统汽车销量'].mean()
print("第二期:{}".format(Y2))


#第四季度
Y3=data[data['季度']=='Q4']['传统汽车销量'].mean()
print("第三期:{}".format(Y3))

结果如下:
数据学习(十七)-时间序列分析和预测实践

# 移动平均法求预测值
#(1)简单移动平均  ,当k=3时
#第二季度
Y1=data[data['季度']=='Q2']['传统汽车销量'].reset_index().tail(3)['传统汽车销量'].mean()
print("第一期:{}".format(Y1))

#第三季度
Y2=data[data['季度']=='Q3']['传统汽车销量'].reset_index().tail(3)['传统汽车销量'].mean()
print("第二期:{}".format(Y2))


#第四季度
Y3=data[data['季度']=='Q4']['传统汽车销量'].reset_index().tail(3)['传统汽车销量'].mean()
print("第三期:{}".format(Y3))

结果如下:
数据学习(十七)-时间序列分析和预测实践

#划分数据集
Q1=data[data['季度']=='Q1']['传统汽车销量'].reset_index()
Q2=data[data['季度']=='Q2']['传统汽车销量'].reset_index()
Q3=data[data['季度']=='Q3']['传统汽车销量'].reset_index()
Q4=data[data['季度']=='Q4']['传统汽车销量'].reset_index()
#加入测试集
k=[]
for i in range(data.shape[0]):
    k.append(i)
data['index']=k
test=pd.DataFrame([65,66,67],columns=['index'])
test

数据学习(十七)-时间序列分析和预测实践

#趋势预测
#(1)线性预测 y=ax+b
label=data[['传统汽车销量']]
x=data[['index']]
from sklearn.linear_model import LinearRegression
lr=LinearRegression()
lr.fit(x,label)
test['传统汽车销量']=lr.predict(test[['index']])

结果如下:
数据学习(十七)-时间序列分析和预测实践

相关标签: 数据