Eche un vistazo a las distribuciones Lambert W x F de cola pesada o las distribuciones asimétricas Lambert W x F intente (descargo de responsabilidad: soy el autor). En R se implementan en el paquete LambertW .
Artículos Relacionados:
yX
Aquí hay un ejemplo de las estimaciones Lambert W x Gaussian aplicadas a los rendimientos de los fondos de capital.
library(fEcofin)
ret <- ts(equityFunds[, -1] * 100)
plot(ret)

Las métricas de resumen de los retornos son similares (no tan extremas) como en la publicación de 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
La mayoría de las series muestran características claramente no normales (asimetría fuerte y / o curtosis grande). Gaussianicemos cada serie usando una distribución Lambert W x Gaussian de cola pesada (= Tukey's h) usando un estimador de métodos de momentos ( IGMM).
library(LambertW)
ret.gauss <- Gaussianize(ret, type = "h", method = "IGMM")
colnames(ret.gauss) <- gsub(".X", "", colnames(ret.gauss))
plot(ts(ret.gauss))

Las gráficas de series de tiempo muestran muchas menos colas y también una variación más estable a lo largo del tiempo (aunque no constante). Calcular nuevamente las métricas en las series de tiempo gaussianizadas produce:
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
IGMM3Gaussianize()scale()
Regresión bivariada simple
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()

El diagrama de dispersión de la izquierda de la serie original muestra que los valores atípicos fuertes no ocurrieron en los mismos días, sino en diferentes momentos en India y Europa; aparte de eso, no está claro si la nube de datos en el centro no admite correlación o dependencia negativa / positiva. Dado que los valores atípicos afectan fuertemente las estimaciones de varianza y correlación, vale la pena observar la dependencia con colas pesadas eliminadas (diagrama de dispersión derecho). Aquí los patrones son mucho más claros y la relación positiva entre India y el mercado de Europa del Este se hace evidente.
# 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)
Causalidad de Granger
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
Sin embargo, para los datos gaussianizados la respuesta es diferente. Aquí la prueba puede no rechazar H0 que "la India no no Granger-EASTEU causa", pero todavía rechaza que "no se EASTEU Granger las causas de la India". Por lo tanto, los datos gaussianizados respaldan la hipótesis de que los mercados europeos impulsan los mercados en India al día siguiente.
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)