📚 知識家圖書館 奇摩知識+ 紀念館

Gram-Charlier機率密度函數作圖和積分

發問者 Trader (Lv.2) ・2008 年 5 月 23 日 ・程式設計

Gram-Charlier機率密度函數如下: f(x)=標準常態分配p.d.f.*[1+(資料偏態/6)*(x^3-3x)+(資料超額峰態/24)*(x^4-6x^2+3)] 請問有人知道如何用軟體(如Matlab或VB)畫出其機率密度曲線嗎?以及將這個p.d.f.從負無窮大一直積分到X等於某一數值,使其積分的面積(機率)=5%,該X值為何?

1 則回答

最佳解答
建議以 Excel 來做, 寫好的自訂函數後, 即可當一般工作表函數班使用 ~ 參考檔案 : http://www.FunP.net/723144 (內含 圖, 表, 範例 ~ ) 先開 Excel 工具 > 巨集 > 安全性 > 中 再開該檔, 開啟巨集 以下為 VBA 程式碼, 該程式如要寫在 VB, 需自行撰寫 常態分配 的機率函數(或呼叫 Excel) ~ 所以建議直接以 Excel 來做 --- Function F_GC(x, 偏態, 超額峰態) As Double '任意 x 出現機率 F_GC = Application.NormDist(x, 0, 1, 0) _ * (1 (偏態 / 6) * (x ^ 3 - 3 * x) (超額峰態 / 24) * (x ^ 4 - 6 * x ^ 2 3)) End Function Function P_GC(x, 偏態, 超額峰態, Optional Dt As Double) As Double 'x 左邊面積 Dim xTmp As Single If Dt <= 0 Then Dt = 0.005 '如不指定下, 預設的積分單位 xTmp = -5 '由 -5 往右積分 Do While xTmp <= x P_GC = P_GC F_GC(xTmp, 偏態, 超額峰態) * Dt xTmp = xTmp Dt Loop End Function Function A_GC(P, 偏態, 超額峰態, Optional Dt As Double) As Double '反函數 : 已知面積, 求 x Dim xTmp As Single, PTmp As Single If Dt <= 0 Then Dt = 0.005 '如不指定下, 預設的積分單位 xTmp = -5 '由 -5 往右積分 Do While PTmp < P PTmp = PTmp F_GC(xTmp, 偏態, 超額峰態) * Dt xTmp = xTmp Dt Loop A_GC = xTmp End Function ---
匿名 2008 年 5 月 26 日

電腦與網際網路的其他問題