モモノキ&ナノネと一緒にPythonで時系列分析を覚えよう(5)
時系列分析の実践練習(データ準備)
今回は飛行機乗客数のデータ使って時系列分析の練習をするよ。
OK。
まず、必要なモジュールを先にインポートしておこう。 今回もPandas、Matplotlib、それとNumpyもね。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
plt.style.use('ggplot') # グラフのデザイン変更(お好みで利用)
plt.xkcd() # グラフのデザイン変更(お好みで利用)
いつもの通りインポートした。
もうひとつ、StatsModelsというライブラリーをインポートしてね。時系列分析をするのに使う予定だから。インポートはimport statsmodels.api as smで。
import statsmodels.api as sm
これでOK?
StatsModelsのバージョンを確認してみて。古いバージョンだと使いたい分析が利用できないから。確認はsm.version.full_versionで。
sm.version.full_version
バージョンは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ファイルを読み込む方法覚えてる?
df = pd.read_csv('AirPassengers.csv')
CSVファイルを読み込むだけなら、こんな感じだったはず。
OK、データの中身を見てみよう。
df.head() # DataFrame先頭5行
df.tail() # DataFrame末尾5行
中身のデータは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関数を利用。
passengers = pd.Series(df['#Passengers'], dtype='float') # ①
passengers.index = pd.to_datetime(df['Month']) # ②
Seriesデータ作ってみた。変数名はPassengersにしておいた。
うまくデータが格納できたかチェックしてみて。
print(passengers.index.dtype) # インデックス(日付) -> datetime型
print(len(passengers)) # データ件数 -> 144
passengers.head() # データ値(乗客数) -> float型
インデックスは日付型、データはfloat型になってる。全部で144件、日付と乗客数の値もいい感じ。
OK、データがうまく準備できたので、グラフを一枚描いてみよう。Pandasのプロット機能を使えば楽勝だね。
passengers.plot()
楽勝だった。横軸は年月で縦軸が乗客数。乗客数はギザギザしながら年々増えてる。
うん、グラフはデータ解析のキホンだね。グラフで可視化すると、どんなデータなのか?把握しやすいよね。
今回はここまで。次回からこのデータを使って時系列分析の練習を進めていくね。
ラジャー。
0 件のコメント :
コメントを投稿