1. S&P500と今回の目的
S&P500とは、S&P グローバル・レーティングという企業が算出している株価指標であり、アメリカの代表的な株価指数です。
S&P500に含まれる多くの企業では配当金を出しています。実際にこの値を見るだけであれば、finance.yahoo.comなどの方が早いかと思いますが、今回は勉強も兼ねて、PythonとAPIを利用して、その配当利回りの傾向を調べてみたいと思います。
2. API提供サイトへの登録(Quandl)
QuandlではFinancialデータをAPI形式で取得することができます。
Quandlは米NASDAQが提供するサイトであり、有料プランであれば全てのデータにアクセス可能ですが、
Freeプランでも個人で学習する程度であれば、十分なデータセットを入手可能です。
今回はFreeプランを利用して、S&P500の配当利回りの傾向を調べてみたいと思います。
Quandlのサイトへアクセスすると、右上のSIGN UPからアカウントを作成することができます。
次の画面ではアカウントタイプと利用者名を入力します。
個人で例えば機械学習のテストデータとして利用するだけであれば、
「Personal」を選択し、「Next」を選択しましょう。
メールアドレスと、利用目的を入力します。決めかねるようであれば、「I’m not sure yet.」を選択して、
「NEXT」ボタンを押しましょう。
最後にパスワードとプライバシーポリシーに同意し、アカウントの作成を完了することができます。
アカウントの作成が完了すると、API Keyが表示されます。これは今後プログラム作成時に利用します。
もし忘れたとしても、アカウント設定から確認可能ですし、ログインした状態であればプログラムサンプルコードにセットされる為、特に問題ありません。
「CONTINUE」をクリックすると、サイトにログイン可能です。
実際に利用するには、入力したE-mailアドレス宛にアドレス存在確認のためのメールが届いていますので、メール内の「CONFIRM ADDRESS」をクリックしておきましょう。
3. プログラムによるAPI利用確認
3-1. pythonでデータ取得
なにはともあれ、先ずはデータを取得するAPIを探す必要があります。例えばETFデータについて無料で利用で利用するAPIを検索するには、Quandlサイト上部にある検索ボックスに”ETF”と入力
、Enterし検索した後、左側のFILTERから「Free」にチェックを入れるとFreeプランで利用できるAPIを検索可能です。
検索した後、左側のFILTERから「Free」にチェックを入れるとFreeプランで利用できるAPIを検索可能です。
今回は「S&P500」と入力すると、「S&P 500 Ratios」というものが出てきますので、これを利用します。
S&P500 Ratiosのリンクをクリックすると、画面の中央にデータセットがグラフとして描かれていますが、
これをPythonで取得してみようと思います。
画面の右側のLibraries -> PYTHONを選択します。するとデータ取得に必要なコードが取得できますので、コピペするだけで利用可能です。
このAPIを利用するには、ライブラリのインポートが必要ですのでライブラリのインストールを行います。
$ pip install Quandl
Quandlのインストールが完了したら、インポートとデータ取得を行えます。コードはたったの2行です。とても簡単ですね。
今回は月当りの配当利回りを取得しています。
import quandl mydata = quandl.get("MULTPL/SP500_DIV_YIELD_MONTH", authtoken="hzQXAyJUHe7zowY-CM4K")
3-2. データをグラフ化
取得したデータはpandas形式で取得されていますので、pltメソッドを利用して簡単にグラフ化することが可能です。
実際に取得したデータをmatplotlibでグラフ化したものが以下です。このグラフを見ると、配当はここ10年はほぼ落ち着いているものの、長い年月をかけて抑えられてきている傾向が読み取れます。
そしてその裏で2019年現在、S&P500が最高値を更新していますので、企業が配当を減らし、企業の成長への投資や内部留保を増やしているのではと仮説を立てることができます。
(実際のところは知らないです)
ただこれはあくまで500社全体のデータですので、BRKのように配当を出さずに会社の成長に割り当てることで、
株主の税負担を間接的に減らし、成長している企業もあります。
投資や経済についてはよくわかりませんが、
少なくともS&P500の配当だけで生活するには、相当大きな額を運用しなければならなそうです。