Pythonで時系列分析の練習(5)時系列分析用データの準備

Pythonで時系列分析の練習(5)時系列分析用データの準備

Pythonで時系列分析する手法をモモノキ&ナノネと一緒に学習していきます。

モモノキ&ナノネと一緒にPythonで時系列分析を覚えよう(5)




時系列分析の実践練習(データ準備)

今回は飛行機乗客数のデータ使って時系列分析の練習をするよ。

OK。

まず、必要なモジュールを先にインポートしておこう。 今回もPandas、Matplotlib、それとNumpyもね。

In [1]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('ggplot') # グラフのデザイン変更(お好みで利用)
plt.xkcd() # グラフのデザイン変更(お好みで利用)
Out[1]:
<matplotlib.rc_context at 0xadb5a8ac>

いつもの通りインポートした。

もうひとつ、StatsModelsというライブラリーをインポートしてね。時系列分析をするのに使う予定だから。インポートはimport statsmodels.api as smで。

In [2]:
import statsmodels.api as sm

これでOK?

StatsModelsのバージョンを確認してみて。古いバージョンだと使いたい分析が利用できないから。確認はsm.version.full_versionで。

In [3]:
sm.version.full_version
Out[3]:
'0.8.0'

バージョンは0.8.0だったけど。

それならOKだよ。もし、0.6.xとか古いバージョンだった場合は、環境に応じバージョンアップを実行しね。pipとかconda installで更新できるはずだよ。

StatsModels(外部サイト)

それならOKだよ。もし、0.6.xとか古いバージョンだった場合は、環境に応じバージョンアップを実行しね。pipとかconda installで更新できるはずだよ。

次に飛行機乗客数のデータをPandasで読み込んでみよう。データは今回下のリンク先CSVファイルをダウンロードして利用させてもらおう。

飛行機乗客数データファイル(外部サイト)
https://www.analyticsvidhya.com
 -> CSVファイルリンク:AirPassengers.csv

次に飛行機乗客数のデータをPandasで読み込んでみよう。ナノネ、データの読み込み方覚えてる?

AirPassengers.csvをダウンロードして保存した。

ナノネ、前に練習したPasdasでCSVファイルを読み込む方法覚えてる?

In [4]:
df = pd.read_csv('AirPassengers.csv')

CSVファイルを読み込むだけなら、こんな感じだったはず。

OK、データの中身を見てみよう。

In [5]:
df.head() # DataFrame先頭5行
Out[5]:
Month #Passengers
0 1949-01 112
1 1949-02 118
2 1949-03 132
3 1949-04 129
4 1949-05 121
In [6]:
df.tail() # DataFrame末尾5行
Out[6]:
Month #Passengers
139 1960-08 606
140 1960-09 508
141 1960-10 461
142 1960-11 390
143 1960-12 432

中身のデータは2列で、日付(年月)と乗客数が入ってた。1949年1月〜1960年12まである。結構古いデータかも。

うん。でも、時系列分析の練習向けに良いデータなので、有り難たく利用させてもらおう。

次は、PandasのDataFrameに読み込んだデータを時系列分析用しやすい形式に加工しよう。インデックスに日付型で日付を、データ値はfloat型にするんだよ。覚えてる?

忘れたかも。。

さっき、Pandasのread_csvで取り込んだ変数(df)の型はDataFrame型になってるよ。DataFrame型のままでもいいけど、今回はデータ1種類とインデックスしか使わないのでPandasのSeries型を使ってみよう。

ナノネ、こんな感じでSeriesデータを作ってみて。
①pd.Series()を使って、データはDataFrameに取り込んだ乗客数(#Passengers)を指定して、dtypeにfloatに設定。
②作ったSeries型変数のインデックスに日付を設定。インデックスに入れる値を日付型に変換するため、Pandasのto_datetime関数を利用。

In [7]:
passengers = pd.Series(df['#Passengers'], dtype='float') # ①
passengers.index = pd.to_datetime(df['Month']) # ②

Seriesデータ作ってみた。変数名はPassengersにしておいた。

うまくデータが格納できたかチェックしてみて。

In [8]:
print(passengers.index.dtype) # インデックス(日付) -> datetime型
print(len(passengers)) # データ件数 -> 144
passengers.head() # データ値(乗客数) -> float型
datetime64[ns]
144
Out[8]:
Month
1949-01-01    112.0
1949-02-01    118.0
1949-03-01    132.0
1949-04-01    129.0
1949-05-01    121.0
Name: #Passengers, dtype: float64

インデックスは日付型、データはfloat型になってる。全部で144件、日付と乗客数の値もいい感じ。

OK、データがうまく準備できたので、グラフを一枚描いてみよう。Pandasのプロット機能を使えば楽勝だね。

In [9]:
passengers.plot()
Out[9]:
<matplotlib.axes._subplots.AxesSubplot at 0xab835d8c>

楽勝だった。横軸は年月で縦軸が乗客数。乗客数はギザギザしながら年々増えてる。

うん、グラフはデータ解析のキホンだね。グラフで可視化すると、どんなデータなのか?把握しやすいよね。

今回はここまで。次回からこのデータを使って時系列分析の練習を進めていくね。

ラジャー。





スポンサーリンク

0 件のコメント :

コメントを投稿