Ağır kuyruk Lambert W x F veya çarpık Lambert W x F dağılımlarına bir göz atın (sorumluluk reddi: Ben yazarım). R'de LambertW paketinde uygulanırlar.
İlgili Mesajlar:
yX
Hisse senedi fon getirilerine uygulanan Lambert Wx Gauss tahminlerine bir örnek.
library(fEcofin)
ret <- ts(equityFunds[, -1] * 100)
plot(ret)
Getirilerin özet metrikleri OP'nin gönderisindeki ile aynıdır (aşırı değil).
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
Çoğu seri açıkça Normal olmayan özellikler gösterir (güçlü çarpıklık ve / veya büyük basıklık). Her seriyi, ağır bir kuyruklu Lambert W x Gauss dağılımı (= Tukey h) kullanarak moment tahmincisi ( IGMM
) yöntemlerini kullanarak Gaussianize edelim .
library(LambertW)
ret.gauss <- Gaussianize(ret, type = "h", method = "IGMM")
colnames(ret.gauss) <- gsub(".X", "", colnames(ret.gauss))
plot(ts(ret.gauss))
Zaman serisi grafikleri çok daha az kuyruk ve zaman içinde daha kararlı bir değişim gösterir (yine de sabit değil). Gaussianized zaman serilerinde metriklerin tekrar hesaplanması şunları sağlar:
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()
Basit iki değişkenli regresyon
rEA STEU, trbenN-D IA , t
layout(matrix(1:2, ncol = 2, byrow = TRUE))
plot(ret[, "INDIA"], ret[, "EASTEU"])
grid()
plot(ret.gauss[, "INDIA"], ret.gauss[, "EASTEU"])
grid()
Orijinal dizinin sol dağılım grafiği, güçlü aykırı değerlerin aynı günlerde değil, Hindistan ve Avrupa'da farklı zamanlarda gerçekleştiğini göstermektedir; bunun dışında merkezdeki veri bulutunun hiçbir korelasyonu veya negatif / pozitif bağımlılığı destekleyip desteklemediği net değildir. Aykırı değerler varyans ve korelasyon tahminlerini güçlü bir şekilde etkilediğinden, kaldırılan ağır kuyruklara (sağ dağılım grafiği) bağımlılığa bakmak faydalı olacaktır. Burada kalıplar çok daha açık ve Hindistan ile Doğu Avrupa pazarı arasındaki pozitif ilişki ortaya çıkıyor.
# 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)
Granger nedensellik
VA R ( 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
Ancak Gaussianlaştırılmış veriler için cevap farklıdır! Burada test edebilir değil "HİNDİSTAN olmadığını H0 reddetmek değil EASTEU Granger nedenlere", ama yine de "EASTEU değil HİNDİSTAN Granger nedenlere yapar" diye reddeder. Dolayısıyla Gausslaştırılmış veriler, Avrupa pazarlarının ertesi gün Hindistan'daki pazarları yönlendirdiği hipotezini desteklemektedir.
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
VA R ( 5 )