【原创】python代写使用ARIMA模型时间序列分析数据分析报告(附代码数据) (2)

有问题到百度搜索“大数据部落”就可以了

欢迎登陆官网:https://www.360docs.net/doc/fc9687063.html,/datablog

python使用ARIMA模型时间序列分析数据分析报告

介绍

时间序列(从现在开始被称为TS)被认为是分析领域中鲜为人知的技能之一(即使我几天前对它几乎没有任何线索)。但是正如你所知道我们的就职迷你黑客马拉松是基于它的,我自己开始了解解决时间序列问题的基本步骤,在这里我和你分享同样的事情。这些肯定会帮助你在今天的黑客马拉松中获得一个体面的模特。

我们的旅程将经历以下步骤:

1.什么使时间序列特别?

2.在Pandas中加载和处理时间序列

3.如何检查时间序列的平稳性?

4.如何制作时间序列固定?

5.预测时间序列

有问题到百度搜索“大数据部落”就可以了

欢迎登陆官网:https://www.360docs.net/doc/fc9687063.html,/datablog

1.什么使时间序列特别?

顾名思义,TS是以固定时间间隔收集的数据点的集合。对这些进行分析以确定长期趋势,以便预测未来或执行其他形式的分析。但是什么使得TS与常规回归问题不同呢?有两件事:

1.这是时间依赖的。因此,在这种情况下,观察是独立的线性回归模型的基本假设不

成立。

2.随着趋势的增加或减少,大多数TS具有某种形式的季节性趋势,即特定时间范围

的特定变化。例如,如果你看到一件羊毛外套随着时间的推移而销售,你将会在冬

季找到更高的销售额。

由于TS的固有属性,分析它涉及各种步骤。这些将在下面详细讨论。让我们首先在Python中加载TS对象。我们将使用流行的AirPassengers数据集,可在此处下载。

请注意,本文的目的是让您熟悉TS的一般使用的各种技术。这里考虑的例子仅用于说明,我将重点关注广泛的主题,而不是做出非常准确的预测。

2. 加载和处理时间序列

Pandas有专门的库来处理TS对象,特别是datatime64 [ns]类,它存储时间信息并允许我们快速执行某些操作。让我们从启动所需的库开始:

import pandas as pd

import numpy as np

import matplotlib.pylab as plt

%matplotlib inline

from matplotlib.pylab import rcParams

rcParams['figure.figsize'] = 15, 6

有问题到百度搜索“大数据部落”就可以了

欢迎登陆官网:https://www.360docs.net/doc/fc9687063.html,/datablog

现在,我们可以加载数据集并查看列的一些初始行和数据类型:

data = pd.read_csv('AirPassengers.csv')

print data.head()

print '\n Data Types:'

print data.dtypes

该数据包含特定月份和该月旅行的乘客数量。但是这仍然不是作为TS对象读取的,因为数据类型是'object'和'int'。为了将数据作为时间序列读取,我们必须将特殊参数传递给read_csv命令:

有问题到百度搜索“大数据部落”就可以了

欢迎登陆官网:https://www.360docs.net/doc/fc9687063.html,/datablog

dateparse = lambda dates: pd.datetime.strptime(dates, '%Y-%m')

data = pd.read_csv('AirPassengers.csv', parse_dates=['Month'],

index_col='Month',date_parser=dateparse)

print data.head()

让我们逐一理解这些论点:

1.parse_dates:指定包含日期时间信息的列。如上所述,列名称为“Month”。

2.index_col:使用Pandas进行TS数据背后的一个关键思想是索引必须是描述日期

时间信息的变量。所以这个论点告诉pandas使用'Month'列作为索引。

3.date_parser:这指定一个将输入字符串转换为datetime变量的函数。默认情况下,

Pandas以“YYYY-MM-DD HH:MM:SS”格式读取数据。如果数据不是这种格式,则

必须手动定义格式。类似于此处定义的数据分析功能的东西可用于此目的。

现在我们可以看到数据有时间对象作为索引,#Passengers作为列。我们可以使用以下命令交叉检查索引的数据类型:

data.index

有问题到百度搜索“大数据部落”就可以了

欢迎登陆官网:https://www.360docs.net/doc/fc9687063.html,/datablog

注意dtype ='datetime [ns]'确认它是一个datetime对象。作为个人偏好,我会将列转换为Series对象,以防止每次使用TS时引用列名。请随意使用作为数据帧,这对您更有效。

ts = data[‘#Passengers’] ts.head(10)

在进一步讨论之前,我将讨论TS数据的一些索引技术。让我们首先选择Series对象中的特定值。这可以通过以下两种方式完成:

有问题到百度搜索“大数据部落”就可以了

欢迎登陆官网:https://www.360docs.net/doc/fc9687063.html,/datablog

#1. Specific the index as a string constant:

ts['1949-01-01']

#2. Import the datetime library and use 'datetime' function:

from datetime import datetime

ts[datetime(1949,1,1)]

两者都将返回值'112',这也可以从先前的输出确认。假设我们想要所有数据到1949年5月。这可以通过两种方式完成:

#1. Specify the entire range:

ts['1949-01-01':'1949-05-01']

#2. Use ':' if one of the indices is at ends:

ts[:'1949-05-01']

两者都会产生以下输出:

相关文档
最新文档