見ていヘビーテールランバートWはFをxはかランバートWを歪めF Xのディストリビューションを試し(免責事項:私は著者だが)。Rでは、それらはLambertWパッケージに実装されています。
関連記事:
yX
以下は、株式ファンドの収益に適用されるランバートW xガウス推定の例です。
library(fEcofin)
ret <- ts(equityFunds[, -1] * 100)
plot(ret)
リターンの要約メトリックは、OPの投稿と似ています(極端ではありません)。
data_metrics <- function(x) {
c(mean = mean(x), sd = sd(x), min = min(x), max = max(x),
skewness = skewness(x), kurtosis = kurtosis(x))
}
ret.metrics <- t(apply(ret, 2, data_metrics))
ret.metrics
## mean sd min max skewness kurtosis
## EASTEU 0.1300 1.538 -18.42 12.38 -1.855 28.95
## LATAM 0.1206 1.468 -6.06 5.66 -0.434 4.21
## CHINA 0.0864 0.911 -4.71 4.27 -0.322 5.42
## INDIA 0.1515 1.502 -12.72 14.05 -0.505 15.22
## ENERGY 0.0997 1.187 -5.00 5.02 -0.271 4.48
## MINING 0.1315 1.394 -7.72 5.69 -0.692 5.64
## GOLD 0.1098 1.855 -10.14 6.99 -0.350 5.11
## WATER 0.0628 0.748 -5.07 3.72 -0.405 6.08
ほとんどのシリーズは、非通常の特性(強い歪度および/または大きな尖度)を明確に示しています。モーメント推定法(IGMM
)を使用して、ヘビーテールランベルトW xガウス分布(=チューキーのh)を使用して各系列をガウス化してみましょう。
library(LambertW)
ret.gauss <- Gaussianize(ret, type = "h", method = "IGMM")
colnames(ret.gauss) <- gsub(".X", "", colnames(ret.gauss))
plot(ts(ret.gauss))
時系列プロットは、テールがはるかに少なく、時間に対する変動が安定しています(ただし一定ではありません)。ガウス化された時系列でメトリックを再度計算すると、次の結果が得られます。
ret.gauss.metrics <- t(apply(ret.gauss, 2, data_metrics))
ret.gauss.metrics
## mean sd min max skewness kurtosis
## EASTEU 0.1663 0.962 -3.50 3.46 -0.193 3
## LATAM 0.1371 1.279 -3.91 3.93 -0.253 3
## CHINA 0.0933 0.734 -2.32 2.36 -0.102 3
## INDIA 0.1819 1.002 -3.35 3.78 -0.193 3
## ENERGY 0.1088 1.006 -3.03 3.18 -0.144 3
## MINING 0.1610 1.109 -3.55 3.34 -0.298 3
## GOLD 0.1241 1.537 -5.15 4.48 -0.123 3
## WATER 0.0704 0.607 -2.17 2.02 -0.157 3
IGMM
3Gaussianize()
scale()
単純な2変量回帰
rEASTEU,trINDIA,t
layout(matrix(1:2, ncol = 2, byrow = TRUE))
plot(ret[, "INDIA"], ret[, "EASTEU"])
grid()
plot(ret.gauss[, "INDIA"], ret.gauss[, "EASTEU"])
grid()
元のシリーズの左側の散布図は、強い外れ値が同じ日に発生したのではなく、インドとヨーロッパでは異なる時間に発生したことを示しています。それ以外は、中央のデータクラウドが相関関係または負/正の依存関係をサポートしていないかどうかは明確ではありません。外れ値は分散と相関推定に強く影響するため、重いテールを削除して依存関係を確認することは価値があります(右の散布図)。ここでは、パターンがはるかに明確になり、インドと東ヨーロッパの市場の間の肯定的な関係が明らかになります。
# try these models on your own
mod <- lm(EASTEU ~ INDIA * CHINA, data = ret)
mod.robust <- rlm(EASTEU ~ INDIA, data = ret)
mod.gauss <- lm(EASTEU ~ INDIA, data = ret.gauss)
summary(mod)
summary(mod.robust)
summary(mod.gauss)
グレンジャー因果関係
VAR(5)p=5
library(vars)
mod.vars <- vars::VAR(ret[, c("EASTEU", "INDIA")], p = 5)
causality(mod.vars, "INDIA")$Granger
##
## Granger causality H0: INDIA do not Granger-cause EASTEU
##
## data: VAR object mod.vars
## F-Test = 3, df1 = 5, df2 = 3000, p-value = 0.02
causality(mod.vars, "EASTEU")$Granger
##
## Granger causality H0: EASTEU do not Granger-cause INDIA
##
## data: VAR object mod.vars
## F-Test = 4, df1 = 5, df2 = 3000, p-value = 0.003
ただし、ガウス化されたデータの場合、答えは異なります。ここでは、テストは「INDIAがGrangerを引き起こすEASTEUを引き起こさない」というH0を拒否できませんが、「EASTEUがINDIAをGrangerを引き起こさない」ことを拒否します。したがって、ガウス化されたデータは、ヨーロッパの市場が翌日のインドの市場を牽引するという仮説を裏付けています。
mod.vars.gauss <- vars::VAR(ret.gauss[, c("EASTEU", "INDIA")], p = 5)
causality(mod.vars.gauss, "INDIA")$Granger
##
## Granger causality H0: INDIA do not Granger-cause EASTEU
##
## data: VAR object mod.vars.gauss
## F-Test = 0.8, df1 = 5, df2 = 3000, p-value = 0.5
causality(mod.vars.gauss, "EASTEU")$Granger
##
## Granger causality H0: EASTEU do not Granger-cause INDIA
##
## data: VAR object mod.vars.gauss
## F-Test = 2, df1 = 5, df2 = 3000, p-value = 0.06
VAR(5)