拓端tecdat|R語言貝葉斯Poisson泊松-正態分佈模型分析職業足球比賽進球數
原文連結:http://tecdat.cn/?p=23099
原文出處:拓端資料部落公眾號
在本文關於如何在R中進行貝葉斯分析。我們介紹貝葉斯分析,這個例子是關於職業足球比賽的進球數。
模型
首先,我們認為職業足球比賽的進球數來自分佈,其中θ是平均進球數。現在假設我們用一位足球專家的意見來得出足球比賽的平均進球數,即引數θ,我們得到:。
curve(dnorm(x, 2.5, 0.2), from = -2, to = 8,...)
我們想知道什麼?
在這種情況下,我們想知道θ的後驗分佈是什麼樣子的,這個分佈的平均值是什麼。為了做到這一點,我們將在三種情況下分析:
我們有1個觀察值x=1,來自分佈為的總體。
我們有3個觀測值x=c(1,3,5),來自一個具有分佈的總體。
我們有10個觀測值x=c(5,4,3,4,3,2,7,2,4,5),來自一個具有分佈的總體。
理論方法
在這裡,我想告訴你貝葉斯分析是如何分析的。首先,我們有一個來自具有未知引數θ的泊松分佈的人口的似然函式。
我們知道引數θ的先驗分佈p(θ)是由以下公式給出的。
最後,θ的後驗分佈為。
其中常數C的計算方法如下。
而後驗分佈E(θ|x)的平均值由以下公式給出。
計算方法
在這裡,你將學習如何在R中使用蒙特卡洛模擬來回答上面提出的問題。對於這三種情況,你將遵循以下步驟。
1. 定義資料
首先,你需要根據方案定義資料。
x <- 1 #第一種情況
2. 計算常數C
現在使用蒙特卡洛模擬來計算積分。為此,有必要從先驗分佈中產生N=10000個值θi,並在似然函式中評估它們。最後,為了得到C,這些值被平均化。R中的程式碼如下。
- N <- 100000 # 模擬值的數量
- rnorm(n=N, mean = 2.5, sd = 0.2) #先驗分佈
- prod(dpois(x=x, lambda = theta)) #似然函式
3. 尋找後驗分佈
計算完C後,你可以得到後驗分佈,如下所示。
- fvero(theta) * dnorm(x=theta) / C
4. 計算後驗分佈的平均數
最後你可以使用蒙特卡洛模擬計算積分來獲得後驗分佈的平均值。
- integral <- mean(aux)
- posterior <- integral/C
結果
如前所述,上面介紹的程式碼用於所有三種情況,唯一根據情況變化的是x。在這一節中,我們將為每種情況展示一張圖,其中包含θ的先驗和後驗分佈、後驗分佈的平均值(藍色虛線)和觀測值(粉紅色的點)。
第一種情況
- curve(dnorm(x, 2.5, 0.2), col=4,,x=x, y=rep(0, length(x)),
- line,v = mposterior,legend=c("topright", legend=c("後驗", "先驗"),)
第二種情況
第三種情況
結論
從結果中我們可以得出這樣的結論:當我們有很少的觀測資料時,如圖1和圖2,由於缺乏樣本證據,後驗分佈將傾向於類似於先驗分佈。相反,當我們有大量的觀測資料時,如圖3,後驗分佈將偏離先驗分佈,因為資料將有更大的影響。
我希望你喜歡這篇文章並瞭解貝葉斯統計。我鼓勵你用其他分佈執行這個程式。
最受歡迎的見解
3.matlab中的偏最小二乘迴歸(PLSR)和主成分迴歸(PCR)
5.R語言迴歸中的Hosmer-Lemeshow擬合優度檢驗
6.r語言中對LASSO迴歸,Ridge嶺迴歸和Elastic Net模型實現
9.R語言如何在生存分析與Cox迴歸中計算IDI,NRI指標
▍關注我們 【大資料部落】第三方資料服務提供商,提供全面的統計分析與資料探勘諮詢服務,為客戶定製個性化的資料解決方案與行業報告等。 ▍諮詢連結:http://y0.cn/teradat ▍聯絡郵箱:[email protected]