Rでベイズ統計学

筆者は計量経済学が専攻なので、それ以外の分野の方のフォローを期待します。


ベイズ統計学とは?

統計的推論にベイズの定理を使う方法をいいます。 方法に一貫性があること、柔軟なモデルに対応できること、一般に"事前分布"を指定する必要があることなどの特色があります。

より詳しくは、松原先生のサイトを参照してください。

パッケージの一括インストール

詳しくは CRAN Task View (一般化モデルのあてはめ、特定のモデルおよび手法、事後推定ツール、学習ベイジアン統計学、他のサンプリングエンジンとRとのリンクの5分類でまとめている)を参照していただきたいが、簡単には、

install.packages("ctv")
library(ctv)
install.views("Bayesian")

で、必要なものはほぼすべて入ります。 個別のパッケージについては、

を参照されたい。

詳細

  • bqtl: ベイジアン QTL マッピング用の道具集
  • BsMD: ベイズの篩及びモデル判別
  • boa: Bayesian Output Analysis Program (BOA) for MCMC
  • bayesmix: ベイズ混合モデリング用 R パッケージ
  • vabayelMix: Variational Bayesian Mixture Model
  • mcmc: Markov Chain Monte Carlo
  • MCMCpack: Markov chain Monte Carlo (MCMC) Package
  • elrm: Exact Logistic Regression via MCMC
  • deal: Learning Bayesian Networks with Mixed Variables
  • spBayes  階層型空間モデリングパッケージ
    • spBayes (単変量・多変量統計空間モデリング) パッケージ中のオブジェクト一覧?
  • pscl: Political Science Computational Laboratory, Stanford University
  • bcp: Bayesian Change Point
    • bcp(ベイジアン変化点)パッケージ中のオブジェクト一覧?
  • JAGSギブス抽出法を用いたベイズ階層モデルの分析プログラム
  • RJaCGH: CGH 配列解析のための Reversible Jump MCMC.
  • MasterBayes?: ML and MCMC Methods for Pedigree Reconstruction and Analysis
  • BayHaz?: R Functions for Bayesian Hazard Rate Estimation
  • sbgcop: Semiparametric Bayesian Gaussian copula estimation
  • G1DBN: 動的ベイズネットワーク推定実行パッケージ
  • DPpackage: Bayesian Nonparametric and Semiparametric
  • vbmp: 変分ベイズ多項プロビット回帰
  • bnlearn: ベイズネットワーク構造学習
  • predbayescor: Classification rule based on Bayesian naive Bayes models with feature selection bias corrected
  • predmixcor: Classification rule based on Bayesian mixture models with feature selection bias corrected
  • geoR(地球統計用データ分析関数)パッケージ  ベイズ分析対応の関数がある
  • ramps: RAMPS を 使ったベイズ地球統計モデリング(Bayesian Geostatistical Modeling with RAMPS )
  • BAYSTAR: On Bayesian analysis of Threshold autoregressive model (BAYSTAR)
  • bayescount: Bayesian analysis of count distributions with JAGS
  • cobs: COBS -- 拘束条件付きの B-スプライン (Sparse matrix ベース)
  • pscl: Political Science Computational Laboratory, Stanford University
    • Bayesian analysis of item-response theory (IRT) models
  • BPHO: 工事の相互作用についてのベイズ予測
  • siar: R での安定アイソトープ分析(Stable Isotope Analysis in R)
    • using Bayesian model
  • mombf: Moment and Inverse Moment Bayes factors
  • bspec: Bayesian spectral inference
  • rjags: MCMC を用いたベイズグラフィカルモデル
  • runjags: Run Bayesian MCMC Models in the BUGS syntax from Within R
  • dlm: Bayesian and Likelihood Analysis of Dynamic Linear Models
  • bayesGARCH: Bayesian Estimation of the GARCH(1,1) Model with Student's t Innovations
  • BaM: Functions and datasets for books by Jeff Gill Books is "Bayesian Methods: A Social and Behavioral Sciences Approach, Second Edition published by CRC Press, 2007"
  • bark: ベイズ加法回帰カーネル Bayesian Additive Regresssion Kernels
  • rv: Simulation-based random variable object class in R
  • SimpleTable?: Bayesian Inference and Sensitivity Analysis for Causal Effects from 2 x 2 and 2 x 2 x K Tables in the Presence of Unmeasured Confounding
  • glmmBUGS: WinBUGS をもちいた一般化線形混合モデル
  • Bolstad: Bolstad の関数
  • bayesclust: Tests/Searches for significant clusters in genetic data
  • BAS: Bayesian Model Averaging using Bayesian Adaptive Sampling
  • BayesX: R Utilities Accompanying the Software Package BayesX
  • amei: Adaptive Management of Epidemiological Interventions
  • scapeMCMC: MCMC 診断プロット
  • BayesTree?: 木に基づくモデルのベイズ手法
  • spatcounts: Spatial count regression (MCMC を使用)
  • HWEBayes: Bayesian investigation of Hardy-Weinberg Equilibrium via estimation and testing
  • emulator: Bayesian emulation of computer programs
  • WMCapacity: GUI implementing Bayesian working memory models
  • BayesQTLBIC: Bayesian multi-locus QTL analysis based on the BIC criterion
  • Bolstad2: Bolstad functions
  • arm: 回帰及びマルチレベル/階層モデルを使ったデータ分析
  • CORElearn: CORElearn - classification, regression, feature evaluation and ordinal evaluation
  • Bergm: Bayesian inference for exponential random graph models
  • cudaBayesreg: fMRI データ分析用マルチレベルモデルの CUDA 並列実装
  • mixAK: Mixture of methods including mixtures
  • hergm: Hierarchical Exponential-Family Random Graph Models
  • B2Z: Bayesian Two-Zone Model
  • catnet: catnet: Categorical Bayesian Network Inference
  • BayesPanel?: Bayesian Methods for Panel Data Modeling and Inference
  • GSM: Gamma Shape Mixture
  • BTSPAS: Bayesian Time-Strat. Population Analysis
  • splinesurv: Nonparametric bayesian survival analysis
  • mugnet: Mixture of Gaussian Bayesian Network Model
  • bfp: Bayesian Fractional Polynomials
  • MCMChybridGP: Hybrid Markov chain Monte Carlo using Gaussian Processes
  • Bchron: Bayesian chronologies via compound Poisson-Gamma process
  • abc: Functions to perform Approximate Bayesian Computation (ABC) using simulated data
  • bayesLife: Bayesian Projection of Life Expectancy
  • bayesTFR: Bayesian Fertility Projection
  • varSelectIP: Objective Bayes Model Selection
  • HPbayes: Heligman Pollard mortality model parameter estimation using Bayesian Melding with Incremental Mixture Importance Sampling
  • LaplacesDemon?: Laplace's Demon: Software for Bayesian Inference
  • BAMD: Bayesian Association Model for Genomic Data with Missing Covariates
  • MISA: Bayesian Model Search and Multilevel Inference for SNP Association Studies
  • monomvn: Estimation for multivariate normal and Student-t data with monotone missingness
  • casperinfers alternative splicing from high-throughput sequencing data both for known variants and de novo discovery.
  • BCBCSF: Bias-corrected Bayesian Classification with Selected Features
  • rriskBayes: Predefined Bayes models fitted with Markov chain Monte Carlo (MCMC) (related to the 'rrisk' project)
  • JMbayes: Joint Modeling of Longitudinal and Time-to-Event Data under a Bayesian Approach
  • sdnet: Soft Discretization-based Bayesian Network Inference
  • CRAN Task View: Bayesian Inference ・・・各パッケージの分類と要約
    • モデルのあてはめ(Bayesian packages for general model fitting), 特定のモデル又は手法(Bayesian packages for specific models or methods),推定?(Post-estimation tools),学習ベイズ統計(Packages for learning Bayesian statistics),Rとのリンク(Packages that link R to other sampling engines) の5つで分類している

