2011-07-12 89 views
0

我試圖創建一個具有以下PDF你如何創建參數分佈?

我使用下列命令(從http://en.wikipedia.org/wiki/Skew_normal_distribution參考)偏正態分佈:

我試圖做到以下幾點:

SkewedNormal:=分佈(PDF =取消應用(2 *披(X,μ,西格馬)*披(阿爾法* X,μ,西格瑪)中,x,μ,SIGMA,阿爾法))

這個命令執行沒有錯誤,與以下命令相同:

R:= RandomVariable的(SkewNormal)

,但存在的問題,當我嘗試做以下幾點入手:

CDF(R,X)

錯誤,(在統計中:-CDF)無效輸入:q使用第三個參數sigma,缺失

好吧,我添加了第三個參數:

CDF(R,X,Y)

錯誤,(在統計:-CDF)意外參數:Y

如果您先前嘗試給init隨機變量通過以下方式:

R:= RandomVariable的(SkewNormal(畝,SIGMA))

錯誤,(在統計: - 配送)無效的輸入:IsKnownDistribution預計其第一個參數,DN,爲類型

名字,但收到的模塊()的出口條件,PDF類型;期權分佈,連續; end module

如何在Maple 14中創建參數化分佈?

回答

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); 

最終結果有含有的α,μ,和sigma的表達式。因此可以使用subseval來實例化參數的值。

+0

如果將只有一個自變量,它不會是參數... – Lu4

+0

這是一個錯誤的說法,「如果這隻有一個參數,它不會是參數「。表達式可以包含一些名字,這些名字被作爲參數進行了有效的處理,這就是爲什麼我提到了兩個參數'eval'(作爲衆多選擇中的一個支持方面)的原因。如果您認爲只有程序和操作員可以被視爲具有參數,那麼您錯過了Maple功能的重要部分。 – acer

+0

我沒有聲稱任何東西,我非常感謝你的建議,但是每次我需要設置一些東西時,在表達式中執行參數並執行'eval'並不是很舒服,將它們傳遞給一個函數會更加方便參數列表,'普通(alpha,beta)'分佈的方式。 – Lu4

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); 

給人

Formula