主に参考にする本
「現場ですぐ使える時系列データ分析 データサイエンティストのための基礎知識」を中心に勉強して行きたいと思う。
この本にした理由は
- 内容がそこまで難しくない
- Rで実行し、手を動かしながら学べるスタイル
- 扱うデータが株価と自分の興味と合致している
の3つある。私は普段はRをほとんど使わないで言語はPython(Anaconda)、環境はJupyter notebookを使っているので、この本に載っている内容をPythonでやって行きたいと思う。
株価をプロットする
何を分析するにしても、まずはグラフを描画して見てみることはデータの特性を見るのにはいい手段だ。今回は株価データを単純に時系列プロットすることにする。
株価データを取得する
少し前だとyahoo financeやgoogle finance、あとは2017年で終わってしまったk-dbなどからデータを取ってきていたが今は現実的ではない。今だとQuandlというサイトからデータを取得するのがいいだろう。英語のサイトだがpythonから簡単なコードでデータを取得できるので使いやすい。
まずはライブラリのインポート
%matplotlib inline import matplotlib.pyplot as plt import quandl #pipで別途インストールが必要 import pandas as pd
quandlがインストールされていない場合はターミナルで
>pip install quandl
とやればインストールできる(おそらく)
株価データを取得する。今回は
の4つのデータを使うことにした。
データは次のコードで取得できる
df_quick = quandl.get('TSE/4318') # Quick df_hitachi = quandl.get('TSE/6501') # 日立製作所 df_takeda = quandl.get('TSE/4502') #武田薬品工業 df_Nikkei = quandl.get('NIKKEI/INDEX') # 日経平均株価
試しにQuickのデータを見ると
df_quick.head()
Date | Open | High | Low | Close | Volume |
---|---|---|---|---|---|
2013-07-16 | 314.0 | 314.0 | 305.0 | 306.0 | 22100.0 |
2013-07-17 | 304.0 | 312.0 | 300.0 | 304.0 | 25700.0 |
2013-07-18 | 305.0 | 312.0 | 300.0 | 311.0 | 23300.0 |
2013-07-19 | 308.0 | 310.0 | 304.0 | 310.0 | 3600.0 |
2013-07-22 | 310.0 | 315.0 | 300.0 | 310.0 | 29100.0 |
株価をプロットする
のようになっている。今回は終値、つまり'Close'の値をプロットする。
# matplotlibの描画をかっこよく plt.style.use('ggplot') # 以下描画 fig = plt.figure(figsize=(18,8)) ax_quick = fig.add_subplot(221) ax_hitachi = fig.add_subplot(222) ax_takeda = fig.add_subplot(223) ax_Nikkei = fig.add_subplot(224) ax_quick.plot(df_quick.loc["2013-07-16": ,['Close']], label='Quick', color='b') ax_hitachi.plot(df_hitachi.loc["2013-07-16": ,['Close']], label='HITACHI', color='r') ax_takeda.plot(df_takeda.loc["2013-07-16": ,['Close']], label='Takeda', color='g') ax_Nikkei.plot(df_Nikkei.loc["2013-07-16": ,['Close Price']], label='Nikkei', color='purple') ax_quick.set_title('Quick') ax_hitachi.set_title('HITACHI') ax_takeda.set_title('TAKEDA') ax_Nikkei.set_title('NIKKEI') plt.show()
そしてこれが今回プロットした結果である。
どの銘柄も2016年の6月あたりから今に至るまで上がり続けている事が見て取れる。
ただ、縦軸のスケールが違うので、見た目の上がり方は同じでも、変動の幅は大きく違うことに注意したい。例えば、日立は2016年6月頃は400円ほどであり、2018年に入ることには900円程度になっているためその変動幅は約500円であるのに対し、武田薬品は2016年6月頃は約4000円であり、2018年に入る頃は6500円と、その幅は2500円ある。日立とは5倍の差がある。
銘柄ごとに株価の水準が異なるので、これをそのまま比較することはできない。そのためそのことを考慮した変動の割合を考える必要がある。
ただプロットしただけだけど今回はここまでにします。