0

我正在尝试使用以下 PDF 创建倾斜正态分布

我为此使用以下命令(引用自http://en.wikipedia.org/wiki/Skew_normal_distribution):

我正在尝试执行以下操作:

SkewedNormal := Distribution(PDF = unapply(2*phi(x, mu, sigma)*Phi(alpha*x, mu, sigma), x, mu, sigma, alpha))

此命令执行没有错误,与以下命令相同:

R := RandomVariable(SkewNormal)

但是当我尝试执行以下操作时问题就开始了:

CDF(R,x)

错误,(在统计信息:-CDF 中)无效输入:q 使用了第三个参数 sigma,但缺少该参数

好的,我添加第三个参数:

CDF(R,x,y)

错误,(在统计信息中:-CDF)意外参数:y

如果您之前尝试通过以下方式初始化随机变量:

R := RandomVariable(SkewNormal(mu, sigma))

错误,(在统计信息中:-分布)无效输入:IsKnownDistribution 期望它的第一个参数 dn 是类型

name,但收到 module() 导出条件,PDF,Type;选项分布,连续;端模块

如何在 Maple 14 中创建参数分布?

4

2 回答 2

2

你能不能只对 x 不申请?(请注意,您在发布的代码中使用了 SkewedNormal 与 SkewNormal 的拼写错误。)

with(Statistics):

SkewNormal := Distribution(PDF =
     unapply(2*phi(x, mu, sigma)*Phi(alpha*x, mu, sigma), x));

R := RandomVariable(SkewNormal):

CDF(R,x);

最终结果是一个包含 alpha、mu 和 sigma 的表达式。所以subsoreval然后可以用于实例化参数的值。

于 2011-07-12T13:58:27.130 回答
1

如果有人会遇到同样的问题,这就是我设法以这种方式解决的方法:

SkewedNormal := (xi, omega, alpha) ->
Distribution
(
    PDF = ((x) -> x*sqrt(2)*exp(-(1/2)*(x-xi)^2/omega^2)*(1/2+(1/2)*erf((1/2)*alpha*(x-xi)*sqrt(2)/omega))/(omega*sqrt(Pi))),
    CDF = (proc (x) local t; options operator, arrow; return 1/2+(1/2)*erf((1/2)*(x-xi)*sqrt(2)/omega)-(int(exp(-(1/2)*(t-xi)^2*(1+t^2)/omega^2)/(1+t^2), t = 0 .. alpha))/Pi end proc),
    Mean = xi+omega*alpha*sqrt(2/Pi)/sqrt(1+alpha^2),
    Variance = omega^2*(1-2*alpha^2/(sqrt(1+alpha^2)^2*Pi)),
    MGF = ((x) -> 2*exp(xi*x+(1/2)*omega^2*x^2)*(1/2+(1/2)*erf((1/2)*omega*alpha*x*sqrt(2)/sqrt(1+alpha^2))))
)

这种方式允许定义参数分布

例子:

X:=SkewedNormal(u,v,m); # Skewed normal distribution with xi=u, omega=v, alpha=m

Y:=SkewedNormal(a,b,c); # Skewed normal distribution with xi=a, omega=b, alpha=c

它也适用于 Statistics 包中的函数,例如 RandomVariable:

Rx:=RandomVariable(X);    
Ry:=RandomVariable(Y);

并调用:

CDF(Ry,x);

公式

于 2011-07-13T21:38:11.963 回答