数据挖掘之时间序列模型(最全流程分析)

本文详细介绍了数据挖掘中时间序列模型的应用流程,包括获取数据源、处理缺失值、检验序列稳定性、序列平稳化、参数寻优、建立模型、模型检验和模型预测。在缺失值处理中,采用降升采样和不同填充方式;通过移动平均值和单位根检验确保序列平稳;最后通过残差、QQ图和相关图确定最佳模型参数,预测结果呈现上升趋势。
摘要由CSDN通过智能技术生成


美股封盘(close)数据
获取数据源—>缺失值处理—>检验数据稳定性—>序列平稳—>参数寻优—>建立模型—>模型检验—>模型预测

一、获取数据源
#以谷歌美股封盘数据来构建时间序列模型|导入库包
from pandas_datareader import data
from statsmodels.graphics.tsaplots import plot_acf, plot_pacf 
from statsmodels.tsa.arima_model import ARIMA
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import statsmodels.api as sm
import statsmodels.formula.api as smf
import statsmodels.tsa.api as smt
import seaborn as sns
import warnings
warnings.filterwarnings("ignore")
#设置股票代码与起始时间
stock_code = "GOOG"
start_date = "2005-01-01"
end_date = "2019-12-25"
stock_info = data.get_data_yahoo(stock_code, start_date, end_date)
#展示前5行股票数据
print(stock_info.head())
plt.plot(stock_info['Close'], 'g') #展示数据图
plt.show()

展示数据图
展示数据图
图描述
图描述

#获取封盘数据
df = pd.DataFrame(data=stock_info)
data = df.loc[:,['Close']]
data.tail() #查看数据截止日期
二、缺失值处理

没有的话,手动创造一些缺失值

1.先对数据进行降采样

2.然后对数据进行升采样

3.之后使用向前填充、向后填充、线性填充来进行缺失值的处理

在处理数据时也可以用降升采样,在这里我是造一些缺失值

#降采样
data1 = data.resample('2W').mean() #取三天的平均值
data1.head()

在这里插入图片描述

#查看数据个数
n_sample = data1.shape[0]
n_sample

392

#升采样
data2 = data1.resample('D').asfreq()
data2.head(6)

在这里插入图片描述

#缺失值处理 分别为ffill(取前面的值)、bfill(取后面的值)、interpolate(线性取值)
#这里采取的线性填充
data3 = data2.resample('D').interpolate()
data3.head()

在这里插入图片描述

三、检验序列的稳定性

主要是观察数据是否是平稳序列,如果不是则要进行处理转换为平稳序列

data = data['Close']
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值