您的位置:首頁>體育>正文

Python代碼加貝葉斯理論會摩擦出什麼樣的火花?他才是最好的選手

有人質疑打擊率的作用, 但正如C. Trent Rosecrans所說, “儘管如此, 打擊率相較於其他統計資料而言確實是有歷史和背景意義。 我們都知道AVG為0.300打者的水準怎麼樣, 我們也知道AVG為0.200打者有多糟, 以及AVG為0.400打者有多棒。 ”

在美國職業棒球大聯盟(MLB)中, 春季訓練是在常規賽季開始之前的一系列練習和表演賽。

我會嘗試解決以下兩個問題:

如何解讀2018年春季訓練中的打擊率

怎麼比較兩名球員的打擊率

在進入代碼內容之前, 我會簡要介紹一下Rasmus Bååth在他的視頻中所講的內容。

首先, 我們需要三樣東西來完成貝葉斯分析。

import matplotlib.pyplot as plt

import numpy as np

mu, sigma = 0, 0.1 # mean and standard deviation

s = np.random.normal(mu, sigma, 1000)

plt.hist(s)

就貝葉斯分析而言, 我們會逆向生成模型並嘗試用觀測資料推斷參數。

接著, 我們選擇一個感興趣的球員, 並對其統計資料進行分析。

紐約大都會隊春季訓練的統計頁面

在我們的例子裡,AVG是成功的概率,AB是試驗次數,H是成功次數。

先記住這些術語,然後我們來 定義逆向生成模型 。

我們將從定義的均勻分佈中隨機選取一個概率值,並將此概率用作生成模型的參數。假設我們隨機挑選的概率值為0.230,這意味著在二項分佈中成功的概率為23%。

試驗次數為1(DS有1個AB),如果生成模型的結果與我們觀察到的結果相匹配(DS有1個H),那麼概率值為0.230保持不變。如果我們重複這個過程並進行過濾,最終將得到一個概率分佈,由它所得到的結果與我們觀察到的結果相同。

這就是後驗概率。

可信區間:根據觀察資料,AVG的真實值落在可信區間內的概率為95%。

置信區間:當我們用這類資料計算置信區間時,有95%的置信區間會包含AVG的真實值。

注意兩者的區別,可信區間是在給定固定邊界情況下對參數值的概率描述,置信區間是在給定固定參數值情況下的邊界概率。

在現實生活中,我們想知道的是真實的參數而不是邊界,因此,貝葉斯可信區間是更合適的選擇。在這種情況下,我們只對球員的真實AVG感興趣。

有了上面的後驗分佈,我有95%的把握斷定DS真正的AVG將在0.155到0.987之間。但這個範圍太大了。換句話說,在沒有先驗知識並且在只觀察了一次試驗的情況下,我不太確定DS的真實AVG是多少。

場景二

對於第二個場景,我們假設知道上一年的春季訓練的統計資料。

dominic_smith_spring.iloc[-2:]

posterior(ds_n_trials, ds_k_success, prior_i)

和在場景一中使用均勻分佈的先驗假設得到的後驗結果相比,這裡95%的分位元數區域已經被縮小了。現在我有95%的把握斷定DS的AVG會在0.095到0.340之間。

posterior(ds_n_trials, ds_k_success, prior_i_02)

現在我有95%的把握斷定DS的真正AVG將在0.146到0.258之間。雖然範圍不是很精確,但與場景一和場景二相比,場景三的可信區間要窄得多。

如果我們用Pymc3中的plot_posterior函數繪製DS_AVG、GC_AVG和DvG (DS_AVG - GC_AVG)的後驗分佈,我們可以看到圖中出現的術語是HPD而不是分位數(quantile)。

最大後驗密度(Highest Posterior Density,HPD)區間是我們可以對後驗密度函數使用的另一種可信區間。HPD區間會選擇包括眾數在內的最大後驗概率密度值所在的最窄區間。

在Rasmus Bååth的另一篇文章中,比較了分位元數區間和最高密度區間,並提供了簡單明晰的對比圖。以下是六種不同後驗分佈中的眾數和覆蓋了95%的概率密度的最高密度區間。

文章連結:

