Matlab 求广义正态分布的分位数
我正在写一个寻找广义正态分布分位数的Matlab代码Matlab 求广义正态分布的分位数,matlab,quantile,Matlab,Quantile,我正在写一个寻找广义正态分布分位数的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 为了验证上述方程,我指定a
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
我认为结果应该与正常CDF的倒数的分位数完全相同,平均μ=0,标准偏差σ=1
>> norminv(C)
ans =
-1.6449
有人能帮我指出上面的错误吗?这个
alfa=sqrt(2)
来自哪里?你已经解出了阿尔法^2/2=1?@obchardon是的,我给阿尔法赋值为sqrt(2)和beta=2,这样p(x;0,alfa,beta)=(beta/(2*alfa*gamma(1/beta))*exp(-(abs(x)/alfa)。^beta)变成了N(0,1),你可能想看看