當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


Python SciPy mstats.mquantiles用法及代碼示例

本文簡要介紹 python 語言中 scipy.stats.mstats.mquantiles 的用法。

用法:

scipy.stats.mstats.mquantiles(a, prob=[0.25, 0.5, 0.75], alphap=0.4, betap=0.4, axis=None, limit=())#

計算數據數組的經驗分位數。

樣本分位數由 Q(p) = (1-gamma)*x[j] + gamma*x[j+1] 定義,其中 x[j] 是 j-th 順序統計量,而 gamma 是 j = floor(n*p + m)m = alphap + p*(1 - alphap - betap)g = n*p + m - j 的函數。

重新解釋上述方程以進行比較R導出方程:p(k) = (k - alphap)/(n + 1 - alphap - betap)

(alphap,betap) 的典型值為:

  • (0,1):p(k) = k/n: cdf 的線性插值 (R類型 4)

  • (.5,.5) :p(k) = (k - 1/2.)/n:分段線性函數(R類型 5)

  • (0,0):p(k) = k/(n+1):(R類型 6)

  • (1,1) :p(k) = (k-1)/(n-1): p(k) = 眾數[F(x[k])]。 (R類型 7,R默認)

  • (1/3,1/3):p(k) = (k-1/3)/(n+1/3):然後 p(k) ~ 中位數[F(x[k])]。無論 x 的分布如何,所得分位數估計值大約為median-unbiased。 (R類型 8)

  • (3/8,3/8):p(k) = (k-3/8)/(n+1/4):布洛姆。如果 x 呈正態分布 (R類型 9)

  • (.4,.4) :近似分位數無偏 (Cunnane)

  • (.35,.35):APL,與 PWM 一起使用

參數

a array_like

輸入數據,最多為 2 維的序列或數組。

prob 數組,可選

要計算的分位數列表。

alphap 浮點數,可選

繪製位置參數,默認為 0.4。

betap 浮點數,可選

繪製位置參數,默認為 0.4。

axis 整數,可選

沿其執行修剪的軸。如果 None (默認),輸入數組首先被展平。

limit 元組,可選

(較低,較高)值的元組。此開區間外的 a 值將被忽略。

返回

mquantiles MaskedArray

包含計算的分位數的數組。

注意

這個公式非常類似於R除了計算malphapbetap, 在哪裏R m用每種類型定義。

參考

[1]

R統計軟件:https://www.r-project.org/

[2]

R quantile函數:stats quantile

例子

>>> import numpy as np
>>> from scipy.stats.mstats import mquantiles
>>> a = np.array([6., 47., 49., 15., 42., 41., 7., 39., 43., 40., 36.])
>>> mquantiles(a)
array([ 19.2,  40. ,  42.8])

使用二維數組,指定軸和限製。

>>> data = np.array([[   6.,    7.,    1.],
...                  [  47.,   15.,    2.],
...                  [  49.,   36.,    3.],
...                  [  15.,   39.,    4.],
...                  [  42.,   40., -999.],
...                  [  41.,   41., -999.],
...                  [   7., -999., -999.],
...                  [  39., -999., -999.],
...                  [  43., -999., -999.],
...                  [  40., -999., -999.],
...                  [  36., -999., -999.]])
>>> print(mquantiles(data, axis=0, limit=(0, 50)))
[[19.2  14.6   1.45]
 [40.   37.5   2.5 ]
 [42.8  40.05  3.55]]
>>> data[:, 2] = -999.
>>> print(mquantiles(data, axis=0, limit=(0, 50)))
[[19.200000000000003 14.6 --]
 [40.0 37.5 --]
 [42.800000000000004 40.05 --]]

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.stats.mstats.mquantiles。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。