1. 程式人生 > 程式設計 >python統計函式庫scipy.stats的用法解析

python統計函式庫scipy.stats的用法解析

背景

總結統計工作中幾個常用用法在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),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,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 指數分佈

以上這篇python統計函式庫scipy.stats的用法解析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。