巨大峰度?

机器算法验证 分布 金融 偏度 峰度
2022-03-28 23:42:48

我正在对股票指数的每日收益进行一些描述性统计。即如果分别是第 1 天和第 2 天的指数水平,那么是我正在使用的回报(在文献中完全标准)。P1P2loge(P2P1)

因此,其中一些的峰度很大。我正在查看大约 15 年的每日数据(大约时间序列观察)26015

                      means     sds     mins    maxs     skews     kurts
ARGENTINA          -0.00031 0.00965 -0.33647 0.13976 -15.17454 499.20532
AUSTRIA             0.00003 0.00640 -0.03845 0.04621   0.19614   2.36104
CZECH.REPUBLIC      0.00008 0.00800 -0.08289 0.05236  -0.16920   5.73205
FINLAND             0.00005 0.00639 -0.03845 0.04622   0.19038   2.37008
HUNGARY            -0.00019 0.00880 -0.06301 0.05208  -0.10580   4.20463
IRELAND             0.00003 0.00641 -0.03842 0.04621   0.18937   2.35043
ROMANIA            -0.00041 0.00789 -0.14877 0.09353  -1.73314  44.87401
SWEDEN              0.00004 0.00766 -0.03552 0.05537   0.22299   3.52373
UNITED.KINGDOM      0.00001 0.00587 -0.03918 0.04473  -0.03052   4.23236
                   -0.00007 0.00745 -0.09124 0.06405  -1.82381  63.20596
AUSTRALIA           0.00009 0.00861 -0.08831 0.06702  -0.74937  11.80784
CHINA              -0.00002 0.00072 -0.40623 0.02031   6.26896 175.49667
HONG.KONG           0.00000 0.00031 -0.00237 0.00627   2.73415  56.18331
INDIA              -0.00011 0.00336 -0.03613 0.03063  -0.22301  10.12893
INDONESIA          -0.00031 0.01672 -0.24295 0.19268  -2.09577  54.57710
JAPAN               0.00008 0.00709 -0.03563 0.06591   0.57126   5.16182
MALAYSIA           -0.00003 0.00861 -0.35694 0.13379 -16.48773 809.07665

我的问题是:有什么问题吗?

我想对这些数据进行广泛的时间序列分析——OLS 和分位数回归分析,以及格兰杰因果关系。

我的响应(依赖)和预测(回归)都将具有巨大峰度的这种特性。因此,我将在回归方程的任一侧都有这些返回过程。如果非正态性溢出到只会使我的标准误差高方差的干扰,对吗?

(也许我需要一个偏度稳健的引导程序?)

2个回答

试试看重尾 Lambert W x F倾斜 Lambert W x F分布(免责声明:我是作者)。在 R 中,它们在LambertW包中实现。

相关文章:

与具有固定自由度的 Cauchy 或 student-t 分布相比,一个优势是可以从数据中估计尾部参数——因此您可以让数据决定存在哪些矩。此外,Lambert W x F 框架允许您转换数据并消除偏斜/重尾。值得注意的是,OLS 不需要的正态性。但是,对于您的 EDA,这可能是值得的。yX

以下是应用于股票基金回报的 Lambert W x Gaussian 估计示例。

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

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()

简单的二元回归

要考虑高斯化对 OLS 的影响,请考虑从“印度”回报预测“EASTEU”回报,反之亦然。尽管我们正在查看 t}上的之间的同一天回报(没有滞后变量),但考虑到印度和欧洲之间 6 小时以上的时差,它仍然为股市预测提供了价值。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)

格兰杰因果关系

基于 模型的格兰杰因果关系检验(我使用来捕捉每日交易的周效应)对于“EASTEU”和“印度”拒绝任一方向的“无格兰杰因果关系”。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 does not Granger-cause EASTEU”的H0,但仍然拒绝“EASTEU没有Granger-cause INDIA”的H0。因此,高斯化数据支持了欧洲市场在第二天推动印度市场的假设。

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

请注意,我不清楚哪个是正确答案(如果有的话),但这是一个有趣的观察结果。不用说,整个因果关系测试取决于是正确的模型——它很可能不是;但我认为它很适合 illustratiton。VAR(5)

需要的是更好地拟合数据的概率分布模型。有时,没有明确的时刻。一种这样的分布是柯西分布。虽然柯西分布有一个中值作为期望值,但没有稳定的平均值,也没有稳定的更高矩。这意味着当人们收集数据时,实际测量值会突然出现,看起来像异常值,但却是实际测量值。例如,如果一个有两个正态分布 F 和 G,均值为 0,并且一个除以 F/G,则结果将没有一阶矩并且是柯西分布。所以我们很高兴地收集数据,它看起来像 5,3,9,6,2,4,我们计算一个看起来稳定的平均值,然后,突然我们得到一个 -32739876 的值,我们的平均值变得毫无意义,但请注意,中位数为 4,稳定。长尾分布就是这样。

编辑:您可以尝试具有 2 个自由度的学生 t 分布。该分布的尾部比正态分布长,偏度和峰度不稳定(Sic,不存在),但均值和方差已定义,即稳定。

下一次编辑:一种可能是使用 Theil 回归。无论如何,这是一个想法,因为无论尾巴看起来如何,泰尔都会很好地工作。Theil 可以进行 MLR(使用中值斜率的多元线性回归)。我从来没有为直方图数据拟合做过泰尔。但是,我已经用折刀变体完成了 Theil 以建立置信区间。这样做的好处是 Theil 不关心分布形状是什么,而且答案通常比使用 OLS 的偏差更小,因为通常在存在有问题的独立轴方差时使用 OLS。并不是说泰尔是完全没有根据的,而是中值斜率。答案也有不同的含义,它在因变量和自变量之间找到更好的一致性,其中 OLS 找到因变量的最小误差预测器,