統(tǒng)計基礎4-常見概率分布與假設檢驗

目錄

全局設置

文章組織方式為代碼與可視化的方式展開, 個別分布會進行數(shù)學推導.個人認為應用廣泛也需要通過舉例理解的分布與小知識點, 會盡量展開討論并以實例說明. 注意, 在我們展開討論常見分布之前, 需要先理解隨機變量以及由隨機變量的概率分布推導而來的概率分布, 如果您對隨機變量的理解模棱兩可, 盡管后面的內容會讓你理解起來不困難, 但您也不會從中獲益多少. 因此, 請先理解隨機變量及概率分布后過來看后續(xù)內容.

import matplotlib.pyplot as plt
import seaborn as sns
###################################################
# 設置全局繪圖風格seaborn, 圖片統(tǒng)一大小12 * 8. 
# python 3
###################################################
plt.style.use('seaborn') # pretty matplotlib plots
plt.rcParams['figure.figsize'] = (12, 8)

常見離散分布

我們依次從上述幾種離散分布展開介紹:

  • 幾何分布
  • 伯努利分布
  • 二項分布
  • 離散均勻分布
  • 泊松分布
Figure1_二項分布圖譜

0-1分布-(0-1)Distribution

隨機變量只能取0與1兩個值, 那么稱隨機變量X服從0-1分布, 分布律的數(shù)學表達式

P\{X=k\}=p^k(1-p)^{1-k}, k\in\{0,1 \} , (0<p<1)

也可以寫成

X 0 1
p_k 1-p p

一次抽樣的結果(也叫樣本空間)如果只有兩種, 那么這次抽樣結果作為隨機變量可以是服從0-1分布的. 如: 一個貸款客戶提現(xiàn)后可能會逾期不還也可能準時還款, 如果逾期概率為0.1, 那么任何一個人不逾期的概率為1-0.1=0.9; 一枚硬幣拋出后可能是正面也可能是反面, 拋出下面概率0.5, 那么出現(xiàn)反而的概率為1-0.5=0.5, 當0與1的概率相同時, 可以認為離散均勻分布; 在大街上遇到一個人可能是男性或女性, 如果在中國遇到女性的概率為0.4, 那么遇到男性的概率為1-0.4=0.6.

伯努利試驗與N重伯努利試驗-Bernoulli Distribution

一次試驗E只可能出現(xiàn)兩種結果A\bar{A}, 則稱這次試驗E為伯努利(Bernounlli)試驗. 與0-1分布的區(qū)別在于, 沒有硬性規(guī)定隨機變量的值只能取0與1, 但如果將E的結果編碼為0與1, 其實二者沒有區(qū)別.

對于一次試驗, 令P(A)=p(0<p<1), 此時P( \bar {A} ) = 1-p.如果將E獨立地重復地進行N次, 則稱這一串重復的獨立試驗為N重伯努利試驗.

舉例

  • 拋1次硬幣, 出現(xiàn)正面為A, 出現(xiàn)反面為\bar{A}. 拋硬幣100次, 則100重伯努利試驗.
  • 1位貸款客戶, 逾期為A, 按時還款為\bar{A}. 觀察200位客戶的還款情況, 則是200次伯努利試驗(前提是這200位客戶互相不認識且對非惡意貸款客戶, 確保獨立重復性).
  • 大街上遇到一個人, 女性為A, 男性為\bar{A}. 統(tǒng)計遇到的300個人, 則是300次伯努利試驗(300個人互相不認識, 確保獨立重復性).
  • 從盒子里隨機選擇一個球, 黑色為A, 白色為\bar{A}. 連續(xù)選400次且每次都放回盒中, 這是400重伯努利試驗. 但如果連續(xù)400次, 都做不放回抽樣, 則由于前一次抽樣將影響后一次抽樣結果, 導致試驗之間不再獨立, 因此不能稱為多重伯努利試驗.

二項分布-Binomial Distribution

將N重伯努利試驗中結果A發(fā)生的次數(shù)記為隨機變量X, X服從二項分布, 記作X \sim B(n,p). 特別地, 當n=1時, X服從0-1分布.

拋硬幣4次, X表示出現(xiàn)正面的次數(shù), 設這枚硬幣一正面出現(xiàn)的概率p=0.1, 其概率質量函數(shù)pmf與累計概率分布函數(shù)cdf見Figure2.

