HardinとHilbeが書いたglmのStata本をちらちらと読んでいて少し気になったので、自分でも分析をしてみた。
Generalized Linear Models and Extensions: Fourth Edition
- 作者: James W. Hardin,Joseph M. Hilbe
- 出版社/メーカー: Stata Press
- 発売日: 2018/06/28
- メディア: ペーパーバック
- この商品を含むブログを見る
この分析の出典はこの本の20章2節(20.2)である。
データ
rwm1984.dtaというデータを用いる。1984年のドイツの医療改革データである。下記の変数が含まれている。
変数 | ラベル |
---|---|
docvis | MD visits/year |
hospvis | Days in hospital/year |
edlevel | Level of education |
age | Ages 25-64 |
outwork | 1=not working; 0=working |
female | 1=femaie; 0=male |
married | Married=1; Single=0 |
kids | 1=have children; 0=no children |
hhninc | Household income (Marks,OECD wgt) |
educ | Highest years of education |
self | 1=Self employed; 0=other |
edlevel1 | edlevel==Not HS grad |
edlevel2 | edlevel==HS grad |
edlevel3 | edlevel==Coll/Univ |
edlevel4 | edlevel==Grad School |
ロジスティック回帰分析
まずは普通のロジスティック回帰分析を行う。つまり頻度主義でP値が出力されるものである。
. use http://www.stata-press.com/data/hh4/rwm1984 . quietly summarize docvis, meanonly . generate cdoc = docvis - r(mean) . quietly summarize age, meanonly . generate cage = age - r(mean) . glm outwork female kids cdoc cage, family(binomial) link(logit) nolog Generalized linear models Number of obs = 3,874 Optimization : ML Residual df = 3,869 Scale parameter = 1 Deviance = 3918.21514 (1/df) Deviance = 1.01272 Pearson = 4205.000001 (1/df) Pearson = 1.086844 Variance function: V(u) = u*(1-u) [Bernoulli] Link function : g(u) = ln(u/(1-u)) [Logit] AIC = 1.013995 Log likelihood = -1959.10757 BIC = -28047.63 ------------------------------------------------------------------------------ | OIM outwork | Coef. Std. Err. z P>|z| [95% Conf. Interval] -------------+---------------------------------------------------------------- female | 2.256804 .0827624 27.27 0.000 2.094593 2.419016 kids | .3579762 .0899639 3.98 0.000 .1816503 .5343022 cdoc | .0244323 .0062628 3.90 0.000 .0121574 .0367071 cage | .0543791 .0041591 13.07 0.000 .0462274 .0625308 _cons | -2.010276 .0810901 -24.79 0.000 -2.16921 -1.851342 ------------------------------------------------------------------------------
glmの前に変数を加工している行が4行入っている。quietlyは出力抑止のコマンドで、- r(mean)はセンタリングをするコマンドである。centeringのcがついたcdocとcageがglmの独立変数になっている。この処理はベイジアンのために行っており、通常のglmには不要である。結果の比較のために通常のglmでも変数を利用している。
ベイジアンロジスティック回帰分析
次にベイジアンでの分析である。変数はさきほど作ったものと同一である。bayesを接頭語にした場合、nologをつけるとエラーがでるので削除するようだ。デフォルトでは無情報事前分布、一様分布と一様分布と分散normal(0、10000)に設定されている。デフォルトで特に問題がないので、そのまま実行する。シードは2017というおそらく執筆時点の年数を入れていて、別の値でも構わない。
. bayes, rseed (2017): glm outwork female kids cdoc cage, family(binomial) Model summary ------------------------------------------------------------------------------ Likelihood: outwork ~ glm(xb_outwork) Prior: {outwork:female kids cdoc cage _cons} ~ normal(0,10000) (1) ------------------------------------------------------------------------------ (1) Parameters are elements of the linear form xb_outwork. Bayesian generalized linear models MCMC iterations = 12,500 Random-walk Metropolis-Hastings sampling Burn-in = 2,500 MCMC sample size = 10,000 Family : Bernoulli Number of obs = 3,874 Link : logit Scale parameter = 1 Acceptance rate = .2363 Efficiency: min = .02665 avg = .05244 Log marginal-likelihood = -2001.0895 max = .101 ------------------------------------------------------------------------------ | Equal-tailed outwork | Mean Std. Dev. MCSE Median [95% Cred. Interval] -------------+---------------------------------------------------------------- female | 2.260566 .0803699 .002529 2.25819 2.103102 2.421029 kids | .3562706 .0893508 .004221 .3583318 .1783027 .5281715 cdoc | .024483 .0061758 .000329 .0244374 .0130205 .0369231 cage | .0545722 .0040688 .000174 .0547603 .0464829 .0622289 _cons | -2.01027 .082349 .005044 -2.00927 -2.172552 -1.852391 ------------------------------------------------------------------------------ Note: Default priors are used for model parameters.
結果は基本的には変わらない。
逸脱度情報量規準(DIC)と限界対数尤度値(marginal log-likelihood value)
他のモデルと比較する際はicコマンドが使える。
. bayesstats ic Bayesian information criteria ---------------------------------------------- | DIC log(ML) log(BF) -------------+-------------------------------- active | 3928.038 -2001.09 . ---------------------------------------------- Note: Marginal likelihood (ML) is computed using Laplace-Metropolis approximation.
DICは3928.038、 log(ML)が限界対数尤度値であり、-2001.09である。DICはAICと基本的に同じようなものであるが、事後分布がおおむね多変量正規分布である時に有効な指標となるので、少し注意が必要かもしれない。
余談
このエントリのタイトルはベイジアンロジスティック回帰分析だが、これはBayesian Logistic Regressionを翻訳したものだ。日本語の定訳を探してみたが見つからなかった。Bayesianは翻訳がしにくい用語である。そのままベイジアンであったり(例えばベイジアン・ネットワーク)、ベイズ的であったり(ベイズ的アプローチ)、ベイズ式であったり(ベイズ式分類法)、訳がころころと変わる。
このデータを用いた分析は著者のHilbeの別の本で言及があるそうだ。
Modeling Count Data (English Edition)
- 作者: Joseph M. Hilbe
- 出版社/メーカー: Cambridge University Press
- 発売日: 2014/07/23
- メディア: Kindle版
- この商品を含むブログを見る