まずは MCMCpack を使うのが無難です。 BUGS/WinBUGS というソフトを使えば、より広範囲のモデルについて推定可能です。 BUGS/WinBUGS は R から呼び出し可能です。

参考

  1. coda(マルコフ連鎖モンテカルロ(MCMC)シミュレーションについての出力の分析および診断)パッケージ中のオブジェクト一覧?
  2. R2WinBUGS(R より WinBUGS および OpenBUGS の実行)パッケージ中のオブジェクト一覧?
  3. OpenBUGS

MCMCpack

R のベイズ分析に関するライブラリの中では,もっとも汎用的なものです.

MCMCpackパッケージ(マルコフ連鎖モンテカルロ)中のオブジェクト一覧?

実例(線形回帰モデル/OLSとの比較)

Hayashi, Fumio. Econometrics. Princeton University Press, 2000. Ch. 1 の例。

Elec<-read.table("http://www.rhasumi.net/data/econometrics/nerlove.txt")
LTC<-log(Elec[,1]); LQ <- log(Elec[,2]); LPL <- log(Elec[,3]);
LPF <- log(Elec[,4]); LPK <- log(Elec[,5])

#OLS 推定 Model (1.7.4)

result_b<-lm(LTC~LQ+LPL+LPF+LPK)
summary(result_b)
>summary(result_b) #一部略
Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -3.52650    1.77437  -1.987   0.0488 *  
LQ           0.72039    0.01747  41.244  < 2e-16 ***
LPL          0.43634    0.29105   1.499   0.1361    
LPF          0.42652    0.10037   4.249 3.89e-05 ***
LPK         -0.21989    0.33943  -0.648   0.5182    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 

