Normal-Distribution

x`<0 時標準正態 CDF 的對數近似值

  • July 6, 2014

有誰知道 x<0 的標準正態 CDF 的對數的近似值?

我需要實現一個非常快速計算它的算法。當然,最直接的方法是首先計算 CDF(我可以在 Wikipedia 上找到合適的簡單近似值),然後取其對數。顯然,我想避免計算兩個特殊函數的時間成本,更不用說微小的中間值(尾部)排除了使用比浮點運算快得多的定點運算。

我知道各種統計函數有數百種近似值,但事實上這是一個的對數,因此更難找到一個。如果有人能給我指出一個,或者我可能找到的來源,我將不勝感激。

即使是一個簡單的最小二乘立方也適合 log(Φ(x))x 介於 -5 和 0 之間似乎是相當充足的。

只是為了快速了解它,我生成了 x 在 -5 和 0 之間每 0.01 的值,並嘗試最小二乘三次和五次(5 次)多項式擬合到 log2(Φ(x)) . 我想你可以像我一樣輕鬆地做到這一點,所以我不會強調這一點。

最大絕對誤差 log2(Φ(x)) 因為五次是 5.2×104 ,發生在零處。

[不完全清楚你所說的“在 0.2 + 10% 左右”是什麼意思。如果您可以詳細說明以明確您的標準,那麼我可以詳細說明這一點,並可能調整權重以更好地優化您的標準。]

在評估多項式時,如果速度很重要,您應該牢記霍納的方法。


正如紅衣主教所建議的那樣,情節非常具有說明性。既然我已經生成了一個,我應該把它放在這裡:

在此處輸入圖像描述

這是(有符號的)錯誤(日誌中的絕對比例錯誤):

在此處輸入圖像描述

它看起來和我們期望的最小二乘擬合一樣。不合身度相當適中;出於許多目的,這很好。


另一種方法是您可以將上尾的 Karagiannidis 和 Lioumpas 近似(參見此處)翻轉到下尾(通過替換 x 經過 x 在他們的公式中)並記錄日誌:

Q(x)(1e1.4x)ex221.1352πx,x>0

所以我們得到

ln(Φ(x))ln(1e1.4x)ln(x)x221.04557

要獲得以 2 為底的日誌,只需將結果乘以 log2(e)

這不如我提到的五次擬合準確,並且由於對數和求冪,評估可能更慢。不過,它又好又短,有一些優點。請注意,它不是為對數刻度設計的。


原始論文有 K&L 的公式 6:

(1eAx)ex2Bπxerfc(x)

為了 x 他們建議的 [0,20] 範圍內的值 A=1.98B=1.135 .

劃分 x 通過通過 2 獲得 Q ,這表明維基百科頁面上的公式( 1.98/21.40007 )


讓我們看看對數尺度的近似質量。

在此處輸入圖像描述

紫色虛線是 K&L 近似值。現在讓我們看看錯誤:

在此處輸入圖像描述

錯誤的大小比我們的五次要大得多。事實上它幾乎是線性的 x 範圍的左半部分錶明我們可以通過添加約 0.02x 或者 0.025x 到日誌中的公式 - 但這會使接近 -1 的值的近似值更糟。是否會這樣做取決於所需的特徵。

引用自:https://stats.stackexchange.com/questions/106003