我正在编写一个Matlab代码,用于查找广义正态分布的分位数
x ~ GN(0, alfa, beta) :
p(x; 0, alfa, beta) = (beta/(2*alfa*gamma(1/beta))) * exp(-(abs(x)/alfa).^beta )
根据广义正态分布中的分位数公式,对于分位数C,我通过计算了分位数
z_c = sign(C-0.5).*gaminv(2*abs(C-0.5), 1./beta, 1./(alfa.^beta)).^(1./beta)+0
为了验证上面的方程,我指定alfa=sqrt(2(和beta=2,使广义正态成为正态分布。但当我计算时
>> C=0.05; beta =2; alfa =sqrt(2);
>> z_c = sign(C-0.5).*gaminv(2*abs(C-0.5), 1./beta, 1./(alfa.^beta)).^(1./beta)
z_c =
-0.8224
我认为结果应该与平均mu=0和标准偏差sigma=1的正常CDF的倒数的分位数完全相同,然而,
>> norminv(C)
ans =
-1.6449
有人能帮忙指出上面的错误吗?
以下是正确答案:
z_c2 = sign(C-0.5).*((1).*gaminv(2*abs(C-0.5), 1./beta, alfa^beta)).^(1./beta)+0