#MCMC

library(MCMCpack)
posterior <- MCMCregress(LTC~LQ+LPL+LPF+LPK, verbose=1000)
plot(posterior)
raftery.diag(posterior)
summary(posterior)
>  summary(posterior)#一部略
1. Empirical mean and standard deviation for each variable,
   plus standard error of the mean:

               Mean      SD  Naive SE Time-series SE
(Intercept) -3.5398 1.79372 0.0179372      0.0193031
LQ           0.7205 0.01771 0.0001771      0.0001730
LPL          0.4389 0.29323 0.0029323      0.0023149
LPF          0.4269 0.10194 0.0010194      0.0010259
LPK         -0.2180 0.34276 0.0034276      0.0037750
sigma2       0.1564 0.01906 0.0001906      0.0001705

この場合大差ないことが分かると思います.

bayesm(Bayesian Inference for Marketing/Micro-econometrics)

bayesmパッケージ中のオブジェクト一覧?

MCMCglmm: MCMC 一般化混合モデル

BUGS/WinBUGS

BUGS はベイズ推定のためのパッケージソフトで、MCMC 法により事後分布の密度関数の計算を行います。 WinBUGS はその Windows 版です。 WinBUGS 自体は単体で使えますが、R から呼び出したほうが簡単です。

WinBUGSはwineを使えばLinux上でも動作します。wine経由のWinBUGSもRから呼び出すことができます。

インストール

WinBUGS は以下からダウンロードできます。WinBUGS の機能をすべて使うには、登録が必要です(無償)。

BUGS Projectのページ

インストールが終わって、BUGS のコードも借りてくれば、R さえ使えれば WinBUGS について何も知らなくても使えます。

BUGSのコードは、例えば、 Lncaster, Tony. An Intoroduction to Modern Bayesian Econometrics. Blackwell, 2004. にあります。

Linuxへのインストールは、Windowsと同様です。wineが正しく設定してあればWinBUGSをダウンロードするときにそのままwineでWinBUGSのインストーラを起動することができます。ダウンロード時にディスクに保存せずにそのままインストールした方が楽でしょう。

Rの側のパッケージは"R2WinBUGS"または"rbugs"です。"rbugs"はLinux上での利用を想定されたものでLinBUGS(デフォルト)/OpenBUGS/wine経由のWinBUGSをサポートしています。Linuxでは"rbugs"以外にWinBUGSと連携するためのパッケージがありませんでしたが、今のR2WinBUGSはwine経由のWinBUGSにも対応しているので、Linux上でも"R2WinBUGS"を使うことができます。ただし、1つバグがあり、wine経由のWinBUGSをR2WinBUGSから操作するには、bugs()の前に

WINEPATH <- "/usr/bin/winepath" 

というおまじないが必要です。このバグは現在(2006年8月17日)も修正されていません。

