見出し画像

【Python】ISM PMIデータの取得

このコードでは下記ができます。

景気の先行指数と言われる下記の取得できます。
 ・ISM PMIデータ
 ・比較対象の株価

(米国のPMIにはISMが提供するPMIと、マークイットが提供するPMIがあるが、ここで使用するのはISMのPMIである。)

株価とPMIの相関を確認する、下記の様なグラフが取得できます。

画像4

0.事前準備

事前準備はこちら。5分もあればできると思います。

では始めていきましょう。

1.インストール

PMIデータを「quandl」からダウンロードするため、下記をインストール。

pip install quandl

スクリーンショット 2021-05-11 9.50.17

実行すると、上記のようにインストールされます。

次に、画面左上の「+コード」をクリックしコードの入力欄を追加。

スクリーンショット 2021-05-11 17.49.09

追加したコードの入力欄に下記のコードをコピペして実行します。

2.コード1

PMIデータ取得処理。
下記をコピペして実行し、PMIデータを取得します。

import quandl

# PMIデータ取得
df_pmi = quandl.get("ISM/MAN_PMI")

quandlからのデータ取得は1日50回の制限があるため、下図のように、コードの入力欄を分けて、必要な時だけを実行できるようにしています。(一つにまとめても問題ありません。)

スクリーンショット 2021-05-11 10.22.42

追加したコードの入力欄に下記のコードをコピペして実行します。

3.コード2

株価取得とグラフ出力処理。
下記をコピペして実行し、株価とPMIデータを結合してグラフ化します。

説明は、コード内に記載したため、割愛します。

表示対象の株価を「TNX:テキサスインスルメンツ」としています。
他の銘柄やETFとの比較したい場合は、下記を変更して下さい。
(1998年以降の株価を表示する仕様になっているため、比較対象は古くからある企業・ETFが適しています。INTC、CSCOでもよかったのですが、幅広く半導体の動向をシンプルに見る銘柄として適しているように見えたので、TNXとしています。もっと最適な銘柄はあるかもしれません。)

# 表示対象
codelist = ["TXN"]#テキサスインスルメンツ
# !pip install yfinance

import pandas as pd
import datetime
# import fix_yahoo_finance as yf
import yfinance as yf
import matplotlib.pyplot as plt
from matplotlib import cm
%matplotlib inline

# 表示期間
xyear = 1998

# 表示期間
start = datetime.date(xyear,1,1)
end = datetime.date.today()

# 表示対象
# codelist = ["^GSPC"]#S&P500
codelist = ["TXN"]#テキサスインスルメンツ

# データ取得
data_stock = yf.download(codelist, start=start, end=end)["Adj Close"]
data_stockt=(1+data_stock.pct_change()).cumprod()
df_stock = pd.DataFrame(data_stockt)

# 6年分かける4回処理繰り返し(24年分)
for i in range(4):
 fig, ax1 = plt.subplots(figsize=(8, 4.5),facecolor="white")
 
 # ax1とax2を関連させる
 ax2 = ax1.twinx()
 
 # 株価とPMIのグラフ作成
 ax1.plot(df_stock[str(xyear):str(xyear+6)],color="blue", label=codelist[0],linewidth=2,alpha=0.5)
 ax2.plot(df_pmi[str(xyear):str(xyear+6)],color="red", label="PMI",linewidth=2,alpha=0.5)
 
 # 凡例
 handler1, label1 = ax1.get_legend_handles_labels()
 handler2, label2 = ax2.get_legend_handles_labels()
 
 # 凡例をまとめて出力
 ax1.legend(handler1 + handler2, label1 + label2, loc=2, borderaxespad=0.5)
 ax2.axhline(y=50,color='gray',linewidth=2 )
 ax2.set_ylim(35, 65)
 
 # 軸をログスケールにする
 ax1.set_yscale('log') 
 
 plt.show()
 
 # 6年分時間を加算してLoop処理の最初へ
 xyear = xyear + 6
 
# ここまで

4.実行結果

下記のようなグラフが4つ取得できます。

画像3

ITバブルの少し前から、PMIが下落しています。PMIを見ていれば、ITバブルの崩壊を避けられたのかも知れません。

画像4

リーマンショックの時は、株価と同じようにPMIも下落しています。回復も似た動きになっています。先行指標としては、微妙かもしれませんが、相関性は高そうです。

画像5

株価はすこし揉み合う場面もありつつも、上昇しています。その際のPMIは概ね50を上回っている状態です。先行指標として読み取るのは難しいですが、PMIは好況を表しており、株価の上昇との整合性があるように見えます。

画像6

PMIは、2019年後半からすこし落ち込んでますが、株価は堅調で、乖離が見られます。しかし、コロナショック以降は相関性があるように見えます。

そして、現在、PMIの数字は、1998年以降で見たことがない高水準です。
この好況が維持できるのか、落ち込むのか、次のPMIに注目です。

5.解説

間違っているかも知れませんが、少し解説。

PMIと株価にはある程度の相関があるようにみえます。ITバブル(2000年問題への対応)がハードウェアとソフトウェアの需要によって作られていたと考えれば、ハードウェアの需要を反映するPMIの指標は重要ですし、PMIのピークアウトに警戒しておけば、ITバブル崩壊を回避できた可能性があるようにも見えます。

下記は、4半期のEPSの推移と株価を重ねたグラフですが、2000年頃を見ると、業績の落ち込みより、先に株価が下がっている状態です。つまり、ITバブルの崩壊を察知するには、業績の確認では遅いのです。(会社が発表する業績見通しを確認していれば少しは早いかも知れませんが、株価の下落から業績の落ち込みまでには1年ぐらいタイムラグがあるため、それでも遅いかも知れません。)

画像14

一方で、下記の様に、2000年頃のPMIと株価を確認すると、PMIが先行してピークアウトしており、先行指標として、有効に機能しているように見えます。

画像3

リーマンショック・サブプライム問題のような不動産バブルの崩壊は、PMIを見ていても回避できませんが、好況が製造業によって作られている場合、先行指標として、PMIの重要性が増すように思います。

最近は、5G、AI、データセンター(クラウド)、パソコン、自動車等の需要で、半導体不足が発生し、半導体関連の会社が積極的に設備投資をしています。短期的には調整中ですが、株価も業績も伸びています。

この好況が続くのか、ピークアウトするのか、半導体やクラウド銘柄の今後の状況を表す一つの指標として、PMIの指標の重要性が増しているように思います。

少し解説してみました。何かの役に立てば幸いです。

おつかれさん「缶コーヒー一杯ぐらい、ご馳走してあげよう」という太っ腹な方がいれば、よろしくお願いします!
課金しなくても、参考になったら、「ハートボタン」をクリックしたり、「リツイート」してくれると読まれる可能性があがるので嬉しいです。やる気が出ます。

何かの参考になれば幸いです!それでは!

以下、有料特典は、他に取得できる情報についての豆知識です。

今回、PMIのデータ取得で「Quandl」を利用しましたが、他のデータも取得したいと言う人に向けて、今回やったことを、もう少しだけ、解説します。

ここから先は

2,297字 / 6画像

¥ 100

この記事が気に入ったらサポートをしてみませんか?