1. 程式人生 > 其它 >拓端tecdat|R語言貝葉斯Poisson泊松-正態分佈模型分析職業足球比賽進球數

拓端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中的程式碼如下。

  1. N <- 100000 # 模擬值的數量
  2. rnorm(n=N, mean = 2.5, sd = 0.2) #先驗分佈
  3. prod(dpois(x=x, lambda = theta)) #似然函式


3. 尋找後驗分佈

計算完C後,你可以得到後驗分佈,如下所示。

  1. fvero(theta) * dnorm(x=theta) / C


4. 計算後驗分佈的平均數

最後你可以使用蒙特卡洛模擬計算積分來獲得後驗分佈的平均值。

  1. integral <- mean(aux)
  2. posterior <- integral/C


結果

如前所述,上面介紹的程式碼用於所有三種情況,唯一根據情況變化的是x。在這一節中,我們將為每種情況展示一張圖,其中包含θ的先驗和後驗分佈、後驗分佈的平均值(藍色虛線)和觀測值(粉紅色的點)。

第一種情況

  1. curve(dnorm(x, 2.5, 0.2), col=4,,x=x, y=rep(0, length(x)),
  2. line,v = mposterior,legend=c("topright", legend=c("後驗", "先驗"),)

第二種情況

第三種情況

結論

從結果中我們可以得出這樣的結論:當我們有很少的觀測資料時,如圖1和圖2,由於缺乏樣本證據,後驗分佈將傾向於類似於先驗分佈。相反,當我們有大量的觀測資料時,如圖3,後驗分佈將偏離先驗分佈,因為資料將有更大的影響。

我希望你喜歡這篇文章並瞭解貝葉斯統計。我鼓勵你用其他分佈執行這個程式。


最受歡迎的見解

1.R語言多元Logistic邏輯迴歸 應用案例

2.面板平滑轉移回歸(PSTR)分析案例實現

3.matlab中的偏最小二乘迴歸(PLSR)和主成分迴歸(PCR)

4.R語言泊松Poisson迴歸模型分析案例

5.R語言迴歸中的Hosmer-Lemeshow擬合優度檢驗

6.r語言中對LASSO迴歸,Ridge嶺迴歸和Elastic Net模型實現

7.在R語言中實現Logistic邏輯迴歸

8.python用線性迴歸預測股票價格

9.R語言如何在生存分析與Cox迴歸中計算IDI,NRI指標

▍關注我們 【大資料部落】第三方資料服務提供商,提供全面的統計分析與資料探勘諮詢服務,為客戶定製個性化的資料解決方案與行業報告等。 ▍諮詢連結:http://y0.cn/teradat ▍聯絡郵箱:[email protected]