2015-03-31 101 views
4

我在Matlab中尋找python等效的norminv函數。[科學/數量] Python等價於Matlabs「norminv」(正態逆累積分佈函數)

或者換句話說(從上面的描述): 我在Python搜索的「正常逆累積分佈函數」,或可能在統計SciPy的一部分(或者,也許NumPy的?)

我會猜測它存在於scipy中,但可能在另一個名稱中,而不是在matlab中,或在matlabs幫助頁面中。不過,我不確定這個功能的其他名稱,或確切的工作,所以我很難找到它。不幸的是,它不是簡單的「反常規積...」而不是「正常積分...」

回答

1

它完全取決於你想要的。如果你想要一個與正態分佈相反的分佈的cdf,你需要invgauss,「一個反高斯連續隨機變量」。要獲得cdf,您需要使用invgauss.cdf方法。從文檔改編:

from scipy.stats import invgauss 
mu = 0.145462645553 
vals = invgauss.ppf([0.001, 0.5, 0.999], mu) 
res = invgauss.cdf(vals, mu) 

在另一方面,如果你想正態分佈的cdf的倒數,你想要的norm分佈ppf方法,這是「百分比點功能(逆cdf - 百分點)「。

+0

我不認爲這是正確的:[反高斯分佈](http://en.wikipedia.org/wiki/Inverse_Gaussian_distribution) – knedlsepp 2015-03-31 14:26:58

+0

從scipy 0.10.0發佈說明:「不推薦使用的名稱'invnorm'是已從'scipy.stats.distributions'中移除,此分佈可用作'invgauss'。「 – TheBlackCat 2015-03-31 14:32:22

+0

我只是不確定*逆高斯cdf *是否與*高斯cdf *的逆相同。我只是交叉檢查這個。 – knedlsepp 2015-03-31 14:36:59