Statistics 如何创建参数化分布?

Statistics 如何创建参数化分布?,statistics,maple,Statistics,Maple,我试图用下面的PDF创建偏正态分布 我正在为此使用以下命令(引用自): 我正在努力做到以下几点: SkewedNormal:=分布(PDF=unapply(2*phi(x,mu,sigma)*phi(alpha*x,mu,sigma),x,mu,sigma,alpha)) 此命令执行时无错误,与以下命令相同: R:=随机变量(斜态正态) 但当我尝试执行以下操作时,问题就开始了: CDF(R,x) 错误,(在统计中:-CDF)无效输入:q使用第三个参数sigma,缺少该参数 好的,我添加第三个参数

我试图用下面的PDF创建偏正态分布

我正在为此使用以下命令(引用自):

我正在努力做到以下几点:

SkewedNormal:=分布(PDF=unapply(2*phi(x,mu,sigma)*phi(alpha*x,mu,sigma),x,mu,sigma,alpha))

此命令执行时无错误,与以下命令相同:

R:=随机变量(斜态正态)

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

CDF(R,x)

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

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

CDF(R,x,y)

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

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

R:=随机变量(斜态正态分布(μ,σ))

错误,(在统计信息:-分布中)输入无效:IsKnownDistribution要求其第一个参数dn的类型为

名称,但收到模块()导出条件,PDF,类型;期权分配,连续;端模块


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

能否仅针对x进行取消应用?(注意,您在发布的代码中有一个输入错误,使用了SkewedNormal vs SkewNormal。)


最后的结果是一个包含alpha、mu和sigma的表达式。因此,可以使用
subs
eval
来实例化参数的at值。

您是否可以仅针对x取消应用?(注意,您在发布的代码中有一个输入错误,使用了SkewedNormal vs SkewNormal。)


最后的结果是一个包含alpha、mu和sigma的表达式。因此,可以使用
subs
eval
来实例化参数的at值。

如果任何人都会面临同样的问题,下面是我如何以这种方式解决的:

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
它还可以与统计数据包中的函数一起使用,例如RandomVariable:

Rx:=RandomVariable(X);    
Ry:=RandomVariable(Y);
并致电:

CDF(Ry,x);
给予


如果有人会面临同样的问题,我是如何用这种方式解决的:

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
它还可以与统计数据包中的函数一起使用,例如RandomVariable:

Rx:=RandomVariable(X);    
Ry:=RandomVariable(Y);
并致电:

CDF(Ry,x);
给予


这是一个错误的声明,“如果它只有一个参数,它就不会是参数化的”。表达式可以包含作为参数使用和处理的名称,这正是我提到2参数
eval
(作为众多选项中的一个支持方面)的原因。如果您认为只有过程和运算符可以被视为具有参数,那么您就错过了Maple功能的重要部分。我不要求任何东西,我非常感谢您的建议,但在表达式中包含参数并在每次需要设置时执行
eval
s不是很舒服,通过
Normal(alpha,beta)
distribution将它们传递给函数的参数列表要方便得多。关于“这是错误的声明…”,我认为有几种方法可以理解参数性的事实。一种是用表达式来理解的,即“表达式包含参数,那么这就是参数表达式”。但也可以理解函数术语中的参数性,即“如果表达式接受并提升参数,则表达式是参数的”。我的问题与函数项有关,因为根据表达式创建参数分布是一项相当简单的任务……这是一个错误的说法,“如果它只有一个参数,它就不会是参数的”。表达式可以包含作为参数使用和处理的名称,这正是我提到2参数
eval
(作为众多选项中的一个支持方面)的原因。如果您认为只有过程和运算符可以被视为具有参数,那么您就错过了Maple功能的重要部分。我不要求任何东西,我非常感谢您的建议,但在表达式中包含参数并在每次需要设置时执行
eval
s不是很舒服,通过
Normal(alpha,beta)
distribution将它们传递给函数的参数列表要方便得多。关于“这是错误的声明…”,我认为有几种方法可以理解参数性的事实。一种是用表达式来理解的,即“表达式包含参数,那么这就是参数表达式”。但也可以理解函数术语中的参数性,即“如果表达式接受并提升参数,则表达式是参数的”。我的问题与函数项有关,因为根据表达式创建参数分布是一项相当简单的任务。。。