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=())[Quelle]#

Berechnet empirische Quantile für ein Datenarray.

Die Stichproben-Quantile sind definiert durch Q(p) = (1-gamma)*x[j] + gamma*x[j+1], wobei x[j] die j-te Ordnungsstatistik ist und gamma eine Funktion von j = floor(n*p + m), m = alphap + p*(1 - alphap - betap) und g = n*p + m - j ist.

Die Neuauslegung der obigen Gleichungen zum Vergleich mit **R** führt zu der Gleichung: p(k) = (k - alphap)/(n + 1 - alphap - betap)

Typische Werte für (alphap,betap) sind
  • (0,1) : p(k) = k/n : lineare Interpolation der CDF (**R** Typ 4)

  • (.5,.5) : p(k) = (k - 1/2.)/n : stückweise lineare Funktion (**R** Typ 5)

  • (0,0) : p(k) = k/(n+1) : (**R** Typ 6)

  • (1,1) : p(k) = (k-1)/(n-1): p(k) = mode[F(x[k])]. (**R** Typ 7, **R** Standard)

  • (1/3,1/3): p(k) = (k-1/3)/(n+1/3): Dann ist p(k) ~ median[F(x[k])]. Die resultierenden Quantilschätzungen sind annähernd median-unverzerrt, unabhängig von der Verteilung von x. (**R** Typ 8)

  • (3/8,3/8): p(k) = (k-3/8)/(n+1/4): Blom. Die resultierenden Quantilschätzungen sind annähernd unverzerrt, wenn x normalverteilt ist (**R** Typ 9)

  • (.4,.4) : annähernd quantil unverzerrt (Cunnane)

  • (.35,.35): APL, verwendet mit PWM

Parameter:
aarray_like

Eingabedaten, als Sequenz oder Array der Dimension höchstens 2.

probarray_like, optional

Liste der zu berechnenden Quantile.

alphapfloat, optional

Parameter für die Plotting-Positionen, Standardwert ist 0.4.

betapfloat, optional

Parameter für die Plotting-Positionen, Standardwert ist 0.4.

axisint, optional

Achse, entlang derer die Beschneidung durchgeführt wird. Wenn None (Standard), wird das Eingabearray zuerst abgeflacht.

limittuple, optional

Tupel von (unterer, oberer) Werten. Werte von a außerhalb dieses offenen Intervalls werden ignoriert.

Rückgabe:
mquantilesMaskedArray

Ein Array, das die berechneten Quantile enthält.

Hinweise

Diese Formulierung ist **R** sehr ähnlich, außer bei der Berechnung von m aus alphap und betap, während in **R** m mit jedem Typ definiert ist.

Referenzen

Beispiele

>>> 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])

Verwendung eines 2D-Arrays, Angabe von Achse und Limit.

>>> 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 --]]