2015-12-31 39 views
1

我想要繪製一些分佈曲線的分佈曲線,我已經獲得了使用octave如下:的gnuplot和八度:用斜

  • 意味着
  • 位數
  • 標準偏差
  • 方差
  • 偏度

據我所知和長時間搜索互聯網絡後,我只找到了正常/高斯分佈曲線的例子:

std=0.1674766919608221 
mean=0.6058016666666665 
normal(x, mu, sd) = (1/(sd*sqrt(2*pi)))*exp(-(x-mu)**2/(2*sd**2)) 
plot normal(x,mean,std) with lines 

繪製一個漂亮的曲線。 但是,我試圖畫出一個傾斜的,由平均值,中位數和偏度的差異來判斷,例如shown here

如何在gnuplot中繪製這樣的曲線? gnuplot示例顯示了一些非常相似的東西at the bottom example但他們不解釋他們如何繪製/繪製它。

編輯

爲了計算的實際功能和發現它的參數,我問在math.stackexchange那裏我得到了徹底的答覆。 我現在意識到這是兩個問題,但看起來我需要的是使用octave來獲取我的數據的PDF,然後獲得CDF。 Cristoph的維基百科鏈接,skew normal distribution表明,我需要的是:

f(x) = 2*stdnormal_pdf(x)*stdnormal_cdf(a*x) 

當然,我可能是錯的。 獲得阿爾法這是外形不清(我math post建議使用求解三角洲第一,然後阿爾法這似乎很複雜,我)。 我願意打賭octave有一個功能,這讓我無法做到這一點。

回答

1

Skew normal distribution用於函數定義。然後,您可以繪製斜正態分佈的概率密度函數與

normal(x) = 1.0/sqrt(2*pi) * exp(-(x**2)/2.0) 
cdf(x) = 0.5 * (1 + erf(x/sqrt(2))) 
skewed_normal(x, x0, sigma, alpha) = (2.0/sigma) * normal((x - x0)/sigma) * cdf(alpha * (x - x0)/sigma) 

set xrange [-4:4] 
plot skewed_normal(x, 0, 1, -4) title 'α = -4',\ 
    skewed_normal(x, 0, 1, -1) title 'α = -1',\ 
    skewed_normal(x, 0, 1, 0) title 'α = 0',\ 
    skewed_normal(x, 0, 1, 1) title 'α = 1',\ 
    skewed_normal(x, 0, 1, 4) title 'α = 4' 

enter image description here

+0

您好,非常感謝答案。我在math.stackexchange中詢問如何計算實際公式。 我的猜測是我只需要計算我的數據的西格瑪和alpha,然後使用您定義的函數? –