金融データの自己相関係数

やること

金融の実データについて、コレログラムを作成。各指標について、時間依存の関係をみる。

実データはとりあえず以下の指標を使用。

日次リターンと週次リターンの2通りで、時間依存の関係をみる。

参考サイト

pandasで時系列データをリサンプリングするresample, asfreq | note.nkmk.me

pandasの時系列データにおける頻度(引数freq)の指定方法 | note.nkmk.me

使用データ

price.haed(5)

f:id:iiiiikamirin:20201115184752p:plain

DM1とかもまざっているけど、今回は対象としないです。

期間は2010/1/1 ~ 2020/4/30までです。

コード

日次リターン

  • 日次リターンの算出
log_return_ = np.log(price).diff().dropna()
log_return_ *= 100. #  %
log_return.head(5)

f:id:iiiiikamirin:20201115184948p:plain

  • コレログラム作成
import statsmodels.graphics.api as smg
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.graphics.tsaplots import plot_pacf

def correlogram(to_show: pd.Series):
    plot_acf(to_show, lags = 29)
    plt.show()
    
    #  推移律考慮
    plot_pacf(to_show, lags = 29)
    plt.show()
    
    return

ty1 = log_return['TY1']
es1 = log_return['ES1']
usdjpy = log_return['USDJPY']

# sns.lineplot(data = ty1)
# sns.lineplot(data = es1)
# sns.lineplot(data = usdjpy)

correlogram(ty1)
correlogram(es1)
correlogram(usdjpy)
  • TY1

f:id:iiiiikamirin:20201115185645p:plain

  • ES1

f:id:iiiiikamirin:20201115185733p:plain

  • USDJPY

f:id:iiiiikamirin:20201115185810p:plain

3資産ともラグ1 ~ 29について強い相関は全くみられなかった。まあ日次リターンやっぱりそっかあ、という感じ。

週次リターン

  • 週次リターンの算出
#  weekly return
w_price = price.resample('W').last()

log_w_return_ = np.log(w_price).diff().dropna()
log_w_return_ *= 100. #  %
log_w_return_.head(5)

f:id:iiiiikamirin:20201115192345p:plain

毎週日曜でリサンプリング。データは月~金のデータしかないので、金曜のデータが使われている。

  • コレログラム作成
import statsmodels.graphics.api as smg
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.graphics.tsaplots import plot_pacf

def correlogram(to_show: pd.Series):
    plot_acf(to_show, lags = 29)
    plt.show()
    
    #  推移律考慮
    plot_pacf(to_show, lags = 29)
    plt.show()
    
    return

w_ty1 = log_w_return['TY1']
w_es1 = log_w_return['ES1']
w_usdjpy = log_w_return['USDJPY']

correlogram(w_ty1)
correlogram(w_es1)
correlogram(w_usdjpy)
  • TY1

f:id:iiiiikamirin:20201115194336p:plain

  • ES1

f:id:iiiiikamirin:20201115194418p:plain

  • USDJPY

f:id:iiiiikamirin:20201115194455p:plain

あ、週次でも強い相関ないんだ。。

(なんちゃって)週次リターン

  • なんちゃって週次リターンの算出

週次リターンの算出を最初みすったときに、偶然みつけたんだけども、なんちゃってみたいな週次リターンを算出したら逆に相関が強くなった。

#  weekly return
#  weekly return
adj_log_w_return_ = np.log(price).diff(5).dropna()
adj_log_w_return_ *= 100. #  %
adj_log_w_return_.head(5)

f:id:iiiiikamirin:20201115202126p:plain

各時点について、5営業日前の値と比較した対数収益率をだしてみた。

  • コレログラム作成
import statsmodels.graphics.api as smg
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.graphics.tsaplots import plot_pacf

def correlogram(to_show: pd.Series):
    plot_acf(to_show, lags = 29)
    plt.show()
    
    #  推移律考慮
    plot_pacf(to_show, lags = 29)
    plt.show()
    
    return

adj_w_ty1 = log_adj_w_return['TY1']
adj_w_es1 = log_adj_w_return['ES1']
adj_w_usdjpy = log_adj_w_return['USDJPY']

correlogram(adj_w_ty1)
correlogram(adj_w_es1)
correlogram(adj_w_usdjpy)
  • TY1

f:id:iiiiikamirin:20201115202446p:plain

  • ES1

f:id:iiiiikamirin:20201115202526p:plain

  • USDJPY

f:id:iiiiikamirin:20201115202558p:plain

なぜだ。。全資産に共通してラグが1,6,11と5きざみで相関が高くなる。。火曜の週次リターンは月曜の週次リターンと相関が強いみたいだが、なんか変なことしてる、、?