アセットマネージャーのためのファイナンス機械学習: ノイズ除去 練習問題
株式リターン系列の行列を用いて、共分散行列と相関行列の条件数を求める
yahoo financeから、ティッカーシンボルを指定して終値をデータセットに読み出し、差分を取り、期待リターン系列を出す。
from datetime import datetime
from pandas_datareader import data as pdr
import yfinance as yfin
yfin.pdr_override()
ticker_symbols=['NVDA','AMZN','INTC','AAPL','GOOG','IBM','JPM','CSCO','MRK','NKE',
'VZ','CAT','PG','AXP','DOW','XOM','PFE','CVX','WBA','MMM','JNJ','BA',
'HD','TRV','MCD','GS','UNH','MSFT','V','KO','WMT','DIS']
startdate= datetime(2021,5,1)
enddate = datetime(2023,5,1)
s_data= pdr.get_data_yahoo(ticker_symbols, startdate, enddate,interval='1d')['Adj Close']
return_month = s_data.pct_change()
return_mat=return_month.dropna()
return_mat.describe()
共分散行列を計算し、相関行列の条件数を求める。
covariance = return_mat.cov()
covariance
corr_mat=return_mat.corr()
eval, evec=np.linalg.eig(corr_mat)
print(eval[np.argmax(eval)])
print(eval[np.argmin(eval)])
cond_num=eval[np.argmax(eval)]/eval[np.argmin(eval)]
cond_num
この記事が気に入ったらサポートをしてみませんか?