Normal-Distribution

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

  • July 6, 2014

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

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

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

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

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

最大絕對誤差 $ \log_2(\Phi(x)) $ 因為五次是 $ 5.2\times 10^{-4} $ ,發生在零處。

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

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


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

在此處輸入圖像描述

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

在此處輸入圖像描述

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


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

$$ Q(x)\approx\frac{\left( 1-e^{-1.4x}\right) e^{-\frac{x^{2}}{2}}}{1.135\sqrt{2\pi}x}, x >0 $$

所以我們得到

$$ \ln(\Phi(x))\approx \ln(1-e^{1.4x})-\ln(-x) -\frac{x^2}{2} - 1.04557 $$

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

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


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

$$ \frac{(1-e^{-Ax}) e^{-x^2}}{B\sqrt{\pi}x}\approx\text{erfc}(x) $$

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

劃分 $ x $ 通過通過 $ \sqrt{2} $ 獲得 $ Q $ ,這表明維基百科頁面上的公式( $ 1.98/\sqrt{2}\approx 1.40007 $ )


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

在此處輸入圖像描述

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

在此處輸入圖像描述

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

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

comments powered by Disqus