天天看點

python統計函數庫scipy.stats的用法1/3

背景

總結統計工作中幾個常用用法在python統計函數庫scipy.stats的使用範例。

正态分布

以正态分布的常見需求為例了解scipy.stats的基本使用方法。

  1. 生成服從指定分布的随機數

    norm.rvs通過loc和scale參數可以指定随機變量的偏移和縮放參數,這裡對應的是正态分布的期望和标準差。size得到随機數數組的形狀參數。(也可以使用

    np.random.normal(loc=0.0, scale=1.0, size=None)

    )

    In [4]: import numpy as np

    In [5]: import scipy.stats as st

    In [6]:

    st.norm.rvs(loc = 0,scale = 0.1,size =10)

    Out[6]:

    array([ 0.12259875, 0.07001414, 0.11296181, -0.00630321, -0.04377487,

    0.00474487, -0.00728678, 0.03860256, 0.06701367, 0.03797084])

    In [7]:

    In [9]: st.norm.rvs(loc = 3,scale = 10,

    size=(2,2)

    )

    Out[9]:

    array([[-13.26078265, 0.88411923],

    [ 5.14734849, 17.94093177]])

    In [10]:

  2. 求機率密度函數指定點的函數值

    stats.norm.pdf正态分布機率密度函數。

    In [33]:

    st.norm.pdf

    (0,loc = 0,scale = 1)

    Out[33]: 0.3989422804014327

    In [34]: st.norm.pdf(

    np.arange(3)

    ,loc = 0,scale = 1)

    Out[34]: array([ 0.39894228, 0.24197072, 0.05399097])

    In [35]:

  3. 求累計分布函數指定點的函數值

    stats.norm.cdf正态分布累計機率密度函數。

    In [52]:

    st.norm.cdf

    (0,loc=3,scale=1)

    Out[52]: 0.0013498980316300933

    In [53]:

    st.norm.cdf

    (0,0,1)

    Out[53]: 0.5

    In [54]:

  4. 累計分布函數的逆函數

    stats.norm.ppf正态分布的累計分布函數的逆函數,即下分位點。

    In [59]: z05 =

    st.norm.ppf

    (0.05)

    In [60]:

    In [60]: z05

    Out[60]: -1.6448536269514729

    In [61]: st.norm.cdf(z05)

    Out[61]: 0.049999999999999975

    In [62]:

通用函數

stats連續型随機變量的公共方法:
名稱 備注
rvs 産生服從指定分布的随機數
pdf 機率密度函數
cdf 累計分布函數
sf 殘存函數(1-CDF)
ppf 分位點函數(CDF的逆)
isf 逆殘存函數(sf的逆)
fit 對一組随機取樣進行拟合,最大似然估計方法找出最适合取樣資料的機率密度函數系數。
*離散分布的簡單方法大多數與連續分布很類似,但是pdf被更換為密度函數pmf。

常見分布

可能用到的分布對照表
名稱 含義
beta beta分布
f F分布
gamma gam分布
poisson 泊松分布
hypergeom 超幾何分布
lognorm 對數正态分布
binom 二項分布
uniform 均勻分布
chi2 卡方分布
cauchy 柯西分布
laplace 拉普拉斯分布
rayleigh 瑞利分布
t 學生T分布
norm 正态分布
expon 指數分布

參考文檔

  1. 用Python做統計分析 (Scipy.stats的文檔) - python論壇 - 經管之家(原人大經濟論壇)
  2. Scipy教程 - 統計函數庫scipy.stats - 皮皮blog - CSDN部落格
  3. scipy.stats.weibull_max — SciPy v0.19.1 Reference Guide