http://www.sumsar.net/blog/2014/10/probable-points-and-credible-intervals-part-one/

可能的點和可信區間,第1部分:圖形總結

分位元數區間包含中位數,中位數落在區間左側的概率是50%,落在右側的概率也是50%,同時以95%的可信區間為例,落在區間任意一側的概率是2.5%。

可能的點和可信區間,第1部分:圖形總結

就DS和GC的AVG來看,它們的眾數和中位數看起來並沒有多大區別,若實際情況確實如此,兩位選手AVG的HPD區間和分位數區間應該也大致相同。讓我們看看它們到底長什麼樣。

pm.summary(trace)

紐約大都會隊春季訓練的統計頁面

在我們的例子裡,AVG是成功的概率,AB是試驗次數,H是成功次數。

先記住這些術語,然後我們來 定義逆向生成模型 。

我們將從定義的均勻分佈中隨機選取一個概率值,並將此概率用作生成模型的參數。假設我們隨機挑選的概率值為0.230,這意味著在二項分佈中成功的概率為23%。

試驗次數為1(DS有1個AB),如果生成模型的結果與我們觀察到的結果相匹配(DS有1個H),那麼概率值為0.230保持不變。如果我們重複這個過程並進行過濾,最終將得到一個概率分佈,由它所得到的結果與我們觀察到的結果相同。

這就是後驗概率。

可信區間:根據觀察資料,AVG的真實值落在可信區間內的概率為95%。

置信區間:當我們用這類資料計算置信區間時,有95%的置信區間會包含AVG的真實值。

注意兩者的區別,可信區間是在給定固定邊界情況下對參數值的概率描述,置信區間是在給定固定參數值情況下的邊界概率。

在現實生活中,我們想知道的是真實的參數而不是邊界,因此,貝葉斯可信區間是更合適的選擇。在這種情況下,我們只對球員的真實AVG感興趣。

有了上面的後驗分佈,我有95%的把握斷定DS真正的AVG將在0.155到0.987之間。但這個範圍太大了。換句話說,在沒有先驗知識並且在只觀察了一次試驗的情況下,我不太確定DS的真實AVG是多少。

場景二

對於第二個場景,我們假設知道上一年的春季訓練的統計資料。

dominic_smith_spring.iloc[-2:]

posterior(ds_n_trials, ds_k_success, prior_i)

和在場景一中使用均勻分佈的先驗假設得到的後驗結果相比,這裡95%的分位元數區域已經被縮小了。現在我有95%的把握斷定DS的AVG會在0.095到0.340之間。

posterior(ds_n_trials, ds_k_success, prior_i_02)

現在我有95%的把握斷定DS的真正AVG將在0.146到0.258之間。雖然範圍不是很精確,但與場景一和場景二相比,場景三的可信區間要窄得多。

如果我們用Pymc3中的plot_posterior函數繪製DS_AVG、GC_AVG和DvG (DS_AVG - GC_AVG)的後驗分佈,我們可以看到圖中出現的術語是HPD而不是分位數(quantile)。

最大後驗密度(Highest Posterior Density,HPD)區間是我們可以對後驗密度函數使用的另一種可信區間。HPD區間會選擇包括眾數在內的最大後驗概率密度值所在的最窄區間。

在Rasmus Bååth的另一篇文章中,比較了分位元數區間和最高密度區間,並提供了簡單明晰的對比圖。以下是六種不同後驗分佈中的眾數和覆蓋了95%的概率密度的最高密度區間。

文章連結:

http://www.sumsar.net/blog/2014/10/probable-points-and-credible-intervals-part-one/

可能的點和可信區間,第1部分:圖形總結

分位元數區間包含中位數,中位數落在區間左側的概率是50%,落在右側的概率也是50%,同時以95%的可信區間為例,落在區間任意一側的概率是2.5%。

可能的點和可信區間,第1部分:圖形總結

就DS和GC的AVG來看,它們的眾數和中位數看起來並沒有多大區別,若實際情況確實如此,兩位選手AVG的HPD區間和分位數區間應該也大致相同。讓我們看看它們到底長什麼樣。

pm.summary(trace)

Next Article
喜欢就按个赞吧!!!
点击关闭提示