我正在尝试使用以下PDF创建Skewed Normal发行版
我正在使用以下命令(引自http://en.wikipedia.org/wiki/Skew_normal_distribution):
我正在尝试执行以下操作:
SkewedNormal:=分布(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)
错误,(在Statistics:-CDF中)意外参数:y
如果您以前尝试使用以下方式初始化随机变量:
R:= RandomVariable(SkewNormal(mu,sigma))
错误,(在统计: - 分布中)无效输入:IsKnownDistribution期望其第一个参数dn为
类型
名称,但收到模块()导出条件,PDF,类型;期权分配,连续;结束模块
如何在Maple 14中创建参数分布?
答案 0 :(得分:2)
你不能仅仅针对x取消申请吗? (注意你在发布的代码中有一个拼写错误,使用SkewedNormal vs 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的表达式。因此,可以使用subs
或eval
来实例化参数的值。
答案 1 :(得分: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);
给出