貝氏模型比較

使用 rstanarm 的貝葉斯迴歸建模

Jake Thompson

Psychometrician, ATLAS, University of Kansas

loo 套件

  • LOO = leave-one-out(逐一剔除)
    • 近似交叉驗證
    • ?loo-package
    • 使用 loo 比較模型
使用 rstanarm 的貝葉斯迴歸建模

對單一模型使用 loo

library(rstanarm)
library(loo)
stan_model <- stan_glm(kid_score ~ mom_iq, data = kidiq)

loo(stan_model)
Computed from 4000 by 434 log-likelihood matrix

         Estimate   SE
elpd_loo  -1878.5 14.5
p_loo         2.9  0.3
looic      3757.1 29.0
 ------
Monte Carlo SE of elpd_loo is 0.0.

All Pareto k estimates are good (k < 0.5).
See help('pareto-k-diagnostic') for details.
使用 rstanarm 的貝葉斯迴歸建模

使用 loo 進行模型比較

model_1pred <- stan_glm(kid_score ~ mom_iq, data = kidiq)
model_2pred <- stan_glm(kid_score ~ mom_iq * mom_hs, data = kidiq)

loo_1pred <- loo(model_1pred)
loo_2pred <- loo(model_2pred)

compare(loo_1pred, loo_2pred)
elpd_diff        se 
      6.1       3.9
使用 rstanarm 的貝葉斯迴歸建模

使用 loo 進行模型比較

compare(loo_1pred, loo_2pred)
elpd_diff        se 
      6.1       3.9
  • 正值=偏好第二個模型
  • 負值=偏好第一個模型
  • 有顯著差異嗎?
    • 比較差異絕對值與標準誤大小
使用 rstanarm 的貝葉斯迴歸建模

一起來練習吧!

使用 rstanarm 的貝葉斯迴歸建模

Preparing Video For Download...