"R2WinBUGS"を使う前に、

library(R2WinBUGS)
help(package="R2WinBUGS")

ここから、例をConsoleにコピーすれば、すぐにWinBUGSが走ります。

線形回帰モデルの例 (数値例は仮設)

  1. model.fileの作成。BUGSのコードです。 "model.txt"などの名前でRのワーキング・ディレクトリに保存します。
    model{
    for(i in 1:n){y[i]~dnorm(mu[i],tau)
    mu[i] <-alpha + beta1*x[i,1]+beta2*x[i,2]
    }
    alpha ~dnorm(0,0.0001)
    beta1 ~dnorm(0,0.0001)
    beta2 ~dnorm(0,0.0001)
    tau ~dgamma(0.001, 0.001)
    }
  2. データの作成(ノーテンションはmodel.fileにあわせます)
    y <- c(1,3,3,3,5)
    n <- NROW(y)
    x1 <- c(1,2,3,5,5)
    x2 <- c(2,3,1,5,2)
    x <- matrix(c(x1,x2),ncol=2,nrow=5)
    data <- list ("n", "y", "x") 
  3. 初期値の決定・結果を保存したいパラメータを指定
    in1 <- list(alpha=0, beta1=0, beta2=0, tau=1)
    in2 <- list(alpha=1, beta1=1, beta2=1, tau=1)
    in3 <- list(alpha=2, beta1=2, beta2=2, tau=1)
    inits <- list(in1,in2,in3)
    parameters <- c("alpha", "beta1", "beta2", "tau")
  4. WinBUGSを走らせます。debug=TRUEにすれば、デバッグできます。
    result.sim <- bugs(data, inits, parameters, model.file="model.txt",
    n.chains = 3, n.iter = 1000, debug=FALSE,
    bugs.directory = "c:/Program Files/WinBUGS14/",
    working.directory = NULL)
  5. 結果を見ます。例えば、
    print(result.sim,digits=3)
    result.sim$sims.list$beta1
    • ちなみに、olsだと
      result2.sim <- lm(y~x1+x2)
      summary(result2.sim)
    • パッケージ"MCMCpack"を使うと
      line <- list ("y", "x")
      result3.sim <- MCMCregress(y~x, data = parent.frame(), burnin = 1000, mcmc = 10000) 
  6. 本来は、このあとlibrary coda をつかってマルコフ連鎖の収束判定をするべきです。

エラーとの戦い 

  • Permission denied 加筆者はVistaのUAC(ユーザーアカウント制御)解除でクリア(自己責任でお願いします。)
  • educational version  対応パッチ?をWinBugsのページからおとしてください。

パッケージソフトで対応できない場合

R の関数だけをつかって MCMC 法を実行するのは速度的に厳しいため、全体を C/C++ で書き、それを R から呼ぶという方法を推奨します。 詳しくは、Rから他言語利用を参照のこと。

ベイズネットワーク

Stan

