隗より始めよ

今後はいろいろ考え始めます。

Pythonのライブラリpandas_datareaderでデータを取得する

f:id:mazarimono:20180721083821j:plain

pandas_datareaderは最近グーグルとかヤフーとか使えなくなってあれですが、思いの外良いところがあったので書いておきます。



どのようなライブラリか?

pandas_datareaderはPythonのライブラリで、経済データや金融商品の価格データが取ることができます。

pandasという名が入っているので、pandasと共に入ってそうですが(昔は入っていたような)、別モンになっています。Anacondaでも入っておらず、インストールしないといけません。pipでインストールしましょう。

pip install pandas_datareader

これで使えるようになります。

ライブラリのウェブはリンク先にあります。

pandas-datareader — pandas-datareader 0.6.0 documentation

データ取得先はFRED、OECD世界銀行など色々ありますが、グーグルは使えなくなっています。

どんなふうに使うか

以下のように簡単にデータが取得できます。また、pandasのデータフレームで帰ってくるのがありがたいです。

import pandas_datareader.data as web
from datetime import datetime

start = datetime(2000, 1, 1)
end = datetime(2018, 7, 18)
df = web.DataReader('WILLREITIND', 'fred', start, end)

こうすることによりデータが取れます。上の例だとFREDからWilshire US REIT指数が取れます。一日一本だけの価格ですが、どんな感じで動いたかがわかります。

f:id:mazarimono:20180721080117p:plain

今回は勉強会の題材として、投信で半分くらいの人が損しているという新聞記事を材料に、投信の預かり残をモーニングスターのサイトで見て、US REITの残高多いけど、どんな動きだったかをみて、どうして損してるんだろうなってことの推測をしてみました。指数の動きを見てみると右肩上がりなので損している理由がわからんなーと。

www.nikkei.com

2000年からの年率の標準偏差は以下のようになっていて、リートって株なんかより全然リスクが高いという性質が見えます。jpyはドル円、wilはwilshire5000指数(株価指数)、nikkeiは日経平均株価です。

f:id:mazarimono:20180721081309p:plain

pandasのrolling().std()で年率標準偏差の動きを見てみました。256日分の数字でやりました。

df2 = df.rolling(256).std() * np.sqrt(365)

すると、以下のようなデータがでてきました。

f:id:mazarimono:20180721080815p:plain

リーマンショックのときのボラ急上昇やばいな~。ってことがいえます。住宅価格はいまもどんどん上がっているので、今回の負債バブルが弾けるとき、リートは凄いことになるかもしれませんね。墓場のダンサーであるサムゼル先生はそんな場面を狙っているのでしょう。

逆張り投資家サム・ゼル (ウィザードブックシリーズ)

逆張り投資家サム・ゼル (ウィザードブックシリーズ)

ちなみに日本人が海外の商品に投資するときは為替リスクが入ってくるため、リスクは元のデータより上がります。今回の場合でもそれをみてみると、 ほとんど同じような色になってしまいましたが、reitjpyとあるのが、reitを円建ての指数にしたもので、常にドル建ての指数よりもリスクが高くなっていることがわかります。

f:id:mazarimono:20180721082538p:plain

リスクが高いから避けて全部為替ヘッジをつけるべきかってのは微妙で、その辺は色々と考えて運用してくださいという感じです。

日本株データも取れる

質問で日本株のデータが取れるかと聞かれたので取れそうなところはありますがーってことで、現場でやってみたら取れましたw

使うソースはstooqです。ポーランドのサイトだと思うのですが、ここからデータが取れました。

df = web.DataReader('6758.JP', 'stooq')

これでデータが取れます。ポーランドは美人多いし良いと思っていたけど、こんな素晴らしいサイトまで提供してくれるなんて最高ですね。あ、あと料理も美味しかったです。

まとめ

というわけでpandas_datareaderに関してみてみました。FREDとか使うと、イールドのスプレッドなんかも簡単に取れるので良いです。

これまでも何回もネタにしてきているのですが、FREDの問題点はデータの更新が遅いことですが、そんなに急ぎでないデータ分析だったりすると、これで十分ではないかと思います。

このデータを機械学習に食わしてとかも使いみちとして面白そうです。

ホントは決算データの処理をネタにしたかったんですけど、出来てないのでこんなネタを取り上げてみました。今回も人力で決算シーズンを乗り越えないといけないかもしれません・・・・