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版
- この商品を含むブログを見る