参考書

  1. Koop, Gary. Bayesian Econometrics. Wiley, 2003.
  2. Lncaster, Tony. An Intoroduction to Modern Bayesian Econometrics. Blackwell, 2004.
  3. 中妻照雄『ファイナンスのためのMCMC法によるベイズ分析』三菱経済研究所, 2003年
  4. 和合肇編著『ベイズ計量経済分析』東洋経済新報社, 2005.
  5. Williams, David. Weighing the Odds. Cambridge University Press, 2001.
  6. 経済・経営のための統計学(2005, 有斐閣)  9章 ベイズ統計
  7. Bayesian Statistics and Marketing Greg Allenby, Rob McCulloch?, Peter Rossi, 2005, John Wiley & Sons
    この本のDraftとRのコード。
  8. Bayesian Data Analysis, 2nd Ed. Andrew Gelman, John B. Carlin, Hal S. Stern, Donald B. Rubin, 2003, Crc Pr I Llc.
    Appendix C が "Example of computation in R and Bugs"という題になっており, そこにRのコードが書いてあります。
    • Andrew GelmanのサイトにPDFファイルがあります(『Appendix C from the second edition of Bayesian Data Analysis』).
  9. A Practical Approach to Computational Bayesian Statistics Jean-Michel Marin, Christian P. Robert, 2007, Springer.
  10. Data Analysis Using Regression and Multilevel/Hierarchical Models Andrew Gelman, Jennifer Hill, 2007, Cambridge University Press、このサイトにプログラム、データ、正誤表あり
  11. R News, Volume 5/2, November 2005  BMA の紹介
  12. R News, volume 6/1, issue 1  ベイズ関連パッケージの特集
  13. Bayesian Computation with R (Use R) Albert, J., 2007,Springer. 著者作成の LearnBayes? パッケージ(CRAN にあり)を利用
  14. Data Analysis Using Regression and Multilevel/Hierarchical Models Andrew Gelman and Jennifer Hill, 2006, Cambridge Univ Pr. マルチレベル階層分析のハンドブック。R と WinBUGS を利用。
  15. 『マルコフ連鎖モンテカルロ法』 豊田秀樹 編著, 2007, 朝倉書店.
  16. Bayesian Disease Mapping: Hierarchical Modeling in Spatial Epidemiology
  17. Hierarchical Modeling and Analysis for Spatial Data GeoR
  18. Hierarchical Modeling and Analysis for Spatial Data(Monographs on Statistics & Applied Probability) 2nd Ed. , Sudipto Banerje, S., Gelfand, A. E., Carlin, B. P., 2011,CRC, pp. 608.
  19. 『Rによるマーケティング・シミュレーション』
  20. BAYESIAN METHODS: A Social and Behavioral Sciences Approach, Second Edition サポートパッケージ:BaM @ CRAN
  21. 古谷知之著『ベイズ統計データ分析 ―R & WinBUGS― (統計ライブラリー)』,朝倉書店,2008.
  22. Bolstad, W.M. (2007):"Introduction to Bayesian Statistics", John Wiley & Sons ISBN 0-471-27020-2
  23. 姜 興起 著(2010):『ベイズ統計データ解析』、共立出版
  24. 安道知寛 著『ベイズ統計モデリング』,朝倉書店
  25. 照井伸彦 著 :『Rによるベイズ統計分析』,朝倉書店
  26. Introduction to Probability Simulation and Gibbs Sampling with R Eric A., Trumbo, Bruce E.,2010, Springer.
  27. Bayesian Ideas and Data Analysis: An Introduction for Scientists and Statisticians, Christensen R., Johnson W. O., Branscum A. J., Hanson T. E., 2010, Chapman & Hall/CRC.
  28. Bayesian Model Selection and Statistical Modeling, Ando T., 2010, CRC press. サポートページ
  29. J.アルバート (著) 、石田 基広・石田 和枝 (共訳) (2010):Rで学ぶベイズ統計学入門 シュプリンガー・ジャパン
  30. 古谷知之著『Rによる空間データの統計分析』,朝倉書店,2011.
  31. Kruschke, J.:Doing Bayesian Data Analysis: A Tutorial Introduction with R and BUGS, Academic Press, 2010
  32. Efron, Bradley:Large-Scale Inference: Empirical Bayes Methods for Estimation, Testing, and Prediction (Institute of Mathematical Statistics Monographs) , Cambridge University Press,2010.
  33. 久保 拓弥著:データ解析のための統計モデリング入門 ―― 一般化線形モデル・階層ベイズモデル・MCMC ――, 岩波書店,2012.
  34. Yau, C.:R Tutorial with Bayesian Statistics Using OpenBUGS, Amazon Digital Services, Inc., 2012.
  35. Bayesian Inference Using OpenBUGS
  36. The BUGS Book: A Practical Introduction to Bayesian Analysis,Chapman & Hall/CRC , 2012. サポートサイト
  37. G.ペトリス ・S.ペトローネ ・P.カンパニョーリ 著/和合肇 監訳/萩原淳一郎 訳:Rによるベイジアン動的線型モデル,朝倉書店,2014.

関連サイト

  • 空間生存分析
  • 空間パネル分析

コメント

  • RというよりWinbugs本かもしれないですが、カエル本の訳本がでるのですね。 -- そう? 2009-01-26 (月) 19:56:58


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (962d)