from scipy.stats import binom
n, p = 4, 0.1
bio_r = binom(n, p)

fig, axes = plt.subplots(1,2)
#橫坐標0, 1, 2, 3, 4表示正面出現(xiàn)的次數(shù)
x = np.arange(0,n+1) 
#縱坐標binom.pmf,表示正面出現(xiàn)次數(shù)對應的概率
axes[0].plot(x, binom.pmf(x, n, p), 'bo', ms=8, label='binom pmf')
axes[0].vlines(x, 0, binom.pmf(x, n, p), colors='b', lw=5, alpha=0.5)
axes[0].vlines(x, 0, bio_r.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf')
axes[0].legend(loc='best', frameon=False)
# 通過cdf計算概率, 并通過ppf校驗準確率
prob = binom.cdf(x, n, p)
axes[1].plot(x, prob, 'r-')
axes[0].set_title('pmf')
axes[1].set_title('cdf')
plt.show()
Figure2_X ~ B(4,0.1)

也可以手動計算驗證一下概率.
P(X=0) = \binom{n}{k} p^k (1-p)^{n-k} = \binom{4}{0} * 0.1 ^ 0 * 0.9 ^ 4 = 0.6561
P(X=1) = \binom{n}{k} p^k (1-p)^{n-k} = \binom{4}{1} * 0.1 ^ 1 * 0.9 ^ 3 = 0.2916
P(X=2) = \binom{n}{k} p^k (1-p)^{n-k} = \binom{4}{2} * 0.1 ^ 2 * 0.9 ^ 2 = 0.0486
P(X=3) = \binom{n}{k} p^k (1-p)^{n-k} = \binom{4}{3} * 0.1 ^ 3 * 0.9 ^ 1 = 0.0036
P(X=4) = \binom{n}{k} p^k (1-p)^{n-k} = \binom{4}{4} * 0.1 ^ 4 * 0.9 ^ 0 = 0.0001

再做一次, 加深印象. 拋硬幣10次, 正面出現(xiàn)的概率p=0.1. 代碼只需將n修改為10, 其它保持不變, pmf與cdf如Figure3所示.

Figure3_X ~ B(10,0.1)

繪圖時需要做一些改進.

觀察Figure2, 正面出現(xiàn)的次數(shù)大于3時, 概率已經(jīng)逼近0; 觀察Figure3, 正面出現(xiàn)的次數(shù)大于4時, 概率已經(jīng)逼近0, 使得二項分布圖中出現(xiàn)很多0值. 那么隨著試驗次數(shù)的增加, 出現(xiàn)0值的數(shù)量也會更多, 比如我們將n改為1000, 來看看pmf圖.

Figure4_當N放大到1000時

因此, 我們需要對橫坐標進行調整. X\sim B(n,p)的概率值范圍在0-1之間, 我們只希望顯示概率值>0的成功次數(shù), 因此, 可以通過ppf函數(shù)求得成功次數(shù)的范圍(簡單介紹一下, ppf - percent point function, 是cdf函數(shù)的反函數(shù)).具體寫法如下代碼所示.

from scipy.stats import binom
n, p = 1000, 0.1
bio_r = binom(n, p)

fig, axes = plt.subplots(1,2)
#橫坐標0, 1, 2, 3, 4表示正面出現(xiàn)的次數(shù)
#x = np.arange(0,n+1) 
#將橫坐標改為概率值為1% quantile的成功次數(shù)到概率值為99% quantile對應的成功次數(shù)
x = np.arange(binom.ppf(0.01, n, p), binom.ppf(0.99, n, p))
#縱坐標binom.pmf,表示正面出現(xiàn)次數(shù)對應的概率
axes[0].plot(x, binom.pmf(x, n, p), 'bo', ms=8, label='binom pmf')
axes[0].vlines(x, 0, binom.pmf(x, n, p), colors='b', lw=5, alpha=0.5)
axes[0].vlines(x, 0, bio_r.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf')
axes[0].legend(loc='best', frameon=False)
# 通過cdf計算概率, 并通過ppf校驗準確率
prob = binom.cdf(x, n, p)
np.allclose(x, binom.ppf(prob, n, p)) # True
axes[1].plot(x, prob, 'r-')
axes[0].set_title('pmf')
axes[1].set_title('cdf')
plt.show()
Figure5_X ~ B(1000,0.1) 1% quantile - 99% quantile

幾何分布-Geometry Distribution

幾何分布也與N重伯努利試驗有關, 幾何分布的隨機變量X定義為: 結果A第一次出現(xiàn)時試驗的次數(shù), 也可以理解為前k-1次結果為\bar{A}, 第k次結果為A. 比如, 拋10次硬幣, 前9次都拋出反面, 第10次才拋出正面. 概率表達式
P(X=k) = (1-p)^{k-1}p, k \ge 1

from scipy.stats import geom
# 從幾何分布概率表達式看, 只與概率值p和正面出現(xiàn)時的試驗次數(shù)有關.當我們繪制不同成功次數(shù)的pmf圖時, 則只需要調整參數(shù)p.
p = 0.1
geom_r = geom(p)

x = np.arange(geom.ppf(0.01, p), geom.ppf(0.99, p))
fig, axes = plt.subplots(1,2)
axes[0].plot(x, geom.pmf(x, p), 'bo', ms=8, label='geom pmf')
axes[0].vlines(x, 0, geom.pmf(x, p), colors='b',lw=5, alpha=0.5)
axes[0].vlines(x, 0, geom_r.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf')
axes[0].legend(loc='best', frameon=False)
axes[1].plot(x, geom.cdf(x, p), 'r-')

axes[0].set_title('geom_pmf')
axes[1].set_title('geom_cdf')
plt.show()
Figure7_幾何分布p=0.1
Figure8_幾何分布p=0.2
Figure9_幾何分布p=0.5

觀察不同p值對應的幾何分布, 發(fā)現(xiàn)一些幾何分布的特點.

  • 幾何分布概率質量函數(shù)隨著試驗次數(shù)的增加單調遞減.
  • p值越大, 嘗試試驗的次數(shù)相對要少.

離散均勻分布

試驗E的結果是有限可列個且等可能, 結果用隨機變量X表示, 有分布律表達式: P(X=k) = \frac{1}{(b-a)}, k \in [a,b)

from scipy.stats import randint
a, b = 3, 10
randint_r = randint(a, b)

#x = np.arange(randint.ppf(0.01, a, b), randint.ppf(0.99, a, b))
x = np.arange(a,b) 
fig, axes = plt.subplots(1,2)
axes[0].plot(x, randint.pmf(x, a, b), 'bo', ms=8, label='randint pmf')
axes[0].vlines(x, 0, randint.pmf(x, a, b), colors='b',lw=5, alpha=0.5)
axes[0].vlines(x, 0, randint_r.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf')
axes[0].legend(loc='best', frameon=False)
axes[0].set_ylim(0, 1/(b-a)+0.03)
axes[1].plot(x, randint.cdf(x, a, b), 'r-')

axes[0].set_title('randint_pmf')
axes[1].set_title('randint_cdf')
plt.show()
Figure10_離散均勻分布

泊松過程與泊松分布-Poisson distribution

泊松過程與泊松分布是在實際生活中經(jīng)常能遇見的一種分布, 只是大家沒有從數(shù)學視角去抽象與理解它, 導致現(xiàn)象與本質發(fā)生了解耦. 但實際泊松分布十分有用. 我們先從泊松過程開始展開討論, 進而拓展到泊松分布, 最后推廣到連續(xù)的指數(shù)分布.

泊松過程-Poisson Process

泊松過程是一個沿著時間軸進行計數(shù)的過程, counting process. 具體來說, 用N(t)表示從時間0到時間t內某事件A的發(fā)生次數(shù), 當N(t)滿足4個條件時, 這個counting process就是泊松過程.

  1. N(0) = 0
  2. N(t)是遞增的(或者不保持不變), 并且隨著時間的推移, N(t2)-N(t1), N(t3)-N(t2), N(t4)-N(t3)這類增量, 也叫增量隨機變量之間是相互獨立的.
  3. P\{N(t+\triangle t) - N(t) = 1\} = \lambda*\triangle t + O(\triangle t)
  4. P\{N(t+\triangle t) - N(t) \ge 2\} = O(\triangle t)

12是對隨機變量的特點歸納; 3說明時間t內事件A發(fā)生一次的概率與時間間隔成正比(\lambda \gt 0), 即時間間隔越長, 事件A發(fā)生的概率越大. 生活中有很多這樣的例子, 公交站等車, 等的時間越久下一班車來的概率就越大; 一個便秘的患者, 距離上一次排便的時間越長, 新一次排便的可能性也就越大等等; 4是說, 時間間隔\triangle t內, 事件A發(fā)生兩次的概率是時間間隔\triangle t的高階無窮小,即\lim_{\triangle t \to 0} \frac{O(\triangle t)}{\triangle t}=0. 可以這么理解, 當我們把時間軸劃分成無窮多個非常小的區(qū)間時, 即\triangle t \to 0, 而在這個時間間隔\triangle t內, 事件A發(fā)生2次的概率為0.

非均勻泊松過程-Non Homgenous Poisson Process

當泊松過程的\lambda是時間t的函數(shù)時, 這時\lambda是時變的, 這時的泊松過程稱作非均勻泊松過程. 舉個例子也能大概感受這里的非均勻特點. 比如故宮博物院每年接收的觀光游客有一個數(shù)字C, 游客數(shù)量每年都在遞增, 但每年的不同時間段接收的游客數(shù)量卻有高有低, 即存在寒暑假游客多于平時的情況.

非均勻泊松過程可以轉化成均勻泊松過程, 假設當前時域有一個非均勻泊松過程其事件發(fā)生速率為\lambda(t), 可變換時域為:

t\_new(t) = \int_0^t { \lambda(u) }du

泊松分布

基于泊松過程的假設, 我們有

  1. P(在時間間隔\triangle t內, A發(fā)生1次) = \lambda * \triangle t
  2. P(在時間間隔\triangle t內, A未發(fā)生) = 1- \lambda * \triangle t
  3. P(在時間間隔\triangle t內, A發(fā)生1次以上) = 0

約定:

  1. P_k(t) 表示從0 \to t時刻事件A發(fā)生k次的概率
  2. p_{i, j}(\triangle t) 表示時間間隔\triangle t內事件A發(fā)生次數(shù)由i->j的概率.

t+\triangle t時刻事件A發(fā)生的次數(shù)為k, 那么該時刻之前有兩種狀態(tài), 即A發(fā)生k次可以是從t時刻的k-1次發(fā)展為k次; 也可以是t時刻的k的繼續(xù)保持. 表達式如下:

P_k(t+\triangle t) = P_{k-1}(t) * p_{k-1, k}(\triangle t) + P_k(t)*p_{k,k}(\triangle t) \dots (1)
P_0(t + \triangle t) = P_0(t) * p_{0, 0}(\triangle t), k = 0 \dots (2)

由泊松過程推導的基礎假設可得:

p_{k, k}(\triangle t) = 1 - \lambda * \triangle t
p_{k-1, k}(\triangle t) = \lambda * \triangle t

代入(1), (2)式:

P_k(t+\triangle t) = P_{k-1}(t)( \lambda \triangle t) + P_k(t)(1 - \lambda \triangle t)\dots (3)
P_0(t + \triangle t) = P_0(t) (1 - \lambda \triangle t), k = 0 \dots (4)

整理(3), (4)式得:

\frac{P_k(t+\triangle t) - P_k(t)}{\triangle t} = -\lambda P_k(t) + \lambda P_{k-1}(t)
\frac{P_0(t+\triangle t) - P_0(t)}{\triangle t} = -\lambda P_0(t)

\triangle t \to 0時:

\frac{\mathrmomcq42cP_k(t)}{\mathrmg62k6imt} = -\lambda P_k(t) + \lambda P_{k-1}(t) (k \ge 1) \dots (5)
\frac{\mathrm26gcg6eP_0(t)}{\mathrmisuagqkt} = -\lambda P_0(t) \dots (6)

解方程(6):

P_0(t) = A \exp(\lambda t) \dots (7)

調(5)式中k=1, 將(7)代入(5)式有:

\frac{\mathrmcgcsoiiP_1(t)}{\mathrmemcyue8t} = -\lambda P_1(t) + A\lambda \exp (-\lambda t)

解得: P_1(t) = A\lambda t \exp(-\lambda t).

k = 2, P_2(t) = \frac{A( \lambda t)^2}{2!} \exp(-\lambda t)
k = 3, P_3(t) = \frac{A( \lambda t)^3}{3!} \exp(-\lambda t)

對于任意的k \ge 1P_k(t) = \frac{A(\lambda t)^k}{k!} \exp (-\lambda t) \dots (8)

由于P_0(t)+P_1(t)+P_2(t) + \dots + P_k(t) = \sum_{k=0}^K P_k(t) = 1, 即:

A \exp(-\lambda t) \sum_{k=0}^K \frac{(\lambda t)^k}{k!} = 1
泰勒展開后解得A=1, 得泊松分布分布律:

P\{x=k\|\lambda = \lambda t} = \frac{(\lambda t)^k}{k!} \exp(-\lambda t)

總結

泊松分布由基礎假設泊松過程推導而來. 基本思想是將一段時間進行劃分, 統(tǒng)計每一個時間劃分里事件A發(fā)生的次數(shù), 最終得到整個時間劃分里事件A發(fā)生的次數(shù)概率大小. 我們也可以將泊松分布畫出來, 結合圖形來理解.

from scipy.stats import poisson
ld = 1
poisson_r = poisson(ld)

x = np.arange(poisson.ppf(0.01, ld), poisson.ppf(0.99, ld)) 
fig, axes = plt.subplots(1,2)
axes[0].plot(x, poisson.pmf(x, ld), 'bo', ms=8, label='poisson_pmf')
axes[0].vlines(x, 0, poisson.pmf(x, ld), colors='b',lw=5, alpha=0.5)
axes[0].vlines(x, 0, poisson_r.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf')
axes[0].legend(loc='best', frameon=False)
axes[1].plot(x, poisson.cdf(x, ld), 'r-')

axes[0].set_title('poisson_pmf')
axes[1].set_title('poisson_cdf')
plt.show()
Figure11_泊松分布(lambda = 1)
Figure12_泊松分布(lambda = 2)
Figure13_泊松分布(lambda = 10)
Figure14_泊松分布(lambda = 100)

可能大家看完這些不同\lambda對應的泊松分布后, 還是有些不能理解\lambda大小的實際意義. 來看幾個服從泊松分布的例子.

某公安局在長度為t的時間間隔內收到的緊急呼救次數(shù)X服從參數(shù)為(1/2) t的泊松分布, 而與時間間隔的起點無關(時間以小時計).
(1). 某一天中午12時到下午3時沒有收到緊急呼救的概率是多少?
(2). 某一天中午12時到下午5時至少收到1次緊急呼救的概率是多少?

這個盒子告訴我們呼救次數(shù)X服從泊松分布, 因此比較好計算. 直接代入泊松分布的pmf中可得到兩個問題的概率大小.

  • 12點到15點沒有收到緊急呼叫的概率
    \lambda = 1/2 * (15 - 12) = \frac{3}{2}
    P(k=0|\lambda = 3/2) = \exp(-\lambda) \frac{\lambda ^k}{k!} = \exp(-3/2) = 0.223

  • 12點到17點至少收到1次緊急呼叫的概率, 我們先計算對立事件一次也沒有收到的概率.
    \lambda = 1/2 * (17 - 12) = \frac{5}{2}
    P(k=0|\lambda = 5/2) = \exp(-\lambda) \frac{\lambda ^k}{k!} = \exp(-5/2) = 0.082
    P(k >= 1|\lambda = 5/2) = 1- P(k = 0) = 1- 0.082 = 0.9179

  • 也可以使用代碼計算

# 第一個問題
poisson(3/2).pmf(0) # 0.22313016014842982
# 第二個問題
1 - poisson(5/2).pmf(0) #0.9179150013761012
  • 結論1: 時間間隔越大, \lambda越大, 事件發(fā)生的概率越大. 給人直觀上的感受時, 等得越久, 某件事情就越來越可能會發(fā)生.

  • 結論2: 泊松分布的參數(shù)\lambda與時間間隔成正比, 從結論1也能直觀感受到.

  • 結論3: 結合Figure11~Figure13的泊松分布圖, 隨著\lambda的增加, 其分布與二項分布十分相似, 所以時常有用二項分布近似泊松分布的做法. 從二者概率的定義上也能得出一個相似的結論, 二者都是統(tǒng)計某個事件A發(fā)生次數(shù)的概率. 二項分布是做n次試驗, 而每次試驗也意味著時間的消耗, 即本質上也是在做一段時間內, 事件A發(fā)生k次的概率.

  • \lambda = 100的泊松分布 與 n=1000, p =0.1的二項分布

from scipy.stats import poisson, binom
ld = 100
poisson_r = poisson(ld)

n, p = 1000, 0.1
bio_r = binom(n, p)

x = np.arange(binom.ppf(0.01, n, p), binom.ppf(0.99, n, p)) 
fig, axes = plt.subplots(1,2)
axes[0].plot(x, poisson.pmf(x, ld), 'bo', ms=8, label='$\lambda=100$')
axes[0].plot(x, binom.pmf(x, n, p), 'r-', ms=8, label='$n=100, p=0.1$')
axes[0].vlines(x, 0, poisson.pmf(x, ld), colors='b',lw=2, alpha=0.5)
axes[0].vlines(x, 0, poisson_r.pmf(x), colors='k', linestyles='-', lw=1, label='frozen pmf')
axes[0].legend(loc='best')
axes[1].plot(x, binom.cdf(x, n, p), 'r-', label='binom_cdf')
axes[1].plot(x, poisson.cdf(x, ld), 'b-', label='poisson_cdf')

axes[0].set_title('pmf')
axes[1].set_title('cdf')
plt.show()
Figure15_泊松分布與二項分布對比

常見連續(xù)分布

  • 均勻分布
  • 指數(shù)分布
  • 正態(tài)分布
  • gamma分布
  • t分布
  • 卡方分布

均勻分布

概率密度函數(shù), X \sim U(a, b), 當a=0, b=1時, 為標準均勻分布.

f(x) = \begin{cases} \frac{1}{b-a}, & \mbox a \lt x \lt b \\ 0, & \mbox others \end{cases}

####################
# 構建一個標準均勻分布
####################

from scipy.stats import uniform
fig, ax = plt.subplots(1, 1)
x = np.linspace(uniform.ppf(0.01),uniform.ppf(0.99), 100)
ax.plot(x, uniform.pdf(x), 'r-', lw=5, alpha=0.6, label='uniform pdf')
rv = uniform()
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

r = uniform.rvs(size=1000)
plt.hist(x=r, normed=True, histtype='stepfilled', alpha=0.2)
plt.legend(loc='best', frameon=False)
plt.show()
Figure16_均勻分布

指數(shù)分布

指數(shù)分布, \theta \gt 0, 當\theta = 0時, 稱為標準指數(shù)分布

f(x) = \begin{cases} \frac{1}{\theta} \exp(-\frac{x}{\theta}), & \mbox x \gt 0 \\ 0, & \mbox others \end{cases}

####################
# 構建一個標準指數(shù)分布
####################

from scipy.stats import expon
fig, ax = plt.subplots(1, 1)
x = np.linspace(expon.ppf(0.01),expon.ppf(0.99), 100)
ax.plot(x, expon.pdf(x), 'r-', lw=5, alpha=0.6, label='expon pdf')
rv = expon()
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen pdf')

r = expon.rvs(size=1000)
plt.hist(r, normed=True, histtype='stepfilled', alpha=0.2)
plt.legend(loc='best', frameon=False)
plt.show()
Figure17_指數(shù)分布

正態(tài)分布

正態(tài)分布, X \sim N(\mu, \sigma^2), 當\mu = 0, \sigma = 1時, 稱為標準正態(tài)分布, 記作 X \sim N(0, 1)
f(x)=\frac{1}{2 \pi \sigma} \exp(\frac{(x - \mu)^2}{2 \sigma^2}), -\infty \lt x \lt \infty

####################
# 構建一個標準正態(tài)分布
####################

from scipy.stats import norm
fig, ax = plt.subplots(1, 1)
x = np.linspace(norm.ppf(0.01), norm.ppf(0.99), 100)
ax.plot(x, norm.pdf(x), 'r-', lw=5, alpha=0.6, label='norm_pdf')
rv = norm()
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen_pdf')

r = norm.rvs(size=1000)
ax.hist(r, normed=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.title('normal distribution with $\mu = 0, \sigma = 1$')
plt.show()
Figure18_標準正態(tài)分布

\Gamma分布

\Gamma函數(shù)

\Gamma(x) = \int_0^\infty t^{(x-1)} e^{-t} dt
分部積分后有性質: \Gamma(x+1) = x \Gamma(x)
x=n, 其中n是任意實數(shù)
\begin{align} \Gamma(n) & = (n-1) \Gamma(n-1) \\ & = (n-1)(n-2) \Gamma(n-2) \\ & = (n-1)(n-2)(n-3) \Gamma(n-3) \\ \dots \\ & = (n-1)(n-2)(n-3) \dots 3 \cdot 2 \cdot 1 \\ & = (n-1)! \end{align}

\Gamma分布概率密度函數(shù)
gamma(t|\alpha, \beta) = \frac{\beta^\alpha (t)^{\alpha - 1} e^{-\beta t}}{\Gamma(\alpha)}, \alpha為shape parameter, \beta為inverse scale parameter.當\beta=1時, 稱為標準\Gamma分布

\Gamma 函數(shù)稍加變換有
\int_0^{\infty} \frac{x^{(\alpha - 1)} e^{-x}} {\Gamma( \alpha)} dx = 1
于是取積分中的函數(shù)作為\Gamma分布的pdf函數(shù), 即:
gamma(x|\alpha) = \frac{x^{\alpha - 1} e^{-x}}{\Gamma(\alpha)}
x = \beta t, 得到更一般的 \Gamma分布pdf:
gamma(t|\alpha, \beta) = \frac{\beta^\alpha (t)^{\alpha - 1} e^{-\beta t}}{\Gamma(\alpha)}

####################
# 構建一個標準gamma分布
####################

from scipy.stats import gamma
al = 1.99
gamma.stats(al, moments='mvsk')

fig, ax = plt.subplots(1,1)
x = np.linspace(gamma.ppf(0.01, al), gamma.ppf(0.99, al), 100)
ax.plot(x, gamma.pdf(x, al), 'r-', lw=5, alpha=0.5, label='gamma_pdf')
rv = gamma(al)
ax.plot(x, rv.pdf(x), 'k-', lw=2, label='frozen_pdf')

r = gamma.rvs(al, size=1000)
ax.hist(r, normed=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.show()
Figure19_Gamma分布
als = [2,3,5,10,20]
gamma.stats(al, moments='mvsk')

fig, ax = plt.subplots(1,1)
for al in als:
    x = np.linspace(gamma.ppf(0.01, al), gamma.ppf(0.99, al), 100)
    ax.plot(x, gamma.pdf(x, al), lw=2, alpha=0.5, label='a={}'.format(al))
plt.legend(loc='best')
plt.show()
Figure20_不同alpha值的Gamma分布

關鍵點

  • p-value是什么
  • p-value如何計算
  • p-value實際意義

summarize: 小概率事件符合小概率事實的依據(jù)是p-value足夠小.

如: 男性懷孕作為小概率事件, 若p-value=10%, 則不足以讓人們相信該事件真的發(fā)生了, 因為10%的p-value說明這事已經(jīng)不再是小概率事件, 從直觀上也能感覺說這話的人在吹牛.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末玷氏,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子腋舌,更是在濱河造成了極大的恐慌碰煌,老刑警劉巖钱烟,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件结澄,死亡現(xiàn)場離奇詭異朴沿,居然都是意外死亡,警方通過查閱死者的電腦和手機授艰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門辨嗽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人淮腾,你說我怎么就攤上這事糟需。” “怎么了谷朝?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵洲押,是天一觀的道長。 經(jīng)常有香客問我圆凰,道長杈帐,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任送朱,我火速辦了婚禮娘荡,結果婚禮上干旁,老公的妹妹穿的比我還像新娘驶沼。我一直安慰自己,他們只是感情好争群,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布回怜。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪玉雾。 梳的紋絲不亂的頭發(fā)上翔试,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音复旬,去河邊找鬼垦缅。 笑死,一個胖子當著我的面吹牛驹碍,可吹牛的內容都是我干的壁涎。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼志秃,長吁一口氣:“原來是場噩夢啊……” “哼怔球!你這毒婦竟也來了?” 一聲冷哼從身側響起浮还,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤竟坛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后钧舌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體担汤,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年延刘,在試婚紗的時候發(fā)現(xiàn)自己被綠了漫试。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡碘赖,死狀恐怖驾荣,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情普泡,我是刑警寧澤播掷,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站撼班,受9級特大地震影響歧匈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜砰嘁,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一件炉、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧矮湘,春花似錦斟冕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春秀撇,著一層夾襖步出監(jiān)牢的瞬間超棺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工呵燕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留棠绘,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓再扭,卻偏偏與公主長得像弄唧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子霍衫,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內容