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 | 產生服從指定分佈的隨機數 |
概率密度函式 | |
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的用法解析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。