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)

エラー、(Statistics:-CDF 内) 無効な入力: q は、欠落している 3 番目の引数 sigma を使用しています

わかりました、3 番目のパラメーターを追加します。

CDF(R,x,y)

エラー、(統計:-CDF) 予期しないパラメータ: y

以前に次の方法で確率変数を初期化しようとした場合:

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

エラー、(Statistics:-Distribution で) 無効な入力: IsKnownDistribution は、その最初の引数 dn が型であると想定しています

名前、しかし受け取ったモジュール () エクスポート条件、PDF、タイプ; オプション分布、連続。エンドモジュール

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 を含む式です。したがってsubs、またはevalパラメーターの値でインスタンス化するために使用できます。

于 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

また、RandomVariable などの Statistics パッケージの関数でも動作します。

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

そして呼び出す:

CDF(Ry,x);

与える

方式

于 2011-07-13T21:38:11.963 に答える