混合密度的偏度

机器算法验证 偏度 高斯混合分布
2022-04-18 12:32:22

我正在将高斯混合拟合到财务数据。我的混合密度由下式给出:

f(l)=πϕ(l;μ1,σ12)+(1π)ϕ(l;μ2,σ22)

我已经计算了数据的偏度。现在,我想看看拟合的高斯混合的偏度。由于我使用了 ML(EM 算法)而不是矩量法,所以矩量将不一样。我知道这个。但是我不知道如何计算混合高斯的偏度?我想要一个理论推导公式,所以我的意思是,我不想通过取拟合值来计算这个经验值并在 R 中执行例如 skew(...) 。我会这样做来控制自己,但首先我想得到它的理论公式。我找不到它(我用谷歌搜索了偏度混合密度等。)

我知道偏度是由

γ1=E[(Xμσ)3]=μ3σ3=E[(Xμ)3]   (E[(Xμ)2])3/2

那么什么是混合高斯的偏度?我怎样才能得出它?数学推导会很棒。我已经估计了两个密度,并且我有 μ 和 σ 的估计值。我想要一个公式,我可以插入这些值来获得混合密度的偏度。然后我将在 R 中使用 skew(...) 凭经验控制它。

我知道这是因为峰态: 峰度 我想用它来表示偏度,并且 - 这会很棒 - 它的推导?

1个回答

偏度是一个模糊的概念,可以通过多种方式对其进行形式化。最流行的偏度度量是您提到的那个,它是 100 多年前提出的。然而,如今有更好(更易解释)的措施。

由于其解释变得不清楚,因此在很大程度上讨论了在多峰分布中使用偏度度量的有效性。这是有限混合的情况。如果您的混合物看起来(或是)单峰,那么您可以使用此值来了解它的不对称程度。

在 R 中,这个数量是在库moments中的命令中实现的skewness()

的矩,密度可以计算为Xg=j=1nπjfjE[Xk]=j=1nπjxkfj(x)dx

R中的数值解。

# Sampling from a 2-gaussian mixture
gaussmix <- function(n,m1,m2,s1,s2,alpha) {
    I <- runif(n)<alpha
    rnorm(n,mean=ifelse(I,m1,m2),sd=ifelse(I,s1,s2))
}

# A simulated sample
samp <- gaussmix(100000,0,0,1,1,0.5)

library(moments)
# Approximated kurtosis and skeweness using the simulated sample
skewness(samp)
kurtosis(samp)