メイン > 論文:データ解析(2015-)
2017年12月16日 (土)
今年の秋は仕事の都合で小地域推定について勉強する羽目になり、これはかなり辛い経験であった。嗚呼人生間違えた、もう残りは早送りにしたい、と思う頻度が、普段だと一日一回くらいなんだけど、この数ヶ月間は敬虔なイスラム教徒のお祈りよりも多いという感じであった。すごい。落ち込む度に腕立て伏せしてたらいまごろムキムキだったのに。
Pfeffermann, D. (2013) New Important Development in Small Area Estimation. Statistical Science, 28(1), 40-68.
というわけで、個人的な小地域推定ブームの終わり頃に読みかけた長い長いレビュー論文なんだけど、メモを取る余裕もなく、そのうちに用事が終わって関心が失せてしまい、途中で放り出してしまった。
とはいえ、今回痛感したのは、ああ小地域推定の勉強はしておくべきだ... ということであった。マーケティングのための消費者調査においては、それはそれは大変に身近な話題である(たとえば、認知率が低いブランドのイメージ測定、接触率の低いプロモーションの接触者による評価、いずれも立派な小地域推定問題だ)。なぜこれまでちゃんと勉強していなかったのかね、と臍を噛む思いであった。
いずれきちんと読む機会もありそうだから、読み終えてないけど読了扱いにして、見出しだけ記録しておく。
1. はじめに
いわく。2002年に小地域推定のレビューを書いたんだけど、実はそのときは「もう話題として枯れてきたな」と思っていた。9年後のいま振り返るに、私は間違っていた、この研究分野の進展はすごい。この論文ではRao(2003)の本以降の研究についてレビューする。
2. 背景
小地域推定(SEA)とはなにか。モデルベースとデザインベースのちがい。
3. 記法
4. デザインベース手法
4.1 よく使われているデザインベース手法
直接推定量、synthetic推定量、combined推定量。
4.2 デザインベースSAEの最近の進展
calibrated推定量、道具変数を用いた推定量、... [読んでないので見出しも作れない]
4.3 デザインベースSAEのいい点と悪い点
5. モデルベース手法
5.1 一般的定式化
5.2 よく使われているモデル
エリアレベルモデル、nested errorユニットレベルモデル、混合ロジスティックモデル(対象となる反応が二値のとき)、の3つにわけて紹介。あーあ、もっと早く読んでおけばよかった。
えーと、エリアレベルモデルの注意点として、推定したい小地域パラメータではなくそれを変換した奴についてモデリングしている場合、モデル自体はEBLUPでも実はEBLUPになっていない、という話が紹介されていた。たとえば$log(\theta)$のEBLUPは$\theta$のEBLUPじゃないでしょ、という話。そうなんだよね... 気がついてはいたんだけど、自分のなかでごまかしていた... その点でFay-HerriotモデルのEBLUPよりもEB(経験ベイズ)やHB(階層ベイズ)のほうが優れているのだそうだ。
ここから全く読んでないけど、
6. モデルベースSAEの進展。
6.1 予測MSEの推定。
6.2 予測区間の計算。
6.3 ベンチマーキング。モデルの誤指定が怖いので、デザインベースと比べる、というような話らしい。
6.4 共変量の予測変数の説明。
6.5 外れ値の対処。
6.6 さらなるrobustificationのためのさまざまなモデルと推定手法。分位点推定とか、罰則つきスプライン回帰を使うとか、ベイズ推定で経験尤度を使うとか、そういう話らしい。そんな話題があるのか...
6.7 順位付きの小地域変換の予測。あらかじめ順番が分かってるというような話かなあ? ちゃんと読まんとわからんな。
6.8 新しい具体的応用。識字率の評価、poverty mapping。
7. 情報的標本抽出・欠損のもとでのSAE。切実な話だけど、いかにも難しそう...
8. モデル選択とチェック。約4pにわたって延々書いてある。ぶひー。
9. 結語。えーと、このレビューは頻度主義の肩をかなり強力に持っているけど、ベイジアンのほうが柔軟な面もある(上でメモした、なにかのリンク関数がはいっているエリアレベルモデルとか)。事前分布の指定は大変だけど、チェックする方法はたくさんある。ベイジアンだと計算が難しい(計算量的にもスキル的にも)という指摘もあるが、それをゆうたらGLMMかて難しいでっせ。にもかかわらずいまだ頻度主義が主流なのは、要するに、公的機関がベイジアンな手法を使うのに躊躇っているからであろう。
云々。
読了:Pfeffermann (2013) 小地域推定レビュー in 2013
2017年12月 5日 (火)
Lewis, D.D. (1998) Naive (Bayes) at forty: The independence assumption in information retrieval. ECML-98 (European Conference on Machine Learning), pp.4-15.
40年にも及ぶ長い歴史を持つ、ご存じナイーブベイズ分類器について、(パターン認識じゃなくて)情報検索の文脈でレビューしますという論文。
タイトルからして面白そうで、待ち時間中の時間潰し用に鞄にいれていた論文。読み始めてすぐに関心と違うことに気が付いたのだが(information retrievalって文字通り文書検索とかのことなのね)、フガフガと楽しく読了。
まずはおさらいから。
ベイズの定理によれば、特徴ベクトル$X=x$を持つイベント(ここでは文書)が$C$のどこかのクラス$c_k$に落ちるとして、
$P(C=c_k|X=x) = P(C=c_k) \times \frac{P(X=x|C=c_k)}{P(x)}$
簡略化して
$P(c_k | x) = P(c_k) \times \frac{P(x|c_k)}{P(x)}$
と書きますね。
$P(x|c_k), P(c_k), P(x)$がわかれば$P(c_k|x)$がわかるわけだけど、あいにく$x$がとりうる値は天文学的な数がある。そこで登場するのが、
$P(x | c_k) = \prod_j P(x_j | c_k)$
としようというアイデア。文書タイプ$c_k$のもとで$x$の各要素は互いに独立だと考えるわけだ。こうして出来上がる分類器をナイーブベイズ分類器という。
分類器の性能は、$P(c_k|x)$の推定値の良さではなくて、$\hat{P}(c_k) \times \prod \hat{P}(x_j|c_k)$が正しい$c_k$において最大となるかどうかによって決まる。
ここでちょっと寄り道して、文書をどう表現するかという話。
情報検索システムのために文章の表現を作るための方法は実にたくさん提案されている。しかし、驚くべきことに、そしていささかがっくりすることに[←ほんとにこう書いてある]、言語学的知識や領域知識ぬきの構造的に単純な表現、すなわちbag of wordsをつくっちゃったほうがうまくいく模様である。なので、ここでもそう考えます。
さて。
文書がある単語を持つかどうかを二値変数$x_j$で表すとしよう。この場合、ナイーブベイズはもっと簡単に書けて[...中略...]、結局は下式となる。$p_{jk} = P(x_j = 1 | c_k)$として
$\log P(c_k|x)$
$= \log P(c_k)$
$+ \sum_j x_j \log (p_{jk}/(1-p_{jk}))$
$+ \sum_j \log(1-p_{jk}) $
$- \log P(x)$
最後の$\log P(x)$はどこのクラスでも同じだから、ふつうは無視する。
もし2クラスだったらもっと簡単になって... [数式略]
情報検索ではこのモデルを「二値独立モデル」という。二値独立モデルは、検索結果の上位項目に対して検索ユーザが関連性をフィードバックし、その判断を学習してランキングを改善する際に使えないかというので関心が持たれた。
二値独立モデルはいまではほとんど使われていない。その理由は、語の頻度を無視している点にある。文書の長さを無視しているという問題もある。
そこでいろんなバリエーションが提案された。
- 語の有無じゃなくて頻度を入力するという方向。頻度の統計的分布としては、ポワソン分布、ポワソン混合分布、負の二項分布などが検討された。たくさん研究が出たけど、結局のところ、二値独立モデルよりも優れているとはいいにくい。
- 多項モデル。語彙数を$d$として、長さ$f$の文書は$d$カテゴリの多項分布からの$f$回の独立なドローだと考える。文書の長さをうまく扱っているという長所もある。いっぽう、同じ単語が二回でてくるのを独立なドローと捉えるという奇妙があって、長い文書の事後対数オッズがすごく極端になりやすく、ランキングには向かない。というわけで、文章分類には使われているけど文書検索には用いられていない。
- 分布に頼らないアプローチ。確率的インデキシングというアプローチでは、文書の理想的な二値インデキシングがあると仮定し、観察されたインデクス語の生起はそのエビデンスだと捉えて事後対数オッズの期待値を求める。理想のインデキシングの確率はアドホックに計算する。[←よくわからん...] ほかにも、なんらかのノンパラメトリックなモデルで、特定の長さを持つ文章においてある語の頻度が観察される確率を求めるというアプローチもある。情報検索ではあんまりつかわれていないが今後有望。
さて、ナイーブベイズ分類器における独立性の仮定はそもそも不自然なわけで、これをなんとかしようという研究もある。3つの方向がある。
- 独立性の仮定を緩和する。機械学習ではどうだか知らんが情報検索ではうまくいってない。
- 独立性の仮定が不自然でないような特徴集合をつくる。その成否は判断が難しい。そういう提案はたくさんあるけど(たとえば句の生成)、ふつうは独立性の確保以外になんらかの固有の目的があるからだ。ともあれ、改善されたとしてもたいした効果ではない。
- なぜ独立性の仮定が本当は大事じゃないかを説明する。Cooperという人いわく、2クラスのナイーブベイズモデルでは、独立性の仮定は次の弱い仮定に置き換えることができる。
$\frac{P(x|c_1)}{P(x|c_2)} = \prod_j \frac{P(x_j|c_1)}{P(x_j|c_2)}$
彼はこれを"linked dependence"仮定と呼んでいる。
機械学習の分野では、独立性の仮定が破られているさまざまな状況でも、ナイーブベイズの仮定に基づく訓練手続きによって最適な分類器をつくることができるという理論的・実験的証拠が蓄積されている。Domingos & Pazzani (1997, Machine Learning)をみよ。[←へーそうなんすか]
云々。
読了:Lewis (1998) ナイーブベイズ、四十にして惑わず
2017年11月16日 (木)
Ghosh, M., Rao, J.N.K. (1994) Small Area Estimation: An Appraisal. Statistical Science, 9(1), 55-93.
タイトルの通り、小地域推定についてのレビュー。仕事の都合で泣きながら徹夜で読んだ。辛い。というかさ、小地域の推定なんて諦めようよ... 標本が小さいんだから...
1. イントロダクション
小地域推定の歴史とか、活用場面の紹介とか。全部すっ飛ばして...
2. 人口学的方法
人口統計学で用いられてきた、一番古典的な方法。行政からもらってきた、出生とか死亡とか新築とか入学とかのデータ(これをsymptomtic変数という)を、センサスのデータと併せて使う。
そのひとつがVital Rates(VR)法。直近のセンサス年$t=0$について、小地域の粗出生率を$r_{10}$, 粗死亡率を$r_{20}$、その上の親地域の粗出生率を$R_{10}$, 粗死亡率を$R_{20}$とする。年$t$の小地域の粗出生率$r_{1t}$と粗死亡率$r_{2t}$をそれぞれ次とする:
$r_{1t} = r_{10}(R_{1t}/R_{10})$
$r_{2t} = r_{20}(R_{2t}/R_{20})$
[えーと、つまり今年の出生率なり死亡率なりのセンサス年に対する比が小地域と親地域で同じだとするわけね]
すると、年$t$の小地域について粗出生数$b_t$、粗死亡数$d_t$がわかっているとき、人口を次のように推定できる:
$P_t = (1/2) (b_t / r_{1t} + d_t / r_{2t})$
[ああそうか、粗出生率とか粗死亡率ってのは出生数とか死亡数を人口で割ったものだからね]
この手法の弱点は、いうまでもなく、$r_{1t}/r_{10}$とかを$R_{1t}/R_{10}$とかで近似しちゃうところ。
これを拡張した手法として、composite法とか、米センサス局のCM-II法とか、Administrative Records法とかHousing Unit法とかがあって...[なんとなく雰囲気がわかったので省略]
こういう手法はすべて重回帰の特殊ケースとみることができる。そのほかに、symptomatic変数を独立変数にとった重回帰という手もある。
そのひとつがratio-correlation法。前々回センサス年を$\alpha=0$, 前回センサス年を$\alpha=1$、今年を$\alpha=t(>1)$としよう。小地域$i$の年$\alpha$における人口を$P_{i \alpha}$, $j$番目のsymptomatic変数を$S_{ij\alpha}$とする。
まず全部割合にする[うわ...気色悪い...]。
$p_{i\alpha} = P_{i \alpha} / \sum_i P_{i \alpha}$
$s_{ij\alpha} = S_{ij \alpha} / \sum_i S_{ij \alpha}$
センサス年との比、センサス年同士の比をとる。
$R'_{i} = p_{i1} / p_{i0}$
$R_{i} = p_{it} / p_{i1}$
$r'_{ij} = s_{ij1} / s_{ij0}$
$r_{ij} = s_{ijt} / s_{ij1}$
まず、センサス年の間の人口の伸びを目的変数にして回帰する。[めんどくさいので略記するけど$\beta$にはみんなハットがついている]
$R'_{i} = \beta'_0 + \beta'_1 r'_{i1} + \ldots + \beta'_j r'_{ij}$
この係数でセンサス年との比を当てに行く。
$\tilde{R}_{i} = \beta'_0 + \beta'_1 r_{i1} + \ldots + \beta'_j r_{ij}$
で、今年の全地域人口(これは別途わかっているとしよう)に$p_{i1}$を掛け、さらに$\tilde{R}_{i}$もかけて、小地域人口の推定値とする。
この手法の弱点は、センサス年の間で作った$\beta'_j$が、今年と直近センサス年の間でも変わらないという仮定である。
そこで出てきたのが標本回帰法。
$m$個の小地域のうち$k$個については、センサス年に対する比$R_i$の標本推定値$\hat{R}_1, \cdots, \hat{R}_k$があるとしよう。[←なるほどね、ありそうな話だ。小地域のなかにもでかい奴あるしね]
これを説明する回帰モデルを組む。[例によって$\beta$の上のハットは略記]
$\hat{R}_i = \beta_0 + \beta_1 r_{i1} + \ldots + \beta_p r_{ip}$
このモデルを全ての小地域にあてはめる。
3. 合成推定量(synthetic estimators)と関連する推定量
要するに、大地域で得た推定量を使っちゃえという方法。この路線も歴史が古い。
人口が大きな領域$g$に分割されている[えーと、性別みたいなもんですかね]。で、各領域の合計$Y_{.g}$については信頼できる推定量$\hat{Y}'_{.g}$がある。で、それとは別に人口が小地域$i$に分かれてて、セル$(i,g)$の合計$Y_{ij}$を小地域を通じて足しあげると$Y_{.g}$になる。で、なんらかの補足情報$X_{ig}$も手に入るとしよう。
いま、$Y_{i} = \sum_g Y_{ig}$を推定したい。そこで
$\hat{Y}^S_i = \sum_g (X_{ig}/X_{.g}) \hat{Y}'_{.g}$
とすればいいんじゃないかしら。というのが最初期の合成推定量である。
[以下、推定量の分散とかバイアスとかの話が続くので端折って...]
Purcell & Kish (1980)とかがSPREE (構造保存推定)というのを提案していて、これは多元クロス表における反復比例フィッティングを使っているのだけれど、このSPREEは合成推定量を一般化したものだと捉えることができる。[←うおおお。SPREEってKishの論文に出てきて意味不明だったんだけど、そういう意味だったのか...]
[ここから関心ある箇所なので細かくメモ]
合成推定量には潜在的バイアスがあり、いっぽう直接推定量は不安定なので、重みづけ平均を取ろうという路線もある。
つまりこうだ。小地域$i$の直接推定量を$\hat{Y}_{1i}$, なんらかの間接推定量を$\hat{Y}_{2i}$として、適切な重み $w_i$ (0以上1以下)を用意して
$\hat{Y}^C = w_i \hat{Y}_{1i} (1-w_i) \hat{Y}_{2i}$
こういうアプローチは多いんだけど、ここでは直接推定量が不偏推定量$\hat{Y}_i$、間接推定量が合成推定量$\hat{Y}^S_i$であるときの最適な重み$w_i$(opt)の決め方について考える。
$w_i$(opt)を$\hat{Y}^C$のMSEを最小化される重みと捉えると、ふたつの推定量の共分散が0だとして、
$w_i$ (opt) $= MSE(\hat{Y}^C) / [MSE(\hat{Y}^C)+V(\hat{Y}_i)]$
となる。これは推定できるんだけどすごく不安定である。
Purcell & Kish (1979)は、MSEの平均を最小化する共通の$w$を使うというのを提案している。すると次の形になる:
$w_i$ (opt) $= 1 - \sum v(\hat{Y}_i) / \sum (\hat{Y}_i^S - \hat{Y}_i)^2$
もし$\hat{Y}_i$の分散がだいたい等しかったら、$v(\hat{Y}_i)$を$\bar{v} = \sum v(\hat{Y}_i)$で置き換えて、
$w_i$ (opt) $= 1 - m\bar{v} / \sum (\hat{Y}_i^S - \hat{Y}_i)^2$
というわけで、James-Steinタイプのウェイトになる。[←ちょ、ちょっと待って?! これがなぜJames-Steinタイプなの? というかタイプってなに? どこまでがタイプなの?]
もっとも、個々の分散$V(\hat{Y}_i)$が大きく変動するとき、共通の$w$を決めるのが難しくなる。また、プールされる小地域のなかに、他と似ていない小地域があるとき、Jame-Stein推定量は非効率になる。
もっと単純に$w_i$を決めようという路線もある。2つ紹介しよう。以下、地域の人口$N_i$の直接的な不偏推定を$\hat{N}_i$とする。
ひとつめ、Drew, Singh, & Choudhry (1982)。もし$\hat{N}_i \geq \delta N_i$だったら$w_i=1$、そうでなかったら$w_i=\hat{N}_i / \delta N_i$とする。$\delta$は適当に決める。
ふたつめ、Sarndal & Hidiroglou (1989)。もし$\hat{N}_i \geq N_i$だったら$w_i=1$、そうでなかったら$w_i=(\hat{N}_i / N_i)^{h-1}$とする。$h$は適当に決めていいんだけど、著者らは$h=2$を推奨。
なお、$\delta=1, h=2$とするとこの2つは等しくなる。
例として、人口$N$から$n$を単純無作為抽出する場面を考えよう。$\hat{N}_i = N(n_i/n)$である。
もし、$n_i$がその期待値$E(n_i)=n(N_i/N)$と同じくらい大きければ、($\delta=1$とすれば)どちらのやりかたでも$w_i=1$となる。つまり、他の小地域から値を借りてくることができなくなる。$E(n_i)$がいくら小さくてもそうなるわけである。
もし、$\hat{N}_i \lt N_i$だったら、($h=2$として)どちらのやりかたでも$w_i$は$n_i$の現象と共に減少する。合成推定量の重みがどんどん増すことになる。
もうひとつ欠点を挙げると、こういう方法は小地域以内の変動に対する小地域間の変動の相対的サイズを無視しているわけで、小地域間の等質性がどうであれ、重みは同じになる。
[うぐぐ... 途中から混乱しちゃって写経状態になってしまった。あとでゆっくり考えよう]
Holt, Smith & Tomberlin(1979)はこういうのを考えた。セル$(i,g)$の単位$l$について、
$y_{igl} = \mu_g + e_{igl}$
とする。大地域$g$の固定効果$\mu_g$のBLUP(最良線形不偏推定量)は$\hat{\mu}_g = \bar{y}_{.g}$である。ここから$Y_i$のBLUPは下式となる:
$\hat{Y}_i^B = \sum_g \hat{Y}_{ig}^C$
ただし$\hat{Y}_{ig}^C$は、直接推定量$\hat{Y}_{ig} = N_{ig}\bar{y}_{ig}$に重み$w_{ig} = n_{ig}/N_{ig}$、合成推定量$\hat{Y}_{ig}^S=N_{ig}\bar{y}_{ig}$に重み$1-w_{ig}$を与えて足し上げた推定量である。この方法もまた小地域間変動を無視しているわけだけど、モデルに小地域のランダム効果をいれることで改善できる。これが次節以降の手法のもとになっている。[なるほど...]
4. 小地域モデル
ここからは小地域のランダム効果をいれたモデル。大きく2つにわかれる。
ひとつめ。小地域の補足データ$\mathbf{x}_i = (x_{i1}, \ldots, x_{ip})^t$をいれる。関心あるパラメータを$\theta_i$として
$\theta_i = \mathbf{x}_i^t \beta + v_i z_i$
$z_i$は既知の正定数。$v_i$は$E(v_i)=0, V(v_1)=\sigma^2_v$、なんなら正規性を仮定してもよい。
ここで、直接推定量$\hat{\theta}$について
$\hat{\theta} = \theta_i + e_i$
かつ$E(e_i | \theta_i) = 0$(つまりデザイン不偏)、$V(e_i | \theta_i) = \psi_i$という風に仮定し、$\psi_i$は既知とみることが多い。実際には$\theta_i$が非線形な関数になっていたりして、不偏という仮定には無理があったりするんだけど。まあとにかく、
$\hat{\theta}_i = \mathbf{x}_i^t \beta + v_i z_i + e_i$
ということになる。線形混合モデルの特殊ケースである。
[あとで出てくるけど、こういうのをFay-Herriotタイプのモデルという由]
ふたつめ。測定単位の補足データ$\mathbf{x}_{ij} = (x_{ij1}, \ldots, x_{ijp})^t$をいれる。
$y_{ij} = \mathbf{x}_{ij}^t \beta + v_i + e_{ij}$
ここで$e_{ij} = \tilde{e}_{ij} k_{ij}$, $k_{ij}$は既知の定数で、$\tilde{e}_{ij}$は平均0, 分散$\sigma^2$、なんなら$v_i$と$\tilde{e}_{ij}$に正規性を仮定してもよい。こういうのをnested error 回帰モデルという。関心があるのは合計$Y_i$、ないし平均$\bar{Y}_i = Y_i / N_i$である。
このモデルは選択バイアスを考慮してないことに注意。したがって標本が単純無作為抽出でないとそのままでは使えない。
このモデルはいろんなところで使われていて[...中略...]、最後に触れるけど、拡張の提案も沢山ある。
5.1 EBLUP(分散成分)アプローチ
BLUPというのは、固定パラメータのBLUEみたいなもので、正規性を仮定することなく、線形不偏推定量のなかでMSE最小の奴を探すアプローチ。50年代に遡る。
さっきの$\theta_i$のほうのモデルでいうと、そのBLUPは...[中略] そのMSEは... [中略]。ところがこれらは分散成分$\sigma^2_v$を既知ととっている。実際にはふつう未知なわけで、これをまずMLとかREMLとかで推定する、というのがEBLUP。[... 中略... ]
では、nested error 回帰モデルのほうはどうなるか ... [...中略...]
5.2 EBアプローチ
まずデータの周辺分布からモデルのパラメータを推定し、それを使って関心あるパラメータの事後分布を得る、というアプローチ。
[...時間が無くなってきたのでメモ省略...]
5.3 HBアプローチ
モデルのパラメータの事前分布を決め、関心あるパラメータの事後分布を得る、というアプローチ。[... 心底面倒くさいので読み飛ばした...]
Datta & Ghosh (1991) はHB, EB, EBLUPを比較している。[...中略。要するに、点推定についていえば大差ない]
6. 事例
[略]
7.1 モデル診断
[略。適合度の話ではなくて、q-qプロット描きましょう的な話]
7.2 制約付き推定
[小地域の推定値の合計がなにかの既知の値にぴったり合わないと困る、というような場面の話。あるある、そういうの。時間がないので飛ばしたが、結構切実な話だ。いずれ読み直そう]
7.3 拡張
Fay-Herriotタイプのモデル:
- 標本抽出誤差に相関を入れようという話。
- 繰り返し測定をやっている場合の話。
nested error回帰モデル:
- 多変量化するという話。[あああ... そうか... これは結構切実だ... Fuller & Harter (1987)]
- 小地域のなかで2段階抽出しているときのモデル。
- $\mathbf{x}_{ij} = 1$のときのモデル。[? それってどう特別なのだろうか。Kleffe &: Rao(1992)]
- 反応が二値の場合のモデル。ロジスティック回帰モデルを使う。
- ポワソン回帰を使うモデル。死亡力とか疾病割合とかに使う。
- 二変量のモデル。2つのガンの同時死亡力について使う。
8. 結論
最後にひとこと。小地域の間接推定量を使うときには十分に気をつけるように。それはもともと、直接推定量の代替に過ぎないんだからね。
やれやれ、やっと終わった... 疲れた...
読了:Ghosh & Rao (1994) 小地域推定レビュー
2017年11月14日 (火)
Molina, I., Marhuenda, Y. (2015) sae: An R Package for Small Area Estimation. The R Journal, 7(1).
小地域推定のためのRパッケージsaeの解説。仕事の都合で読んだ。いっちゃなんだけど、面白くも何ともない話題だ... (すいません)
有限母集団$U$が$D$個の地域に相互排他的かつ網羅的に分割されている。サイズを$N_1, \ldots, N_D$とする。[ここで身構えたけど、有限母集団であることはこの後の話には顔を出さない。やれやれだぜ]
地域$d$における個人$j$の、ある関心ある変数の測定値の$Y_{dj}$とする。その地域の全員について$\mathbf{y}_d = (Y_{d1}, \ldots, Y_{dN_d})^t$とベクトルで書いちゃうこともある。目標パラメータを$\delta_d = h(\mathbf{y}_d)$とする(たとえば平均とか)。
各地域についてサイズ$n_d$の下位標本$s_d$が手に入っている。残りの部分を$r_d$とする。
saeパッケージが提供する小地域推定手法は以下の通り。
1. Fay-Herriotモデルに基づくEBLUP。
EPLUPってのはあれね、経験最良線形不偏予測量のことね。
Fay-Herriotモデルってのは79年にアメリカの所得推定のために提案されたモデル。$\delta_d$の直接推定量を$\hat{\delta}_d^{DIR}$とすると、それは不偏であって、
$\hat{\delta}_d^{DIR} = \delta_d + e_d, \ \ e_d \sim N(0, \psi_d)$
と書ける(これを抽出モデルという)。$\psi_d$は既知とする。いっぽう、地域レベルの補足変数ベクトルを$\mathbf{x}_d$として
$\delta_d = \mathbf{x}_d^t \mathbf{\beta} + u_d, \ \ u_d \sim N(0, A)$
とする(これをリンキング・モデルという)。$\beta$は全地域共通。$A$は当面既知とする。
これを併せると
$\hat{\delta}_d^{DIR} = \mathbf{x}_d^t \mathbf{\beta} + u_d + e_d$
という混合モデルになる。これをFHモデルという。[←意外にあたりまえな話でびっくり...これにわざわざ人名をつけるかね...]
さて、このモデル$\delta_d$のBLUP
$\tilde{\delta}_d^{BLUP} = \mathbf{x}_d^t \tilde{\beta}(A) + \tilde{u}_d(A)$
はすでに75年に得られていて、それはこれこれこうである[メモ省略]。問題はそれが$A$の関数だということ。じゃあ$A$はどうすんだと。しょうがない、$\hat{A}$をデータから推定しましょう、というのが、経験BLUP, 略してEBLUPである。
EBLUPは結局こういう形になる。
$\hat{\delta}_d^{EBLUP} = \hat{\gamma} \hat{\delta}_d^{DIR} + (1-\hat{\gamma}_d) \mathbf{x}_d^t \hat{\beta}$
ただし$\hat{\beta} = \tilde{\beta}(\hat{A})$。さて、謎の$\hat{\gamma}$というのが出て、よく見ると2つの項に重みをつけているんだけど、これは[...メモ省略...] $\hat{\gamma} = \hat{A}/(\hat{A} + \psi_d)$である。つまりこういうことだ。直接推定量$\hat{\delta}_d^{DIR}$が十分あてになる場合(=$\psi_d$が小さい場合)、EBLUPは直接推定量に近づく。そうでないとき、EBLUPは回帰による推定量に近づく。なるほど、うまいことできてんね。
$\hat{A}$の一致推定量はいろいろ提案されていて...[メモ略]
モデル比較にはAIC, BICが使えて...[メモ略]
というわけで、saeパッケージはEBLUPを求める関数 eblupFH() とそのMSEを解析的に求める関数 mseFH()をご提供しております。ただし、$\psi_d$は教えてやらないといけないので、事前になんらか推定しておくこと。surveyパッケージでもなんでも好きなパッケージでやるがよろしい。saeにもdirect()という関数がある。
計算例...[略]
[モデルとしてはごくふつうの階層回帰モデルなので、地域数が少なければMplusでどうにかなっちゃいそう。どのくらいスケールするのかが知りたいところだ...]
2. 空間Fay-Herriotモデルに基づくEBLUP。
せっかく空間の話してんのに、なぜただの階層モデルなんだよ、と御不満のみなさん。お待たせしました。地域効果$\mathbf{u} = (u_1, \ldots, u_D)^t$にSAR(1)をいれます。イエー。そう来なくっちゃー。
$\mathbf{u} = \rho_1 \mathbf{Wu} + \mathbf{\epsilon}$
$\mathbf{\epsilon} \sim N(\mathbf{0}_d, \sigma_1^2\mathbf{I}_D)$
$\mathbf{0}$は0の列ベクトル、$\mathbf{I}$は単位行列、添え字はサイズ。隣接行列$\mathbf{W}$は対角が0で隣接に1がはいっている行列を行ごとに標準化したものだと思いねえ。
このモデルのEBLUPも、その解析的なMSEも得られている。saeパッケージではeblupSFH(), mseSFH()をご提供している。ブートストラップMSEとして、パラメトリック版 pbmseSFH(), ノンパラ版 npbmseSFH()もご用意している。[どっち使えばいいんだろう? 何も書いてない]
計算例... [パス]
3. 時空間Fay-Herriotモデルに基づくEBLUP。
[いま関心ないのでパス]
4. BHFモデルに基づくEBLUP。
今度は補足変数が単位レベルで手に入っている場合について考える。地域$d$の単位$j$について$(Y_{dj}, \mathbf{x}_{dj}^t)$が得られているわけだ。
$Y_{dj} = \mathbf{x}_{dj}^t \mathbf{\beta} + u_d + e_{dj}$
$u_d \sim N(0, \sigma_u^2)$ (iid)
$e_{dj} \sim N(0, \sigma_e^2)$ (iid)
とする。Bettesesさんという人たちの88年の論文の著者頭文字をとってBHFモデルと呼ぶ。
このモデルのEBLUPも得られていて...[メモ省略]。eblupBHF(), pbmseBHF()をご用意している。
計算例... [パスしちゃったけど、使うときには読んだほうがよさそう]
5. BHFモデルに基づく非線形パラメータの経験最良推定量。
[いよいよ大ボスの登場だ...]
$\delta_d = h(\mathbf{y}_d)$が非線形である場合について考える。以下、$\mathbf{y}_d$を並び替え、$(\mathbf{y}_{ds}^t, \mathbf{y}_{dr}^t)^t$としておく[標本を前に持ってくるってことね]。
もはやBLUPではなく、線形性も不偏性も捨てて、MSEを最小化したい。すなわち、手元の$y_{ds}$に条件づけられた、$y_d$のパラメータ$h(y_d)$の、$y_{dr}$の分布を通じた期待値
$\tilde{\delta}_d^{B} = E_{y_{dr}}[h(y_d)|y_{ds}]$
が欲しいわけだ。
こういう場合は、まず$\beta, \theta=(\sigma_u^2, \sigma_e^2)^t$の一致推定量$\hat{\beta}, \hat{\theta}$をMLなりREMLなりで推定する。次にモンデカルロ法で期待値を近似し、$\delta_d$を推定する。これを経験最良(EB)推定量と呼ぶ。
具体的な手順は次の通り。まず$\hat{\beta}, \hat{\theta}$を推定する。次に、$\hat{\beta}, \hat{\theta}$の下での$h(y_{dr}|y_{ds})$を求める(BHFモデルの場合で言えば正規分布である)。で、そこからベクトル$y_{dr}$をたくさん生成する。それぞれの頭に手元の$y_{ds}$をくっつけて、たくさんの架空のセンサス・ベクトル$y_d$を得る。それぞれの$y_d$から$h(y_d)$を得る。これを平均し、$\hat{\delta}_d^{EB}$とする。
ここで大変なのは、長ーいベクトル$y_{dr}$をたくさん生成するというところ。実際にはもうちょっと楽な方法がある。BHFモデルより、$j \in r_d$について
$Y_{dj} = \mathbf{x}_{dj}^t \hat{\beta} + \hat{u} + v_d + \epsilon_{dj}$
$v_d \sim N(0, \hat{\sigma}_u^2(1-\hat{\gamma}))$
$\epsilon_{dj} \sim N(0, \hat{\sigma}_e^2)$
なので、この単変量を生成すれば良い。
さらにこういう手もある。たとえば、いま各地域の貧困生起率$\delta_d$に関心があるとしよう。$O_{dj}$を年収、貧困線を$z$として
$\delta_d = \frac{1}{N_d} \sum^{N_d} I(O_{dj} \lt z)$
と定義しよう。$O_{dj}$はどうみても歪んでいるのでBFHモデルは仮定できないが、たとえば$Y_{dj} = \log(O_{dj}+c)$というようにして正規近似できるかもしれない。$O_{dj}=T^{-1}(Y_{dj})$とすれば
$\delta_d = \frac{1}{N_d} \sum^{N_d} I(T^{-1}(Y_{dj}) \lt z)$
というわけで、一般化していえば$O_{dj}$のBox-Cox変換で正規性を得ることでどうにかなるかもしれない。
saeパッケージではebBHF(), pbmseebBHF()を御用意しており、Box-Cox変換とかも指定できます。...[などなど。途中で疲れて読み飛ばした]
計算例[パス]。
最後に、小地域推定のためのそのほかのRパッケージをご紹介。
- rsaeパッケージ。ロバスト・フィッティングの関数を提供。[2014年で止まっている]
- JoSaeパッケージ。分散行列がブロック対角な単位レベルモデルのみ。[2015年で止まっている]
- hbsaeパッケージ。REMLと階層ベイズ推定を提供。[2012年で止まっている]
- mmeパッケージ。多項線形混合モデル。[2014年で止まっている]
- saeryパッケージ。時間効果のはいった地域レベルのEBLUP。[2014年で止まっている]
- sae2パッケージ。時系列地域レベルモデル。[2015年で止まっている]
[ちなみにこのsaeパッケージは2015年で止まっている。CRAN Task ViewのOfficial Statistics & Survey Methodologyには小地域推定というセクションがあって、載っているのはrsae, hbsae, josae, そしてnlmeとlme4。このパッケージ載ってないじゃん....]
読了:Molina & Marhuenda (2015) 小地域推定のためのRパッケージsae
2017年10月27日 (金)
Bivand, R.S., Gomez-Rubio, V., Rue, H. (2015) Spatial data analysis with R-INLA with some extensions. Journal of Statistical Software, 63(20).
MCMCではない謎の方法(integrated nested Laplace approximation; 積分段階的ラプラス近似)で空間統計モデルを推定しちゃう謎のRパッケージ R-INLA の解説書。できればそういう難しい話とは関わり合いを持ちたくなかったんだけど。人生とはままならないものだ。
モデル。
観察$\mathbf{y} = \{y_i\}_{i=1}^{n}$が指数型分布族に従っていて、$y_i$の平均$\mu$が線形予測子$\eta_i$となんらかのリンク関数でつながっているとする。
$\eta_i = \alpha + \sum_j^{n_f} f^{(j)}(u_{ij}) + \sum_k^{n_\beta} \beta_k z_{ki} + \epsilon_i$
$f^{(j)}$は共変量$\mathbf{u}$のランダム効果を表す$n_f$個の関数。$\beta_k$は共変量$\mathbf{z}$の関数。
潜在効果のベクトルを$\mathbf{x} = \{\{\eta_i\}, \alpha, \{\beta_k\}, \ldots\}$と書く。
[←この論文、よくわからなくて困っているんだけど、このメモをとった翌日になってじっくり読み直してみて、混乱の根底はここだと気がついた。ここに$\eta_i$と$\alpha, \beta_k$の両方がはいる理由がよく分からない。$\mathbf{x}$は地点を要素にもつ、共変量の効果抜きの効果なのではないかと思うのだけれど...$\mathbf{x} = \{\epsilon_i\}$というのなら納得するんだけど...]
$\mathbf{x}$について、平均0, 共分散行列$Q(\theta_1)$の正規分布を仮定する。さらに、「$\mathbf{x}$はガウシアン・マルコフ確率場(GRMF)であると仮定する。これは$Q(\theta_1)$が数多くのマルコフ特性を満たすことを意味する。」[←素人を殺しに来たぞ... なにをいっているのかさっぱりだが、諦めずに読み進めることに]
$y_i$の分布は潜在効果$\mathbf{x}$に依存するが、他のハイパーパラメータ$\theta_2$にも依存しうる。[←どういうこと? $y_i$の方程式の右側に$\eta_i$以外の項があるってこと?] 以下では$\theta=(\theta_1, \theta_2)$としよう。
観察$y_i$は所与の$x_i, \theta$の下で互いに独立である。なぜなら$\mathbf{x}$はGRMFだから。[←わ、わからん...いったい何を云っているのだ...]
$\mathbf{x}$と$\theta$の事後分布はこうなる。
$\pi(\mathbf{x}, \theta | \mathbf{y})$
$\propto \pi(\theta) \pi(\mathbf{x} | \theta) \prod_{i \in I} \pi(y_i | x_i, \theta)$
$\propto \pi(\theta) |\mathbf{Q}(\theta)|^{\frac{1}{2}} \exp (-\frac{1}{2} \mathbf{x}^T \mathbf{Q}(\theta) \mathbf{x} + \sum_{i \in I} \log \pi (y_i | x_i, \theta) )$
ただし、$I$は観察データのインデクス($1, \ldots, n$)。$\mathbf{Q}(\theta)$は$\theta$の精度行列。最後に出てくる$ \log \pi (y_i | x_i, \theta)$は$y_i$の対数尤度。
[えーと、数式2行目から3行目に行くところで完全にギブアップなんだけど、信じましょう]
なお、INLAは指数型分布族だけではなく、たとえば混合分布であっても対応できる。$\mathbf{x}$について上記と異なる定式化も可能。事前分布$\pi(\theta)$についてもとても柔軟である。
さて、$\mathbf{x}$と$\theta$の周辺分布は
$\pi(x_i|\mathbf{y}) = \int \pi(x_i|\theta, \mathbf{y}) \pi(\theta|\mathbf{y}) d\theta$
$\pi(\theta_j|\mathbf{y}) = \int \pi(\theta|\mathbf{y}) d\theta_{-j}$
となるのだが、この右辺の項をだね、うまいこと近似する方法があるのだ。おまえのようなアホに説明することは到底不可能だが、ラプラス近似という方法をさらにごにょごにょしちゃうことによってなにかがどうにかなっちゃうのだ。[←こんな風には書いてないが、私としてはこんな感じ。正直、ここの数段落は全く理解できない]
というわけで、この方法を実装したソフトINLA、そしてそれをRで使うパッケージR-INLAを作ったので、使っても苦しゅうないぞ。
パッケージの具体的な使い方。最初はラティスデータの分析の話から。
まず次の点に注意。無相関なランダム効果を入れる場合、ランダム効果は
$u_i \sim N(0, \tau_u)$
と定義され、$\tau_u$じゃなくて$\log(\tau_u)$に事前分布が与えられる(デフォルトでは対数ガンマ分布)。
空間的相関をモデル化するためには隣接エリアを定義しないといけない。空間的自己相関は、平均0, 共分散が
$\Sigma = (1/\tau) Q^{-1}$
の正規分布でモデル化される。$Q$は、エリア$i$と$j$が隣接じゃない時には$Q_{ij}=0$となる。$Q$はふつうすごくスパースになる。[←あー!それでマルコフ場っていうのか!おとなりさんとしか相関しないというモデルなのね。やっと意味が分かった...そりゃあ計算も普通のクリギングより速くなるかもな]
こういうときの$Q$の決め方は、いろいろご用意してある。いくつかご紹介しよう。
ひとつめ、intrinsic CARモデル。$Q_{ii}$を隣接領域数$n_i$とし、 $Q_{ij}(i \neq j)$は隣接していれば$-1$, でなければ$0$。これは結局次のモデルになる。空間的ランダム効果を$v_i$、精度を$\tau_v$として, $i \neq j$のとき
$\displaystyle v_i | v_j, \tau_v \sim N\left( \frac{1}{n_i} \sum_{i \sim j} v_j, \frac{1}{\tau_v n_i} \right) $
$\log(\tau_v)$には事前分布として対数正規分布を与える。
その2、proper CARモデル。上のモデルをちょっと変えて分布を正則にする。$d$は正の値。
$\displaystyle v_i | v_j, \tau_v \sim N\left( \frac{1}{n_i+d} \sum_{i \sim j} v_j, \frac{1}{\tau_v (n_i+d)}\right)$
その3、もっと一般的なアプローチ。$I$を単位行列、$\rho$を空間的自己相関パラメータ、$C$を隣接行列, $\lambda_{max}$を$C$の最大固有値として
$\displaystyle Q = (I - \frac{\rho}{\lambda_{max}} C)$
で、$\log(\rho/(1-\rho))$に事前分布として正規分布を与える。
[こうやって列挙されてもねえ... それぞれのアプローチのモチベーションとか長短とかを教えてくださいよ...]
ここからは、具体的な分析例がたくさん。
大事そうなことがいろいろ書いてあるんだけど、力尽きたのでいったん読了としておく。ま、雰囲気がわかったのでよしとしよう。あれだね、バリオグラム関数はモデル化せず、隣との相関だけをモデル化するわけね。
読了:Bivand, Gomez-Rubio, Rue (2015) R-INLAパッケージで楽しい楽しい空間統計モデリング
2017年10月26日 (木)
Jing, L., De Oliveira, V. (2015) geoCount: An R package for the analysis of geostatistical count data. Journal of Statistical Software. 63(11).
カウントデータに特化した空間モデリングパッケージ geoCountについての紹介。実戦投入前の儀式として読んだ。
カウントデータの空間モデリングにはふつう一般化線形空間モデル(GLSM)が使われるが、実際にはいろいろ大変である。(1)なにより計算が大変。メモリが足らん。(2)MCMCがめっちゃ遅い。(3)MCMCが収束しない。
そこで新しいパッケージをお届けしよう。このパッケージは、C++で書いてあり速い。並列計算に対応しておる。そして効率的な新アルゴリズム。それではご紹介しましょう! geoCountパッケージです!
モデル。
$\{S(\mathbf{x}): x \in A\}$を正規確率場とする。$\mathbf{S} = (S(\mathbf{x}_i), \ldots, S(\mathbf{x}_n))^T$とする。
$Y_i | S(\mathbf{x}_i) \sim p(\cdot | \mu_i), \ \ i=1, \ldots, n$
$\mu_i = t_i g^{-1} (S(\mathbf{x}_i))$
$\mathbf{S} \sim N_n (D\beta, \Sigma)$
$(\beta, \theta) \sim \pi(\beta, \theta)$
説明しよう。
一本目。$\mu_i = E(Y_i | S(\mathbf{x}_i))$である。$p(\cdot | \mu_i)$については後述。
二本目。$g(\cdot)$はリンク関数である。
三本目。$D$はフルランク計画行列で、なかに共変量がはいっておる。$\Sigma = (\sigma_{ij})$は正定な共分散行列で、要素$\sigma_{ij}=\sigma^2 \rho(u_{ij})$はユークリッド距離$u_{ij}=||\mathbf{x}_i - \mathbf{x}_j||$で決まる(つまり等方性がある)。
四本目。$\pi(\beta, \theta)$はパラメータの事前分布。
$\rho(u)$としては、球面ファミリー、Maternファミリー、power exponentialファミリーをご用意しておる。
$p(\cdot | \mu_i)$とリンク関数$g(\cdot)$については、良く用いられる次の2つをご用意。
その1、ポワソン対数正規モデル:
$Y_i | S(\mathbf{x}_i) \sim Poisson(\mu_i)$
$\mu_i = t_i \exp(S(\mathbf{x}_i))$
その2、二項ロジット正規モデル:
$Y_i | S(\mathbf{x}_i) \sim Binomial(t_i, \mu_i/t_i)$
$\mu_i = t_i \exp(S(\mathbf{x}_i)) / (1+\exp(S(\mathbf{x}_i)))$
事前分布は次のようにご用意しております...[めんどくさいので略]
プログラミング上の工夫と並列処理...[パス]
アルゴリズムの工夫...[パス]
プログラム例... [パス。実際に使うときに読めばいいや]
他のパッケージとの比較。
- 同様のモデルはgeoRglmパッケージでも組めるけど、MCMCの際のパラメータ化のやり方が違っており...[よくわからんので中略... 何だか知らんが、うちらのほうがイケているよとのこと]。ただし、計算時間はこっちのほうがかかるかも。[←よく考えてみたらオイオイって話ですね。C++かつ効率的アルゴリズムで速いんちゃうんかと]
- INLAパッケージと比べると...そもそもINLAは潜在ガウスモデルを共分散関数として特徴づけるのではなくて、ガウス・マルコフ確率場(GMRF)として特徴づける。ベイズ推論の際、MCMCは周辺分布を確率的に近似しようとするが、INLAはラプラス近似とnumerical quadrature rules[←なにそれ]を用いて決定論的に近似する。
GMRFを使う利点は計算が速いこと。欠点は、定常性とか等方性といった特徴を持つ共分散関数を持つGRMFを構築するのが難しいこと。しかしこれには部分的解決策が提案されている。Matern族の一種である、ある族に属する共分散関数を持つガウス確率場は、ガウシアン・ホワイトノイズを持つある種のstochastic partial differential equations(SPDE)の解であることが示されているのだ。これらの解はある種のGMRFによって与えられる、ランダム係数を持つある種の基底関数へと拡張できることが示されている。その結果、Matern族の共分散関数を使ってモデリングつつ、それと対応する確率場をGMRFで表現して計算をすることができる。これがINLAで採用されているアプローチである。[←ああなるほど...って、何言ってんだかさっぱり分かんないよこの野郎]
geoCountと比べてみると、計算は確かに速い。結果は似てたり違っていたり。[←詳細略]
限界。
- データがでかいと遅くなる。たまに収束しないこともある。どちらの場合もINLAがおすすめ。
- ポワソン分布のときは対数リンク、二項の場合はロジットリンクしか選べない。実はidentityリンクのほうがいいという話もある[←へー]。
- 事前分布についても改善の余地がある。
云々。
2017/10/27追記: INLAと比較しているくだりについて、メモを追加。
読了:Jing & De Oliveira (2015) RのgeoCountパッケージ
2017年9月28日 (木)
Finley, A.O, Banerjee, S., Gelfand, A. (2015) spBayes for large univariate and multivariate point-referenced spatio-temporal data models. Journal of Statistical Software, 63(13).
Rのベイジアン空間統計パッケージ spBayes の紹介。仕事の都合で大急ぎで読んだ。
spBayesパッケージが扱うベイジアン・ガウシアン空間回帰モデルは、一般化して書くと、以下の階層線形混合モデルである。
$p(\mathbf{\theta})$
$\times N(\mathbf{\beta} | \mathbf{\mu}_\beta, \mathbf{\Sigma}_\beta)$
$\times N(\mathbf{\alpha} | \mathbf{0}, \mathbf{K}(\mathbf{\theta}))$
$\times N(\mathbf{y} | \mathbf{X\beta} + \mathbf{Z}(\mathbf{\theta}) \mathbf{\alpha}, \mathbf{D}(\mathbf{\theta}))$
まず4つめからいこう。$\mathbf{y}$は$n \times 1$の観察ベクトル。$\mathbf{X}$はサイズ$n \times p$の既知の共変量で、$\mathbf{\beta}$は$p \times 1$の傾きベクトル。$\mathbf{Z}$は$n \times r$の行列で、$\mathbf{\alpha}$は$r \times 1$の正規ランダムベクトル。$\mathbf{D}$は$n \times n$の共分散行列。
2つめと3つめは、それぞれ$\mathbf{\beta}, \mathbf{\alpha}$の事前分布を表している。
で、観察ノイズの共分散行列$\mathbf{D}$, $\alpha$にかける係数$\mathbf{Z}$、潜在変数の共分散行列$\mathbf{K}$、の3つは、未知のプロセス・パラメータ$\theta$の関数となっている。その事前分布が1つめ。
プロセス・パラメータ$\mathbf{\theta}$をどうやってサンプリングするかというと...[パス]
傾き$\mathbf{\beta}$とランダム効果$\mathbf{\alpha}$をどうやってサンプリングするかというと...[パス]
低ランクモデル、つまり$r$が$n$よりも全然小さいときはどうするかというと...[パス]
予測はどうするかというと...[パス]
具体的なモデリングの話をしましょう。
その1、フルランク単変量ガウシアン空間回帰。
位置を$\mathbf{s}$として、
$y (\mathbf{s}) = \mathbf{x} (\mathbf{s})^T \mathbf{\beta} + w(\mathbf{s}) + \epsilon(\mathbf{s})$
3つめはホワイトノイズで、位置と無関係にiidに$N(0, \tau^2)$に従う。ここで$\tau^2$をナゲットと申します。[←バリオグラムの特徴についての特有の言い回し。これ、きっと鉱業の方面に由来しているんだろうなあ]
2つめの$w(\mathbf{s})$がガウシアン空間過程を表す。その共分散関数を$C(s,t)$として、定常性$C(s,t) = C(s-t)$と等方性$C(s,t) = C(||s-t||)$を仮定し、さらに
$C(s,t) = \sigma^2 \rho(s, t; \phi)$
とする。相関関数$\rho(s, t; \phi)$について、spBayesパッケージは指数関数、Matern関数などをご用意しておりますです。
最初の一般化した式と比べると、$\alpha$は$w(\mathbf{s})$。係数$\mathbf{Z}(\mathbf{\theta})$は単位行列。$\mathbf{K}(\mathbf{\theta})$は共分散関数$C(s,t)$。$\mathbf{D}(\mathbf{\theta})$は単位行列にナゲットを掛けた奴。つまり、ここでの$\mathbf{\theta}$は、ナゲット$\tau^2$、分散$\sigma^2$、そして相関関数のなんらかのパラメータ$\mathbf{\phi}$なわけです。
分析例。spLM関数を使って...[メモ省略]
その2、低ランク予測過程モデル。[ちゃんと読んでないけど、低ランクモデルの一種としてpredictive process modelというのがあるらしい。$r$個の位置をあらかじめ決め打ちしちゃうのかな?よくわからんけどパス]
こんどは多変量の場合... [パス]
非ガウスの場合として、二値のロジット回帰ないしプロビット回帰、カウントのプロビット回帰、をご用意しております...
最後に、動的時空間モデルについて... [パス]
...というわけで、ほとんど読んでないけど、なにができそうかがなんとなく分かったので読了ということにしておこう。だんだん飽きてきたし。[←ひどいなあ]
読了:Finley, Banerjee, Gelfand (2015) RのspBayesパッケージ
2017年9月21日 (木)
佐藤忠彦・樋口知之 (2013) ビッグデータを用いたマーケティングモデル : データ同化適用の可能性. シミュレーション, 32(4), 50-56.
泣く子も黙る(?) 偉い先生方による、「データ同化はマーケティングにも適用できるんじゃないか」という意見論文。いまやデータは山ほどあるんだから、状態空間モデルで消費者異質性を捉え、エージェント・ベースでシミュレーションやればいいじゃん、という主旨。
勉強不足でよく理解できていないところもあるのだけれど、あまりに面白かったので、こないだの業界団体のセミナーでネタにしてしまった... 精進いたしますです。
読了:佐藤・樋口(2013) マーケティングにおけるデータ同化の可能性
2017年9月14日 (木)
Zammit-Mangion, A., Cressie, N. (2017) Fixed Rank Kriging: The R Package.
Rの空間統計パッケージFRKのvignette。適当にめくるだけのつもりが、面白くてついつい読み耽ってしまった。ま、最初の3頁だけだけど。
FRKとはFixed Rank Kriging (固定ランク・クリギング)の略である。
いわく。
FRKと似たパッケージとして以下がある。[このくだり、まったく意味がわからない箇所もあるが、後日のために逐語訳する。精度行列というのは共分散行列の逆行列のことね]
- LatticeKrig: Wendland 基底関数(コンパクトなサポートを持つ)を使って、空間的相関を持つ過程を分解する。マルコフ想定によって精度行列(後述する$\mathbf{K}^{-1}$)を構築し、これらの基底関数の係数のあいだの依存性を記述する。我々が言うところの微細スケールプロセス変動[BAU内変動のこと?]を提供するのではなく、過程のスケールの微細さは、利用されている基底関数の微細さが限度となる。しかし、計算上のモチベーションにより$\mathbf{K}^{-1}$にスパース性が付与されているので、このスケールは比較的に微細なものとなりうる。基盤となるモデルは、ガウシアン・マルコフ確率場(GMRF)仮定を用いて構築されたスパースな精度行列を用いており、その結果、計算は効率的であり、また多数(10000以上)の基底関数が使えるようになっている。
- INLA: モデル・フィッティングと予測のための汎用パッケージ。空間モデリング・時空間モデリングに使用する場合は次のように仮定するのが一般的である。まず、基底関数として三角形の「テント」関数を仮定する。係数は正規分布しその精度行列はスパースだと仮定する。その結果としてガウシアン過程の共分散関数はMaternクラスの空間共分散関数の近似となる。このように、INLAのアプローチはLatticeKrigと多くの点で共通している。INLAの主要な利点は、いったん空間モデルないし時空間モデルをつくってしまえば、パッケージが提供しているすべての近似推論機構と尤度モデルが使えるようになる、という点である。
- spBayes: Kang & Cressie (2011)が開発したベイジアンFRKでは、空間基底関数は固定され$\mathbf{K}$に事前分布が付与される。Banerjee et al (2008)の予測過程アプローチもベイジアンFRKの一種だとみなすことができる。このアプローチでは、基底関数は空間ランダム効果の共分散関数から構築され、従ってパラメータに依存する。この予測過程を実装したのがspBayesパッケージである。多変量の空間・時空間過程を扱うことができる。多様な尤度モデルについて、MCMCによるベイズ推論を行う。結果として得られる基底関数はパラメトリックな共分散モデルに基づいて構築されているので、パラメータについての事前分布に基づき、MCMCの反復ごとに、新しい基底関数が生成される。そのため計算が遅くなることがあり、予測過程におけるノットの数を小さくしておく必要がある。
モデルの概要。
FRKパッケージはふつうのバリオグラム・モデルではなく、空間ランダム効果モデル(SRE)で問題を定式化する。
地点$\mathbf{s}$における量$Y(\mathbf{s})$に関心があるとしよう。古典的な空間モデルなら、共変量ベクトルを$\mathbf{t(s)}$、回帰係数ベクトルを$\mathbf{\alpha}$、空間的相関があるランダム効果を$\upsilon(\mathbf{s})$、空間的相関がないランダム効果を$\xi(\mathbf{s})$ととして
$Y(s) = \mathbf{t(s)}^\mathrm{T} \mathbf{\alpha} + \upsilon(\mathbf{s}) + \xi(\mathbf{s})$
ただし$E(\upsilon(\cdot)) = E(\xi(\cdot)) = 0$、とするところである。
ここで、
$\upsilon(\mathbf{s}) = \sum_{l=1}^r \phi_l(\mathbf{s}) \eta_l$
とする。$\mathbf{\eta} \equiv (\eta_1, \ldots, \eta_r)^{\mathrm{T}}$はランダムベクトル、$\mathbf{\phi} \equiv (\phi_1(\ldots), \ldots, \phi_r(\ldots))$はあらかじめ定められた空間基底関数である。
[理解するまでに手間取ったのだが、ここがこの話のミソなのである。この$\mathbf{\phi}$こそがバリオグラム・モデルの変わり果てたお姿なのだと思う。話の先取りになるけど、FRKパッケージにはデータとバリオグラム関数の形状を指定すると$\mathbf{\phi}$の行列を自動的に作ってくれる関数がある。それを使わずに自力で作ってもよい]
さて、空間を$N$個の重ならない小さな空間に完全に分ける[メッシュみたいなものであろう]。これを基本地域単位 BAU と呼ぶ。BAUの数$N$は基底の数$r$よりずっと大きいものとする。
それぞれのBAUにおいて$Y(\mathbf{s})$を平均する。つまり、$i$番目のBAU $A_i$において
$Y_i \equiv \frac{1}{|A_i|} \int_{A_i} Y(\mathbf{s}) d(\mathbf{s})$
このレベルでも、
$Y_i = \mathbf{t}_i^\mathrm{T} \mathbf{\alpha} + \upsilon_i + \xi_i$
と分解できる。
以下、各項について順にみていくと...
BAUレベルの共変量$\mathbf{t}_i$はこうなる。
$\mathbf{t}_i \equiv \frac{1}{|A_i|} \int_{A_i} \mathbf{t}(\mathbf{s}) d \mathbf{s}$
BAUレベルの相関ありランダム効果$\upsilon_i$は
$\upsilon_i \equiv \frac{1}{|A_i|} \int_{A_i} \upsilon(\mathbf{s}) d \mathbf{s}$
ここに$\upsilon(\mathbf{s}) = \mathbf{\phi}(\mathbf{s}) \mathbf{\eta}$を代入すると... [面倒くさいから書かないけど] 係数ベクトルと$\mathbf{\eta}$の積になる。係数の部分を取り出して$N \times r$行列$\mathbf{S}$とすれば、$\mathbf{\upsilon} = \mathbf{S\eta}$となる。なおこのパッケージでは、実際にはそれぞれの係数について積分するのではなく、BAUは十分に小さいとみて、BAUの重心$\mathbf{s}_i$を使い$\mathbf{\phi}(\mathbf{s}_i)$と近似する。
$\mathbf{\eta}$について。このパッケージでは、$\mathbf{\eta}$を平均0, 共分散行列$\mathbf{K}$の正規ベクトルとする。$\mathbf{K}$は自由推定してもいいし、なんらかの構造を与えても良い。前者をFRK-Vと呼び(Vはバニラの略)、後者をFRK-Mと呼ぶ(Mはモデルの略)。
相関なしのランダム効果について。$\xi(\mathbf{s})$についてはもう関心を持たない。BAUのレベルでの平均$\xi_i$について、平均0, 分散$\sigma^2_\xi \nu_{\xi i}$の正規分布に独立に従うとする。ここで$\sigma^2_\xi$は全BAUを通したパラメータ、$\nu_{\xi i}$は既知の定数でBAUの異質性を表す。
ここまでをまとめよう。BAUレベルの式
$Y_i = \mathbf{t}_i^\mathrm{T} \mathbf{\alpha} + \upsilon_i + \xi_i$
を書き直して
$\mathbf{Y} = \mathbf{T} \mathbf{\alpha} + \mathbf{S} \mathbf{\eta} + \mathbf{\xi}$
$\mathbf{T}$は行数$N$の共変量行列、$\mathbf{\alpha}$は係数ベクトル。$\mathbf{S}$は$N \times r$の行列、$\mathbf{\eta}$は長さ$r$のランダム効果ベクトルでその共分散行列が$\mathbf{K}$。$\mathbf{\xi}$は長さ$N$のランダム効果ベクトルでその共分散行列は$\sigma^2_\xi \mathbf{V}_\xi$、ただし$\mathbf{V}_\xi$は既知。
さて、ここまで考えてきた$Y(\cdot)$というのは潜在過程であって、観察自体は$m$個のフットプリントについてのみ可能であるとしよう。ここでフットプリントとは、ひとつ以上のBAUからなる地域のことで、重複していてもかまわない。$m$は$r$よりずっと大きいものとする。なお、$m$はBAUの数$N$より大きくても小さくてもよい。
フットプリント$B_j$における観察値は次の3つの和とする[面倒くさいので式は省略]:
- $B_j$にそこに含まれるBAUの$Y_i$の平均。
- $B_j$に含まれるBAUのそれぞれが持つ体系的誤差を表す$\delta_i$の平均。平均0, 分散$\sigma^2_\delta \nu_{\delta i}$の正規分布に独立に従うものとする。ここで$\nu_{\delta i}$は既知。
- $B_j$の測定誤差$\epsilon_j$。平均0の正規分布に独立に従うものとする。[この分散はパラメータにしない模様]
結局、推定するパラメータは、バニラFRKでは$\mathbf{\alpha}, \sigma^2_\xi, \sigma^2_\delta$, そして$\mathbf{K}$ の4つ。モデルFRKでは、$\mathbf{K}$の代わりに$\mathbf{K}$について組んだモデルのパラメータがはいることになる。
[以下、力尽きたので、ほとんど読んでいない]
パラメータはEMアルゴリズムで推定する...
このモデルにより、任意の予測領域についての予測が可能で...
コード付きの事例が2つ...
時空間でクリギングする事例が2つ...
空間異方性を持たせるには...
既定関数とBAUを手動で与えるには...
今後の課題:
- 現状ではFRKはanalytic formによるlocal basis functionsを用いているのだが、関数形が未知の基底関数、たとえば経験直交関数などにも対応したい...[ごめんなさい、なにいってんだかさっぱりわかんない]
- 現状ではBAUより下の分散は無視してるんだけど、これを拡張して...
- 三次元超平面とかに拡張して...
- 現状では地点数が数十万になると速度が落ちるので...
- BAUの大きさが違う場合に拡張して...
云々、云々。
...というわけで、正直なところ頑張って読んだのは最初の3頁だけなんだけど、固定ランク・クリギングという発想がよくわかった(ような気がする)。$m$個の観察値の後ろに$N$個のメッシュの値を考え、そのまた後ろにもっと少ない$r$個の隠れた値を考えるわけね。時系列モデルで言うと、観察変数のうしろに状態変数を考え、そのまた後ろにたまにしか動かないような状態変数を考えているわけだ。
だから大データでもクリギングが楽だ、ってわけね。なるほどねー、面白いなあ。(←すっかりわかったような気分)
読了:Zammit-Mangion & Cressie (2017) 大きな空間データを固定ランク・クリギングするRパッケージ FRK
調べ物をしていて偶然知ったんだけど、厚生労働省が発表している市区町村別生命表にはベイズ推定の考え方が入っているのだそうだ。これ、いわゆる小地域推定という奴で、ほんとに市区町村別に標本統計量をとっちゃうと、さすがに死亡者数が足りない、という事情であろう。
ううむ。別に生命表を作る用事はないけれど、私の仕事とも通じる、ちょっと切実な話だ...
府川哲夫, 清水時彦 (1990) 小地域生命表のベイジアン・アプローチ. 人口学研究, 13, 37-49.
というわけで、なにをどうやっているのか調べてみた。著者らの肩書は厚生省大臣官房統計情報部となっている。いまでもこの論文の方法で市区町村別生命表を作っているのかどうかわからないけど、仕事の参考になるかなと思って。
市区町村x性x年齢階級別に考える。人口$p$は既知。死亡数$d$を$Bin(p, \theta)$の実現値とみる。$\theta$の事前分布を$Beta(\alpha,\beta)$とする。[...途中を端折って...] $\theta$の事後分布は$Beta(\alpha+d, \beta+p-d)$となりますわね。
さて、問題は事前分布なんだけど...
以下、使うデータは昭和62年まで5年間の人口動態統計の死亡数、そして昭和60年国勢調査の総人口である。人口はあらかじめ5倍する。
都道府県を市部と郡部に二分する。ある市区町村の親地域[←そう書いてはいないが簡略のためにこうメモする]は、市区ならば当該都道府県の市部、町村ならば当該都道府県の郡部とする。
注目している市区町村を$i$、その親地域を$K$とする。ある性x年代について、$i$の人口を$p(i)$、租中央死亡率を$q(i)$とする。
$K$に属する子地域の租中央死亡率の平均$Q$と分散$V$を求める。重みを$w(i)=p(i)/\sum p(i)$として
$Q = \sum w(i) q(i)$
$V = \sum w(i) (q(i) - Q)^2$
で、$i$の事前分布パラメータ$\alpha, \beta$を、ベータ分布の平均と分散が$Q, V$になるように決めちゃうのである。[←うおおおおお... なんというか、実に素朴なアプローチだ...]
著者らいわく、要するにこういうことだ。生命表をつくるとき、中央死亡率を$d/p$とするのが伝統的統計学。$(\alpha+d)/(\alpha+\beta+p)$とするのがベイズ統計学。それだけの違いだ。[←いやいやいや、それは母比率の事前分布をベータ分布とみればそうなるでしょうけど... 問題は事前分布のパラメータ$\alpha, \beta$をどう決めるかでしょう...]
後半は推定された市区町村別生命表の観察。パス。
...いやあ、ものすごーくシンプルな経験ベイズ・アプローチというか... 正直、わたくし、びびりました。まじですか。そんな簡単な話でいいんすか。
著者らも最後に触れているけど、親地域の決め方はこれでいいのか。人の生存曲線ってのはどの都道府県の市部/群部かで決まるわけ? それってあまりに行政区分に依存していないか...?
いや、しかし、公的統計というのはこのくらいシンプルでないといかんのかもしれない。ついでにいうと、私の仕事もこのくらいカンタンに考えたほうがいいのかもしれない...少なくともそういう局面はありうる...
などなど、終電車の酔っ払いたちに揉まれながら論文に目を通し、あれこれ考えさせられました。
読了:府川, 清水 (1990) 厚労省による市区町村別生命表はベイズ推定されている
2017年9月13日 (水)
矢島美寛, 平野敏弘(2012) 時空間大規模データに対する統計的解析法. 統計数理, 60(1), 57-71.
正直なところ、内容の9割くらいはまっっっったく理解できないんだけど、しかし今後頑張れば理解できるようになる日が来るという問題でもないと思うので、読了にしておく。
ま、空間統計モデル関連でときどき見かける謎のタームについて若干の知識を得ることができたので、よしとしよう。
- えーと、covariance taperingというのは、真の空間的自己共分散をもっと簡単な関数で近似しちゃうということらしい。結局、どうやら自己共分散行列がスパースになって、逆行列を求めるのがむしろ簡単になるらしい。あのー、それってバリオグラムの右のほうを無視するっていうイメージなんでしょうか...(←全然理解できていない...)
- 共分散行列を低ランク近似しちゃうという路線もあって、これは結局、因子分析みたいに潜在的な確率場を考えていることになるのだそうである。で、その一つが、Rパッケージで見かけるfixed rank kriging (固定階数クリギング)なのでそうである。へええー。
読了:矢島・平野(2012) 大規模空間データの統計モデリング
Graler, B., Pedesma, E., Heuvelink, G. (2016) Spatio-Temporal Interpolation using gstat. The R Journal, 8(1). 204-218.
えーと、Rにはクリギング(空間データ補間手法の一種)のためのパッケージがいっぱいあって、なにがなにやらわからないので、ひとまず古株らしきgstatパッケージの紹介を読んでみた次第(vignetteの一つに挙げられている)。R Journalとはいえ、すごく小さな字で14頁...
えーと、gstatは時空間統計のための機能を提供しているのが売り。同様のパッケージにRandomFieldsがある。ほかにもあるので、CRAN Task Viewの該当項目をみるように。
以下では、空間領域を$S$, 時間領域を$T$とする。ガウシアン時空間確率場$Z$について考える。観察を
$z = (z(s_1, t_1), ..., z(s_n, t_n))$
とする(同一の地点での反復測定や異なる地点での同時測定もありうるとする)。$z$に基づき$Z$のモデルをつくりたい、というのがお題。
$Z$は定常で、空間的に等方性があると仮定する。つまり、この確率場は平均$\mu$と共分散関数$C_{st}$で特徴づけられ、共分散は空間距離$h$と時間距離$u$のみに依存すると考える($h$と$u$は正の実数)。なおこの仮定を取っ払って拡張するのは容易で、たとえば普遍クリギングは時間なしのケースでの非定常性への拡張である。
以下では次のように書く。
$Cov_{st}(h,u)=Cov(Z(s,t), Z(\tilde{s}, \tilde{t}))$
ただし$h=||s - \tilde{s}||, u = |t - \tilde{t}|$とする。
時空間バリオグラムを
$\gamma_{st} = C_{st}(0,0) - C_{st}(h,u)$
と書く。
共分散関数が推定できたとしても、共分散行列から線形予測子を求めるためには逆行列計算が必要なのだが、大変なので、いろいろ工夫がある(時間的マルコフ構造を使うとか)。spTimerパッケージ、spBayesパッケージ, spateパッケージ, INLAパッケージなどがある。
...というわけで、ここからが本題なんだけど、ざっと読み進めたら、空間領域のバリオグラムモデルと時間領域のバリオグラムモデルがあるとして(異なるファミリーでも構わない)、時空間バリオグラムモデル$\gamma_{st}$をどう定義するか(つまり共分散関数$C_{st}$を定義するか)、という説明であった。パッケージ自体の紹介じゃなかった。読むものを間違えたみたい。
めんどくさくなったので途中から流し読み、メモは省略。でも、私にも理解できる範囲に関していえば面白い内容であった。当面は時空間モデルを作る用事がないけれど、いつか役に立つこともありそうだ。
時空間モデルともなると、バリオグラムは曲面となる(時間距離と空間距離がX, Yとなる)。ひえええ。それでも著者らいわく、やっぱしバリオグラムモデルのフィッティングは、MSEとかだけじゃなくて、ちゃんと視覚化してチェックしないといけないそうだ。大変だなあ。
読了:Graler, Pedesma, Heuvelink (2016) Rのgstatパッケージで時空間クリギング
Roberts, M.E., Steward, B.M., Tingley, D. (in preparation) stm: R package for structural topic models.
構造的トピックモデルのRパッケージ stm のvignette。いつ書かれたものかもよくわからないのだが、J. Statistical Softwareの判型になっているから、投稿中かなにかなのかも。
いわく。
構造的トピックモデル(STM)とは、トピックモデルに文書に付与されたメタデータを統合したモデル。トピックを抽出すると同時に、トピックとメタデータとの関連性を推定する。
モデルの説明。
通常のトピックモデルと同じく、語のカウントの生成モデルを考える。なお、メタデータがなかったら、STMはBleiらの相関トピックモデルと同じである。
文書を$D_1, \ldots$, 単語を$w_1, \ldots$, トピックを$T_1, \ldots, T_k$とする。文書$d$のメタデータを$X_d$とする。メタデータは次の2種類に分けて指定できる。
- 文書とトピックの関連性の強さ(topical prevalence)を説明する共変量。[下記の生成モデルでいうと、$\mathbf{\theta}_d$の生成に使う共変量]
- 文書内の単語(topical content)を説明する共変量。[$\beta_{d,k}$の生成に使う共変量]
生成モデルは次の通り。
- 文書レベルのトピックへの注意をドローする。
$\mathbf{\theta}_d | X_d\gamma, \Sigma \sim LogisticNormal(\mu=X_d\gamma, \Sigma)$
[さっそくここで躓いてしまったんだけど... $\mathbf{\theta}_d$ (原文では太字ではなく上矢印)はカテゴリ数$k$の離散確率分布だと思うんだけど? これだと要素の和が1にならないのではないだろうか] - 文書ごとの単語分布をつくる。
$\beta_{d, k} = \exp(m + \kappa_k + \kappa_{g_d} + \kappa_{i = (k, g_d)})$
ただし、$m$はベースライン単語分布, $\kappa_k$はトピック$k$における偏差、$\kappa_{g_d}$は共変量グループ$g$における偏差, $\kappa_{i = (k, g_d)}$は交互作用。[ここもよくわからんのだが、$\beta_{d, k}$は語彙数の長さを持つ離散確率分布だろうに、なぜ$\theta$と同様に上矢印をつけないのか。和が1だという制約はどこでかかるのだろうか] - 以下、文書の各単語($n \in 1, \ldots, N_d$)ごとに、
- 単語ごとにトピックをドロー:
$z_{d,n} | \mathbf{\theta}_d \sim Multinomial(\mathbf{\theta})$ - 単語をドロー:
$w_{d,n} | z_{d,n}, \beta_{d, k=z} \sim Multinomial(\beta_{d, k=z})$
- 単語ごとにトピックをドロー:
推定はsemi EMアルゴリズムを用いた変分的推定である、とのこと。[よくわからんが変分ベイズ推定だということかしらん]
stmパッケージの使い方の説明。
初期値決定はスペクトル分解による決定論的方法がお勧めだが、まず崩壊型ギブスサンプラーでLDAモデルを推定するとか、ランダムに決めるというオプションもある。
ちゃんと読んでないので省略するか、データ準備からモデル評価、トピック数決定、結果の視覚化まで、これでもかっていうくらいにいろんなヘルパー関数がある。
云々, 云々...
他のパッケージとの比較。
相関トピックモデルはtopicmodelsパッケージでも推定できるけど、こっちのほうがパフォーマンスが良い。云々, 云々...
... とかなんとか。途中からはパラパラめくっただけだけど、いずれに必要になったらきちんと読もう。
読了: Roberts, Steward, Tingley (in preparation) 構造的トピックモデルのRパッケージ stm
2017年9月11日 (月)
Ribeiro, P.J., Christensen, O.F., Diggle, P.J. (2003) geoR and geoRglm:
Software for Model-Based Geostatistics. Proceedings of the 3rd International Workshop on Distributed Statistical Computing (DSC 2003).
Rの空間統計パッケージ geoR と geoRglm の紹介。実戦投入前の儀式として読んだ。うっかりdraftのほうを読んじゃったんだけど、中身はだいたい同じだろう、と思うことにする。
えーっと、geodataというクラスを用意しています。簡単にプロットできるし、簡単に経験バリオグラムが描けます。
空間統計モデルとして、geoRではガウシアンモデル、ならびにbox-cox変換した従属変数についてのガウシアンモデルが組めます。geoRglmでは、box-cox変換した従属変数についてのポワソンモデル、ならびにロジットリンクの二項モデルが組めます。パラメトリックなバリオグラム・モデルを使います(デフォルトはMeternモデル)。推定量としてMLとREMLをご用意してます。いくつかのクリギング手法をご用意してます。あっ、そうそう、ベイジアン・クリギングもできますよ、自前でMCMCの機能を持っています。
云々、云々。
読了:Ribeiro, Christensen, Diggle (2003) Rの空間統計パッケージ geoR と geoRglm
2017年9月 9日 (土)
Carlin, B.P., & Louis, T. (2000) Empirical bayes: Past, Present and Future. Journal of the American Statistical Association, 95(452), 1286-1289.
以前、人と話していて、ふと「経験ベイズ」って正確にはどういう意味なんだろうか...と不思議になった。何をもって経験ベイズと呼ぶのか。それは手法か哲学か。
ろくに知識もないのにあれこれ考えてもしょうがないので、検索で引っかかったやつをざっと読んでみた。この雑誌のこの号では"Vignettes for the Year 2000"と題し、「これからの○○はどうなるか」的な短い解説を22個のトピックについて載せた模様で、これは「経験ベイズ」についての寄稿。他のトピックは「ベイズ統計」「ブートストラップ」「変数選択」といった感じ。
いわく。
経験ベイズ(EB)という言葉はあいまいで、モデルのクラスを指すこともあれば、分析のスタイルを指すこともあれば、統計的手続きの哲学を表すこともあるんだけど、どんな定義であれ、まずはフル・ベイジアンとの違いから始めるという点では共通している。
観察データ$y=(y_1, \ldots, y_n)$の分布を、未知パラメータ$\theta=(\theta_1, \ldots, \theta_k)$によって$f(y|\theta)$とモデル化したとしよう。頻度主義の立場からみると$\theta$は固定されているが、ベイジアンは事前分布$\pi(\theta|\eta)$を想定する。$\eta$が既知ならばベイズ・ルールを適用して、事後分布$p(\eta|y, \eta)$が得られる。
さて、$\eta$が未知である場合、$\eta$についての情報は$y$の周辺分布$m(y|\eta)$によって捉えられている。さらに、もし$f$と$\pi$が共役なら(すなわち、もし$p(\eta|y, \eta)$が$\pi$と同じ分布族に属していたら)、$m(y|\eta)$は閉形式で得られる。
フル・ベイジアン(またの名をベイズ経験ベイズ, 略してBEB)ならば、ハイパー事前分布$h(\eta|\lambda)$を想定するところである。このとき、事後分布は結局
$p(\theta|y, \lambda) = \int p(\theta|y, \eta) h(\eta|y, \lambda) d\eta$
となる。事後分布とは、$\eta$を固定したときの事後分布と、データで更新したハイパー事前分布の混合となるわけである。
いっぽう経験ベイズでは、$\eta$をデータから推定する(たとえば周辺最尤推定量で)。で、事後分布として$p(\theta | y, \hat{\eta})$を使う。
BEBもEBも、$\eta$についての情報をデータから得ているという点では同じことである。ちがいは一番上の分布$h$を含めているかどうかだ。BEBの美点は$\eta$にまつわる不確実性をうまく組み込んでいるという点で、欠点は$h$の選択が難しいという点である。
EBによる$p(\theta | y, \hat{\eta})$は、$\eta$の不確実性を考慮していない分、狭くなる。これをどうにかしようというのが、EBの世界の長年の課題であった。
一つのアプローチはパラメトリックEBである。このアプローチでは、下から2番目の分布$\pi(\theta|\eta)$をパラメトリックな形式で与え、あとは$\eta$さえが決まれば事後分布が完全に決まるようにする。Morris(1983 JASA), Casella(1985 Am.Stat.)を参照のこと。
もうひとつのアプローチはノンパラメトリックEB。最後から2番目の分布を単に$\pi(\theta)$とする。この路線はRobbins(1955)に始まる。変種としてノンパラメトリック最尤法というのもある。
皮肉なことに、EBの歴史はそれほど「ベイジアン」ではない。[頻度主義の観点からみて良い性質を持つ決定ルールが目指されていたという話... 略]
パラメトリックEBはStein推定と強い関係があって...[略]
初期EBは、まず事前分布を決めるためにデータを使い、事後分布を求めるためにもう一度データを使った。この方式は当時のベイジアンたち(多くは主観主義的ベイジアン)に忌避された。SavageはEBを指して、ベイジアンの卵を割っておきながらベイジアンのオムレツを拒否する奴らだと呼んだ。でもEBは、その後の客観主義的ベイジアンを準備し、その発想はのちにGibbsサンプラーの登場によって花開くこととなる。
EBは現在普及しており...[略]
メタ分析とも関係があって...[略]
まだまだ進化しております、たとえば...[略]
EBの未来はどうなるか。MCMCがこんだけ普及すると、近似としてのEBはもはや出番がないという悲観的見方もある。でも、MCMCは「プラグ・アンド・プレイ」とは言い難い。収束判定は厄介だし、でかいモデルをむやみに作りそうになっちゃうし。EBの出番はまだまだあります。
たとえばですね。分散要素$\tau^2$についてあいまいなハイパー事前分布を決めるという問題について考えよう。いまポピュラーなのは$gamma(\epsilon, \epsilon)$で、つまり平均1、分散$1/\epsilon$だ。しかし最近の研究では、これは無情報に見えて実は事後分布に大きな影響を与えることが示されておる。さらに、この分布は$\epsilon$を小さくするとimproperに近づき、MCMCの収束が難しくなる。いっそ$\tau^2$を$\hat{\tau}^2$に置き換えちゃったほうが安全ではないですかね。まあ純粋なベイジアンじゃなくなっちゃうけど。
EBもBEBも良いやり方だし、どちらも万能薬ではないです。みなさまそれぞれ哲学的傾向をお持ちだと思いますが、手法選択の際にそれに殉じることはないんじゃないでしょうか。
云々。
...パラメトリック/ノンパラメトリック経験ベイズについての説明がよく理解できなかった... 歴史に属する話なのかもしれないけど、なんだか悔しい。なにか別のを読んだほうがよさそうだ。
読了:Carlin & Louis (2000) 経験ベイズのこれまでとこれから
引き続き、溜まったメモの整理。これは6月中頃。
Linzer, D.A., Lewis, J.B. (2011) poLCA: An R Package for Polytomous Variable Latent Class Analysis. Journal of Statistical Software, 42(10).
RのpoLCAパッケージの紹介。poってのはpolytomousの略であろう。
えーと、poLCAパッケージは多項変数の潜在クラス分析(LCA)をご提供します。
潜在クラスモデルを推定する関数としては、ほかにe1071パッケージのlca関数, gllmパッケージ, randomLCAパッケージがあるが、いずれも二値変数しか扱えない。
まずは基本的な潜在クラスモデルから。
対象者を$i=1, \ldots, N$とする。顕在変数は$J$個の多項カテゴリカル変数、$j$個めの変数がとりうる値を$K_j$個とする。顕在変数の値を二値変数$Y_{ijk}$で表す。つまり、対象者$i$が変数$j$で反応$k$を返したら$Y_{ijk}=1$。
潜在変数の数を$R$とする。事前の所属確率を$p_r$とする($\sum_r p_r =1$)。クラス$r$において$Y_{ijk}$に1が立つ条件付き確率を$\pi_{jrk}$とする($\sum_{k=1}^{K_j} \pi_{jrk} = 1$)。
クラスの下でのアウトカムの条件つき独立性を仮定すれば、クラス$r$の対象者$i$が特定のアウトカムのベクトルを生む確率は
$f(Y_i; \pi_r) = \prod_{j=1}^J \prod_{k=1}^{Kj} (\pi_{jrk})^{Y_{ijk}}$
全クラスを通した確率密度関数は
$P(Y_i|\pi, p) = \sum_{r=1}^R p_r \prod_{j=1}^J \prod_{k=1}^{Kj} (\pi_{jrk})^{Y_{ijk}}$
パラメータ$p_r$, $\pi_{jrk}$が推定できたとして、対象者$i$がクラス$r$に所属する事後確率は
$\displaystyle \hat{P}(r_i|Y_i) = \frac{\hat{p}_r f(Y_i; \hat{\pi}_r)}{\sum_{q=1}^R \hat{p}_q f(Y_i; \hat{\pi}_q)}$
さて、poLCAはパラメータを最尤法で推定する。対数尤度関数は
$\log L = \sum_{i=1}^N \log \sum_{r=1}^R p_r \prod_{j=1}^J \prod_{k=1}^{Kj} (\pi_{jrk})^{Y_{ijk}}$
これをEMアルゴリズムで最大化するわけです。
標準誤差はどうやって推定するかというと... [略。観測情報行列を使う由]
適合度指標としてAIC, BIC, ピアソンのカイ二乗、尤度比カイ二乗を提供する。
次にlatent class regressionモデルについて。ここでいうところのlatent class regressionとはlatent class models with covariates、すなわち潜在クラスの所属確率が共変量で予測されるのを同時推定するモデル。いっぽうfpcパッケージのregmix関数やflexmixパッケージでいうところのlatent class regressionとは、回帰モデルの推定の一部として従属変数が潜在クラスに分割されるというモデルである。意味がちがうので注意。
モデルは... パラメータ推定は... 標準誤差は...[面倒になってきたのでパス]
後半は使用方法と例題。モデルからの予測されたセル頻度表を出力する機能、いったん推定した後でクラスの順序を並び替える機能、シミュレーションしたデータを作る機能がある由。局所解の問題はやっぱり深刻らしくて、何度も推定しなさい、とのことである。
私自身はMplusの忠実なしもべなので、潜在クラスモデルを組もうかなと思った次の瞬間には無意識のうちに library(MplusAutomation) と叩いてしまうのだが、Rのなかで完結できたら助かるなと思うことも、まあ、なくはない。このパッケージだとMplusほど細かい制約は掛けられないけど、いつか使ってみてもいいかもな。
読了:Linzer & Lewis (2011) RのpoLCAパッケージ
2017年8月28日 (月)
引き続き、6月頃にとったメモ。これは外出先のコーヒーショップでメモした覚えがある... なにかの時間待ちだったと思うのだが、全然思い出せない。
Smith, B., Linden, G. (2017) Two Decades of Recommendation Systems at Amazon.com. IEEE Internet Computing, 21(3), 12-18.
たまたまみつけた面白い記事。
いきさつとしては... IEEE Internet Computing誌20周年を記念して、過去の重要論文を選び表彰することにした。栄えある第一回受賞者は、2003年に掲載された"Amazon.com Recommendations", 著者はamazon.comのなかの人であるLinden, Smith, Yorkの三名。おめでとうございます。
というわけで、著者のみなさんにその後を振り返っていただくことにしました... という主旨。受賞論文の第一著者であるLindenさんは、この論文ではMicrosoft所属になっており、時の流れを感じさせます。
せっかくなので受賞講演風にメモ。
どうもありがとう... ありがとう... (拍手が鳴りやむのを待つ)
これまでの20年間に渡り、amazon.comは個々の顧客のためのお店を作って参りました。(ここで気の利いたジョークを一発かまして笑いを取る)
amazon.comの推薦システムは、あなたの現在の文脈と過去の行動に基づき、あなたに喜んで頂けそうな少数のアイテムをピックアップします。私たちがアイテム・ベース協調フィルタリングをローンチしたのが1998年。IEEE Internet Computing誌でアルゴリズムを紹介したのが2003年。このアルゴリズムはいまやWebにあまねく広がっております。
90年代中期の協調フィルタリングは基本的にユーザ・ベースでした。つまり、まずあなたと関心が類似している人を探し、次にその人たちが買っていてあなたが買っていないアイテムを探すというものでした。
それに対して私たちのアルゴリズムはこうでした。あらかじめ、カタログ上の個々のアイテムについてそれと関連したアイテムを探しておきます。ここで「関連している」というのは、とりあえずは、いっぽうを買った人は他方も買いやすい、ということだとお考えください。この表を参照して、個々の顧客へのお勧めを素早く生成します。このアルゴリズムなら、ほとんどの計算をオフラインで済ますことができます。こうして得られるお勧めは高品質かつ有用、サンプリングなどの手法を使わなくても大規模データに対応できます。
2003年の出版の時点で、アイテム・ベース協調フィルタリングはamazon.comで広く採用されていました。ホームページ、検索結果、ショッピングカート、注文終了後画面、eメール、商品明細ページ、などなど。amazon.com以外にも広がりました。2010年にはYouTubeが採用したと伝えられております。オープン・ソースやサード・パーティ・ベンダーの推薦システムにも広く採用されました... [ちょっと中略]
ではここからは、私たちが行ったアルゴリズム改善についてお話ししましょう。
推薦システムは、突き詰めていえば統計学の応用です。人間の行動はノイジーであり、ランダム性のなかから有用なパターンを見つけるというのがここでの課題です。
アイテム$X$と$Y$の両方を買う顧客の人数$N_{XY}$を推定するという問題について考えてみましょう。ひとつの自然なやり方は、$X$の購入者が$Y$を買う確率は一般の母集団のそれに等しい、すなわち
$P(Y) = $(Yの購入者数)/(全購入者数)
と考えて、
$E_{XY}=$ (Xの購入者) x $P(Y)$
を推定値とすることです。
しかし興味深いことに、たいていの$X$と$Y$において、$X$の購入者が$Y$を買う程度は、一般の母集団のそれよりも高くなります。ヘビー・バイヤーがいるからです。いいかえると、購買を無作為に抽出すると、顧客の抽出確率は一様にならないわけです。
そこで私たちはこう考えました。商品$X$を購入した顧客$c$について(これを$c \in X$と書くことにします)、その人が$Y$を買う確率は $1-(1-P_Y)^{|c|}$ だと考えます。ここで$P_Y$=(Y購入)/(全購入), $|c|$は$c$が$X$以外のなにかを買った回数です。たとえば$c$さんが20回買い物したら、$Y$を買う独立なチャンスが20回あったと考えるわけです。ここから
$E_{XY} = \sum_{c \in X} \left( 1-(1-P_Y)^{|c|} \right)$
ここから次式が得られます:
$E_{XY} = \sum_{k=1}^{\infty} \left( P^k_Y \sum_{c \in X} (-1)^{k+1} \binom{|c|}{k} \right)$
ここで$P_Y$は小さいですから、有界の$k$で近似できます。$P_Y$と$\sum_{c \in X} (-1)^{k+1} \binom{|c|}{k}$はあらかじめアイテムごとに算出しておくことができます。これを組み合わせて$E_{XY}$を素早く算出できるわけです。
さて、この$E_{XY}$を実際の併買者数$N_{XY}$と比べれば、2商品間の類似性スコア$S(X, Y)$をつくることができます。たとえば非ランダム共起数$N_{XY}-E_{XY}$を使うという手もありますが、$Y$がハリーポッターだったりすると高くなるという難点があります。$(N_{XY}-E_{XY})/E_{XY}$とする手もありますが、今度は販売量が低いアイテムがどんどんお勧めされることになりますね。うまくバランスを取ってやる必要があります。たとえばカイ二乗スコア$(N_{XY}-E_{XY})/\sqrt{E_{XY}}$を使うとか。
他にもいろいろ方法はあります。私たちの経験に基づいていえば、あらゆる場面において最良なスコアは存在しません。場面ごとに、機械学習や統制実験によってパラメータの最適化を図ります。
[関連性の指標が良くてデータが十分なら、関連アイテムの意味づけはデータから創発する、という話。デジタルカメラのメモリカードの互換性が関連アイテムで表現されるとか。さいでございますか。中略]
推薦の品質を向上するためには...
- 時間の役割について理解することが重要です。
- ある本を買った5ヶ月後に別の本を買ったというのは、同じ日に買ったのと比べると、関連性の証拠としては弱いです。
- 順番も大事です。顧客があるカメラを買った後であるメモリーカードを買った、というのは推薦のための良いヒントになりますが、逆はそうでもないです。
- カタログもどんどん変わっていきます。たとえば、新規アイテムについてはまだ十分な情報が得られていません。こういうのをコールド・スタート問題といいます。行動ベースのアルゴリズムと内容ベースのアルゴリズムをうまく組み合わせる必要があります。
- 顧客のライフスタイルや経験も一種のコールド・スタート問題を引き起こします。顧客について得られた限られた情報を使うか、一般的なアイテムをお勧めしておくか。微妙な切り替えが必要な、難しい問題です。
- データが十分にある顧客の場合でも、以前の購買は徐々に現在の関心と無関連になっておきます。ややこしいことに、その速度はアイテムのタイプによって違います。
- 何を買ったのか、というのも大事です。たとえばある本の購入はその人の関心について多くを語りますが、ホチキスの購入からどんなインサイトが得られるでしょうか? どの購買からお勧めを導出し、どの購買を無視するかを学ぶテクニックが必要です。
- 最後に、多様性も大事です。はっきりした意図を持たない顧客に対しては、欲しいものをすばやく見つけることを手伝うのではなく、発見とセレンディピティを提供するべきでしょう。推薦の多様性についての良いバランスを見つけるためには、長期的観点からの最適化が必要です。
未来の推薦システムはどのようなものになるでしょうか?
私たちはこう想像しています。それは買い物をまるで会話のように簡単なものとしてくれる知的なインタラクティブ・サービスになる。あたかも、あなたのことをよく知っている友達とおしゃべりしているかのような。
すべてのインタラクションがあなたの好みを反映する。もしあきらかにあなた向きでないものがおすすめされたら、まったくもう、あなたはまだ私のことがわかってないのね? という気持ちになる(場内笑い)。ひとことでいえば、どこでも人工知能、ですね。
こういう未来を実現するためには発想の転換が必要です。推薦システムの特徴やエンジンを改善するという問題ではありません。あなたを理解し、他者を理解し、いまなにが利用可能かを理解することが、すべての相互作用における必須の部分となります。
およそ20年前にamazon.comがローンチした推薦システムは、いまではWebのいたるところで用いられています。アイテム・ベース協調フィルタリングはいまでももっとも一般的な推薦アルゴリズムのひとつです。
この領域はいまだ広く開かれており、多くのチャンスが残されています。推薦は発見であり、驚きと喜びを提供します。推薦、それはインタラクションそのものです。(キメ顔)
御清聴ありがとうございました。(拍手)
...あーあ。推薦するアイテムの多様性をどうやってチューニングしているのかに関心があったけど、やっぱし、あんまし詳しいことは説明してくれないんだなあ。そりゃまあ、企業秘密だよなあ...
読了:Smith & Linden (2017) amazon.com推薦システムの20年
2017年8月26日 (土)
Reise, S.P. (2012) The Rediscovery of Bifactor Measurement Models. Multivariate Behavioral Research, 47(5), 667-696.
SEMでいうbifactor model(「双因子モデル」?)についての解説。bifactorモデルには独特の話題があるので、前から気になっていたんだけど、勉強する機会がなかった。このたびちょっときっかけがあって大急ぎでめくった。
いわく。
bifactorモデルとは、ひとつの一般因子があって全項目がそれを反映し、それとは直交するいくつかのグループ因子(特殊因子)があってそれぞれが項目のクラスタに対応する、というモデル。前者は概念的に広いターゲット構成概念を表し、後者はより狭い下位領域の構成概念を反映する。[←ことばで表現するとわかりにくいっすね]
bifactorモデルの歴史は1930年代に遡るが、サーストン流の因子間相関モデルの栄光の陰に忘れ去られ、さびれた港町で無為な日々を送っていた[←意訳]。それが最近急に注目されているのは、(1)パーソナリティ測定の分野で良く使われるようになり、(2)啓蒙論文が出版され、(3)方法論研究が増え、そして(4)ソフトが出てきたから。
探索的bifactorモデル
30年代にHolzingerらが提案したのがこれ。50年代にSchmid-Leiman直交化(SL)という上手い推定方法が出てきた。でもあんまり使われてない。理由: (1)SLが一般的なソフトに載ってない。(2)研究者が不勉強。
結局のところ、因子間相関モデル、二次因子モデル、SLは等価である。ということを、実データ(15項目, 5因子を想定)でお示ししましょう。
まず因子間相関モデルから。モデルで再現する相関行列を$\hat{R}$として、
$\hat{R} = \Lambda \phi \Lambda^T + \Theta$
と書ける。ただし$\Lambda$は$15 \times 5$の負荷行列、$\phi$は$5 \times 5$の因子間相関行列、$\Theta$は$15 \times 15$の直交行列で独自性を表す。心理測定の研究者が大好きなモデルである。個人差は因子得点のプロファイルとして表現される。因子は比較的に狭い構成概念を表している。全項目を通じた共通分散があるとして、それは$\phi$行列のなかに隠れている。
同じデータに二次因子モデルを当てはめることもできる。$\phi$行列を単一の二次因子への負荷行列に変換するわけである。個人差は一般的傾向性(たとえば「一般的不安」とかね)と、より狭い下位傾向性によって表現される。ここでのポイントは、二次因子と項目の間に直接的な関連はない、という点だ。二次因子モデルは共通因子モデルの再表現に過ぎない。つまり、上のモデルの$\phi$について
$\phi = \Gamma \Phi \Gamma^T + \Psi$
とモデル化しただけである。
さて。次の変換行列$T$を考えます。
$T=[\Gamma | \Psi^{1/2}]$
サイズは$5 \times 6$。1列目は、二次因子モデルにおける二次因子への負荷を表す。2列目以降は対角行列で、各一次因子の独自分散の平方根を持つ[えーっと、各行は2つの要素を持ち二乗和が1になるわけね]。これをつかって負荷行列を変換し
$\hat{R} = (\Lambda T)(\Lambda T)^T + \Theta$
これがSL直交化である。[←なるほどねえ。こりゃ計算が楽だわね]
SLでは、共通因子は一般的な次元を表し、グループ因子はそれと直交する下位領域を表す。切り離して解釈できるというのが美点。
以上を整理しよう。因子間相関モデルの負荷行列が完全な独立クラスタ構造を持っているとき(=ある項目がある一次因子にのみ負荷を持つとき)、
- SLにおける一般因子への負荷は、一次因子への負荷と、「二次因子モデルにおけるその一次因子の二次因子への負荷」の積である。
- SLにおけるグループ因子への負荷は、一次因子への負荷と、「一次因子の残差分散の平方根の積」である。
SLの怖いところ。
- 完全独立クラスタ構造なんて、現実にはそうそうない。ある項目が因子間相関モデルで交差負荷を持ってたら、その項目はSLでもやっぱりグループ因子への交差負荷を持つ。これはちょっと洒落にならない。というのは、交差負荷があるとき、一般因子の負荷が過大に推定され、グループ因子の負荷が過小に推定されるからだ。[←そうそう!だから一般因子みたいなのを解釈するのって怖いんです...]
- SLには比例性制約が含まれている。つまりこういうことだ。いま完全な独立クラスタ構造があるとしよう。上記の「二次因子モデルにおけるその一次因子の二次因子への負荷」と「一次因子の残差分散の平方根の積」はあるクラスタの項目間で等しい。つまり、一般因子への負荷とグループ因子への負荷は、あるクラスタのなかではどの項目でも比例することになる。これが母集団において成り立つとは思えない。
というわけで、SLに代わる現代的な推定方法が開発されている。Reise et al.(2011)のtarget bifactor回転と、Jennrich & Bentler (2011)のanalytic bifactor 回転がある。後者はRのpsychパッケージにも入っている。[実データの分析例が載っているけど、パス。なおMplusだとBI-GEOMIN回転とBI-CF-QUARTIMAX回転が使えて、どちらも斜交か直交かを選べる]
確認的bifactorモデル
各項目は一般因子とどれかひとつのグループ因子だけに負荷を持つ、というモデル。比例性の問題はなくなるが、交差負荷を無視したせいで起きるバイアスが怖いので、ちゃんと探索的分析をやってから組むのが大事。
推定方法。SEMアプローチとIRTアプローチを紹介しよう。2値データについて考える。[以下、誤植らしき箇所を勝手に直したり書き換えたりしている]
SEMアプローチの場合。$i$番目の変数の背後に正規潜在反応変数$x_i^*$と閾値$\tau_i$を仮定する。グループ因子が$p$個だとして
$x_i^* = \sum_{j=0}^p \lambda_{i,j} \theta_{j} + \eta_i$
で、WLS推定とかを使ってテトラコリック相関行列を分析する。これを限定情報因子分析と呼ぶ(平均と共分散しか使わないから)。
IRTアプローチの場合。モデルはこんな感じになる。
$\displaystyle E(x_i|\theta) = \frac{\exp(z_i)}{1+\exp(z_i)}$
$z_i = \sum_{j=0}^p \alpha_{i,j} \theta_j + \gamma_i$
$\alpha$が識別性、$\gamma$が困難度を表す。で、周辺最尤推定(marginal ML)を使って項目反応行列全体を分析する。これを完全情報因子分析と呼ぶ。
よく知られているように、2パラメータ正規IRTと間隔尺度因子分析は等価である。$\alpha, \gamma$と$\lambda, \tau$のあいだには次のような関係があって...[略]
ただし、以下の点に注意すべきである。
- 欠損値がある場合、IRTは(というかMMLは)数値積分がすごく大変になる。
- SEMとIRTで項目パラメータの見た目がかなり変わってくる。たとえば、項目Aの一般因子への負荷が0.50, グループ因子への負荷が0.70, 項目Bでは0.50, 0.30としよう。一般因子への負荷は等しく見える。いっぽう、IRTでの一般因子の傾きは、Aで0.98, Bで0.61となる。[←そりゃまあそうなるな、AとBで共通性が全然ちがうから]
- 因子分析モデルとIRTモデルでは適合度の評価の仕方がちがうし、ふだんのモデルの適合度のスタンダードはあてにならない。まだ研究が足りない問題である。
[ここでモデル比較のデモ。bifactorモデル, 因子間相関モデル, 二次因子モデル, 一次元モデルを比べる。略]
[一般因子のパラメータ不変性、つまり、使う項目を多少削ってもパラメータが大きく変わらないかどうかを調べるデモ。略]
bifactorモデルの使い道
では、bifactorモデルの重要な使い道を4つ、実例とともに紹介しましょう。
- 項目反応の分散を一般因子とグループ因子に分解する。[略]
- 項目反応データがどのくらい一次元的か調べる。[略]
- 生のスコアが単一の共通ソースをどのくらい反映しているのかを推定する。これは一次元性の話ではない(一次元性はあるけど残差分散がすごいってこともある)。omega hierarchicalという指標を使うとよい。
$\displaystyle \omega_H = \frac{(\sum_i \lambda_{i,0})^2}{\sum_j (\sum_i \lambda_{i,j})^2 + \sum_i \theta_i^2}$
これはモデル・ベースの信頼性指標で、要するに、共分散行列の要素の和に占める、共通因子由来の部分の割合である。 - 一般因子による分散をコントロールしたうえで下位尺度のスコアのviabilityを評価する。[下位尺度の$\omega$の話。略]
要約と限界
- bifactorモデルに対する批判その1、多次元性は因子間相関モデルで扱うべき。→誤解だ。確認的分析の枠組みでは、因子間相関モデルはbifactorモデルの下位モデルだ。
- 批判その2、一般因子は解釈しにくい。→そんなことないもん。
- 批判その3、直交制約は非現実的。→まず一般因子とグループ因子は直交してないとモデルの意味がない。グループ因子間の相関を許すのはありだけど(Jennrich & Bentlerがそう)、解釈しにくくなり用途が限られる。
- 批判その4、制約がきつすぎる。もっとリアルなモデルを作るべき。→まあ確認的モデルってのはもともと制約がきついもんなんだけどね。この辺はMuthenさんたちの、確認的モデリングと探索的モデリングを融合させるという試みに期待したいね(と、2009年のESEM論文をreferしている)。
- bifactorモデルが向いているのは、主として強い共通の傾向性を反映しているんだけど、でも多様な下位領域からとってきた項目のクラスタのせいで多次元性が生まれている、というような測定尺度の計量心理的分析だ。項目内容がすごく一様だったり、きちんとした青写真なしで適当に作っちゃったような尺度には向いてないかもしれない。
云々。
ちょっと思ったことをメモ。
調査データ分析の文脈では反応スタイルなどに起因する共通手法分散(CMV)が深刻な問題になる。この論文が主に対象としているのは、一般的心理特性と下位領域の心理特性を反映しているような心理尺度で、だからこそ、因子を直交させるのが推奨されているし、交差負荷もなしにするのが基本なのだと思う。でも私はどっちかというと、複雑なデータ生成構造を持つ調査データがあって、これからその構造について調べたいんだけど、まずはうまくCMVだけ取り除きたい、という場面を思い浮かべながら読んでいた。だから、一般因子とグループ因子の直交性仮定はいいけれど、グループ因子間の直交性仮定は強すぎて困るな、と思う。
確認してないんだけど、CMVの第一人者(?)であるPodsakoffさんは以前「CMV因子を入れたCFA」案を紹介していたらしい。でもAntonakisらのレビューでは否定的に扱われていたと思う(モデルが誤指定だったらひどい目に合うから、というような理由だった)。リッカート尺度の項目群の場合、Allenby兄貴のようにHBモデルを組むというのがひとつの方向だと思うのだが、いかんせんめんどくさい。
で、この論文を読んでいて思うに、カテゴリカルEFAでbifactor回転してモデルの誤指定をチェックした上で$\omega_H$を推定し、CMV因子をいれた好き勝手なSEM, ただしCMVへの負荷はさっきの$\omega_H$を再現できる値に全項目等値で固定する... というのはだめかしらん? いつか暇ができたら調べてみたい。(まあ無理だけどな)
読了:Reise (2012) 忘却の淵から甦れ、bifactorモデルよ
2017年8月25日 (金)
Alvarez, I., Niemi, J., Simpson, M. (2014) Bayesian Inference for a Covariance Matrix. Proceedings of 26th Annual Conference on Applied Statistics in Agriculture, 71-82.
ベイズ推定で共分散行列の事前分布は逆ウィシャート分布とするのが定番だが、お兄さんがた、ほんとにそれでいいと思うのかい? という論文。SEM-NETで紹介されていて、仕事と関係する話ではあるので、ざっと目を通した次第。
ベクトル$Y_i$ ($i=1, \ldots, n$)がiidに$N(\mu, \Sigma)$に従う、というMVNなモデルを考える。$\Sigma$は$d$次元の正定値行列。
データ全体を$y$として、その尤度は
$\displaystyle p(y | \mu, \Sigma) \propto |\Sigma|^{-n/2} \exp \left( -\frac{1}{2} tr(\Sigma^{-1} S_\mu) \right)$
である。ただし$S_\mu = \sum^n_i(y_i-\mu)(y_i-\mu)^T$。
さて、共分散行列$\Sigma$の事前分布をどうするか。ふつうは自然共役事前分布である逆ウィシャート(IW)分布を使うところだが、ここではその他に、scaled IW分布, 階層IW分布, 分離方略を紹介しよう。
事前分布その1, IW分布。
$\displaystyle p(\Sigma) \propto |\Sigma|^{\frac{\nu+d+1}{2}} \exp(-\frac{1}{2}tr(\Lambda \Sigma^{-1}))$
ここで$\Lambda$は$d$次元の正定値行列, $\nu$は自由度で、$\nu > d-1$のときにproper。平均は$\nu > d+1$のときに $\Lambda / (\nu-d-1)$である。ふつうは$\Lambda=I, \nu = d+1$とする。こうするとすべての相関の周辺分布が一様になる。[←このくだり、全く意味を考えず虚心に写経している。だって、らららー、文系なんだものー]
その共役性によって広く愛されているIW分布だが、欠点が3つある。
- 全パラメータの不確実性がたったひとつの自由度によってコントロールされている。
- $\nu > 1$のtき、個々の分散の確率密度が0のあたりで極端に低くなり、事後分布にバイアスをもたらす。
- 分散が大きいと相関1ちかくに、分散が小さいと相関0ちかくになりやすい。
事前分布その2、scaled IW(SIW)分布。えーと、これはですね、要素$\delta_i$を持つ対角行列$\Delta$について$\Sigma \equiv \Delta Q \Delta$としてですね、
$Q \sim IW(\nu, \Lambda)$
$\log(\delta_i) \sim N(b_i, \xi_i^2)$ (iidで)
とするわけです。要するに変数ごとに分散を変えられるわけね。
事前分布その3、階層Half-t分布。まず
$\Sigma \sim IW(\nu+d-1, 2\nu\Lambda)$
とする。ここで$\Lambda$は対角行列で、その要素を
$\lambda_i \sim Ga(1/2, 1/\xi_i^2)$ (iidで)
とするんだそうです。なんだかさっぱりわからん。これはSDの事前分布をhalf-t分布にしていることになる由。なんだかさっぱりわからん。(繰り返し)
事前分布その4、分離方略。
$\Sigma \equiv \Lambda R \Lambda$とする。$\Lambda$は要素$\sigma^i$を持つ対角行列で、SDの事前分布。$R$は要素$\rho_{ij}$を持つ相関行列。とこのように分離しておいて、別々に事前分布を与える。ああそうか、SDと相関を別々にモデル化するのか。
相関のほうは、$R=\Delta Q \Delta$とし($\Delta$は対角行列で... 詳細省くけど、$Q$をうまいこと相関行列に変換するという主旨だと思う)、$Q \sim IW(\nu, I)$とする。で、$\log(\sigma^i)$はiidに$N(b_i,\xi_i)$に従うものとする。
なんでこれを取り上げるかというと、これがStanのオススメだから。
...なんだか関心がなくなっちゃったので(「能力が及ばない」の婉曲表現)、シミュレーションと実例をパスして一気に結論に飛ぶと...
- IWの場合、相関と分散とのあいだにアプリオリに強い依存性がみられる。その結果、IWを使うと事後分布に極端なバイアスがかかる(標本分散が小さい変数の分散が大きめになり、相関が0に接近する)。
- SIW, 階層Half-t分布も上記の傾向あり。
- 分離方略は、上記の点については大丈夫なんだけど、計算が大変。StanみたいなHMCサンプラーならどうにかなるんだけど、それでも大変だし、BUGSみたいなGibbsサンプラーだと超大変。
...いやー、正直わたくし仕事ではMplus一択、よって共分散行列の事前分布はIW一択なんだけど、こうしてみると、Mplusではやっぱ事前のスケーリングが大事ってことやね。Muthen導師の日頃のご託宣のとおりである。南無南無。
読了:Alvarez, et al. (2014) 共分散行列の事前分布は逆ウィシャート分布でいいのか
溜まった論文メモをちびちびアップ中。まだ5月分だ。なかなか片付かない...
Little, T.D., Slegers, D.W., Card, N.A. (2006) A non-arbitrary method of identifying and scaling latent variables in SEM and MACS models. Structural Equation Modeling, 13(1), 59-72.
多群のSEMモデルでモデル識別のために制約を掛けるとき、因子分散を1にするのでもなければ最初の指標の負荷を1にするのでもない、新しい制約の掛け方をご提案します。それはeffect-codingです! という論文。仕事の都合で読んだ。
準備。
$X$を長さ$p$の観察ベクトルとし、その平均ベクトルを$\mu$, 分散共分散行列を$\Sigma$とする。群$g=1, \ldots, G$があり、群$g$に属する観察ベクトルを$X^g$とする。次のモデルを考える。
$X^g = \tau^g + \Lambda^g \xi^g + \delta^g$
$\tau^g$は長さ$p$の切片ベクトル、$\Lambda^g$は$(p \times r)$の負荷行列, $\xi^g$ [原文には$\chi^g$という表記も混在している] は長さ$r$の潜在ベクトル、$\delta^g$は長さ$p$の独自因子ベクトル。平均構造と共分散構造は
$\mu^g = \tau^g + \Lambda^g \kappa^g$
$\Sigma^g = \Lambda^g \Phi^g \Lambda^{g'} + \theta^g$
$\kappa^g$は長さ$r$の潜在変数平均ベクトル, $\Phi^g$は$(r \times r)$の潜在変数共分散行列、$\theta^g$[$\theta^g_\delta$という表記も混在している]は独自因子の分散を表す$(p \times p)$の対角行列である。
以下のように仮定する。$E(\delta)=0$。$Cov(\delta\delta')=0$。独自因子と共通因子は独立。観察変数と独自因子はMVNに従う。
測定モデルは本質的同族(essentially congeneric)と仮定する。つまり、所与の潜在変数の指標の切片$\tau$についても、所与の潜在変数の指標$\lambda$についても、独自分散$\theta$についても制約しない、広い範囲の測定モデルについて考える。というか、測定不変性の制約をどこまでかけるか、それをどうやって決めるかは、この論文のテーマではない。この論文が問題にするのは、モデル識別のための制約をどうやってかけるか、である。
本題。
モデル識別のための制約のかけかたが3つある。
方法1: 参照群法。
群1の潜在変数平均ベクトル$\kappa^1$を0に固定し、群1の潜在変数共分散行列$\Phi^1$の対角要素を1に固定する。負荷$\Lambda^g$と切片$\tau^g$に群間等値制約をかければ、潜在変数の平均と分散は群2以降で自由推定できる。
このとき、$\tau$は群1の平均の推定になる。群2以降の潜在変数平均ベクトル$\kappa^2, \ldots, \kappa^G$は、その潜在変数の指標群の平均差を負荷で重みづけたものとなる。
また、個々の潜在変数の負荷$\lambda$は、群1での負荷となる。群2以降の潜在変数分散$\Phi^g$は、その潜在変数で説明された共通分散を比で表したものになる。
方法2: マーカー変数法。いうならば、切片・負荷のdummy-codingである。
個々の潜在変数について、その(たとえば)最初の指標を選んで、その切片$\tau^g_{1r}$を0に固定し、負荷$\lambda^g_{1r}$を1に固定する。残りの負荷と切片には群間等値制約をかける。この方法は、潜在変数のスケールを最初の指標に合わせたことになる。選ぶ指標は別にどれでもよい。ふつうはどの指標を選んでも適合度は変わらない。(ただし、すごく無制約なモデルは例外で...と、Millsap(2001 SEM)を挙げている。これ、どっかで聞いたことがあるなあ...)
方法3: effect-coding法。
個々の潜在変数について、指標の切片の和を0、負荷の平均を1と制約する。つまり、潜在変数$r$の指標の数を$I$として
$\sum_i^I \lambda^g_{ir}=I, \ \ \sum_i^I \tau^g_{ir} = 0$
これだけでもモデルは識別できる。この方法だと、潜在変数の分散は、その潜在変数で説明された分散の重みつき平均となり、潜在変数の平均は、その潜在変数の指標の平均の重みつき平均となる。その重みが合計1になるように最適化されているわけである。
計算例...[略]
比較すると、
- 参照群法は、因子平均の群間比較の際にわかりやすい。また、群1だけは、潜在変数の共分散が相関係数になる。[ここで、全群で分散1の高次因子であるphantom潜在変数をつくるという手が紹介されている... いま関心ないのでパスするけど、Little (1997, MBR)をみるといいらしい]
- マーカー変数法は指定が簡単。しかし、潜在変数のスケールが、マーカー指標の選択によって変わってくるという欠点がある。また、群間の測定不変性を検定するときは、マーカー変数だけは不変だという前提を置くことになる。
- effect-coding法は、潜在変数のスケールが最適化されている。また、全指標が同尺度だと考えることができるならば、その尺度が潜在変数にも保持されていると考えられるわけで、潜在変数間で因子平均・因子分散を比較できる[←ああ、なるほど...]。また、どれかの群を参照群に選ぶ必要がない。測定不変性が仮定されていない場合でも使いやすい[←ここ、説明があったんだけどパス]。いっぽう、指標の尺度がバラバラだったらあまり好ましくない。
なお、以上の3種類でモデルの適合度は変わらないし、潜在変数の差の効果量も変わらない。
なお、ここまで多群モデルについて考えてきたが、この話は縦断モデルにも適用できる。
以上の議論は単純構造がある場合の話で、交差負荷がある場面については今後の課題である。云々。
... なぜこの論文を読んでいるのか途中から自分でもよくわかんなくなっちゃったんだけど、ま、勉強になりましたです。
多群SEMでeffect-codingしたくなる状況ってのがいまいちピンときてないんだけど、たとえば全指標の尺度が同じで、交差負荷のないCFAで、かつ切片と負荷の群間等値制約を掛けている(ないし、その指標についても外している)ような場面では、それはわかりやすいかもなと思う。もっとも、たとえば測定の部分不等性を捉えるために、一部の指標についてだけ負荷の等値制約を外しているような場面では、いくら適合度は変わらないといえ、負荷の平均を1に揃えるというのはなんだか奇妙な話だと思う。
ま、いずれ使いたくなる場面に出くわすかもしれないな。覚えておこう。
ところで、我らがMplusはどうなっているかというと... 私の理解が正しければ、Mplusのデフォルトは、
「因子負荷は最初の指標で1に固定、切片は定数制約なし、因子平均は第1群で0に固定、因子分散は制約なし、指標の切片と因子負荷は群間等値」
なので、参照群法とマーカー変数法の中間といったところ。もちろん、参照群法、マーカー変数法、effect-coding法のいずれのモデルも組めるはずである。
読了:Little, Slegers, Card (2006) 潜在変数モデルを識別するためのeffect-coding制約
2017年8月24日 (木)
引き続き、論文のメモを記録しておく。このへんまで、たぶん5月頃に読んだ奴だと思う。
Agresti, A. (1992) Analysis of Ordinal Paired comparison Data. Journal of the Royal Statistical Society. Series C (Applied Statistics), 41(2), 287-297.
先日読んだレビュー論文で、一対比較への段階反応データについての隣接カテゴリロジットモデルというのが紹介されていて、よく意味がわからなかったので、引用文献を辿って読んでみた。
いわく。
処理$h$と$i$を比べたとき、$i$が選好されることを$Y_{hi}=1$, $h$が選好されることを$Y_{hi}=2$とする。Bradley & Terry (1952)のモデルは
$\displaystyle \log \frac{P(Y_{hi} =1)}{P(Y_{hi} =2)} = \mu_i -\mu_h$
で、これは
$\displaystyle P(Y_{hi}=1) = \frac{\exp(\mu_i)}{\exp(\mu_i)+\exp(\mu_h)}$
とも書ける。このへんの歴史に関心をお持ちの向きはDavid(1988, 書籍)あたりを見るがよろしい。
さて、BTモデルをタイあり比較(つまり3件法)へと拡張する試みは60年代からある。では、これを5件法とか7件法とかに拡張する方法について考えよう。
処理の数を$I$, 順序反応カテゴリ数を$J$とする。処理$h$と$i$を比べた反応を$Y_{hi}$とする。尺度は対称だ ($Y_{hi}=j$なら$Y_{ih}=J-j+1$だ) と仮定する。
その1, 累積リンクモデル。
連続潜在変数$Y^*_{hi}$と、それを反応$Y_{hi}$に変換するための閾値$\alpha_1, \ldots, \alpha_{J-1}$ (小さい順) を考える。さらに、処理への潜在的評価$Y_h, Y_i$を考え、$Y^*_{hi} = Y_h - Y_i$と考える。そして、各処理の効用パラメータ$\mu_i, \mu_h$を考え、$Y_h-\mu_h, Y_i-\mu_h$は比較によらず同一の分布にしたがうと考える。すると、
$Z = (Y_i - \mu_i) - (Y_h - \mu_h)$
は比較によらず同一の分布に従い、
$\alpha_{j-1} - (\mu_h - \mu_i) < Z < \alpha_j - (\mu_h - \mu_i)$
のときに$Y_{hi}=j$だってことになる。$Z$の累積分布関数を$F$とすれば
$F^{-1}(P(Y_{hi} \leq j)) = \alpha_j - (\mu_h-\mu_i)$
である。
$F^{-1}$をロジットリンクにすると、$J=2$ならばBradley-Terryモデルになる。$F^{-1}$をプロビットリンクにすると、$J=2$ならばThurstone-Mostellerモデルとなる。
その2、隣接カテゴリロジットモデル。
反応$j$と$j+1$にだけ注目する。上記と同様に、反応は$Z+\mu_i-\mu_h$で決まっているのだと考えて
$\displaystyle \log \frac{P(Y_{hi}=j)}{P(Y_{hi}=j+1)} = \alpha_j - (\mu_h -\mu_i)$
これを書き換えると
$\displaystyle \frac{P(Y_{hi}=j)}{P(Y_{ih}=j)} = \exp((J+1-2j)(\mu_h -\mu_i))$
つまり、たとえば7件法だとして、$\exp(2(\mu_i-\mu_h))$は回答3 vs 5のオッズ、その2乗は回答2 vs 6のオッズ, 3乗は1 vs 7のオッズだということになる。累積リンクモデルより解釈しやすい。
... ここからは、推定方法の話、事例、比較に独立性がない場合の話。読みたいところが終わっちゃって急速に関心が薄れたので、パス。
なあんだ、隣接カテゴリロジットってそういう話か、と納得したのだが(隣接する2カテゴリの下での条件付き確率のロジットを効用の線形関数とみるわけね。結局ベースライン・カテゴリを決めたロジットモデルと同じことだ)、Agrestiの分厚い本を見たら、順序カテゴリデータの章にちゃんと書いてあった。なんだかなあ。手持ちの教科書をちゃんと読めという話である。
素朴な疑問なのだが... 消費者調査で、刺激セットの総当たり対について選好判断を繰り返すとき、恒常和法で聴取することがある。ここに(たとえば)10枚のチップがあるとして、好きなほうにより多くのチップを置いてください、という訊き方である。
テクニカルにいえば、この回答は刺激対に対する0~11の11件法評定だと考えて分析することもできるし、独立に行った10回の試合の勝敗集計だと捉えて、ThurstonモデルなりBradley-Terryモデルなりを当てはめることもできる(そういう事例を見たことがあるし、ここだけの話、自分でもやったことがあります)。でも正直なところ、後者のアプローチにはかなり抵抗がある。あるペアに対するチップの置きかたが、あるパラメータの二項分布に従っていると考えていることになるわけで、ちょっと仮定が強すぎるように思うわけである。
でも考えてみると、チップの置きかたを11件法評定だと捉えて累積リンクモデルなり隣接ロジットモデルなりを当てはめたとしても、それはそれで強い仮定が置かれている。どちらのモデルでも閾値は左右対称だし、$Z$(効用の差と潜在評価の差とのずれ)にはなんらかの確率分布が仮定されている。つまり、あるペアに対するチップの置きかたが、あるパラメータの正規分布だかなんだかに従っていると考えているわけで、結局のところ五十歩百歩なんじゃないかしらん。
実のところ、10枚のチップの置きかたと効用差との関係は、回答生成の心的過程に関わる実質的な問題で、心理実験で調べるべき問題なんじゃないかと。そういう研究があるといいんだけどなあ。
読了:Agresti(1992) 一対比較への順序尺度型回答を分析するための2つのモデル
仕事の都合でBradley-Terryモデルを使っていて(←そういう古典的モデルがあるのである。大儲けとはおよそほど遠い地味な分野の地味な話題なのである。世のデータサイエンティストたる皆様はもっと他の金になる話について知識を誇ったほうがよいだろう)、これって学部生のときに習ったサーストンのモデルと実質的にどうちがうんだろう?(←そういう超古典的なモデルがあるのである。計量心理の先生がなぜかそういう黴臭い話を延々と続けて止まなかったのである。もっと他の話をしてくれりゃよかったのに)、とふと疑問に思ったので、適当に検索して、出てきた魅力的な感じのPDFを印刷して、筒状に丸めて片手に持って外出した。
で、移動中にパラパラめくったら、これは... 俺の読みたかった話と違う... いや、まあ、いいけどさ...
Stern, H. (1990) A continuum of paired comparisons model. Biometrika, 77(2), 265-73.
というわけで、途中からうとうとしながらパラパラめくっただけだけど、一応メモ。
既存の一対比較モデルを、ガンマ確率変数を使ったモデルで包括的にご説明します、という話。
$k$個の刺激(プレイヤー)のトーナメント戦について次のように考える。
プレイヤー$i$のスコアは率$\lambda_i$のポワソン過程に従い、スコア獲得のプロセスはプレイヤー間で独立とする。2個のプレイヤーの勝敗とは「どっちが先にスコア$r$を獲得するか」であるとする。[←なんというか、一対比較課題への回答を生成する認知モデルとしては非常にナンセンスな気がするが、そういうご主旨の論文ではないのだろう]。
このとき、プレイヤー$i$がスコア$r$を獲得するまでにかかる時間は、形状$r$, スケール$\lambda_i$のガンマ分布に従いますね。$i$が$j$に勝つ確率を$p^{(r)}_{ij}$は、形状はどちらも$r$でスケールは$\lambda_i, \lambda_j$である2つの独立なガンマ確率変数$X_i, X_j$を考えると
$p^{(r)}_{ij} = pr(X_i < X_j)$
中略するけど、これは結局
$\displaystyle p^{(r)}_{ij} = f(r, \frac{\lambda_i}{\lambda_j})$
と書ける[← 原文には$f$の中身が書いてあるけど面倒なので省略]。
このガンマ確率モデルの枠組みで、既存のいろんなモデルを扱える。
たとえば$r=1$とすると、これは
$\displaystyle p^{(r)}_{ij} = \frac{\lambda_i}{\lambda_i + \lambda_j}$
となる由。この系統のモデルはいっぱいあって(convolution type linear model)、Bradley-Terryモデルもそのひとつ。
また、たとえば$\displaystyle \frac{\lambda_i}{\lambda_j} = \frac{1}{1+\Delta r^{-1/2}}$とすると、これは
$\displaystyle \lim_{r \to \infty} p^{(r)}_{ij} = \Phi \left( \frac{\Delta}{\sqrt{2}} \right)$
となる由。ただし$\Phi(\cdot)$は標準正規分布の積分。これはThurstone-Mostellerモデルに近い。[...後略...]
データへの適合度でモデルを比較してもいいけど、$n$がすごく大きくない限りどっちもみな様な結果になるのよ。昔の研究で、Bradley-TerryモデルでもThurstone-Mostellerモデルでもデータへの適合は似たようなもんだという指摘が多いが、それはこういうことなのよ。云々。
読了:Stern(1990) 一対比較データを扱ういろんなモデルを「2つの刺激がそれぞれ謎の得点を稼いでいきある得点に先に達したほうの刺激が勝つのだ」モデルで包括的に説明する
2017年8月23日 (水)
これも仕事の都合で、かなり前に読んだ奴。
Cattelan, M. (2012) Models for paired comparison data: A review with emphasis on dependent data. Statistical Science, 27(3), 412-433.
一対比較データのためのモデルに関する、全21頁のレビュー。著者はイタリアのポスドクさん。題名にある dependent dataとは、比較と比較の間に独立性がない、という意味。
対象者$s$が対象$i$と$j$を比較した値を$Y_{sij}$とする。当面、観察は独立と考える(たとえば、ある対象者はひとつの比較しかしないものとする)。
その1, 伝統的モデル。
伝統的なモデルでは、$Y_{sij}$は二値で、$i$が勝つ確率$\pi_{ij}$は対象の効用$\mu_i, \mu_j$の差の関数、すなわち
$\pi_{ij} = F(\mu_i - \mu_j)$
である。これをunstructured modelという。$F$が正規累積分布ならThurstone(1927)のモデルとなり、ロジスティック累積分布ならBradley-Terryモデル(1952)となる。モデルの目的は効用ベクトル$\mathbf{\mu} = (\mu_1, \ldots, \mu_n)'$についての推論である。なお識別のためになんらかの制約をかける必要がある。和が0だとか。
普通は効用の差に関心があるわけだけど、そうすると次の問題が起きる。たとえば$H_0: \mu_i = \mu_j$をワルド統計量$(\hat{\mu}_i - \hat{\mu}_j)/\sqrt{\hat{var}(\hat{\mu}_i-\hat{\mu}_j})$で検定したいとするじゃないですか。$\hat{\mu}_i$と$\hat{\mu}_j$は独立じゃないから共分散が要る。でもいちいちめんどくさい。そこで擬似分散を使うことが多い。[... 共分散が正なら分散を割り引くという話。考え方が説明されているんだけどよくわからなかった。Firth & de Menezes (2004, Biometrika)を読めとのこと]
その2, 順序型の一対比較。
たとえば、タイを許す比較とか、「どちらともいえない」を真ん中にとった5件法とか。
Agresti(1992, JRSS)は2つモデルを挙げている。ひとつめ、累積リンクモデル。
$pr(Y_{ij} \leq y_{ij}) = F(\tau_{y_{ij}} - \mu_i + \mu_j)$
として、累積ロジットモデルだか累積プロビットモデルだかに持ち込む。
ふたつめ、隣接カテゴリモデル。[説明が書いてあったんだけどよくわからなかった。3件法なら、回答(1,2)だけのロジスティック回帰モデルと回答(2,3)だけのロジスティック回帰モデルを推定する、ということ? まさかねえ...]
その3, 説明変数の導入。
たとえば、対象についての説明変数を導入して
$\mu_i = x_{i1} \beta_1 + \cdots + x_{iP} \beta_P$
とか(もちろん対象固有な切片をいれてもよい)。こういうのをstructured modelという。ただの線形結合じゃなくて、たとえばスプライン・スムーザーの線形結合にしましょうなどという提案もある。
対象者についての共変量を入れるという提案もある。また、対象者の潜在クラスを考えるという提案もある(Dillon, Kumar, & de Borrero, 1993 J.MktgRes)。[←直感として、そのモデル、Mplusで組めちゃいそうだなあ...]
対象者を共変量で再帰分割しながらBradley-Terryモデルを推定しまくるという提案もある。[変態だ、変態が現れた... Strobl, Wickelmaier, Zeileis (20011, J.Edu.Behav.Stat.)だそうだ]
個々の比較についての共変量を入れるという提案もある。スポーツのホーム・アドバンテージとか。
ここからは、独立性がないデータのためのモデル。
その4. 推移律が成り立たないモデル。
効用を多次元化して捉えようというモデルとか(最終的なランキングは出せないことになる)、比較の間の従属構造を考えるモデルとかがある。
その5. 一人の対象者が複数の比較をするモデル。
これは研究が多い。
アプローチ1, サーストン・モデル。もともとThurstone(1927)は知覚弁別について考えていたわけだが、そもそも彼にとって$n$個の刺激$(T_1, \ldots, T_n)'$は多変量正規分布に従うのであり、つまり刺激は共分散を持つのである。またTakane(1989)のモデルは、それぞれの比較に誤差を持たせ、その誤差に共分散を持たせており、そのおかげでwandering vectorモデル, wandering ideal pointモデルを扱うことができる[←よくわからんが、効用が共分散行列を持つだけじゃなくて比較が共分散行列を持っているから、たとえばなにとなにを比べるかによって理想ベクトルが切り替わっちゃうようなデータ生成構造が表現できたりする、ということだろうか]。
こういうモデルはパラメータがめっさ多くなるのでなんらかの制約が必要である。サーストンは刺激の共分散行列に制約を掛けたし、Takaneは因子モデルを使った。
もっと拡張したモデルにTsai & Bockenholt (2008)というのがあってだね...[略]
計量心理学者が関心を持つのは刺激の間の関係なので、最大の関心はunstructuredで無制約なサーストンモデルにあるんだけど[←なるほどね]、残念ながらなんらかの制約が必要である。Takaneが考えたような個々の比較が誤差を持つモデルを識別するためには、最低限どんな制約が必要かといいますと...[ああ、面倒くさい話だ... パス]
アプローチ2, ロジット・モデル。最初期はLancaster & Quade (1983)というので、効用をベータ分布に従う確率変数と捉えた。でも「同じ対象者における同じ対象ペアの比較」のあいだに相関を導入しただけだった。
オッズ比を使うアプローチもある。普通の統計ソフトで推定できるのが長所。[←短い説明があるんだけどさっぱりわからん]
対象の効用にランダム効果をいれるというアプローチもある[←っていうか、普通そういう風に考えません?]。たとえば、個人$i$, 対象$i$について
$\mu_{si} = \mu_i + \sum_p \beta_{ip} x_{ip} + U_{si}$
とか。Bockenholt(2001, Psych.Method)など。
アプローチ3, 経済学における選択モデル。この文脈では、ランダム効用モデルのIIA仮定をどうやって緩和するかという点が問題になっていた。nested logitモデルとか、効用に乗っている個人別の誤差に共分散を考える多変量プロビットモデルとか。
経済学における選択理論の特徴は、調査票で調べるstated preferenceと選択課題で調べるrevealed preferenceを別物として扱うという点である。両方を同時に扱うモデルとしてWalker & Ben-Akiva (2002 Math.Soc.Sci.)がある。[←へー]
その6. 対象に関連した依存性があるモデル。
たとえば動物のあいだのコンテストで、固有の個体がランダム効果を持つ、というような場合。[へー、そんな問題があるのね。でも関心ないのでパス]
さて、上記その5のような、独立性のないデータのためのモデルをどうやって推定するか。[... ここから、どんな尤度をどうやって求めるか、適合度をどうやって測るのか、というような難しい話に突入し、おおこれは統計学の論文だったのか、と思い出した次第。5頁にわたってスキップ。どうもすいません]
最後にRのパッケージ紹介。
- ebaパッケージ。これはもともとTverskyのEBAモデルを推定するためのパッケージなんだけど、属性がひとつしかなかったらサーストンモデルやBradray-Tarryモデルと同じである。
- prefmodパッケージ。対象者が複数いるデータに焦点を当てている。
- BradreyTerry2パッケージ。トーナメントに焦点を当てている。
- Stroblらの再帰分割をやる psychotree パッケージというのもある。[えええ、パッケージがあるの!? ただの変態じゃねえな...]
最後のまとめのところに今後の課題がいろいろ書いてあったけど、疲れたのでパス。
読了:Cattelan (2012) 一対比較データのための統計モデル・レビュー
Austin, P.C., Jembere, N., Chiu, M. (2016) Propensity score matching and complex survey. Statistical Methods in Medical Research.
先日目を通したRidgeway et al.(2015)に引き続き、「標本ウェイトつきのデータで傾向スコア調整するときどうするか」論文。シミュレーションしましたという話である。
この論文は前置きをすっ飛ばしてシミュレーションの設定をみたほうがいいと思うので(というか誠実に読むにはいささか疲れてるので)、いきなりシミュレーションについてメモする。
層別クラスタ抽出の場面を考える。母集団は、層10, 各層に20クラスタ、各クラスタに5000人、計100万人。
データを生成する。共変量は6個。共変量$l$について、層$j$はランダム効果
$u^s_{l,j} \sim N(0, \tau^s_l)$
を持ち、クラスタ$k$はランダム効果
$u^c_{l,k} \sim N(0, \tau^c_l)$
を持ち、各ケースは値
$x_{l,ijk} \sim N(u^s_{l,j}+u^c_{l,k}, 1)$
を持つ。
処理を割り当てる。処理は2値とし、処理群における確率$p_i$を
$logit(p_i) = a_0 + a_1 x_1 + a_2 x_2 + \cdots + a_6 x_6$
として、処理変数を
$Z_i \sim Be(p_i)$
とする($Be$はベルヌーイ分布ね)。回帰係数は, $a_1 = \log(1.1), \ldots$という風に固定。
2つのアウトカムを生成する。ひとつは量的変数で、めんどくさいから式は省略するけど、要するに6個の共変量と正規誤差と定数の線形和で、処理群に限り、さらに定数と共変量のうち3つの線形和が乗る。係数はみな固定である。もうひとつは二値変数で、これも$logit(p_i)$を同じようにつくっておいてベルヌーイ分布で生成。
こうして、母集団ができました。以下、estimandはPATT (母集団のATT) とする。
さあ抽出しましょう。
標本サイズは全部で5000。この層への配分がちょっとわからなくて...
We allocate samle sizes to the 10 strata as follows: 750, 700, 650, 600, 550, 450, 350, 300, 250, where the sample size allocated to each stratum was inversely proportinal to the cluster-specific random effect used in generating the baseline covariates. Thus, disproportionately more subjects were allocated to those strata within which subjects had systematically lower values of the baseline covariates, while disproportionately fewer subjects were allocated to those strata within which subjects had systematically higher values of baseline covariates. This was done so that structure of the observed sample would be systematically different from the population from which it was drawn.
要するにアウトカムと抽出確率を相関させたということなんだろうけど(無相関ならウェイティングする意味が薄れるから)、そのやり方がわからない。cluster-specific random effectは全層を通して平均ゼロの正規分布に従うんでしょうに。ひょっとして、200個のランダム効果$u^c_{l,k}$を生成したあとで層別に平均し、値が小さい層から順に標本サイズを750, 700, ... と割り当てていったということだろうか。だとしたら、6個の共変量をどうやってまとめたんだろうか。ひょっとして、アウトカムを生成する式でつかった係数で線形和をとったという話だろうか。よくわからん。まあいいけどさ。
各層あたり5クラスタを単純無作為抽出し、標本サイズを各クラスタに均等に割り当てて無作為抽出する。
傾向スコアを求めましょう。
3つのモデルを試す。どのモデルも、6個の共変量を使ったロジスティック回帰で推定する。
モデル1, 標本ウェイトを使わない。
モデル2, 標本ウェイトを使った重みつきロジスティック回帰。
モデル3, 6個の共変量に加えて標本ウェイトを投入したロジスティック回帰。
マッチングしましょう。(そうそう、そうなのだ、書き忘れていたがこの論文は傾向スコアでマッチングするときにどうするかという論文なのだ。あれ、なんでいまこんなの読んでいるんだっけ? 当面マッチングする用事はないんだけどなあ...)
層やクラスタは忘れて傾向スコアのロジットだけを使い、greedy NNMを使って(えーと、最近傍マッチングのことね)、2群の対象者をマッチングする。キャリパーは0.2SDとする。greedy NNMはただのNNMや最適マッチングよりも優れていることが知られている(Austin, 2014 Stat Med.というのが挙げられている。どう違うのか知りませんけど、信じますよ先生)
PATTを推定しましょう。2つの方法を試す。
方法1, natural weight。マッチした標本について、群ごとに標本ウェイトで重みづけた平均を求め、その差を求める。
方法2, inherited weight。マッチした標本のうち統制群側の対象者のウェイトを、その相方である処理群の対象者のウェイトにすり替えたうえで、推定1の方法を用いる。
どちらについてもブートストラップ法でSEを推定する (詳細はパス)。
... 問題設定はよくわかったので(そして疲れてきたので)、シミュレーションの詳細はパス(2つの$\tau$を動かしていくつかシナリオをつくったらしい)。手法評価の詳細もパス(PATT推定の分散とバイアスを評価するんだと思う)。感度分析もパス。結果についてのみメモする。
共変量のバランスはどのくらい実現されたか。natural weightだときれいにバランシングされ、inherited weightでは少しインバランスが残る(その差は層による分散が大きいときに大きくなる)。傾向スコアモデルを問わずそうなる。
PATT推定のバイアスはどうなったか。natural weightでバイアスはほぼゼロ、inherited weightで大きいほうに偏る(その差は層による分散が大きいときに大きくなる)。傾向スコアモデルを問わずそうなる。
PATT推定のMSEはどうなったか... 信頼区間はどうなったか... (面倒になってきたのでパス)
後半はケーススタディ。疲れたのでまるごとパス。
考察。
3つの傾向スコアモデルのうちどれがいいとはいえない。
マッチング後の集計の際、標本ウェイトはnatural weightにしたほうがよい。
... 肝心の「傾向スコアモデルに標本ウェイトを使うか」問題は、どれがいいのかわからんという結論になってしまった模様。おいおい、せっかく読んだのにそりゃないよ、と思ったんだけど、まあ実際そうなんでしょうね。だいたいさ、まともな標本抽出デザインならウェイティングしようがしまいが回帰モデルなんてそうそう変わらないし、変わるようなデザインだったらウェイティングするの怖いですよね。結局ウェイティングなんて気分の問題なんですよね。僕らの仕事なんて所詮そんなものなんですよね。いいんだどうせ僕なんか。いっそ死ぬまで寝ていたい。(すいません疲れているんです)
マッチング後は各群を素直にウェイティングしたほうが良いという話、そりゃそうだろう、むしろinherited weightなんていう発想がわからないよ、と思ったんだけど、きっとそれにはそれで筋道があるんでしょうね。でもこの話、マッチング後の集計の話であって、もはや傾向スコアと関係なくないっすかね。
2017年8月22日 (火)
McCaffrey, D.F., Griffin, B.A., Almirall, D., Slaughter, M.E., Ramchand, R., Burgette, L.F. (2013) A tutorial on propensity score estimation for multiple treatments using generalized boosted models. Statistics in Medicine, 32, 3388-3414.
題名の通り、処理が3水準以上あるときに、generalized boosted modelを用いて傾向スコア調整するやり方についての長ーいチュートリアル。著者らはRのtwangパッケージの中の人。急遽実戦投入を迫られ、事前の儀式としてめくった。
処理の水準数を$M$ とする。ある人が処理 $t$ を受けた時のpotential outcomeを$Y[t]$ とする。ペアワイズの効果を$D[t', t''] = Y[t'] - Y[t'']$と書く。
因果的効果についての統計量として次の2つを考える。
- ATE(平均処理効果)。母集団全体が処理$t'$を受けた時の平均と、母集団全体が処理$t''$を受けた時の平均の差。すなわち$E(D[t', t'']) = E(Y[t']) - E(Y[t''])$。
- ATT(処理群の平均処理効果)。$t''$と比べた$t'$のATTとは、この研究において$t'$を受けた対象者さんたちの平均と、もしその人たちが$t''$を受けていたらどうなっていたかの平均との差、すなわち$E(Y[t'] | T = t') - E(Y[t''] | T = t')$。
$M=3$の場合、ATEは3つ、ATTは6つあることになる。
ATEとATTのちがいは、対象者間の効果の異質性から生まれる。[←あっ、そうか。効果がhomogeneousだったらどちらでも同じことだわな。なるほど...]
どういうときにどっちのestimandが適切か? すべての処理が潜在的には母集団全員に適用可能なのであれば、ATEが自然。いっぽう、処理$t'$が現在のターゲットに対して適切なものかどうかに関心があるのならATTが自然。
いよいよ本題。どうやって推定するか。
個人$i$について、観察された処理を$T_i$、観察されたアウトカムを$Y_i$、共変量のベクトルを$\mathbf{X}_i$とする。
ここではIPTW (inverse probability of treatment weighting) 推定量について考えよう。この推定量は2つの想定を置く。どちらもデータからは検証できない想定である。
- 十分なオーバーラップ(positivityともいう)。すべての$\mathbf{X}$と$t$について$0 < pr(T_i = t | \mathbf{X}) < 1$。つまり、誰であれ、どの処理であれ、それを受ける確率は0じゃない、という想定である。
- 未知・未測定の交絡因子はないという想定(交換可能性ともいう)。$T_i[t] = I(T_i = t)$として、$T[t]$と$Y[t]$は$\mathbf{X}$の下で条件付き独立。
さて、$p_t (\mathbf{X}) = pr(T[t] = 1 | \mathbf{X})$を傾向スコアと呼ぶ。
上の2つの想定の下で、
$\displaystyle \hat{\mu}_t = \frac{\sum_i T_i[t] t_i w_i[t]}{\sum_i T_i[t] w_i[t]}$
は$E(Y[t])$の一致推定量になる。ただし$w_i[t]$とは傾向スコアの逆数、すなわち$w_i[t] = 1 / p_t(\mathbf{X}_i)$ね。ここからペアワイズATEが推定できる。
いっぽうペアワイズATTは... [めんどくさいので略]
ここからは、傾向スコアの推定方法。
もっとも一般的なのは多項ロジスティック回帰を使う方法である。しかし、共変量の交互作用項とかをどこまで入れるかの判断が難しくて... [いろいろ書いてあるけどパス]
そこでGBMを使おう。いろいろ比べたらGBMが一番良かったという話もあるぞ[McCaffrey, Ridgeway, & Morral (2004 Psych.Methods), Harder, Stuart, & Anthony (2010 Psych.Methods)というのが挙げられている。なお、この論文中には、GBMとはなんぞやという説明はほとんど出てこない。割り切っておるなあ]。
まずは処理が2水準の場合について。
GBMの反復をどこでストップするか。いくつかの基準がある。
- 標準化バイアス(絶対標準化平均差)。ある共変量について、処理群の加重平均と統制群の加重平均の差の絶対値を、重み付けしないSDで割った値。$k$番目の共変量について、ATEなら
$SB_k = | \bar{X}_{k1} - \bar{X}_{k0} | / \hat{\sigma}_k$
ここで$\hat{\sigma}_k$は2群をプールして求める(ATTの場合は処理群だけを使って求める)。目安として、$SB_k$が0.2とか0.25とかを下回っていることが求められる。 - Kolmogorov-Smirnov統計量。$k$番目の共変量の条件$t$における重み付き経験分布関数を以下のように定義する:
$\displaystyle EDF_{tk}(x) = \frac{\sum_i w_i[t] T_i[t] I(X_{ik} \leq x)}{\sum_i w_i[t] T_i[t]}$
で、2本の経験分布関数の差をとって
$KS_k = sup_x | EDF_{1k}(x) - EDF_{0k}(x) |$
ATTの場合、処理群の重みをすべて1とする。この指標はサンプルサイズに依存するので基準を設けにくいのだが、サンプルサイズが中から大のときはだいたい0.1を下回っていてほしい。
次に、処理が多水準でestimandがATEの場合。
傾向スコア推定にあたってのお勧めの方法は、多項のモデルを組むのではなく、ある水準$t$に注目し、「対象者が$t$に属する確率」$\hat{p_t}(\mathbf{X}_i)$を求めるGBMを組む、というのを全水準について繰り返すこと。当然ながら、 $\hat{p_1}(\mathbf{X}_i) + \hat{p_2}(\mathbf{X}_i) + \cdots$は1にならない。でもそんなのどうでもいい。話のポイントは、各水準と全体との間で共変量をバランスさせることなのだ。[←へええええ!]
反復の停止にあたっても「$t$ vs. 全体」での共変量バランスを監視する。標準化バイアスは
$PSB_{tk} = | \bar{X}_{kt} - \bar{X}_{kp} | / \hat{\sigma}_{kp}$
$ \bar{X}_{kp}, \hat{\sigma}_{kp}$ は全群をプールして重み付けなしで算出する。KS統計量は
$KS_{tk} = sup_x | EDF_{tk}(x) - EDF_{pk}(x) |$
$ EDF_{pk}(x)$は全群をプールして重み付けなしで算出する。
なお、バランスの要約統計量を示す際には、PSB, KSの全群を通した最大値を使うとよい。
処理が多水準で、estimandがATTの場合は... [いまあまり関心ないのでパス]
ところで、doubly robust推定というのもあってだね... ウェイティングしても共変量のインバランスは少しは残るわけで、ウェイティングするだけでなく、さらに共変量を投入した重み付き回帰モデルを組むことがある。これを推奨する人もいるし、確かに処理効果の推定はより正確になるらしいんだけど、変数選択しなきゃいけないというのが決定。著者らのお勧めは、基本はウェイティングのみとし、どうしてもdoubly robust 推定したい場合は「まだインバランスが残っている共変量」を実質科学的な観点から選択すること。RCTでも設計段階で共変量を実質科学的に特定するし、事後的に調整するときにあらためて変数選択なんてしないでしょ、という理屈。
最後に、有効サンプルサイズについて。ウェイティングで分散は拡大する。そのインパクトを捉える保守的な指標として、
$\displaystyle ESS_t = \left( \sum_i T_i[t] w_i \right)^2 / \sum_i T_i[t] w_i^2$
を用いる。ここで$w_i$は、ATEなら$1/\hat{p}_t (\mathbf{X}_i)$ね。有効サンプルサイズが小さくなると云うことは、少数のケースにすごいウェイトがついているということ、つまり オーバーラップが十分でないというシグナルである。
やれやれ、疲れた。以上が前半のメモ。
後半は事例紹介。すごく役に立ちそうだが、必要になったときに慌てて読むってことにしよう。[←自分に甘い]
処理の水準数が3以上のときの傾向スコア調整で、共変量から各水準への所属確率を推定するんだけど、その推定はなにも多項ロジスティック回帰のようなひとつのモデルでやらなくても、水準ごとに別々のモデルでよいし、ある対象者について確率の和が1にならなくても別にいいじゃん... というところが意外であった。そういうもんなんすか-。
読了:McCaffrey, et al. (2013) 処理の水準数が多いときの傾向スコア推定 by 一般化ブースト回帰
2017年8月21日 (月)
Ridgeway, G., Kovalshik, S.A., Griffin, B.A., Kabeto, M.U. (2015) Propensity score analysis with survey weighted data. Journal of Causal Inference, 3(2), 237-249.
仕事の都合で慌てて読んだ。調査設計のせいで標本ウェイトがついているデータについて傾向スコアを使った分析をするときどうすればいいか、という論文。楽しかないけど切実な話です。
この雑誌、最近創刊された奴だが、たしかPearlさんが編集長かなにかなので、きっとパス図の話とか有向分離の話とかしか出てこないんだろうと思っておりました。傾向スコアの話も載るんすね。すいませんでした。
適当に流し読みしただけなので、メモもいいかげんだけど...
なにが問題になっておるのかというと、こういう話だ。
2水準の処理で、ケース$i$の処理インジケータを$t_i$とし(処理群だったら$t_i = 1$)、potential outcomeを$y_{0i}, y_{1i}$とする。話を簡単にするために、PATT (処理群の平均処理効果の期待値)をestimandとする。で、残念ながら標本抽出の確率$p_i$が不均一であるとする。
処理群の処理下アウトカムの期待値は単純に
$\displaystyle E(y_1| t=1) \approx \frac{\sum_i t_i (1/p_i) y_{1i}}{\sum_i t_i (1/p_i)}$
でよい(いや抽出確率の不均一性はいわゆるモデルベースで解決しようという意見もあるだろうけど、それは脇に置いておき、デザインベースでなんとかする路線で考える)。
問題は反事実下の期待値$E(y_0 | t=1)$の推定である。仮に統制群の傾向スコアを標本ウェイトなしで推定すると、統制群の共変量の分布を処理群の標本における分布とバランスさせることになってしまう。でもほんとにバランスさせないといけない相手は処理群の母集団における分布じゃないですか。というのが問題。
フォーマルに書くと以下の通り。
傾向スコアでウェイティングするとしよう。標本抽出インジケータを$s$ (抽出されたら1)、共変量ベクトルを$\mathbf{x}$として
$f(\mathbf{x} | t=1) = w(\mathbf{x}) f(\mathbf{x} | t=0, s=0)$
となるウェイト$w(\mathbf{x})$が欲しい。
これを書き換えると下式となる由:
$\displaystyle w(\mathbf{x}) = \frac{f(s=1, t=0)}{f(t=1)} \frac{1}{f(s=1|t=0,\mathbf{x})}\frac{f(t=1|\mathbf{x})}{1-f(t=1|\mathbf{x})} $
第1項は定数、第2項は標本ウェイト。問題は第3項で、これはよくみると母集団における処理割付オッズを表しており、標本における処理割付確率$f(t=1|\mathbf{x}, s=1)$から求めたオッズとは異なる、というのがポイント。
というわけで、著者らいわく、「傾向スコアを求めるときには標本ウェイトは気にしなくてよい」という人も多いけど間違っとる。傾向スコアのモデルも標本ウェイトの下で組むべし。
特にそれが必要な場面として、著者らは3つの場面を挙げている。(1)標本ウェイトを作った際の共変量$z$が傾向スコアを作る際には手に入らない場合。(2)傾向スコアモデルの自由度が小さいとき。(3)標本ウェイトを別のデータソースを使って出しているとき。
シミュレーションと実例...[読んでない]。
というわけで、諸君、傾向スコアのモデルを組む際にも標本抽出ウェイトを使いなさい。そして最終的なウェイトは傾向スコアのウェイトと標本抽出ウェイトの積にしなさい。云々。
きちんと読んでないのでわかんないんだけど、うーん、逆にいうと、標本ウェイトが比較的に単純で(層別一段抽出とかで)、その算出にあたって使った層別変数が傾向スコアを求める際の共変量群にはいってて、標本サイズが十分であれば、傾向スコアモデルの構築の際には標本ウェイトは気にしなくてよい。という理解であっておりますでしょうか???
読了:Ridgeway, Kovalshik, Griffin, Kabeto (2015) それが標本ウェイトつきのデータなら、傾向スコアを求める際にも標本ウェイトを使え
Thoemmes, F.J., & Kim, E.S.(2011) A Systematic Review of Propensity Score Methods in the Social Science. Multivariate Behavioral Research, 46, 90-118.
傾向スコア調整を使っている心理・教育系論文を集めてレビューし教訓を垂れます・イン・2011、という論文。わーい、心理・教育系だいすきー。だって数学が苦手な人が多いんだもんー。(すいません)
まずイントロとして傾向スコア概説。いくつかメモしておくと、
- 推定した傾向スコアの使い方としては、マッチング、層別、ウェイティング、モデルに共変量として投入、がある。このうち共変量として使用する路線は、傾向スコアの効果が線形でなかったらどうするんだ、処理変数と交互作用があったらどうするんだという批判がある。Weitzen, et al.(2004 Pharmacoepidemiology and Drug Safety)を見よ。
- 傾向スコアモデルの中心的特性は共変量バランスと共通サポート領域だ[後者は、処理水準間で共変量の分布がちゃんとオーバーラップしているかどいうことだと思う]。共変量バランスは検定でチェックされることが多いが、Cohenのdを使えという批判も多い。ただしそれにも注意が必要で、たとえば、マッチさせる前と後で同じSDを使わないといけない。Stuart(2008, 書籍)をみよ。絵を描くのもいいぞ。
- 共通サポート領域を絵にかくのも大事。Imai, King, & Stuart (2008 JRSS), King & Zeng (2007 Int.Studies.Q.)をみよ。
- 傾向スコアでマッチングした後で検定するとき、対応のない検定を使えという説と対応のある検定を使えという説がある。前者はStuart, Schafer & Kangら、後者はAustinら。[←この話題、以前もどこかで見かけたんだけど、こんな簡単そうな話題でも意外に揉めるもんなのね...]
心理教育系で傾向スコアを使っている論文を111本集めてコーディングし集計。ちゃんと読んでないけど、えーっと、傾向スコアの推定方法は78%の論文がロジスティック回帰でやっている。共変量選択についてはちゃんと書いてないのが多い。傾向スコアの使い方はマッチングが64%(やり方はいろいろ)で、以下、層別、ウェイティング、共変量投入と続く。云々、云々。
というわけで、諸君、以下の点を改善したまい。
- 傾向スコア推定のために集めた変数と使った変数の一覧を付録につけなさい。[←ははは。でもわかるよ、できれば書かずに済ませたいという気持ちも]
- マッチングの場合、1:1マッチングのほかにもいろいろあるから勉強しなさい。
- 傾向スコアの推定はロジスティック回帰以外にもいろいろあるから勉強しなさい。ブーステッド回帰木とか(McCaffreyのやつ)、遺伝的マッチングとか(Diamond & Sekhon, 2005 Webに落ちているみたい)。
- 共変量のバランスはちゃんとチェックしなさい。もちろん検定じゃだめだよ。Austin(2009 Stat.Med.)を読みなさい。
- 共通サポートもちゃんと調べなさい。
... 傾向スコアの使い方として時々みかけるdoubly robust推定って、あれどうなんすかね、なんか書いてあるといいな、と思いながらめくっていたのだが、残念ながら載ってなかった。
読了:Thoemmes & Kim (2011) 心理・教育系研究における傾向スコアの使われ方レビュー
2017年8月20日 (日)
Little, R.J.A., Wu, M.M. (1991) Models for contingency tables with known margins when target and sample population differ. Journal of the American Statistical Association. 86(413)
仕事の都合で読んだ奴。
ここにサーベイ調査から得たA, Bのクロス表がある。また、センサスから得たA, Bそれぞれの分布がある(クロス表は手に入らない)。サーベイ調査から得たクロス表の周辺分布は、センサスから得た分布と比べて少しずれている。
以上に基づき、AとBの同時分布を推定したい。ただし、それはセンサスから得た分布と一致していないと困る。
フォーマルに書くとこうだ。目標母集団において$A=i$かつ$B=j$である確率を$\pi_{ij}$とする。$\pi_{i+}, \pi_{+j}$を既知の周辺分布とする。サーベイ調査におけるセル割合を$p_{ij} = n_{ij}/n$とする。セル割合の推定量$\hat{\pi}_{ij}$が欲しいんだけど、$\sum_j \hat{\pi}_{ij} = \pi_{i+}, \sum_i \hat{\pi}_{ij} = \pi_{+j}$でないと困る。どうすればよいか。
この問題はDeming&Stephan(1940)に遡り、たくさんの解が提案されておる。4つの解をご紹介しよう。
その1, raking推定量(以下RAKEと略記)。デミングらの提案である。
彼らの発想は、重みつき最小二乗
$\sum_i \sum_j (p_{ij}-\hat{\pi}_{ij})^2 / p_{ij}$
を最小にしようというものであった。そこでデミングらが考えたのが、ご存じIPF(iterative proportional fitting)法、またの名をDeming-Stephanアルゴリズムである。なお、クロス表にIPFを掛けることをrakingということもあるので、ここではそう呼びます。
これはどういうのかというと...[以下、表記を大幅に簡略化する]
(1)$\hat{\pi}_{ij}=p_{ij}$とする。当然、周辺割合は既知の周辺分布と比べてずれている。(2)各セルに$\pi_{i+}/\hat{\pi}_{i+}$を掛け、行側の周辺割合を既知の周辺分布に無理やり合わせる。列側はずれたまま。(3)各セルに$\pi_{+j}/\hat{\pi}_{+j}$を掛け、列側の周辺割合を既知の周辺分布に無理やり合わせる。今度は行側がちょっぴりずれる。(4)気が済むまで繰り返す。
のちにStephan(1942) 自身が指摘したんだけど、raking推定量は実は重みつき最小二乗推定量になっていない。なお、raking推定量は次の形式になっている:
$\ln(\hat{\pi}_{ij} / p_{ij}) = \hat{\mu} + \hat{\alpha}_i + \hat{\beta}_j$
その2、重みつき最小二乗推定量(LSQ)。Stephan(1942)が改めて提案したもの。これは
$\hat{\pi}_{ij} / p_{ij} = \hat{\mu} + \hat{\alpha}_i + \hat{\beta}_j$
の形をとる[←へー。標本セル割合に対する倍率が、全体パラメータ, 列パラメータ, 行パラメータの和になるわけだ]。
その3、無作為抽出下の最尤推定量(MLRS)。無作為抽出を仮定すれば、対数尤度は
$l(\hat{\pi}) = \sum_i \sum_j p_{ij} \ln(\hat{\pi}_{ij})$
となるわけで、これを最大化する。この推定量は
$(\hat{\pi}_{ij} / p_{ij})^{-1} = \hat{\mu} + \hat{\alpha}_i + \hat{\beta}_j$
という形式となる。
その4、最小カイ二乗推定量(MCSQ)。
$\sum_i \sum_j (\hat{\pi}_{ij} - p_{ij})^2 / \hat{\pi}_{ij}$
を最小化する。結局
$(\hat{\pi}_{ij} / p_{ij})^{-2} = \hat{\mu} + \hat{\alpha}_i + \hat{\beta}_j$
という形式となる[←へえええ。そういうもんすか...]
この4つの推定量は、無作為抽出の下では漸近的に等しいし、大した差はない。
しかあし。この問題が生じるのは、往々にして、クロス表の元になったデータは無作為標本ですと胸を張って言えない状況においてある(だからこそ、既知の周辺分布に合わせたいなんて思うわけである)。
目標母集団と抽出母集団が異なるとき、優れている推定量はどれだろうか? これが本論文の本題であります。
この話、目標母集団と抽出母集団がどう異なるのかによって話が変わってくる。
目標母集団のセル割合を$\pi_{ij}$、抽出母集団のセル割合を$\tau_{ij}$としよう。いま、標本が抽出母集団からの単純無作為抽出であり、かつ
$\ln(\pi_{ij}/\tau_{ij}) = \mu + \alpha_i+ \beta_j$
という関係があるならば(ただし$\sum a_i = \sum b_j = 0$)、RAKE推定量は$\{\pi_{ij}\}$の最尤推定量となる[←証明がついているんだけど読み飛ばした]。同様に、
$\pi_{ij}/\tau_{ij} = \mu + \alpha_i+ \beta_j$
という関係があるならばLSQ推定量が、
$(\pi_{ij}/\tau_{ij})^{-1} = \mu + \alpha_i+ \beta_j$
という関係があるならばMLRS推定量が、
$(\pi_{ij}/\tau_{ij})^{-2} = \mu + \alpha_i+ \beta_j$
という関係があるならばMCSQ推定量が、$\{\pi_{ij}\}$の最尤推定量となるのである[←あー、なるほどねー!]。
なお、ここから次の教訓が得られる。もし標本抽出においてAB交互作用があったら、どの推定量もうまくいかない。[←ああ、なるほど...これは直感的にもわかる気がする。いくらAとBの母周辺分布がわかっていても、標本抽出バイアスにAB交互作用があったら、それはお手上げだろうね]
4つの推定量の分散はどうなっておるかというと... [パス]
... 後半は事例とシミュレーション。このシミュレーションがこの論文の本題なんだけど、すいません、読み飛ばしました。いろんな標本抽出モデルで試した結果、RAKEとMLRSの成績が良かった由。
著者ら曰く、確たる根拠があるわけじゃないけど、標本抽出モデルについての知識がない場合は、RAKE推定量がよさそうだ、とのことであった。
なるほどねえ... とても勉強になりましたです。一見全然ちがう基準を持つ4つの推定方式が、実は統一的な枠組みで説明できるというところに痺れました。
ほんというと... 同一母集団から得た2つの標本に、同一の選択肢を異なる状況下で選択させ、それぞれの状況での選択分布を得た。ここから、2つの状況を通じた同時分布(遷移行列というか混同行列というか)を推定したい。という問題に関心があるのである。仕事の話だから抽象的にしか書けないけど、そういう問題があるんです。
この場合も、この論文のタイトルと同じくModels for contingency tables with known marginsが欲しいわけなんだけど、この論文で言うところのABクロス表(rakingの文脈で言うところのseed)は観察できないわけで、なんらかの事前知識からseedを構成することになる。たとえば、状況が選択に与える影響を最小限に評価したい、よってseedは対角行列だ、とか。
この論文で取り上げられている4つの推定量はそれぞれの発想でなにかを最小化しているわけだけど、結果的には、セル割合の推定値とseedとの比をなんらか変換した $(\pi_{ij}/\tau_{ij})^{\lambda} $が全効果・行効果・列効果の線形和となるという制約をかけていることになるわけだ。これはこの論文から得た大きな学びでございました。私が考える問題では、seedの側に実質的な想定を置くかわり、seedと推定値とのずれについてはなにも想定したくないんだけど...? ううむ...
読了:Little & Wu (1991) 標本から得たAxBクロス表を既知の周辺分布に合わせたい、標本にはバイアスがあることがわかっている、さあどうするか
2017年8月19日 (土)
先日リリースされたMplus 8では、時系列モデルの機能が大幅拡充されている。ただでさえ目も眩むほどに多機能なのに、MODELセクションにラグつき回帰を表す記号なんかが追加されて、もうえらいことになっている。勘弁してください、Muthen導師...
Asparouhov, T., Hamaker, E.L., Muthen, B. (2017) Dynamic Structural Equation Models. Mplus technical paper.
新機能についてのテクニカル・ペーパー。実戦投入前の儀式として読んだ。
新機能が想定しているのは、たくさんの人をたくさんの時点で測定しました、というようなintensiveな縦断データ(ILDデータ)。ambulatory assessmentsとか[なんて訳すんだろう。移動測定?]、日記データとか、ecological memontary assesmenentデータとか[これも定訳があるのかどうかわかんないけど、患者の電子日記みたいなのだと思う]、経験サンプリングとか、そういうのである。
いわく...
社会科学における縦断分析の手法として成長モデリングが挙げられる。観察変数なり潜在変数なりを時間の関数としてモデル化し、そのパラメータを個人レベルのランダム効果とみなすわけである。でも一人当たり時点数はふつう10以下。データが大きいと計算が無理になるし、時点数が大きいと単純な関数を当てはめるのは難しくなる(スプラインをつかってもいいけど補外が難しい)。
そこで動的構造方程式モデル(DSEM)を提案しよう。個人をクラスタとする2レベルモデルとして成長モデルを組み、そこにラグつきの回帰とかをいれる。Molenaar(1985)とかの動的構造モデルを2レベル化するといってもよい。[なるほど...さすがはMuthen導師、簡潔にして要を得た説明だ。しかし導師よ、Molenaar(1985)って引用文献に載ってないんですけど。Psychometrikaの動的因子分析の論文ですかね]
わがDSEMフレームワーク、それは次の4つのモデリング技術の結合である。
- マルチレベル・モデリング。すなわち、個人ごとの効果がもたらす相関に基づくモデリング。
- 時系列モデリング。すなわち、観察の近接性がもたらす相関に基づくモデリング。
- 構造方程式モデリング。すなわち、変数間の相関に基づくモデリング。
- そして時変効果モデリング(EVEM)。すなわち、進化のステージが同じであることがもたらす相関に基づくモデリング。
[...か、かっこいい...導師...濡れちゃいます...(雨で)]
能書きはこのくらいにして、モデルの話。
まずはクロス分類モデル(個人のランダム効果と時点のランダム効果を併せたモデル)から。個人$i$、時点$t (=1,2,\ldots,T_i)$ における観察ベクトルを$Y_{it}$とする。これを分解する:
$Y_{it} = Y_{1,it} + Y_{2,i} + Y_{3,t}$
順に、個人$i$時点$t$からの偏差, 個人の寄与, 時点の寄与。
第2項, 第3項のモデルがbetweenレベルのモデルとなる。まず第2項は
$Y_{2,i} = \nu_2 + \Lambda_2 \eta_{2,i} + K_2 X_{2,i} + \epsilon_{2,i}$
$\eta_{2,i} = \alpha_2 + B_2 \eta_{2,i} + \Gamma_2 X_{2,i} + \xi_{2,i}$
上が測定方程式で下が構造方程式。$X_{2,i}$は個人レベルの時間不変な共変量、$\eta_{2,i}$は個人レベルの時間不変な潜在変数、$\epsilon_{2,i}$と$\xi_{2,i}$は平均ゼロの残差である。同様に第3項は
$Y_{3,i} = \nu_3 + \Lambda_3 \eta_{3,i} + K_3 X_{3,i} + \epsilon_{3,i}$
$\eta_{3,i} = \alpha_3 + B_2 \eta_{3,i} + \Gamma_3 X_{3,i} + \xi_{3,i}$
さて、第1項のモデル、すなわちwithinレベルのモデル。いよいよ時系列が入ります。
測定方程式は
$Y_{1,it}$
$= \nu_1$
$+ \sum_{l=0}^L \Lambda_{1,l} \eta_{1,i,t-l}$
$+ \sum_{l=0}^L R_l Y_{1,i,t-l}$
$+ \sum_{l=0}^L K_{1,l} X_{1,i,t-l}$
$+ \epsilon_{1,it}$
構造方程式は
$\eta_{1,it}$
$= \alpha_1$
$+ \sum_{l=0}^L B_{1,l} \eta_{1,i,t-l}$
$+ \sum_{l=0}^L Q_l Y_{1,i,t-l}$
$+ \sum_{l=0}^L \Lambda_{1,l} X_{1,i,t-l}$
$+ \xi_{1,it}$
派手になってまいりました。順に、切片、潜在変数、観察従属変数、共変量、残差である。例によって、$X_{1,i,t}$は個人x時点の共変量、$\eta_{1,it}$は個人x時点の潜在変数。
この定式化だと、withinレベルのモデルにおけるパラメータはランダム項ではないが、ランダム項にしてもいい。つまり、たとえば$\Lambda_{1,l}$を$ \Lambda_{1,lit}$としてもいいし、$R_l$を$R_{lit}$としてもよい。この場合、withinレベルのパラメータもまた個人と時点に分解する。つまり、いまパラメータ$s$をランダムにしたい場合は
$s = s_{2,i} + s_{3,t}$
と考えるわけである。
同様に残差分散$Var(\epsilon_{1,it}), Var( \xi_{1,it})$もランダムにしてよくて...[めんどくさいので略]
以上の定式化は、時系列的特徴は自己相関しか取り入れていないように見えるけど、潜在変数があるので意外に柔軟である。たとえばARMA(1,1)は
$Y_t = \mu + a Y_{t-1} + \eta_t + b\eta_{t-1}$
としてして表現できる。
上のモデルだと、時点0以前のデータが必要になるけど、そこはその、MCMCのburninのあいだに適当な事前分布を決めてですね... [とかなんとか。なんだかわからんが、とにかくどうにかなる由]
[他にもいくつか注意書きがあったけど、省略]
推定に当たっては、モデルをブロックにわけて... [省略]
モデルの適合度としてはDICを使う。すべての従属変数が連続だとする。モデルのパラメータを$\theta$, すべての観察変数を$Y$として、デビアンスは
$D(\theta) = -2 \log p(Y|\theta)$
MCMCを通じて得たデビアンスの平均を$\bar{D}$, MCMCを通じて得たモデルパラメータの平均を$\bar{\theta}$とする。有効パラメータ数を次のように定義する:
$p_D = \bar{D} - D(\bar{\theta})$
で、DICとは
$DIC = p_D + \bar{D}$
DSEMモデルにおけるDICを厳密に定義すると... [略]。
なお、DICにはいろいろ注意すべき点がある。
- 潜在変数をパラメータとみているかどうかで値が変わってくる。たとえば1因子のモデルで、因子をパラメータとしてみるならば、$p(Y|\theta)$はその因子の下で条件づけられた尤度だ(そこではその因子の指標はその因子の下で互いに独立である)。いっぽう、因子をパラメータとみない場合、$p(Y|\theta)$は因子に条件づけられた尤度ではなく、モデルに基づく分間共分散行列を使って求める尤度だ(そこでは指標は独立でない)。というわけで、潜在変数のあるモデルではDICの定義に気を付けないといけない。
たとえば、モデル1は1因子2指標のモデルで因子をパラメータとみている。モデル2は同じモデルだが、因子の分散を0に固定している(つまり指標が独立だというモデルだ)。モデル3は因子なし、指標が相関しているというモデル。さて、モデル1とモデル2のDICを比較するのはOK。モデル2とモデル3のDICを比較するのもOK。でも、モデル1とモデル3のDICを比較するのはNG。[←えええ...] - 潜在変数をパラメータとみていると、パラメータの数が増え、パラメータ推定は収束しているのにDICは収束していないということが起きる。シードを変えてMCMCしなおして確認すべし。
モデルの評価のためには、標本統計量とモデルによるその推定量を比べるという手もある。たとえば、2レベルDSEMで従属変数がひとつ($Y$)のとき、個人$i$における$Y$の標本平均を標本統計量を$\bar{Y}_{i*} = \sum ^{T_i} _t Y_{it} / T_{i}$、そのモデルによる推定量を$\mu_i$として、$R = Cor(\mu_i, \bar{Y}_{i*})$ とか$MSE = \sum_i^{N} (\mu_i - \bar{Y}_{i*})^2 / N$とかを調べたりする。
... 以上、前半のメモ。
後半はシミュレーションの紹介。扱われている問題は以下の通り。
- センタリング
- 個人内分散
- ARMA(1,1)とMEAR(1)
- AR(1), MEAR(1)に共変量を追加する方法
- 動的因子分析
- 時点が個人によって異なる場合、等間隔でない場合
- 時点ごとの効果
長いので、関心のある部分だけつまみ食い。
センタリングについて。
次の単変量AR(1)モデルを考える。
$Y_{it} = \mu_i + \phi_i (Y_{i,t-1} - \mu_i) + \xi_{it}$
$\xi_{it}$は平均0のホワイトノイズ、$\mu_i$と$\phi_i$は二変量正規とする。
DSEMならこれを一発推定できるけど、普通の2レベル回帰だと、標本平均で中心化して
$Y_{it} = \mu_i + \phi_i (Y_{i,t-1} - \bar{Y}_{i*}) + \xi_{it}$
を推定することになるわね。すると$\phi_i$にバイアスがかかる。これを動的パネルバイアス、ないしNickellのバイアスと呼ぶ。 Nickellさんの近似式によればバイアスは$-(1+\phi)/(T-1)$である。 [←へぇー]
そこでシミュレーションしてみると... DSEMで一発推定した場合、バイアスは小さく、時系列が100時点以上ならほぼゼロ。標本平均で中心化した場合、Nickellの近似式はほぼ当たっている。云々...[後略]
ARMA(1,1)とMEAR(1)について。
ARMA(1,1)モデルとは
$Y_t = \mu + \phi Y_{t-1} + \epsilon_t + \theta \epsilon_{t-1}$
だけど、これは次のモデルと等価である。
$Y_t = \mu + f_t + \xi_t$
$f_t = \phi f_{t-1} + e_t$
つまり、潜在変数$f_t$がAR(1)に従っているんだけど、その測定に誤差が乗っていると考えるわけである。これをmeasurement error AR(1)モデル、略してMEAR(1)と呼ぶことにする。云々... [あー、この話面白そう。時間がなくて読み飛ばしたけど、いつかきちんと勉強したい]
動的因子分析(DFA)について。
一般的なDFAモデルとして、直接自己回帰因子得点モデル(DAFS)とホワイトノイズ因子得点モデル(WNFS)がある。DAFSっていうのは
$Y_t = \nu + \Lambda \eta_t + \epsilon_t$
$\eta_t = \sum^L_{l=1} B_l \eta_{t-l} + \xi_t$
というモデルで、観察変数と潜在変数の間にはラグがなく、潜在変数がAR過程に従う。観察変数は結局ARMA(p,p)に従う(pは観察変数の数)。いっぽうWNFSってのは
$Y_t = \nu + \sum^L_{l=0} \Lambda_l \eta_{t-l} + \epsilon_t$
というモデルで、観察変数と潜在変数の間にラグがあり、潜在変数はホワイトノイズ。観察変数は結局MA(L)に従う。
これをハイブリッドにしたモデルを考えることもできる。すなわち
$Y_t = \nu + \sum^L_{l=0} \Lambda_l \eta_{t-l} + \epsilon_t$
$\eta_t = \sum^L_{l=1} B_l \eta_{t-l} + \xi_t$
1因子5指標、$L=1$、100人100時点でシミュレーションしてみると、[...中略...]、ちゃんとDICで正しいモデルを選択できました。云々。[途中で疲れてきて読み飛ばしたが、この節、必要になったらきちんと読もう]
...そんなこんなで、後半はほとんど読めてないんだけど、まあいいや。このtech. paperのmplusのコードは公開されているはずなので、いずれ余力ができたら勉強する、ということで。もっとも、どうせ余力なんて永遠に手に入らないのだが。
読了:Asparouhov, Hamaker, & Muthen (2017) ものども跪け、これがMplus8の新機能「動的SEM」だ
Asparouhov, T., Hamaker, E.L., Muthen, B. (2017) Dynamic latent class analysis. Structural Equation Modeling. 24, 257-269.
哀れなデータ解析ユーザの諸君、Mplusがこのたび実装した時系列データ分析の世界へとご招待しよう。その名も動的潜在クラス・モデルだ。という論文。正直、そんなややこしい世界にはご招待してほしくないんですが。できればずっと寝ていたいんですが。
いわく。
[前置きをはしょって...]
このモデリングの枠組みを提出する目的は:(a)異なる状態 (いわゆる潜在クラス、レジーム)のあいだでのスイッチングを説明する潜在マルコフモデル(隠れマルコフモデル)をつくりたい。(b)個人の遷移確率をランダム効果としてモデル化したい。(c)時系列分析とそのマルチレベルへの拡張を通じて、状態のあいだの動的な関係性を調べたい。
すでに以上のうち2つの組み合わせは存在する。レジーム・スイッチング状態空間モデルとか、個人の遷移確率がランダムな隠れマルコフモデルとか。でも3つの組み合わせははじめて。
[そのほか、まだまだイントロが続くけど、はしょって...]
まずはMplusが実装しているDSEMフレームワークについて説明しよう。詳細はAsparouhov et al. (2016, Mplus Tech. Rep.) を参照のこと。
個人$i$の時点$t$における観察ベクトルを$Y_{it}$とする。これをwithinレベルとbetweenレベルに分割して
$Y_{it} = Y_{1,it} + Y_{2, i}$
いずれも正規分布に従う確率ベクトルとみなす。
betweenレベルのほうは次のようにモデル化する。
$Y_{2,i} = v_2 + \Lambda_2 \ \eta_{2,i} + \epsilon_{2,i}$
$\eta_{2,i} = \alpha_2 + B_2 \ \eta_{2,i} + \Gamma_2 x_{2,i} + \xi_{2,i}$
withinレベルのほうにはラグがはいって、
$Y_{1,it} = \sum_{l=0}^L \Lambda_{1,i,l} \ \eta_{1,i,t-l} + \epsilon_{1,it}$
$\eta_{1,i,t} = \alpha_{1,i} + \sum_{l=0}^{L} B_{1,i,l} \ \eta_{1,i,t-l} + \Gamma_{1,i} x_{1,it} + \xi_{1,it}$
[以下、Asparouhov et al. (2016) の簡略版的説明。省略]
これを混合モデルへと拡張します。
withinレベルの潜在クラス$S_{it}$を導入する。記号を$C$じゃなくて$S$にしたのは、時系列の文脈では「潜在状態変数」と呼ばれることが多いから。
$[Y_{1,it}|S_{it} = s] = v_{1,s} + \sum_{l=0}^L \Lambda_{1,l,s} \ \eta_{i,t-l} + \epsilon_{it} $
$[\eta_{i,t} |S_{it} = s] = \alpha_{1,s} + \sum_{l=0}^{L} B_{1,l,s} \ \eta_{i,t-l} + \Gamma_{1,s} x_{it} + \xi_{it}$
[記法の変化に注意。DSEMとのちがいをメモしておくと、(1)観察方程式にクラス別切片$v_{1,s}$が追加され、状態方程式の切片が個人別からクラス別になった。(2)観察方程式・状態方程式の係数が、個人別係数$\Lambda_{1,i,l}, B_{1,i,l}$からクラス別係数$\Lambda_{1,l,s}, B_{1,l,s}$に変わった。添え字の順序が変わった理由はよくわからない。(3)潜在変数、観察誤差、共変量、状態誤差の添え字から$1$がとれ、たとえば$\eta_{1,i,t}$から$\eta_{i,t}$になった。理由はわからない]
$S_{it}$の分布は
$\displaystyle P(S_{it} = s) = \frac{\exp(\alpha_{is})}{\sum_{s=1}^K \exp(\alpha_{is}) }$
ただし、$\alpha_{is}$は正規ランダム効果で、識別の都合上$\alpha_{iK}=0$とする。これは$\eta_{2,i}$の一部として含まれている。[←頭のなかが疑問符でいっぱいになったが、この$\alpha_{is}$は、betweenレベルの構造方程式の切片$\alpha_2$でもwithinレベルの構造方程式の切片$\alpha_{1,s}$でもなく、ここで初出の確率変数らしい。時間の添え字がついていないのは誤植かと疑ったが、どうやらこれで正しい模様。下記参照]
[以下、 $\alpha_{is}$ の推定の話がしばらく続く。よくわからんので省略]
以上のモデルには欠点がある。クラスのなかでは自己回帰をモデル化できてるけれども、潜在クラスの自己相関をモデル化できていない。つまり、上の$P(S_{it}=s)$のモデルをみるとわかるように、隣り合う二つの時点のあいだで個人が属するクラスが、$a_{is}$のもとで条件つき独立になっている[←そう!そうですよね! だから$\alpha_{is}$が時間不変なのっておかしいと思ったのだ]。これはちょっと現実的でないので、あとで隠れマルコフモデル(HMM)を導入して手直しする。
さて、ここでちょっと話かわって、マルチレベル混合モデルの事例紹介。いずれもランダム効果の数が多くて、理論的にはML推定できるけど、計算量的にはMCMCでないと歯が立たないものばかりである。
事例1, データがクラスタ化されていて測定変動性がある潜在クラス分析。
[従来のロバストML推定をディスるくだりがあって... ベイジアン化する前からのMplusユーザとしては、自分がディスられているようでちょっとつらい...]
例として、3クラス, 2値項目8個のモデルを考える。クラスタ$j$の個人$i$の項目$p$の得点$U_{pij}$について
$P(U_{pij} = 1 | C_{ij} = k) = \Phi(\tau_{pk} + \epsilon_{pj})$
とする。$\tau_{pk}$は閾値, $\epsilon_{pj}$はクラスタ間の測定変動ね。
で、クラス所属確率を
$\displaystyle P(C_{ij} = k) = \frac{\exp(\alpha_k + \alpha_{jk})}{\sum_{j=1}^K \exp(\alpha_k + \alpha_{jk}) }$
とする。識別のため、$\alpha_K, \alpha_{jK}$は0とする。
このモデル、ML推定だと、 $\epsilon_{pj}$が8項目, $ \alpha_{jk}$が2クラス、計10次元の数値積分が必要になる。でもベイジアンならあっという間さ。
事例2. 制約のない2レベル混合モデル。[パス]
事例3. クラスタ別の遷移確率を持つマルチレベル潜在遷移分析。[これもパス。本題に入るまで体力を温存したい]
隠れマルコフモデル(HMM)を導入します。
HMMは測定モデルとマルコフ・スイッチング・モデルからなる。測定モデルは普通の混合モデルと同じで、$P(Y_t | C_t)$のモデル。マルコフ・スイッチング・モデルは遷移行列$P(C_t | C_{t-1})$のモデル。1レベルモデルなら、この遷移行列自体をパラメータとみてモデル化できる(自然共役事前分布としてディリクレ分布が使える)。周辺確率$P(C_t)$はパラメータでないことに注意。
見方を変えると、HMMというのは1次自己回帰モデルである。云々...
[以下、パラメータ推定方法の話とシミュレーションが続く。パス]
お待たせしました。動的潜在クラスモデル(DLCA)の登場です。
DLCAとは、ここまでに紹介した3つのアプローチの統合だ。(1)マルチレベルとSEMをあわせてマルチレベルSEM、さらに混合モデルをあわせてマルチレベル混合モデル、これに潜在遷移モデルをあわせてマルチレベル潜在遷移モデル。(2)時系列をSEMをあわせてDSEM、これに混合モデルをあわせて混合DSEMモデル。(3)HMM。
まずは
$Y_{it} = Y_{1,it} + Y_{2, i}$
withinレベルのほうがクラスごとのDSEMモデルとなり
$[Y_{1,it} | S_{it} = s] = v_{1,s} + \sum_{l=0}^L \Lambda_{1,l,s} \ \eta_{i,t-l} + \epsilon_{it}$
$[\eta_{i,t} | S_{ot} = s] = \alpha_{1,i} + \sum_{l=0}^{L} B_{1,l,s} \ \eta_{i,t-l} + \Gamma_{1,s} x_{it} + \xi_{it}$
潜在クラス$S_{it}$はマルコフ・スイッチング・モデル。
$\displaystyle P(S_{it} = d | S_{i,t-1} = c) = \frac{\exp(\alpha_{idc})}{\sum_{k=1}^K \exp(\alpha_{ikc})}$
betweenレベルは
$Y_{2,i} = v_2 + \Lambda_2 \eta_{2,i} + \epsilon_{2,i}$
$\eta_{2,i} = \alpha_2 + B_2 \eta_{2,i} + \Gamma_2 x_{2,i} + \xi_{2,i}$
事例1. 2クラスDLCA。[パス]
事例2. マルチレベル・マルコフ・スイッチング自己回帰モデル。[パス]
事例3. 潜在因子のレジーム・スイッチング。[パス]
Mplusではもっともっと柔軟なモデルが組めるので使うがよろしい。
さらなる課題:モデルの比較をどうするか。非定常時系列モデルをどうやって実現するか(共変量をいれる;時変効果をいれる)。時変する潜在クラスと時変しない潜在クラスの両方を入れる。などなど。
... いやあ、眠かった。ふらふらになりながら読了。事例をほぼ全部スキップしてしまったが、必要になったらコードと一緒に勉強する、ということで。
読了:Asparouhov, Hamaker, & Muthen (2017) ものどもひれ伏せよ、これが動的潜在クラス分析だ
2017年8月18日 (金)
Scott, S.L., Varian, H. (2014) Predicting the Present with Bayesian Structural Time Series. International Journal of Mathematical Modelling and Numerical Optimisation, 5, 4-23.
Googleの中の人謹製、ベイジアン構造時系列モデリングのためのRパッケージbstsの元論文。draftのPDFで読んだ。 別に読みたかないけど、実戦投入前の儀式としてぱらぱらめくった次第。
このモデルでの主な使い道として想定されているのは、Google Trendsのようなたくさんの、そんなに長くない時系列があり、それらを予測子としてある目的変数の時系列をnowcastingしたいんだけど、でも予測子のうちほんとに効く奴はいくつかしかない、という状況である。動的因子分析なんかで多変量時系列を縮約するのではなく、ベイジアンモデル平均のアプローチで事後分布をシミュレートする。
モデルの説明。
時点$t$における観察値$y_t$について、次の状態空間表現を考える。
観察方程式 $y_t = Z^T_t \alpha_t + e_t \ \ e_t \sim M(0, H_t)$
遷移方程式 $\alpha_t = T_t \alpha_t + R_t \eta_t \ \ \eta_t \sim N(0, Q_t)$
さて、
- カルマン・フィルタとは...[略]
- カルマン・スムーザーとは...[略]
- ベイジアン・データ拡大法とは... $\mathbf{y} = y_{1:n}, \mathbf{\alpha} = \alpha_{1:n}$として$p(\mathbf{\alpha}|\mathbf{y})$からうまいことサンプリングしてシミュレーションする方法。Durbin & Koopman (2002, Biometrika)をみよ。
外的な予測子の効果$\beta^T \mathbf{x}$について。$\beta$は時変なしとし、$\alpha_t$に値1の変数を追加し、 $\beta^T \mathbf{x}$を$Z_t$に入れ込む。事前分布としてspike-and-slab事前分布を使う[メモは後述]。するとパラメータの事後分布がこんな風になる...[略]。推定にはMCMCをこんな風に使う...[略]。
事例はふたつ。(1)週次の失業保険新規申請件数をGoogle Trendsで予測する。(2)月次の全米小売売上金額をGoogle Trendsで予測する。
この方法で擬似相関が回避できるわけではないんだけど(実際、後者の例では変なキーワードの検索量時系列が売上金額の強力な予測子となっている)、分析者の主観的判断を事前分布として生かせるという点が特徴。
... bstsパッケージというのはMARSSパッケージのMCMC版みたいなものかと思ってたんだけど、蓋をあけてみたらベイジアンモデル平均の話であった。なんでも読んでみるもんね。
マニュアルをちらっとみたところでは、dlmパッケージのように要素別ヘルパー関数を組み合わせて使うようで、なんだか面白そうだ。と、自分で自分に景気をつけて...
以下、spike-and-slab事前分布についてのメモ。ついつい逐語訳になってしまった。
ベイジアン・パラダイムで[たくさん予測子があるけど効くのはわずかという]スパース性を表現する自然な方法として、回帰係数にspike and slab事前分布を与えるという方法がある。
$\gamma_k$を、$\beta_k \neq 0$のときに$1$, $\beta_k=0$のときに$0$となる変数とする。$\beta$の非ゼロ要素からなる下位集合を$\beta_\gamma$とする。
spike-and-slab事前分布とは
$p(\beta, \gamma, \sigma^2_e = p(\beta_\gamma|\gamma, \sigma^2_e) p(\sigma^2_e |\gamma) p(\gamma)$$p(\gamma)$の周辺分布は「スパイク」である。つまり、それはゼロの位置に正の確率質量を持つ。原理的には、$p(\gamma)$を調整して階層原理のようなベスト・プラクティスを実現できる(階層原理とは、高次の交互作用項が入るときは低次の項も入るという原理)。実際には、単に独立ベルヌーイ事前分布を使うのが便利である [各予測子が独立に確率$\pi_k$でモデルに入るってことね] 。
$\gamma \sim \sum_{k=1} \pi^{\gamma_k}_k (1-\pi_k)^{1-\gamma_k}$
もっと単純化して、すべての$\pi_k$を$\pi$とすることも多い。これは$\pi_k$をいちいちセットするのは大変だという主旨なのだけど、事前分布の交換可能性という基盤があれば正当化できる。$\pi$を決める自然な方法のひとつとして、分析者に「モデルの 期待されるサイズ」を尋ねるという手がある。分析者が「非ゼロの予測子は$p$個」というならば、$\mathbf{x_t}$の次元数を$K$として$\pi = p / K$とすればよい。場合によっては、特定の予測子について$\pi_k$を0か1に決め打ちするのも便利である。(我々は採用しないけど)別の戦略として、予測子を「モデルに入りそうか」でいくつかのグループに主観的に分け、それぞれのグループの予測子に主観的に決めた確率を与えるという手もある。正方行列$\Omega^{-1}$について、その行と列が$\gamma_k=1$に対応している行列を$\Omega^{-1}_\gamma$とする[←えええ...? 先生すいません、頭悪くてよくわかんないっす...]。条件つき事前分布$p(1/\sigma^2_e | \gamma)$と$p(\beta_\gamma | \sigma_e, \gamma)$は次の条件つき共役対として表現できる。
$\beta_\gamma | \sigma^2_e, \gamma \sim N(b_\gamma, \sigma^2_e (\Omega^{-1}_\gamma)^{-1})$
$\frac{1}{\sigma^2_e} | \gamma \sim Ga(\frac{\nu}{2}, \frac{ss}{2})$
ここで$Ga(r,s)$は平均$r/s$, 分散$r/s^2$のガンマ分布である。これが「スラブ」[厚板]である。なぜそう呼ぶかというと、すごく弱い情報性しか持たないように(一様に近づくように)パラメータを選べるからである。$\gamma$と同様、ここでも合理的なデフォルト値が存在する。まず、事前平均ベクトル$b$はゼロにするのが一般的である。ただし、特定の予測子が特に有用だという信念がある場合には、情報的な事前分布を指定することも容易である。$ss$と$\nu$は事前の平方和と事前のサンプルサイズだと解釈できる。これらはユーザに、回帰に期待する$R^2$と、その推測がどのくらいのサイズの観察と同じ重みをもつと思うか($\nu$)を尋ねてセットすればよい。ここで$ss/\nu = (1-R^2) s^2_y$である。$s^2_y$とは反応の周辺SDである。$s^2_y$でスケーリングするのはベイジアンのパラダイムからちょっと逸脱しているのだが(事前分布をデータで決めているわけだから)、便利な方法だし、実務的な悪影響はない。上の式でもっとも高次元なパラメータは、モデル全体の事前情報行列$\Omega^{-1}$である。$\mathbf{x}_t$を$t$行目に積みあげて得られる計画行列を$\mathbf{X}$としよう。通常の回帰モデルの尤度は情報行列$\mathbf{X}^T \mathbf{X} / \sigma^2_e$を持つ。だから、
$\Omega^{-1} = \kappa \mathbf{X}^T \mathbf{X} /n$
とすれば、事前平均$b$に観察数$\kappa$ぶんの重みを与えたことになる。これがZellnerのg事前分布である [←ぐああああ... わっかんないよう...]。実務的には、$\mathbf{X}$の列の間の完全な共線性に対する防御策が必要となる。フルランクを保証するためには、
$\Omega^{-1} = \kappa (w \mathbf{X}^T \mathbf{X} + (1-w) diag( \mathbf{X}^T \mathbf{X} ) )/n$
とするとよろしい。我々はデフォルト値として$w=1/2, \kappa=1$を採用している。
[ふひいいいいい。こんな話を理解するために生まれたわけではないわ! とにかく情報行列についてうまいこと考えて下さったってことですね、はい、信じます先生]まとめよう。spike-and-slab事前分布を使うことで、事前パラメータ$\pi_k, b, \Omega^{-1}, \nu$を通じて事前の意見を簡単に表現することができる。 ある種の合理的想定に頼るというコストを払って単純さを選ぶ分析者は、事前情報を、期待されるモデルサイズ、期待される$R^2$、その推測に与える重みを表すサンプルサイズ$\nu$にまで切り詰めることができる。事前分布について考えること自体を避けたいという分析者のために、我々のソフトはデフォルト値$R^2=0.5, \nu=0.01, \pi_k=0.5$をご用意している。
読了:Scott & Varian (2014) ベイジアン構造時系列モデリング
これは調べ物をしていて偶然見つけた奴なのだが、結果的に、今年読んだなかでもっとも面白い論文であった。ほんとに、読んでみないとわからないものだ。
Guo, F., Blundell, C., Wallach, H., Heller, K. (2015) The Bayesian Echo Chamber: Modeling Social Influence via Linguistic Accomodation. Proceedings of the 18th International Conference on Artificial Intelligence and Statistics (AISTATS). 315-323.
少人数の会話について語の生成を確率的にモデル化する。逐語録から推定したパラメータに基づき、参加者間の影響関係をネットワークで表現できる。あきらかに私の手には負えないレベルの論文なんだけど、あまりに面白くて、のめりこんで読んでしまった。
1. イントロ
社会的相互作用のプロセスについてリアリスティックなモデルを構築するためには、その構造(誰が誰に話したか)、内容、時間的ダイナミクスを考慮しなければならない。
主に関心が持たれるのは「誰が誰に影響したか」である。伝統的には、影響はネットワークのリンクの分析によって研究されてきた。リンクが明示的には存在しなかったり、信頼できなかったり、行動を安定的に反映していなかったりする分野では、影響の代理変数として、観察された相互作用ダイナミクス、すなわちターン・テイキング行動に注目が集まった。
我々のアプローチは一味違う。ご紹介しよう、「ベイジアン・エコー・チェンバー」です。[以下BCE]
このモデルは観察された相互作用内容に注目する。社会言語学によれば、2人が相互作用するとき、一方がある語を使用すると、その後他方がその語を使う確率が高まる。この変化は権力の弱いほうの人が強いほうの人に接近する形で生じる。これを言語的調節という(West & Turner, 2010, 書籍)。
BCEはHawkes過程(後述)とベイジアン言語モデルを結合した動的言語モデルである。BCEモデルは潜在的影響変数を通じた言語的調節を捉える。これらの変数が影響ネットワークを定義し、それによって「誰が誰に影響したか」があきらかになる。
2. ターン・テイキングを通じた影響
BCEはBlundell, et al. (2012 NIPS)のターン・テイキング・モデルにインスピレーションを受けている。まずはこのモデルを紹介しよう(ただしセッティングはオリジナルと異なる)。
グループ・ディスカッションのように、複数の参加者がいてどの人の発話も全員に聞こえる場面について考える。
参加者$p$が観察期間$[0, T)$に行った発話の数を$N^{(p)}(T)$とする。個々の発話にはタイムスタンプ$\mathcal{T}^{(p)} = \{t_n^{(p)}\}_{n=1}^{N^{(p)}(T)}$がつく。個々の発話の持続時間$\Delta t_n^{(p)}$も観察されているとする。よって発話終了時間$t_n^{'(p)} = t_n^{(p)} + \Delta t_n^{(p)}$もわかっている。
[以下しばらくのあいだ、全く理解不能なのだが、虚心にメモを取る]
Blundellらのモデルの基盤にあるのはHowkes過程(Hawkes, 1971)である。
Hawkes過程とは、自己・相互励起型の二重ストカスティック点過程のクラスである(a class of self- and mutually exciting doubly stocastic point processes)。Howkes過程は非等質ポワソン過程(inhomogeneous Poisson process)の一形式であり、条件付きストカスティック速度関数 a conditional stochastic rate function $\lambda(t)$が、時点$t$に先行するすべての事象のタイムスタンプに依存する。
Blundellらは2つのHawkes過程を組み合わせて二人のターン・テイキングをモデル化しているのだが、ここでは$p$人のディスカッションを表す多変量Hawkes過程を定義しよう。
期間$[a, b)$を引数にとり、対象者$p$がその間隔のあいだに行う発話の数を返す関数を$n^{(P)}(\cdot)$とする。参加者$p$のHawkes過程のストカスティック速度関数は
$\lambda^{(p)}(t)$
$\displaystyle =\lambda_0^{(p)} + \sum_{q \neq p} \int_0^{t^{-}} g^{(qp)} (t,u)d N^{(q)}(u)$
$\displaystyle =\lambda_0^{(p)} + \sum_{q \neq p} \sum_{n:t_n^{'(q)} < t} g^{(qp)} (t, t_n^{'q})$
ただし$\lambda_0^{(p)}$は参加者$p$の発話のベース速度。$g(t,u)$は非負で定常のカーネル関数で、時点$u < t$におけるある出来事が、時点$t$における即時的速度を増大させる程度、ならびにこの増大の時間的減衰の程度を表す。参加者$p$の速度関数と、他の$P-1$人の人々のHawkes過程とは、他のそれぞれの人のカウンティング指標$\{N^{(q)}(\cdot)\}_{q \neq p}$と、カーネル関数$g(t,u)$によって結びつく。なお、タイムスタンプ$t_n^{'(q)}$は、参加者$q$の$n$番目の発話の終了時間である。従って、$q$によるある発話が$p$の即時的速度を増大させるのは、その発話が完了してからである。
Bulundellらはカーネル関数として標準的な指数関数
$g^{(qp)}(t,u) = \nu^{(qp)} \exp(-(t-u)/\tau_T^{(p)})$
を使った(別にノンパラメトリックでもよいのだけれど)。ここで$\nu^{(qp)}$は非負のパラメータで、参加者$q$から$p$への即時的励起が生じる程度を表す。ここでの目標は、人々の間の影響関係のモデル化だから、自己励起は0、すなわち$\nu^{(pp)}=0$とする。このパラメータのマトリクスは「誰が次に喋りそうか」「それはいつ起きそうか」のネットワークを表現する。$\tau_T^{(p)}$は対象者$p$の励起が減衰する速度を表す。
[オーケー。もういいよ。あんたたちがすごく頭がいいことはわかった。俺が頭悪いこともわかった。
ここまでの話を俺にもわかる程度にざっくり説明すると、こういうことなんじゃなかろうか。
いまここに、グループ・ディスカッションの逐語録があって、各発話の開始と終了のタイムスタンプが記録されている。発話の内容を無視すると、時間を横軸、累積発話数を時間にとって、個々の対象者の累積発話数の曲線が得られる。
Blundellたちのアプローチを使うと、この累積発話数曲線を生成するモデル、いいかえれば、個々の対象者の任意の時点での「発話力」みたいなものを生成するモデルを作ることができる。モデルのインプットは、その瞬間までの全員の発話の開始・終了タイムスタンプ。
このモデルの中にはいくつかパラメータがあるんだけど、その一つが人数x人数の正方行列の形をしたパラメータ行列、つまりは参加者の有向ネットワークであり、リンクの重みは「誰が喋ると誰の発話力が上がるか」を表している。
ってことですよね?]
3. 言語的調整による影響
いよいよBECモデルの説明である。
期間$[0, T)$における参加者$p$の発話数を$N^{(p)}(T)$とする。$V$個のユニークな語タイプがある。参加者$p$の$n$番目の発話は$L_n^{(p)}$個の語トークン$\{w_{1,n}^{(p)}, w_{2,n}^{(p)}, \ldots, w_{L_n^{(p)},n}^{(p)} \}$からなっている。
個々のトークンの生成過程は、動的ベイジアン言語モデリングと多変量Hawkes過程の両方から得たアイデアに基づいている。
まず、参加者$p$の$n$番目の発話の$l$番目のトークンは、その発話に対してspecificなカテゴリ分布からドローされる。つまり
$w_{l,n}^{(p)} \sim Categorical(\phi_n^{(p)})$
ここで$\phi_n^{(p)}$は$V$次元の離散確率ベクトルである。
次に、確率ベクトル$\phi_n^{(p)}$はディリクレ分布からドローされていて、そのconcentrationパラメータは人にspecific、base measureは発話にspecificである。つまり
$\phi_n^{(p)} \sim Dirichlet (\alpha^{(p)}, B_n^{(p)})$
concentrationパラメータ$\alpha^{(p)}$は正のスカラーで、分布の分散を決定している。base measure $B_n^{(p)}$は$V$次元の離散確率ベクトルで、分布の平均を決定している。
[ここでまた疑問符で頭がいっぱいに...
ふつう、$V$次元のディリクレ分布のパラメータはひとつで、それは$V$次元の正値ベクトルで、これを集中度と呼ぶと思う。でもこの論文では、ディリクレ分布のパラメータが集中度$\alpha^{(p)}$とベース尺度$B_n^{(p)}$の2つにわかれ、前者を個人レベルのパラメータ、後者を発話レベルのパラメータとしている。次の段落に出てくるように、後者には和が1という制約を掛けている。あてずっぽうだけど、おそらく$\alpha^{(p)} B_n^{(p)}$が通常の表現でいうところのディリクレ分布のパラメータなのだろう]
$B_n^{(p)}$は以下の条件を満たすものとする。
$B_{v,n}^{(p)} \propto \beta_v^{(p)} + \sum_{q \neq p} \rho^{(qp)} \phi_{v,n}^{(qp)}$
$\sum_{v=1}^{V} B_{v,n}^{(p)} = 1$
$V$次元の正値ベクトル$\beta_v^{(p)}$は、参加者$p$に固有な言語使用を表す。$\rho^{(qp)}$は非負のパラメータで、参加者$q$が参加者$p$に与える言語的励起の程度を表す。自己励起はなし、すなわち$\rho^{(pp)} = 0$とする。最後に、$\phi_{v,n}^{(qp)}$は$V$次元の正値ベクトルで
$\displaystyle \phi_{v,n}^{(qp)} = \sum_{m:t_m^{'(q)} < t_n^{(p)}} \left( \sum_{l=1}^{L_m^{(q)}} 1(w_{l,m}^{(q)} = v) \right) \times \exp \left( -\frac{t_n^{(p)}-t_m^{'(q)}}{\tau_L^{(p)}}\right)$
[こういうのはビビっては負けだ。順に見ていこう。
内側のサメーションの右側$1(w_{l,m}^{(q)} = v)$は、「参加者$q$の$m$番目の発話の$l$番目の語が$v$だった」。
内側のサメーションは「参加者$q$の$m$番目の発話における語$v$の出現個数」。
それに掛けているのは、「参加者$q$の$m$番目の発話の終了時間から、参加者$p$の$n$番目の発話開始時間までの経過時間を、参加者$p$が持つ謎のパラメータ$\tau_L$で割って負にして指数をとったもの」で、直後であれば1, 時間経過とともに0に近づく。つまり、参加者$q$の$m$番目の発話が与える影響を経過時間にともなって指数的に減衰させており、その減衰の強さが$\tau_L$なのである。
最後に、外側のサメーションは、以上を「参加者$q$の発話のうち、参加者$p$の$n$番目の発話が始まる前に終わった奴すべて」について合計している。
つまり$\phi_{v,n}^{(qp)}$は、おおざっぱにいえば「参加者$p$の$n$番目の発話までに、参加者$q$が単語$v$を使った程度」を表しているわけだ。
なるほどね、いっけんややこしいけど、実は素直なモデリングだ]
以上をまとめると、推定すべきパラメータは以下となる。参加者$p$について、
$\alpha^{(p)}$: スカラー。ディリクレ分布の分散を表す。
$\beta^{(p)}$: $V$次元ベクトル。この参加者に固有な言語使用を表す。
$\{\rho^{(qp)}\}_{q \neq p}$: スカラー。他の参加者$q$が言語的調整を引き起こす程度。
$\tau_L^{(p)}$: スカラー。言語的調整の減衰の程度。
パラメータ推定の方法は...[略。collapsed slice-within-Gibbs samplingというのを使うのだそうだ。知らんがな]
[あーっ!!!いま気が付いた!
BECモデルは発話の発生時間はモデル化しないんだ! Hawkes過程ってのは発想を説明するために登場しただけで、BECモデル自体はHawkes過程についてなにも知らなくても、普通の言語生成モデルとして理解できるんじゃないですか、これ?!
うわぁー。びびって損した... 俺には絶対理解できない論文なんじゃないかと思っちゃったよ...]
4. 関連研究 [ここは詳しくメモする]
時間的ダイナミクスから影響関係やその他の社会的関係を推論する確率過程のモデルとして以下が挙げられる。中心となっているのはHawkes過程である。
- Simma & Jordan (2010 Proc. Uncertainty in AI)
- Belundell et al.(2012 NIPS)
- Perry & Wolfe(2013 JRSS-B)
- Iwata et al.(2013 ACM SIGKDD)
- DuBois et al.(2013 AISTAT)
- Zhou et al.(2013 ICML)
- Linderman & Adams (2014 ICML): Howkes過程によるシカゴのギャング殺人の分析
相互作用の内容もモデルに入れる研究としては:
- Danescu-Niculescu-Mizil et al(2012 Int.Conf.WWW): Wikipediaにおける議論の分析; 米最高裁の議論の分析
- Gerrish & Blei (2010 ICML): 文献間の影響の変化の分析
本研究のポイントは、言語的調整からの推論とターンテイキングからの推論を比較するところ、生成モデルをつくるところ。
5. 実験 [ここはめくっただけ]
人工データを使ってパラメータが復元できるかどうかを試した。うまくいきました。
米最高裁の審理の3つのトランスクリプト、映画「12人の怒れる男」のトランスクリプト、連邦公開市場委員会(FOMC)の会議32回分のトランスクリプトを分析した。
[以下略。ちゃんと読んでないんだけど、「12人の怒れる男」の参加者間ネットワークはなんだかそれっぽい感じで面白かった。Blundellらのターンテイキングの分析ではこうはうまくいかないとのこと。これ、三谷幸喜「12人の優しい日本人」で試してみたいなあ...]
ためしに、BlundellらのモデルとBECモデルを結合してみた。すなわち、$\rho^{(qp)} = rv^{(qp)}$として同時に推定した。結果、ホールドアウトへの事後確率は低下した。推定されたパラメータはBECのそれとそっくりだった。おそらく、ターンテイキングにおける参加者間の影響より、言語的調整のほうがより情報豊かなのであろう。
6. 考察
今後の課題:(1)語の機能や内容別に言語的調整をモデリングする。(2)影響ネットワークの動的変化を陽にモデル化する。[←どっちも面白そう]
... いやー、おおかた私の能力を超える内容ではあるのだが、それにしても超・面白かった。集団での議論って、ある人が議論をリードしているとき、その人が繰り出す単語がその後の全員の発話の土俵になったりするじゃあないですか。このモデルではこの現象を、対象者間の影響関係のネットワークとして視覚化できるわけだ。
あんまり詳しく書けないけど、私自身の仕事ともものすごく関係する話である。読み終えてからの後知恵だけど、そうそう!こういう研究がないかなあと思ってたんだよ!という内容であった。
どうせなら、ネットワークが動的に変わっていけば超面白いのに。で、「振り返るとあの構造変化は、あの人が繰り出したあの発言のあの単語のせいだった」なんてことが定量化できたら、これはめちゃくちゃ面白いのに。
... とメモを取りながら気が付いたけど、そういう動的可視化の面白さだけを求めるならば、別に苦労して生成的確率モデルを作ってパラメータをまじめに推定しなくても、もう少し簡便な方法があるかもしれない。考えてみよう。
読了:Guo, Blundell, Wallach, Heller (2015) ベイジアン・エコー・チェンバー
2017年3月31日 (金)
8CPU使っているEM推定がまだ終わらず、メモリの都合でExcelも開けないので、引き続き最近読んだ論文をサルベージ...
Bolker, B.M., Brooks, M.E., Clark, C.J., Geange, S.W., Poulsen, J.R., Stevens, H.H., White, J.S. (2008) Generalized linear mixed models: a practical guide for ecology and evolution. Trends in Ecology and Evolution. 24(3). 127-135.
GLMMの紹介論文。いかにも理学部っぽい雑誌名からはちょっと意外な印象を受けるけど、読者の想定知識レベルはわりかしソコソコな感じで(心理学とたいして変わらない感じ)、初心者に親切な啓蒙論文であった。
ソフトとしては、SASだとproc GLMMIX, proc NLMIXED、RだとglmmPQLとかglmerとか、フルベイズだとWinBUGS。SASのproc MCMCとか、RのMCMCglmmとかは言及されていない。2008年だもんね。
読了:Bolker, et al. (2008) 一般化線形混合モデルへの招待
Turner, H., Firth, D. (2012) Bradley-Terry Models in R: The BradleyTerry2 Package. Journal of Statistical Software.
題名もそのまま、Bradley-Terryモデルの推定を行うRパッケージ BradleyTerry2 のvignette。実戦投入前セレモニーとして読んだ。パッケージ名の2というのは、単にバージョン2ということだそうな。
Bradley-Terryモデルってのはあれね、総当たり一対比較から、各刺激の効用だかなんだかを定量化する、ってやつね。はるか昔、院生時代に、講義の都合で仕方なく、こういうの勉強した気がするのだけど、正直いって全然覚えてない。若き日々の勉強っていったいなんだったんだろうか、という気がする。いやまてよ、きちんと勉強してなかったからこんな人生になっちゃったのか。
読了:Turner & Firth (2012) BradleyTerry2パッケージ
年末から昼夜問わぬ嵐のような日々が続き、本や論文どころではなかったのだけれど、それでも仕事の都合で大慌てで目を通した資料はあるので、いちおう記録しておこう。Mplusで走らせてるLCAのEM推定がさっきから全然進まなくて、急にしばし手が空いてしまったこともあり...
Hadfield, J.D. (2010). MCMC methods for Multi–response Generalised Linear Mixed Models: The MCMCglmm R Package. Journal of Statistical Software, 33(2), 1–22.
読んで字のごとく、GLMM (generalized linear mixed model) をMCMCで推定するRパッケージ MCMCglmm のvignette。実戦投入前の儀式として目を通したが、難しくてよくわからない部分も多かった。
著者はこれとは別に GLMMのcourse notes を公開しており、そちらも目を通したのだけど、やっぱし難しかった。
読了:Hadfield(2010) MCMCglmmパッケージ
2017年1月13日 (金)
Pan, Y., Caudill, S.P., Li, R., Caldwell, K.L. (2014) Median and quantile tests under complex survey design using SAS and R. Computer Methoss and Programs in Biomedicine, 117(2), 292-7.
勤め先の同僚と話していて、そういえば標本ウェイティングの下での中央値ってなんだろう...と疑問に思い、適当に拾って読んでみた。
えーと、Moodの中央値検定というのがある。
母集団のサイズを$N$、母中央値を$M_N$、標本中央値を$M_n$とする。母集団が$C$個の下位母集団(subpopulation)に分かれていて、そのサイズが$N_1, \ldots, N_C$だとする。下位母集団$i$の標本[? 原文 "the ith sample"]の中央値を$M_i$とする。いま、
$H_0: M_1 = M_2 = \cdots = M_C = M_N$
について検定したい [←あれ? ちょっと変じゃない? この式を信じるなら、$M_i$は標本中央値じゃなくて母中央値でないとおかしい]。
下位母集団$i$の標本[? 原文 "the ith sample"]において、値が$M_N$以下のケースの数を$A_{1j}$、$M_N$より大のケースの数を$A_{2j}$とする。$A_{11} + A_{12} + \cdots + A_{1c} = (1/2)N$である。[←あ、やっぱりおかしい。著者のいう"the ith sample"というのは下位母集団のことなのだろうか?]
$H_0$の下で、任意のケースが$M_N$を超える確率は0.5である。$M_n$を超える確率は超幾何分布になっちゃうんだけど、$n$が$0.1N$より小さければ$p=0.5$の二項分布で近似できる。[←この論文、数式の記法が滅茶苦茶わかりにくいな。$M_n$というのは「$n$番目の下位母集団の中央値」という意味じゃなくて全体の標本中央値のこと。$n$は標本サイズであろう]
"the ith sample"における任意のケースが$M_N$以下となる確率を$P_i$とすると、
$H_0: P_1 = P_2 = \cdots = P_C = 1/2$
と書き換えられる。これは$df=C-1$のカイ二乗検定で検定できる。
これを分位数の検定に拡張するのは簡単で、$q$分位数について
$H_0: P_1 = P_2 = \cdots = P_C = q$
とすればいい。
これをcomplex sampleに拡張しよう。
層$h$、クラスタ$a$における個体$i$の値を$y_{hai}$とする。面倒なので以下では$y_i$と略記する。ウェイトを$w_i$とする。
母集団全体における$y_i$の分布を$F$とする。$q$分位数を$Q$とする。$y_i \leq y$のときに1となるインデクスを$I_y(y_i)$として、標本経験分布[標本CDFのことであろう]は
$G(y) = \sum_i w_i I_y(y_i) / \sum_i w_i$
である。$P_i$の推定量は、個体$i$が下位母集団$c$に属しているときに1となるインデクスを$x_{i|c}$として、
$p_i = \sum_i w_i x_{i|c} I_q(y_i) / \sum_i w_i x_{i|c}$
となる。[←あーもう! $i$の意味が右辺と左辺で違うじゃん! 下位母集団の添え字は別のを使うべきだよね]
検定統計量は、まず$[p_1, p_2, \ldots, p_C]'$の共分散行列を、SASのproc surveyregなりRのsurveyパッケージなりで推定して... 云々... めんどくさくなってきたのでやめるけど、とにかく$df=C-1$でカイ二乗分布に従う検定量がつくれる由。
後半は、著者らによるSASマクロならびにRプログラムの紹介。欲しければ連絡せよとのこと(webを探したけど見当たらなかった)。さらに、NHNEMというデータによる実例。どちらも読み飛ばした。
。。。検定統計量の組み方はなんだかわからんが、要するに、ウェイティングした標本CDFを群ごとに描いたとき、特定の母分位点(たとえば母中央値)について、その不偏推定量をつくることなく、それが群間で異なるかどうかを検定する、ということだろうか。
いやー、ゆうたらなんやけど、めっちゃわかりにくい論文だった。記号の使い方が滅茶苦茶である。ひょっとしてこれ、校正前の原稿かなにかなのだろうか。
いまためしに検索してみたら、google scholar 的には被引用数0件。痺れる。たった数頁とはいえ、読むものは選ばんといかんなあ。
読了:Pan, et al. (2014) 標本ウェイティングの下で中央値や分位数について群間の差を検定する方法
2017年1月 7日 (土)
Enders, C.K., Tofighi, D. (2007) Centering Predictor Variables in Cross-Sectional Multilevel Models: A New Look at an Old Issue. Psychological Methods, 12(2), 121-128.
仕事の都合で目を通した奴。階層線形モデルを組むとき、センタリングをどうするか、正直なところいまいち自信が持てず、毎回ちょっと迷う。気分が悪いので、一度まとまった解説を読んでみたいものだと思って手に取った次第。
世間のみなさまが!ディープラーニングだ、人工知能だと騒いでおられるこのときにですね!私は「全平均引いたほうがいいのかな、群平均引いたほうがいいのかな」なんてささやかなことで悩んでおるわけですよ。取り残されてますね!
著者いわく。階層線形モデルのレベル1説明変数のセンタリングについて、みんなよくわかってない。心理学のトップジャーナルにさえ誤用が頻発しておる。おまえらな、センタリングってのはデータで決まるもんじゃないんだよ、何に関心があるかで決まるんだよ。わかってんのかこら。[とは書いてないけど、まあそういうニュアンス]
まずは説明用の例題から。
レベル1を従業員、レベル2を組織とする。組織$j$の従業員$i$の幸福感$W_{ij}$と労働時間$H_{ij}$の関係について階層線形モデルを組むとしよう。幸福感と労働時間の関係は、どの組織内でみても負の相関、各組織について平均をとって組織間でみても負の相関だとする。
レベル1のモデルを
$W_{ij} = \beta_{0j} + \beta_{1j} H_{ij} + r_{ij}$
とする。$r_{ij}$の分散を$\sigma^2$とする。レベル2のモデルを
$\beta_{0j} = \gamma_{00} + u_{0j}$
$\beta_{1j} = \gamma_{10} + u_{1j}$
とする。一緒にして書けば
$W_{ij} = \gamma_{00} + \gamma_{10} H_{ij} + u_{0j} + u_{1j} H_{ij} + r_{ij}$
である。$u_{0j}, u_{1j}$の分散と共分散をそれぞれ$\tau_{00}, \tau_{11}, \tau_{10}$とする。推定するパラメータは$\gamma$が2つ、$\tau$が3つ、$\sigma^2$、計6個ね。
$H$を全平均センタリング(CGM)すると何が起きるか。
当然ながら、$W$との相関はセンタリングしない場合と変わらない。$H$は群間の分散を持っている。$H$はレベル2の説明変数とも相関しうる(たとえば組織サイズ$S$が大きいと幸福度が低いとすると、労働時間が長いほうが幸福度が低いから、つまり労働時間が長いと組織サイズが大きいことになる)。
切片$\gamma_{00}$はなにを表すか。レベル1のモデルは
$W_{ij} = \beta_{0j} + \beta_{1j} (H_{ij} -\bar{x}_{H})+ r_{ij}$
変数を各組織の期待値に置き換えて
$\mu_{W_j} = \beta_{0j} + \beta_{1j} (\bar{x}_{H_j} - \bar{x}_{H})$
つまり$\beta_{0j}$は、組織$j$の幸福感の平均を労働時間で調整した値になっている。$\gamma_{00}$はその平均だ。
では、傾き$\gamma_{10}$はなにを表すか。$H$は群間の分散を持っているから、$\gamma_{10}$は組織内の幸福感-労働時間の相関と、組織間の幸福感-労働時間の相関の両方を反映する[←んんんん? あとでよく考えてみよう]。つまり、$\gamma_{10}$はレベル1の効果の推定量になっていない。組織を無視して回帰モデルを推定したときの回帰係数と同じで、群内の回帰直線をプールした奴と群間の回帰直線の両方を反映し、解釈しにくい。
分散$\tau_{00}, \tau_{11}$も解釈しにくい。というのは、上の式からわかるように、$\beta_{1j}$が大きいと$\beta_{0j}$は小さくなるわけで、$\tau_{00}, \tau_{11}$をそれぞれ単独では解釈できないし、[...よくわかんなかったので中略するけど...] $\tau_{00}$はゼロに向かってシュリンケージし、$\tau_{11}$は負の方向にバイアスがかかる。
$H$をクラスタ内センタリング(CWC)すると何が起きるか。
もはや$H$は群間の分散を持たない。$W$との相関はがらっと変わり、レベル2の説明変数とは相関しなくなる。
切片$\gamma_{00}$はなにを表すか。レベル1のモデルは
$W_{ij} = \beta_{0j} + \beta_{1j} (H_{ij} -\bar{x}_{H_j})+ r_{ij}$
$\beta_{0j}$は、組織$j$における幸福感の無調整な平均である。$\gamma_{00}$はそのまた平均、$\tau_{00}$はその分散である。$H$は群間の分散を持っていないから、$\gamma_{10}$はレベル1の効果の推定量になる。傾きと切片は切り離され、分散$\tau_{11}$はバイアスを受けない。
CGMとCWCをどう使い分けるか。典型的な4つのケースについて考えよう。
- ケース1、レベル1の説明変数の効果に関心があるとき(ある人の労働時間が幸福感に及ぼす影響に関心があるとき)。上述のように、この場合はCWCがよい。
- ケース2、レベル2の説明変数の効果に関心があるとき(組織サイズが幸福感に及ぼす影響に関心があるとき)。モデルは
$W_{ij} = \gamma_{00} + \gamma_{01} S_j + \gamma_{10} H_{ij} + \ldots$
となる。こういう場合はCGMがいいんです。$\gamma_{10}$は解釈できないけど、$\gamma_{00}$は解釈できるから。これがCWCだと、$H$は$S$と直交することになり、入れた意味がなくなる。[ここで数値例による実験。パス] - ケース3、ある説明変数がレベル1とレベル2で同じように効いているかに関心があるとき(個人の労働時間が幸福感に与える効果は、組織の平均労働時間が幸福感に与える効果と同じかどうかに関心があるとき)。モデルは
$W_{ij} = \gamma_{00} + \gamma_{01} \bar{x}_{H_j} + \gamma_{10} H_{ij} + \ldots$
となる。この場合はCGMでもCWCでもどっちでもいい。なぜなら$\gamma_{01}^{CGM} = \gamma_{01}^{CWC} - \gamma_{10}^{CWC}$となるから。まあCGMのほうが楽でしょうね、なぜなら$\gamma_{01}$が有意かどうかみれば、レベル1の傾きとレベル2の傾きに差があるかどうかわかるわけだから。[...めんどくさくなってきたので中略。この辺の話はKreft, et al.(1995 MBR)というのをみるといいらしい] - ケース4、レベル1の説明変数とレベル2の説明変数の交互作用に関心があるとき(組織サイズは労働時間が幸福感に与える効果のモデレータになっているか?)。モデルは
$W_{ij} = \gamma_{00} + \gamma_{01} S_j + \gamma_{10} H_{ij} + \gamma_{11} S_j H_{ij} + \ldots$
となる。このときはCWCがよい。CGMだと$H$に群間分散がはいり、つまり$\gamma_{11}$にレベル1の交互作用とレベル2の交互作用の両方がはいっちゃうから。もっとも、モデルに$\bar{x}_{H_j}$の項、ならびにそれと$S$との交互作用項を投入するという手もあって、そうなるとCGMでもいいんだけど... [め、めんどくさい... 中略だ!]
もしレベル1の説明変数が二値だったらどうするか。なんか変な気がするかもしれないけど、この場合も話は全く同じで、適切なセンタリングをすべきである。ダミーコーディング(0,1)でもイフェクトコーディング(-1,+1)でも全くおなじこと。
... 自分の能力不足を棚に上げていいますけど... この論文の説明って、ちょっとわかりにくくないですかね?そんなことないですかね?
勉強にはなったが、それと同じくらいに疑問も増えた。他の解説も読んでみよう。
読了:Enders & Tofighi (2007) 階層線形モデルで説明変数をセンタリングする正しいやり方
2017年1月 5日 (木)
Simkin, M.V., Roychowdhury, V.P. (2003) Read Before You Cite! Complex Systems, 14(3).
かつてフロイトは精神分析学を言い間違いに適用してヒトの心理を暴いた。このたび我々は統計分析をミスプリに適用し、論文の著者が引用文献をほんとに読んでいるかどうかを暴く方法を開発しました...という論文。はっはっは。
たとえば、ある有名な物理学の論文を引用している論文を4300本集めたところ、引用文献の際にミスプリがあるのが196本。ところがミスプリの異なり数は45種類で、一番メジャーなミスプリは78本もの論文でみつかった。誤りがコピペで伝染しているのだろう。縦軸に頻度の対数、横軸に頻度のランクの対数をとってミスプリの種類をプロットすると綺麗な直線となる。つまりZipf法則に従っているわけである。
大雑把に考えると...
ミスプリの総数を$T$、ミスプリの異なり数を$D$としよう。$T-D$人の引用者は他の人が書いた書誌情報をコピペしている、つまり実は読んでないと考える。$D$人の引用者は、まあ書誌情報にはミスプリがあるけど推定無罪ってことにすると、$T$人中$D$人が読んだ人。この比率は、ある論文の引用者に占める、その論文をほんとに読んだ人の割合$R$を近似していると考えられる。
もうちょっときちんと考えると...[ここから本格的に数式が入ってくる。基本的なアイデアは上と変わんないと思うので略]
というわけで、ある文献の引用者のうちその文献を読んでいるのは20%程度ではないか。云々。
後半の肝心なところは読み飛ばしたけど、まあ、よしとしよう。発想が面白いっすね。
それにしても、この話の肝になるのは、引用文献の書誌情報に伝染性のミスプリがあったらその文献を読んでない、という仮定である。著者らの言い分はこうだ。「原理的には、著者は引用を信頼できない文献リストからコピーしたが、その論文はちゃんと読んでいる、と主張することも可能かもしれない。しかし普通に考えれば、そんなのは比較的に稀で、ほとんどの場合にはあてはまらないと思われるだろう」。
うーん、そうかなあ。文献管理ソフトをつかっていると、(1)欲しい文献の書誌情報を入力し(既存文献からのコピペで)、(2)その文献を手に入れて読み、(3)自分の原稿で引用したら、最初にいれた書誌情報が反映されちゃった...というようなことがありがちだと思うんですけど? ついでにいうと、著者が自分の過去論文を引用してて、その書誌情報が間違っている、というのも見たことあるんですけど?
著者らもここが弱点だという認識があるようで、いわく、この論文で言う「読者」とは、引用文献リストを作る際にオリジナルの論文や信頼できるデータベースを参照した人のことだ、と断っている。
読了:Simkin & Roychowdhury (2003) 論文を引用している人のうち何割がその論文をほんとに読んでいるかを推定する
2016年10月20日 (木)
Morrison, D.G. (1981) Triangle Taste Tests: Are the Subjects Who Respond Correctly Lucky or Good? Journal of Marketing, 45(3), 111-119
仕事と関連があるぞという気がして急遽目を通した。PDFが有料なので、JSTOR無料枠のweb画面上で。泣かせるね。
官能評価でいうdouble triangle test、つまり、「3刺激を与え、そのなかの同一の2刺激がどれかを言い当てる」試行を2回やるテストで、個人の判別能力と正解数(0,1,2)との間にはどういう関係があるか、という論文。
なぜそんな不思議なことに関心を向けるのかというと、著者らの説明によれば、(1)あとで選好テストをするときに対象者を重みづけしたいから、(2)反応時間と選好の関係を調べる際に示唆があるかもしれないから。
triangle test試行において、ある対象者が正解を検出する確率を$p$としよう。正解を検出できないとき、にもかかわらずguessingで正解する確率は$1/3$。だから、ある対象者がある試行で正解する確率は
$c = p + (1/3)(1-p)$
さて、$p$の個人差について、2つの極端なモデルを考える。
モデル1, 等質母集団。全員が同じ$p$を持っている。このとき、double triangle test で正解数が(0,1,2)になる確率は、それぞれ
$P(0) = (1-c)^2$
$P(1) = 2c(1-c)$
$P(2) = c^2$
モデル2、両極母集団。ある人が持っている$p$は0か1のどちらかであり、1である人の割合は$\gamma$である。このとき、
$P(0) = (1-\gamma)(2/3)^2$
$P(1) = (1-\gamma) 2(1/3)(2/3) = P(0)$
$P(2) = \gamma + (1-\gamma)(1/3)^2$
モデル2なら$P(0)=P(1)$だというのがポイント。モデル1の場合、2問正解者は単にラッキーな人だが、モデル2の場合は高能力者である。
今度は連続的モデルを考えよう。$p$の分布$f(p)$を考える。$f(p)$としてベータ分布を仮定しよう。ご存知のように、
$E[p] = \frac{\alpha}{\alpha+\beta}$
$Var[p] = \frac{\alpha\beta}{(\alpha+\beta+1)(\alpha+\beta)^2}$
この$f(c)$から得られる$c$の分布を$g(c)$とする。正解数の分布は、試行数$k=2$と正解率$g(c)$をパラメータとする混合二項分布である。正解数のデータから$\alpha, \beta$を推定することができる。Morrison & Brockway(1979, Psychometrika)をみよ。
なお、$p$の極化の程度を表す指標として
$\phi = 1 / (\alpha+\beta+1)$
が便利。等質母集団なら$\alpha,\beta$は無限大、すなわち$\phi$は0に近づき、両極母集団なら$\alpha, \beta$は0付近、すなわち$\phi$は1に近づく。
この$f(p)$を事前分布とし、ある対象者が$k$試行中何回成功したかという値によって分布をベイズ更新し、$p$の事後期待値 $E[p | r of k]$を求めることができる。あとの選好課題とかでのウェイティングにも使える。
[... ほかにサンプルサイズの話、反応時間の話など載っていたけれど、あんまり厳密な議論じゃないのでパス]
... なるほどね。勉強になりました。
この論文は官能検査のdouble triangle testについての論文だけど、guessing可能な項目群への反応データからその人の特性を推測する場面すべてに通じる話だろうと思った。潜在特性に分散がなくても正解数には分散が生じる。正解数が多い人は優秀だと早合点する前に、正解数の分布をきちんと調べるのが大事だ。
double triangle testの話に戻ると、一般には、2試行両方で正解した人を正解者とみなし、帰無確率の下での正解者の割合が母比率1/9の二項確率に従うとみなして二項検定を行うことが多い。帰無仮説の下で2試行が独立だと仮定しているわけだ(この論文で言う等質母集団モデル)。でもさ、同じ人の二試行が独立なわけないじゃん?と、かねがね気になっているのだけれど、その証拠を得るうまい方法が思い浮かばなかった。この論文でやっているみたいに、正解数の分布と等質母集団モデルとの適合度をカイ二乗検定すれば、てっとり早く検討できるわけか...
読了:Morrison(1981) 2回続けて正解した人は優れた人か、それともただのラッキーな人か
2016年10月18日 (火)
Bi, J. (2001) The double discrimination methods. Food Quality and Preference, 12, 507-513.
仕事の都合で大急ぎでめくった論文。官能検査での識別試験でいうところのdouble testについて、その数理的側面の解説。double testってなんて訳せばいいんだろう? えーと、同じ被験者に同じ刺激で2試行やってもらう奴ね。
いわく。doubleテストの分析にはふたつの路線がある。2回とも正解したことをもって正解とみなし二項モデルを適用する路線と、2回の反復測定と考えてベータ二項モデルとか一般化線形モデルとかを適用する路線。前者は、正解の確率は被験者間で等しく、反応は互いに独立だと想定していることになる。この2つの路線のちがいは、識別テストについての哲学の違いである。本論文は前者の路線。
[←あー、なるほど。わたくし、かねがね、三点識別テストを2回繰り返したデータを被験者単位に潰して分析するのってダサすぎる、生データで反復測定モデル使えよ... 官能検査ってこれだからもう... といらだっていたんだけど、良し悪しじゃなくて哲学のちがいだよといわれれば、ま、そうかもね]
... で、2選択肢強制選択、3選択肢強制選択、3点識別、duo-trioの、それぞれsingleとdoubleについて、検定力の求め方(二項分布を正規近似する考え方と、サーストンの$d'$に基づく考え方)、doubleとsingleのあいだでの正解率の変換方法、$d'$の分散の推定の仕方について簡潔に紹介している。簡潔すぎて式の導出を追えてないんだけど、必要になったら読み直そう。
そもそもサーストンのモデルについてすっかり忘れてしまっている。やれやれ困ったものだ... と思ったけど、考えてみたら習ったのはいまは亡きM先生の学部の講義、もはや二十五年以上も前だ。しかも講義中私は常に熟睡していた。忘れていても仕方がない。往時茫々としてなんとやらだ。
読了:Bi (2001) double識別試験の統計学的諸側面
2016年9月18日 (日)
Weir, C.J., Lees, K.R. (2003) Comparison of stratification and adaptive methods for treatment allocation in an acute stroke clinical trial. Statistics in Medicine, 22, 705-726.
臨床試験での処理割当についての論文。仕事の都合で読んだ。
多施設臨床試験での割り付けは、予後因子で層別した上でパーミュテッド・ブロックを使うのが標準的な方法である(ブロックサイズはランダムにする。次の人の割り付けを予測できないようにするため)。しかし、予後因子の数が増えると層の数が爆発する。そこで提案されているのが適応的層別化、具体的には最小化法。
本研究ではacute stroke後のglucoseコントロールについての臨床試験のデータを使い、層別パーミュテッド・ブロックと適応的層別化を比較する。
適応的層別化とはなにか。
2群への割り付けを考える(activeとcontrolとする)。まず、所与の予後因子について群間のインバランスのレベルを測る方法を決める(当該水準の人数のSDなり分散なりを使うことが多い)。新患者が来たら、その人の各予後因子の水準について、その人をactiveに割り付けた場合のインバランスと、controlに割り付けた場合のインバランスを測る。で、なんらかの方法で、すべての予後因子を通じた全体的インバランスを求める(単に合計するとか) 。その際、重要な予後因子を重視すべく重みを決めることもある。最後に全体的なインバランスが小さいほうの群にその人を割り付ける確率を、なんらかのやり方で決める(オリジナルの最小化法では確率1)。
このやり方では、予後因子の周辺分布をバランスさせるだけであって、組み合わせはバランスさせない。そこが層別パーミュテッド・ブロックとちがうところ。[←というか、層別ランダム化のアプローチの場合、予後因子のすべての組み合わせを層にせざるを得ない、という云い方のほうがしっくりきますけどね]
というわけで、本研究の課題。適応的層別化において、
- 割り付け確率をどうするか。
- 何因子くらいまでならいけるのか。
- 因子への重みづけは必要か。
- 因子の組み合わせはバランスすべきか。
- 事後の分析をどうするか。
- 検定力はどうなるか。
データ。実データを使うというのが売り。
UKグラスゴーの西部診療所・急性脳卒中治療室は、地域における局所神経障害の突然発症者のうち、 血管と無関係な原因で生じた場合を除くすべての患者を扱う。このデータベースから12個の変数を抽出した:{年齢、plasma glucose level on admission, 卒中の分類、delay to trial enrolment from stroke onset, 卒中のタイプ、resolution time、coma scale on admission、性別、症状の左右(ないし両側)、presence of atrial fibrillation, 血圧}。
変数間関係のグラフィカル・モデルを組み、MS-DOS上のBUGS ver. 0.3で患者データをGibbsサンプリング[←!]、10万人のデータをつくる。さらに、アウトカム(卒中に影響された脳組織の量)をシミュレーションで生成した。
割り付けシミュレーション。
試験当たりの患者数を1000人とする(実際のサイズに近い由)。100試行。
インバランスレベルはこうやって測る。予後因子の水準$j$の処理$k$における人数を$X_{kj}$としたとき、
$q_j = X_{1j} / (X_{1j} + X_{2j})$
とする[当該水準の人数のうち群jに割り当てられた割合ってことね]。で、インバランスを
$100 \times max \{|q_i - q_j|\}, \ \ i \neq j$
と定義する。年齢など4因子についての最終的なインバランスを測る。
シミュレーションで以下を動かす。 [この論文のシミュレーションは、いろんな要因を直交配列で動かす純粋なシミュレーションではなく、 最小化法の手続きを決める場面で、過去の類似データを使ったシミュレーションでパラメータを一つ一つ決めていくときにどうするか、その手順を例示している感じであった]
- 割り付け確率。1, 0.95, 0.9, 0.85と、0.5(=単純無作為化)を比較。 因子数4で試す。結果:どの確率でも、人数は群間でだいたいそろう(最悪でも6人差)。単純ランダム化だともっとずれる。確率が1から離れるとインバランスは大きくなる。予測可能性のことを考えると0.95がよいであろう。
- バランシングする因子の数。4,8,12。 p=0.95で試す。結果: 因子数を増やすと各因子のインバランスは大きくなるけど、大した増大ではない。適応的層別化って予後因子の数が多くても大丈夫だね。
- ウェイト。12因子で、すべて1にする場合と、delayを5, glucose levelを3とする場合を比較。p=0.95で試す。 結果: 当然ながら、ウェイトを大きくした因子のインバランスは小さく、そうでない因子のインバランスは大きくなる。
- 交互作用項を含めるか。含めない場合と、delay x タイプを含める場合を比較。結果:当然ながら、含めると当該交互作用項のインバランスは小さくなる。
- 処理効果の推定。ここからは1000試行に増やす。処理効果なしを含む5水準を比較する。t検定とANCOVAで、名義有意水準を5%にしたときの実質有意水準と検定力を、層別ランダムブロック(3変数、ブロック長4と12)の場合と比較する。結果:効果がない場合、層別ランダムブロックでも適応的層別化でも、t検定では保守的になってしまい(実質有意水準が0.03くらいになってしまう)、ANCOVAで調整しないとだめ。効果がある場合、検定力は単純ランダムブロックよりも適応的層別化のほうが高い。因子数を12にしても大丈夫。
考察。もっとサンプルサイズが小さいときについては別途検討の必要がある。処理効果に個人差がある場合についても要検討。事後分析をANCOVAでやらないと保守的になるという知見は要注目だ。
なお、これは線形モデルで分析するときの話で、ロジスティック回帰や比例ハザードモデルをつかうときは層別ランダム化のほうが良いだろう[←ええええ? なぜ? 理由が書いてない。Begg & Kalish(1984, Biometrics)というのが引用されている]
読了:Weir & Lees (2003) 臨床試験における処理の割り付けに最小化法を使うとなにがどうなるかシミュレーションしてみました
2016年9月13日 (火)
de Jong, M.G., Steenkamp, J.E.M., Fox, J.P., Baumgartner, H. (2008) Using item response theory to measure extreme response style in marketing research: A global investigation. Journal of Marketing Research, 45(1), 104-115.
回答スタイルの文化差の実証研究。調査の評定尺度の両端に回答する傾向(extreme response style, ERS)に注目する。
前に回答スタイル研究のレビュー記事を書いた時に、集めたけど結局紹介しなかった論文。このたび思うところあってきちんと目を通してみた。
この論文の見どころはなんといっても、ERSを定量化するための精緻な統計モデルにある。さあいでよIRT! その謎な専門用語で人々を煙に巻くがよい!
えーっと、まずは先行研究概観。
以下、ある尺度において観察されたスコア$X$を、真のスコア$T$、体系的エラー$S$、ランダムエラー$E$にわけて
$X_i = T_i + S_i + E_i$
とする。$i$は個人を表す添え字。$S$のソースのひとつがERSである。
個人のERSとはなにか。典型的には、リッカート尺度項目で両端につけた項目の数と考えられる。項目を$k$とし、両端につけたことを表すダミー変数を$EXTR_{ik}$として
$\hat{ERS}_i = \sum_k EXTR_{ik}$
ERSの定量化にあたって「両端しかみない」というこの戦略を、本研究でも踏襲する。理由その1、そうしている人が多いから。理由その2、acquiescence回答と操作的に区別するため。
個人のERSをどうやって測定するか。路線は2つある。
その1、ERS測定専用の項目セットをいれる。Greenleaf (1992 POQ)というのがある。でも欠点が多い:
- 調査票が長くなっちゃう。
- 仮にERS特性が下位集団間で変動するならば、文化・言語を通じて同じようにうまく機能する項目を作ろうとする努力が無駄になるかもしれない。[←どういう意味?よくわからない]
- 多言語調査の場合、すでに翻訳上の等価性が担保された実質的項目からERSを求めたほうが良い。
その2、実質的な構成概念を図るべく設計された項目からERSの指標を出す。この方法の欠点:
- ERS算出に用いる項目群は内部の相関が低くないと困るんだけど(スタイルと内容の交絡を避けるため)、実際にはそうは問屋が卸さない。
- そもそもERSってのは個人の傾性と項目特性の相互作用の産物であろう。異なる項目を通して単に両端の個数だけを数えるのはおかしい。
- ある項目のERSが国・言語のあいだで違ったとして、それは意味の違いのせいかも。
- もしリサーチャーがERSのドライバーを見つけたいならば、ERSの測定モデルを階層潜在変数モデルに統合し同時推定することが望ましい[←おらが田んぼに水を引く努力...]。
おまたせしました、ここから提案モデルです。
まずは2パラメータ正規累積IRTモデルを考えます。$\Psi(\cdot)$を標準正規CDFとして、
$P(EXTR_{ik} = 1 | ERS_i, a_k, b_k) = \Psi[a_k (ERS_i - b_k)]$
これを項目特性曲線といいます。$a_k$を弁別力、$b_k$を識別度といいます。[IRTになじみがない人向けの説明がひとくさり。略]
さあ、ここからが本番。モデルを拡張する。
- testletの効果をいれよう。testletとは教育測定におけるBradlowらのアイデア。ここでは、多項目からなるひとつの尺度をa testletと捉える。[たとえば、「Q1 生活価値観MA」ってのがあったら、これがひとつのtestletね]
項目$k$が属するtestletを$r_k$として、
$P(EXTR_{ik} = 1 | ERS_i, \Psi_{i,r_k}, a_k, b_k) = \Psi[a_k (ERS_i - \Psi_{i,r_k} - b_k)]$
$\Psi_{i,r_k}$とは個人ごとのtestlet効果。$N(0, \sigma^2_{\Psi_{r_k}})$と仮定する。 - 項目パラメータを国によって変動させる。国の添え字を$j$とする。
まず弁別力について。ある項目のある国での弁別力$a_{kj}$は、平均$\tilde{a}_k$の正規分布からのドローだと考える。弁別力は正の実数でないと困るので、負になったら0にする。実数範囲を$A$として
$a_{kj} \sim N(\tilde{a}_k, \sigma^2_a) I (a_{kj} \in A)$
同様に識別力についても
$b_{kj} \sim N(\tilde{b}_k, \sigma^2_b)$
で、$\tilde{\xi}_k = [\tilde{a}_k, \tilde{b}_k]^t$の事前分布をMVNとする。ただし、ここでも$\tilde{a}_k$として負の値をドローするのは変なので、
$\tilde{\xi}_k \sim N(\mu_\xi, \Sigma) I (\tilde{a} \in A)$
とする。平均ベクトル$\mu_\xi$は$[1,0]^t$に固定し、分散行列$\Sigma$には無情報事前分布IW(2, diag(100, 100))に従うとする。 - ERSについて。事前分布を$N(\beta_{0j},\sigma^2)$とする。国別ERS平均の分布を$\beta_{0j} \sim N(\gamma_{00}, T)$とする。
- 最後に、識別のために、各国$j$について以下の制約を与える。
$\prod_k a_{kj} = 1$ for all $j$
$\sum_k b_{kj} = 0$ for all $j$
ここまでを整理しよう。
- 項目特性曲線は
$P(EXTR_{ijk} = 1 | ERS_{ij}, \Psi_{ij,r_k}, a_{kj}, b_{kj}) = \Psi[a_{kj} (ERS_{ij} - \Psi_{ij,r_k} - b_{kj})]$ - testletの効果は
$\Psi_{ij,r_k} \sim N(0, \sigma^2_{\Psi_{r_k}})$ - 各国の項目パラメータは
$a_{kj} \sim N(\tilde{a}_k, \sigma^2_a) I (a_{kj} \in A)$
$b_{kj} \sim N(\tilde{b}_k, \sigma^2_b)$
$\prod_k a_{kj} = 1$
$\sum_k b_{kj} = 0$ - 項目パラメータの平均の事前分布は
$\tilde{\xi}_k = [\tilde{a}_k, \tilde{b}_k]^t \sim N(\mu_\xi, \Sigma) I (\tilde{a} \in A)$ - ERSは
$ERS_{ij} \sim N(\beta_{0j}, \sigma^2)$ - 国別のERS平均は
$\beta_{0j} \sim N(\gamma_{00}, T)$
ついでに、ERSについての構造モデルも組む[先生、そこまでやらんでも...]。
個人レベル共変量を$X_{1ij} \ldots X_{Qij}$、国レベル共変量を$W_{1ij} \ldots W_{Sij}$として、
$ERS_{ij} = \beta_{0j} + \beta_{1j} X_{1ij} + \ldots + \beta_{Qj} X_{Qij} + \eta_{ij}$
$\beta_{qj} = \gamma_{q0} + \gamma_{q1} W_{1qj} + \ldots + \gamma_{qS} W_{Sqj}$
$\eta_{ij} = N(0, \sigma^2)$
$[u_{0j}, \ldots, u_{Qj}]^t \sim N(0, T)$
やれやれ。これを階層ベイズモデルとしてMCMCで解こうってわけです。
なお、無事$ERS_{ij}$が推定できたら、項目回答を修正することもできる。やり方はPodsakoff et al.(2003 J.App.Psych.)をみよ。
シミュレーション。[略]
実データへの適用。
GfKさんとTNSさんが行った26ヶ国調査のデータを使います。国あたりサンプルサイズは335~1181、トータルで12506。
設問は19問プラス2項目、全項目数は100。すべて5件法。個人レベル共変量は年齢、性別、教育(高低の2水準にする)。
モデル選択。項目パラメータの変動ありなし、テストレットありなし、で4モデルを組んでベイズファクターで比較したら、両方入れたモデルがよかった。
結果。項目パラメータは大きく変動していた。やっぱ単純なERS指標ではいかんということである。さらに項目パラメータは国によってもちがっていた。云々。
ERSの規定因はなにか。国レベル共変量として、個人主義、不確実性回避、男性性、権力距離なんかをいれてみたら、個人主義、不確実性回避、男性性の高い国でERSが高かった。云々。
論文の最後ではERSを説明するモデルを検討しているけど、それよかERSの国別平均のチャートのほうが面白い。とびきり高いのがロシア。低いのが台湾、タイ、そして中国。日本は世界平均よりちょっとしたくらい。うーん、Chen, Lee, Stevenson(1995)によれば日本と台湾はMPRが高く(ERSと逆)、また私の周囲では中国本土はやたらERSが高いというのが定説になってるんだけど、この論文の結果はちょっとちがうわけね。やっぱり、回答スタイルの傾向を個別の観察報告から一般化するのは難しい...
いやー、しっかし、読んでいて楽しい論文だ。要するに「ある対象者が両端につけた項目数を数えよう、それが多い人は『極端につけやすい人』だ」という素朴なアイデアを、階層ベイズIRTモデルでもってどんどん精緻化していくわけなんだけど、その精緻化の仕方に筋が通っていて無理がないように思う。
回答スタイルはERS以外にもいろいろあるわけなので、Allenby兄貴たちのモデルみたいに、二値IRTじゃなくて段階反応モデルを考えたほうが、枠組みとしては一般性がある。でも、実はAllenby兄貴たちのモデルでも、推定の都合上、閾値のあいだに結構恣意的な制約を掛けているようなので、要するに、実用上どちらがいいかは場合によるだろうと思う。
これ、どうにかしてMplusで推定できないものだろうか...
読了: de Jong, Steenkamp, Fox, Baumgartner (2008) 世界各国の人々の「調査でX件法の両端にマルをつけたがる傾向」
2016年9月12日 (月)
Wyss, R., Ellis, A.R., Brookhart, M.A., Girman, C.J., Func, M.J., LoCasale, R., Sturmer, T. (2014) The role of prediction modeling in propensity score estimation: A evaluation of logistic regression, bCART, and the Covariate-Balancing Propensity Score. American Journal of Epidemiology, 180(6), 645-655.
難しい話にはあまり関わらないように努力しているのだが、先日うっかり間違えて、Imai & Ratkovic(2014)の共変量バランシング傾向スコア(CBPS)というのを読んじゃったので、これ試した人いるのかな... と思って手に取った論文。ちょっとした現実逃避であります。
いわく。
最近では、傾向スコアの推定に際して、処理割付の予測ではなく、共変量のインバランスを最小化することに焦点を当てるアプローチが提案されている。そのひとつがCBPS。ほかにGraham et al.(2012 Rev.Econ.Stud), Hainmueller (2012 Polit.Anal.)というのがある。
CPBSは、処理割付を予測するロジスティック回帰モデルのMLEのかわりに、処理割付予測と共変量バランシングの両方を同時に最適化する。すでにRで実装されている。薬剤疫学の文脈に適応した研究はみあたらない。
本論文ではCBPS、ロジスティック回帰、bCART(ブーステッドCART)を比較する。
処理変数(二値)を$T_i$、共変量のセットを$X_i$、傾向スコアの関数形式を$(1+\exp(-X_i \beta))^{-1}$とする。[以下、入力が面倒なので、$PS(X_i, \beta)=(1+\exp(-X_i \beta))^{-1}$と略記する]
CPBSの共変量バランシングとは次の通り。リサーチャーが$X_i$の関数$\tilde{X}_i$を決めたとして(典型的には$\tilde{X}_i=X_i$)、
$\frac{1}{N} \sum_i^N \left(\frac{T_i}{PS(X_i,\beta)} - \frac{1-T_i}{1-PS(X_i,\beta)} \right) \tilde{X}_i = 0$
シミュレーション。
共変量$X_1, \ldots, X_{10}$を考える。うち1,3,5,6,8,9が二値、残り4つが標準正規。
$X_1, \ldots, X_7$から二値の処理変数を生成する。次の7種類。
アウトカムの生成モデルは固定。10個の共変量の線形和から、$0.4T$を引いた値とする。
以上の生成モデルの係数は、先行研究のをそのまま使った。
シミュレーション。全10変数をロジスティック回帰、bCART、CBPSに投入し、傾向スコアを推定。bCARTはRのtwangパッケージを使った。[←twangって、恥ずかしながら初耳...。パッケージ名は中国人の姓とかじゃなくて、Toolkit for Weighting and Analysis of Nonequivalent Groupsだそうだ。ふつうのブーステッドCARTじゃなくて、傾向スコアに特化した奴なのかな]
傾向スコアをウェイトにした$Y$の$T$へのWLS回帰を行い、平均処理効果を求めた。ウェイティングはSMRというのとIPWの二種類。とかなんとか...
結果。CBPSは良いっぽい。[すんません、読んでないっす]
考察。
先行研究では、傾向スコアモデルの予測性能を変数選択で改善しても、交絡のコントロールが改善するとは限らない、ということが示されてきた。本研究では、同じ共変量セットでコントロールした傾向スコアモデルでも、処理割付の予測の改善と交絡コントロールのあいだに強い対応がないということが示された。[あ、なるほど...これ、そういう視点の研究ともいえるのか...]
CBPSは良さそうです。ま、いつもCBPSが勝つとは限らないでしょうけどね。複数のやりかたでやってチェックするのがいいんじゃないすか。
云々。
読了:Wyss et al.(2014) 共変量バランシング傾向スコアを使ってみた
2016年9月 8日 (木)
Tu, D., Shalay, K., Pater, J. (2000) Adjustment of treatment effect for covariates in clinical trials: Statistical and regulatory issues. Drug Information Journal, 34, 511-523.
臨床試験における共変量調整についてのレビュー論文。仕事の都合とはいえ、我ながら地味なことを調べておるものだ...
デザイン時点での調整(事前調整)について。
まずは層別無作為化。少数の共変量にしか対応できないのが欠点。多施設試験で施設を共変量にしたいときとかに困る。
動的割付。よく使われるのは最小化法。その統計的効率性についての研究はまだ不十分。
ここで我々のシミュレーションをご紹介しよう。[...結構長い。省略。共変量の事後調整にはMHカイ二乗検定をつかっている]
事後調整について。
事前調整をやっている場合でも、やはり事後調整は必要だ... [研究紹介。省略]
やりかた。(1)層ごとに差をだして重みづけ。もしアウトカムが率ならMH検定である。(2)モデルを組む。ロジスティック回帰とかCox比例ハザードとか。blockingしているときには正しいpermutation分散を求めよという指摘もある(Lachin, Matts, Wei, 1988 Control.Clin.Trial)。
調整する共変量は事前に決めとかないといけない(事後に決めてよいとなると結果が操作できることになるから)。
[そのほか、もし比例ハザード性がなかったらどうすんだ、共変量調整後カプランマイヤー曲線ってどうやって描くんだ、といった話が続く。興味深いけど、いま関心ないのでパス]
事例紹介。[パス]
。。。臨床試験の話は参考になるんだけど、自分の仕事とは距離がありすぎて飽きる面もある。もうちょい別の文脈の論文も探しているんだけど...
読了:Tu, Shalay, Pater (2000) 臨床試験における共変量調整
Imai, K., Ratkovic, M. (2014) Covariate balancing propensity score. Journal of the Royal Statistical Society, B., 76(1), 243-263.
なにかの気の迷いで手に取った論文。新しい傾向スコアをご提案しますというもの。
観察単位を$i$, 二値の処理変数を$T_i$、事前に既知な共変量の長さ$K$の列ベクトルを$X_i$とする。
傾向スコアとは、$X_i$の下で処理を受ける条件付き確率$P(T_i = 1 | X_i = x)$である。
処理状態$t \in \{0,1\}$の下での潜在的アウトカムを$Y_i(t)$としよう。処理変数に無視可能性があったら、すなわち
$\{Y_i(0), Y_i(1) \} \mathop{\perp\!\!\perp} T_i | X_i$
であるならば、処理変数は真の傾向スコア$\pi(X_i)$の下でもやはり無視可能である。すなわち
$\{Y_i(0), Y_i(1) \}\mathop{\perp\!\!\perp} T_i | \pi(X_i)$
というわけで、共変量$X_i$を全部条件づけなくても、傾向スコアを条件づけるだけで、処理効果を不偏推定できるわけである。ステキ。
さて、傾向スコアをどうやって求めるか。ふつうはパラメトリックなモデルを考えるわね。たとえばロジスティック回帰で
$\displaystyle \pi_\beta (X_i) = \frac{\exp(X_i^t \beta)}{1+\exp(X_i^t \beta)}$
とかね。$\beta$は最尤法で推定したりなんかしてね。
問題は、傾向スコアのモデルを誤指定してたらどうなるんだ、という点である。ノンパラなモデルを組むという方向性もあるが、共変量の次元数が大きいときは大変である。
そこで共変量バランシング傾向スコア (CBPS)をご提案します。
上の傾向スコアのモデルは、傾向スコアで処理変数を予測するというモデルである。そうじゃなくて、傾向スコアで共変量をバランシングすることを考える。つまり、傾向スコアの逆数でウェイティングして、
$\displaystyle E \left( \frac{T_i \tilde{X}_i}{\pi_\beta (X_i)} - \frac{(1-T_i) \tilde{X}_i}{1-\pi_\beta (X_i)} \right) = 0$
となるような傾向スコアを目指すわけである。ここで$\tilde{X}_i$とは$X_i$の関数で、リサーチャーが好きに決めるんだけど、たとえば$\tilde{X}_i = X_i$とすれば各共変量の一次積率がバランスされる。
ところで、従来の傾向スコアの最尤推定量をごにょごにょするとわかるのだが、従来の傾向スコアは、この定式化で$\tilde{X}_i = \pi'_\beta(X_i)$とした場合に相当する。処理変数を強く予測する共変量を重視しているわけである。
オリジナルの傾向スコアと同様、アウトカムは全然みてないという点にご注目。[←傾向スコアの改善案のなかにはアウトカムデータを使う奴があるのだそうだ。へー]
また、とにかく共変量をバランシングさせることを考えているわけで、無視可能性の想定は要らないという点にご注目。仮に未知の交絡因子があっても、とにかく既知の共変量だけはバランスできる(処理効果の推定値は歪むけど)。
傾向スコアの推定について。もし共変量バランシングだけだと丁度識別、従来のモデルからでてくる条件と併用すると過識別になる。さてどうやって推定するかといいますと...
[...難しくて理解できないが、まあ要するに、どっちにしても推定量が作れるんだってさ。へー]
なお、過識別モデルの場合にはモデルの指定が正しいかどうか検定できるので嬉しい。
関連手法との関係。[いろいろ書いてあるけど、難しいのでパス]
シミュレーション。
共変量は4つ、MVNに従う。真のアウトカムモデルは線形回帰で、処理群のアウトカム平均は定数だけ高い。真の傾向スコアモデルはロジスティック回帰で、0.5の確率で処理群に落ちる。で、共変量がそれぞれ非線形に変換してある。うーん、このイケズ。
従来手法(共変量でロジスティック回帰する傾向スコアモデル。実は誤指定である)、提案手法(従来手法と併用しないタイプ、するタイプ)、真の傾向スコアモデル、の4つで傾向スコアを出す。で、HT, IPW, WLS, DRという4種類のウェイティング推定量を試す。[←えええ。そんなに種類があるんだ... 知らなかったよ...]
結果。提案手法がよかった由。[なんかいろいろ議論しているけど、難しそうなのでパス]
今後の拡張。処理が3水準以上のときどうするか。標本に代表性がないときどうするか。
云々。
。。。えーっと...告白しますとですね...観察じゃなくて実験で、対象者を条件に割り付けるときに、単純無作為化に頼らずもっと積極的に、たくさんの共変量をうまいことバランシングさせましょう、って話なのかなと思って読んだのである。タイトルだけ見て、えっ、割付の最適化に傾向スコアを使うの?! それってわけわかんないけどすごそう!とぬか喜びしたのである。ごめんなさい、ごめんなさい。
ま、自分なりに勉強になったので、よしとしよう。えーと、提案手法はRのCBPSというパッケージになっているそうだ。
読了:Imai & Ratkovic (2014) 共変量バランシング傾向スコア
Schmittlein, D.C., Cooper, L.G., Morrison, D.G. (1993) Truth in concentration in the land of (80/20) laws. Marketing Science, 12(2), 167-183.
別にいま読まなくてもいいんだけど、 ちょっと思うところあって目を通した。
たとえば、ある製品の売上を調べてみたら、上位20%の顧客が売上の80%を占めてました!なんていうことがあるけど、よくよく考えてみるとその意味するところは結構難しい、「上位20%セグメント」が売上の80%を占めているといえるかどうかはわからないよ、という論文。
自分なりにひとことでまとめちゃうと、要するに、有限期間において観察された購入量には誤差が乗っているのを忘れなさんな、というのがポイントであろう。
次のようにモデル化しよう。あるカテゴリなり製品なりについて、世帯$i$の購入速度を$\lambda_i$とする。長さ$t$の観察期間中の購入量$X_i$はポワソン分布に従うと考えて
$P_p(X_i = x | \lambda_i) = \frac{(\lambda_i t )^x}{x!} \exp (-\lambda_i t), \ \ x=0,1,2,\ldots$
購入率の異質性を形状$r$, 尺度$1/\alpha$のガンマ分布で表すことにして
$g(\lambda | r; \alpha) = \frac{\alpha^r}{\Gamma(r)} \lambda^{r-1} \exp(-\alpha \lambda)$
これを累積すると、
$P_{NBD} (X = x) = \int^1_0 P_p(X = x | \lambda) g(\lambda | r; \alpha) d \lambda$
$= \frac{\Gamma(r+x)}{x!\Gamma(r)} \left( \frac{\alpha}{\alpha+t} \right)^r \left( \frac{t}{\alpha+t} \right)^x$
という負の二項分布(NBD)になる。 売上の上位顧客への「観察された」集中はこの式で生成されている、でも「真の」集中は$\lambda$の分布の関数だ。
ここで、ローレンツ曲線をつかった説明をお送りしよう。
ローレンツ曲線$L(p)$とは、第$p$パーセンタイルまでの世帯の購入量が全購入量に占める割合だ。80/20法則とは、観察された購入量で書いたローレンツ曲線$L_x(p)$が$L_x(0.8)=0.2$であることに対応する。
観察された購入量じゃなくて、真の購入率$\lambda$のローレンツ曲線$L_\lambda(p)$について考えよう。 $\lambda$の分布$g$のCDFを$G$として
$L_\lambda(p) = \frac{1}{E[\lambda]} \int_0^{G^{-1}(p)} \lambda g(\lambda) d\lambda$
となる。[えええ? この式の導出、ちょっと頭が追いつかないんだけど... まあ信じることにしよう...]
さて、$g$がガンマ分布だとして、代入して展開していくと、結局こうなる:
$L_\lambda(p) = F(F^{-1}(p|r, 1)|r+1, 1)$
ここで$F(p | r, \alpha)$はガンマ分布のCDF。[導出過程は理解できませんでしたが、信じます]
この式から次のことがわかる。
真のローレンツ曲線$L_\lambda(p)$は、もとのガンマ分布の形状パラメータ$r$だけに依存する(尺度パラメータには依存しない)。$r$は$\lambda$の集中の指標になっている。$r$が大きいと集中度は小さい。
観察されたローレンツ曲線$L_x(p)$は常に真の曲線$L_\lambda(p)$の下に位置する。で、$t$が大きくなるにつれ$L_x(p)$は$L_\lambda(p)$に接近していく、つまり、集中度が下がる。
話を戻して...モデルを手直しします。
- NBDモデルはノンユーザのことを考えていない。 これを拡張したMorrison(1969)のノンユーザNBDモデル(NUNBD)だと、割合$q$の世帯が$\lambda=0$、残りの世帯がガンマ分布に従う、と考える。
- NBDモデルでは購入はポワソン分布に従う。そこには記憶というものがない。実際には購入間隔には多少なりとも規則性があるだろう。これを考慮したモデルもある(ここでは考えない)。
- 一回の購入で一個しか買わないとは限らない。消費の速度が同じだとして、一回当たり購入量が少ないほうが購入頻度は上がるから、一回当たり購入量に世帯間異質性がある分、購入量より購入回数をみたほうが集中の度合いは高くなる。
というわけで、手直ししたモデルをいろんなデータに当てはめて真の集中度を推定する。観察の結果、概して、
- 購入量0の世帯を含めて集中度を求めると、それは真の集中度より大きくなる。
- 購入量0の世帯を取り除いて集中度を求めると、それは真の集中度よりも小さくなる。
- 観察期間を長くすると、真の集中度からのずれは小さくなる。
というわけで...
実務家のみなさん。表側に浸透度、表頭に集中度を取った戦略マトリクスを書くことがあるじゃないですか。低浸透・低集中な市場では認知とトライアル拡大が大事だ、高浸透・高集中市場では熾烈な価格競争が起きやすい、低浸透・高集中市場ではニッチを狙うかマスを狙うか考えろ、高浸透・低集中市場では配荷とサポートを手厚くせよ、みたいな。我々のモデルを使えば、浸透度を$q$、集中度を$r$で表せるですよ。違うカテゴリでもちゃんと比較できるですよ。云々。
うーーーーん。。。。
正直、違うカテゴリの間で購買量の分布の形状(というか、ローレンツ曲線)を比較したいと思ったことが一度もないので、わざわざモデルを組んだありがたみが全然わかんないんだけど、それは私の視野が狭いからで、役に立つという人もいるのだろう。
それはともかく、頭の体操としてとても面白かった。なるほどねえ。仮に全世帯の消費速度が同一でも、観察期間中の購入量にはばらつきが生じるから、縦断的には平均への回帰が起きるし、横断的にいえばローレンツ曲線は45度線にならず、常に下方向に歪む。つまり、顧客の購入量の分布は、ある観察期間についてみるとパレート法則に従っていても、ほんとはそんなには上位層に集中してないかもしれないわけで、ちょっと均して捉えないといけないわけだ。
この論文は顧客の異質性についての論文だけど、これってきっと商品の異質性についてもいえることだろう。ある期において商品の売上が商品間ですごくばらついていても、次の期では平均への回帰が起きうる。いっけんロングテールな商売のようにみえても、実は思ったほどじゃないかもしれないわけだ。
読了:Schmittlein, Cooper, & Morrison (1993) 「80:20の法則」の神話
2016年9月 7日 (水)
Fabrigar, L.R., Wegener, D.T, MacCallum, R.C., Strahan, E.J. (1999) Evaluating the use of exploratory factor analysis in psychological research. Psychological Methods, 4(3), 272-299.
心理学における探索的因子分析(EFA)の使われ方について批評する内容。ホットな話題とはいいにくいが、仕事の役に立つかもと思って目を通した。仕事ってのはですね、実に地味地味しいものなのですよ。そんなことないですか。
中身は無視して概要だけメモしておく。いや、眠くて参った。
前半は方法論的諸問題の整理。
その1、研究デザイン。項目をうまく集めること、標本をうまく集めることが大事だ、云々。
その2、EFAが適切か。PCA, CFAとの比較。
その3、適合手続きの選択。ML法, 主因子法の特徴。
その4、因子数の選択。少なすぎる・多すぎることの弊害、カイザー基準とかスクリー基準とか平行分析とか適合度指標とか。
その5、回転法。単純構造、直交と斜交のちがい、など。
後半は事例による説明。すんません、読んでないです。
最後に、JPSPならびにJ.App.Psych.誌上でEFAを使ってる論文を集めて集計。半分近くがvarimaxを使ってましたとか。ま、この辺は時代によるのでは...。
まとめ。EFAの使われ方は概してなっとらん。その理由のひとつは、EFAについてのユーザ向け解説やトレーニングの不足であろう。また、前例に従うという悪しき伝統のせいでもある。簡単なソフトが普及しちゃった割には機能が貧弱だ、という理由もある。精進せえ。云々。
。。。正直、体調のせいでもう眠くて眠くて、何度も意識を失った。でも、おまえらEFAでデータ縮約してんじゃねえよとか、主因子法にもそれはそれでいいところがあるんだとか、実際に手を動かす人にとってとても役に立つ内容であったのではないかと思う。日頃みようみまねで因子分析しているけど、これでいいのかいまいち不安だって人、こういうのをきちんと読むといいんじゃないすか。わたしゃきちんと読んでないけど。どうもすいません。
気になった点をメモ。事例のところで、適合度としてRMSEAのほかにECVI(expected cross-validation index)というのが用いられている。これ使ったことないなあ。LISRELやPROC CALISで出るらしい。Mplusではどうすんのかなと思ったら、tech5の出力から手計算できる、というようなことがMplusの掲示板に書いてあった。MacCallum, et al.(1994 MBR)というのをみるといいらしい。 ふーん。
読了:Fabrigar, et al. (1999) おまえらの探索的因子分析はまるでなってない、もっと精進しろ
狩野裕(1998) 不適解の原因と処理:探索的因子分析. 大阪大学人間科学部紀要, 24, 303-327.
前から読もうとストックしてあった奴。都合で急遽目を通した。
探索的因子分析では不適解が出ることがある。不適解とは、SPSSとかが「共通性が1を超えました」などと木で鼻をくくったようなメッセージを出してくること、すなわち、独自因子の分散のなかに0以下の値が出現すること。Heywoodケースってやつですね。
因子分析のモデルからいえば、独自因子分散$\Phi_i$の母数空間は$0 \leq \Phi_i \leq \sigma_{ii}$だ($\sigma_{ii}$は観測変数の分散)。でも最適化問題としては$\Phi_i \leq 0$を許しているから、こういうことが起きるわけである。
不適解が起きる理由は、大きく4つある。
A. 標本変動。推定量が運悪く上記の制約の外側に出ちゃうことは、そりゃありうる。いうなれば良性の不適解である。
不適解の原因が標本変動だと判断するためにはどうしたらよいか。上記の制約を気にせずに推定したとき、(1)反復は収束するし、(2)推定値は初期値やアルゴリズムを問わず安定しているし、(3)独自因子分散のSEはほぼ同じ大きさになり、(4)その信頼区間は0を含み、(5)基準化残差は大体同じになる、ってんなら、それは標本変動のせいだとみてよろしかろう。[基準化残差ってのは、式は省略するけど、えーっと、要するに標本分散行列からモデルで説明できる分を引いて基準化したやつね]
もし原因が標本変動だと判断されたならどうするか。不適解であろうがなかろうが、独自因子分散の信頼区間が0を含むようなモデルは採択すんな、という意見もある(Bagozzi & Yi, 1991 JCR)。いっぽう、その場合は独自因子分散を0に固定した解をつかっちゃってよい、その項目のパラメータはともかく、ほかのところはわりかしうまく推定できているはずだから(Gerbing & Anderson, 1987 MBR)...という意見もある。
B. 識別性。因子モデルの識別のためには因子負荷行列の各列に非ゼロ要素が3つ以上ないといけないが、そうなっていない場合。細かく分けると、(B1)非ゼロ要素が1つしかない場合。それって独自因子じゃん、要は因子数が多すぎるんじゃん、という話。(B2)2つしかない場合。このときは、因子数を減らすと適合が悪くなってカイ二乗検定でひっかかるわ、さりとて減らさないと不適解だわ、という八方ふさがりに陥る。
どう判断するか。まず収束しにくくなりますわね。推定値は当該の1or2項目について不安定になる。独自因子分散のSEは当該の1or2項目ででかくなり、しかし信頼区間が0を含むとは限らない。このように、 さっきのチェックリストのうち(1)(2)(3)(4)にひっかかるはずである。 ついでにいうと、B2の場合は因子数を一つ減らして残差独立性をLM検定すると有意になるはず。
対処。B1の場合、因子数を減らす。そのモデルの適合が悪く棄却されちゃう場合は、標本サイズが大きすぎると捉えて、 カイ二乗検定をあきらめGFIやCFIをみるか、多変量正規性の仮定が崩れていると捉えてADF推定するか。B2の場合は、独自因子の共分散を推定するか、因子負荷なり独自因子分散なりに等値制約を置くか。[←うーむ、どこまでもSEM的な解決策だ... SPSSとかでEFAやっている人は困るだろうな]
C. 因子モデル不適合。これにはいろんなパターンがあるんだけど、整理されていない。典型的には次の2つのケースが挙げられる。
(C1)独自分散の真値が負。5つのチェック項目のうち(4)だけに引っかかる。項目を削るしかない。
(C2)モデルに合わない変数がはいっている。その変数を突き止めて削るしかない。
D. 上記以外いろいろ。たとえば外れ値とか。
後半は事例。メモは省略。
考察。「本稿では探索的因子分析における不適解の原因と処理について議論してきたわけであるが、率直な意見として、かなりテクニカルだと言わざるを得ない」と、せっかく読んできた読者の膝を後ろからカックンさせるようなセリフに続いて、EFAじゃなくてもっと別の主成分モデルっぽいのを考えたほうがいいんじゃないかという話。独自因子分散を考えるんだけど、それを標本分散に比例させちゃう(つまり信頼性を固定する)モデル、とか。
。。。大変勉強になりましたです。
もし他の方がこの論文と同じ趣旨の解説を書いたら、B1では「その項目を削れ」、B2では「その2項目を併合せよ」、という案に触れるだろうな、と思う。実際、EFAにおける不適解についての解説は、対処法として真っ先に「共通性が高すぎる項目を削る」「併合する」を挙げることが多いと思う。この辺の書き方の違いは、著者の先生のお立場の反映なのだろう。
たしかに、ああいう機械的なアドバイスってどうなの、と思うことあるんですよね。項目選択ってのはなによりも大事なもので、リサーチャーが死ぬほど頭を捻って選んでる(はず)なんだから、たかが不適解くらいでそうそう簡単にいじれないよ、と。ま、この辺は分析の文脈にもよる。
読了:狩野(1998) 探索的因子分析の不適解はなぜ起きるか、どう対処するか
2016年8月26日 (金)
ほんとはいまそれどころじゃないんだけど、前に取ったメモを忘れないうちに記録しておく。(現実逃避)
McEntegart, D.J. (2003) The pursuit of balance using stratified and dynamic randomization techniques: An overview. Drug Information Journal, 37, 293-308.
実験研究で対象者を条件に割り付けるとき、無作為割り当てに頼っていてよいか? 重要な共変量については標本設計の段階で条件間できちんとバランスさせておいたおいたほうがよいのでは?それはなぜ?そしてどうやって?... という話題があって、その医薬統計向け解説。医学分野での実験では、多施設で同時に実験するとか、対象者が徐々に増えていくとか、そういう特有の事情があって、案外話題が尽きない模様なのである。
雑誌の性質はよくわからないが、NACSISで所蔵館17館だから、そんなに妙なものではないだろう。現誌名はTherapeutic Innovation & Regulatory Science となっているらしい。
以下、内容メモ。
標本設計の段階で予後因子[共変量のことね]を条件間でバランスさせるのはなぜか。
- その最大の理由は統計的効率性だ、と長く考えられてきた。70-80年代には"splitter"と"lumpers"の対立があった(Grizzle, 1982 Control.Clin.Trials)。前者は標本設計の段階でバランスさせる派、後者はモデルで事後調整する派。で、現在は両方やるのが良いというのが主流。
- 統計的効率性という観点から見て、ほんとにデザインでバランスさせる必要があるのか。特にサンプルサイズが大きい場合、ちゃんと無作為割り当てしてればそれで十分ではないか。[いろいろ議論が紹介されて...]要約すると、大規模多施設試験で施設を層別変数にする場合を別にすれば、たいていの場合、わざわざ標本設計の段階でバランスさせる必要はない。
- しかし、標本設計の段階でバランスさせるのはなにも統計的効率性のためだけじゃないだろう。「バランスを得る目的は、(その可能性は低いにせよ)極端なアンバランスが起きてしまうという事態に対する、低コストな保険であるとみなすことができる」。[...というわけで、著者は標本設計時にバランスさせることのメリットを箇条書きで8個も挙げている。MECEなリストとは言い難いが、なにかのときに役に立ちそうだ]
バランスを保ちつつ無作為割り当てする方法。
- Central randomization with constraints. [ここ、いまいちぴんとこないので原文をメモしておく]
A simple form of randomization is to allocate subjects the next medication from a list sectioned into blocks where each block balances treatment in multiples of the desired allocation ratio.
[たとえば実験条件P,Qがあって、目標とする割り当て割合が1:1だったら、PQ, QPという2種類のパーミュテーションブロックをつくり、これをランダムに並べたベクトルをつくり, 全施設がこのひとつのリストを左から順に使っていく... ということだと思う。うーん。これってふつう「ブロック無作為化」って言わない?]
この方法では、施設やそのほかの要因はバランスできない。バリエーションとして、Zelenのbalanced blocked randomization (施設内での割付が極端にならないようにする)がある。 - 層別パーミュテッド・ブロック無作為化。製薬会社がいちばんよく用いている方法がこれで、ふつう施設を層別変数にする。ほかの層別変数をいれることもある(施設と要因をクロスしたやつを層にする)。
ふつうは試験開始前にブロックの割り当てを決める。でも次のように動的に決めていくこともできる[以下、勝手に解釈してメモ]。条件はPとQだとしよう。指令所がパーミュテーションブロック PQ,QP のランダムな並びを持っている。試験スタート。施設Aに男の対象者がはじめて入ってきました。施設Aは指令所に連絡して、ブロックをひとつもらってきて男用にする。それがQPだったら、その対象者はQ, 次の男の対象者はP。次の男の対象者が来たら、また連絡してブロックをもらってくる。このやりかただと、途中で施設を追加するのも容易。
研究レベルでみると条件間で厳密なバランスはとれない(多少ずれたって検定力は落ちないけど)。各層のサイズがブロックサイズにくらべて十分に大きければ、2条件への割り当ての差の95%信頼区間は、±1.96√{(層の数)(ブロックサイズ+1)/6}で近似できる[←んんん? 施設のほかに層別変数がないとして、施設数8、ブロックサイズ2なら条件間で±4人くらいのずれがでるってこと?]。2条件の場合、層の数はせいぜい対象者数/(4xブロックサイズ)までにしておけという意見もある。 - mixed無作為化。層別ブロック無作為化の変形で、二重盲検化してない試験で予測可能性を減らすために用いる。[予測可能性の問題には関心がないのでパス]
- 最小化(minimization)。すごくよく使われている。Scott et al.(2002)を参照せよ。[...仕組みの説明とシミュレーション研究の紹介があって...] 要因のクロスについてはバランスが取れない。変形として、Signorini et al. の階層動的バランシング法というものある(施設内でバランスが取れる)。
利用上の注意点。量的変数についてバランスさせるときは、頻度が同じ程度になるような、5水準くらいに離散化するとよいだろう。頻度が小さい水準があるとそこが重視されるので気を付けるように。[ほか、いろいろ書いてあるけど、あんまし関心のない話が多いのでメモ略] - 壺デザイン (urn designs)。たとえばP,Qの2条件、層別変数なしとして、最初の対象者はp=0.5で割り付ける。これを壺からの球のドローと捉える。各壺のなかのP色の球の数、Q色の玉の数をwとする。ドローした球はすぐに戻し、さらにその色の球をα個、違う色の球をβ個加える。α<βにすればするほど速くバランスが取れる。層別変数をいれる場合は...[めんどくさいのでメモ略]。壺デザインはあんまし使われてないけど、割り当て確率がインバランスの程度と比例するという魅力がある。
- 最適デザイン。回帰モデルによる処理効果の推定値の分散を最小化することを目指す。AtkinsonのDA最適化法がある(1982 Biometrika; 1999 Stat.Med.)。いちいち逆行列を出さないといけないが、それを改善した変形もある。非統計家に説明にしくいのが欠点で、使っている研究をみたことがないが、簡略化した方法を使ったという報告はある。
手法選択における考慮ポイント。
- バランスという観点からいうと...[まあそうだろうなという感じの話。略]
- 予測可能性という観点からいうと... [関心ないのでパス。しかし、医学統計においては予測可能性って大問題なんだなあ...]。
- 検定力という観点からいうと...
- Tu et al (2000 Drug.Info.J.)が実データから抽出する実験をやって最小化と層別を比較している。分析モデルが正しいとして、共変量間の交互作用があるときは、最小化の成績は層別より落ちる。交互作用がなくてもやはり落ちるが、サンプルサイズが大きいと変わらなくなる。しかしこの研究はいろいろ問題があって、たとえばブロックサイズを2にしてるけど、著者の製薬会社における経験によればふつうブロックサイズはもっと大きいし [... とケチをつけている。パス]
- Weir & Lees (2003 Stat.Med.)は層別無作為化よりも最小化が優れていると示している。でも共変量の交互作用がないと仮定したシミュレーション研究だから、ま、そうなるよね。
- Quinaux et al.(2001 Conf.)は打ち切りのある生存データで層別無作為化と最小化を比べ、大差がないといっている。
分析について。厳密に言えばrerandomization testをやるのが正しい。著者もFDAにそう命じられたことがある。いっぽう、対象者参加順の時間トレンドがない限り、バランスさせた要因を分析に含めれば、標準的な検定でよいという意見もある。こっちのほうが多数派で、シミュレーションで支持する報告もある。当局にrerandomizationで検定しろって突っ返されるのがどうしても嫌だったら別だけど、黙って標準的検定をやってりゃいいんじゃないでしょうか。
云々。
。。。この話、市場調査にすごく縁の深い話なんだけど、これまでにきちんとした解説をみたことがない(たいていの市場調査の教科書は社会調査のアナロジーで書かれており、統制実験という視点が乏しいからだと思う)。また、詳しくはちょっと書きにくいけど、実査現場でものすごく奇妙な慣習が横行している領域でもある。これは実査側の問題でもあり、発注側の問題でもあるので、いつかきちんとまとめたいものだ。。。(現実逃避)
読了:McEntegart (2003) 共変量の分布をバランスさせつつ実験条件に対象者をうまく割り当てる方法レビュー
2016年8月25日 (木)
Masson, M.E.J., A tutorial on a practical Bayesian alternative to null-hypothesis significance testing. Behavioral Research Methods, 43, 679-690.
先日目を通した Wagenmakers(2007 PB&R) に基づく、手取り足取りなチュートリアル。要するに、p値じゃなくて2つの仮説のBICの差を見ましょう、なぜならそれを2で割るとベイズ・ファクター(BF)の対数の近似になるから。という話である。
いくつかのANOVAについて計算例を手取り足取り示している。
あまりに眠くて眠くて、数行ごとに意識を失った。途中からは目がつつつーっと滑っていく感じ。ろくに読めていないが、整理の都合もあるし、今回はご縁がなかったということで、読了にしておく。
ひとつだけ、あれ、と思った点をメモしておくと...
かんたんなANOVAのBICは、誤差の正規性を仮定すれば
$BIC = n \log (1-R^2) + k \log(n)$
と書けるが、ここでの$n$とはなにか。素直に考えるとデータサイズだが、反復測定ANOVAのときには話がややこしい。対象者数$s$, 条件数$c$として、独立な観察数は$n=s(c-1)$だからこれを使おうという意見と、$s$を使おうという意見がある由。そういや、Wagenmakersさんもそんなことを書いていたな...。著者は前者を採用している。
こうしてBFをBICで近似するのは、まじめに周辺尤度を求めるのが大変だからだろうと思う。でも、BICの差は必ずしもベイズ・ファクターの良い近似にならないはずなので、もし特定の適切な事前分布の下で解析的にベイズ・ファクターが出せるんなら、そっちのほうが気が利いていると思うんだけど。ANOVAでは無理なのだろうか。そこについての言及はとくになかったと思うが、見逃している可能性も高い。
読了:Masson (2011) p値はやめてBICの差を使いなさい:実践編
Jamil, T., Ly, A., Morey, R.D., Love, J., Marsman, M., Wagenmakers, E.J. (2016) Default "Gunel and Dickey" Bayes factors for contingency tables. Behavioral Research Methods.
先日たまたまベイズ・ファクターについて考える機会があって、そういえばクロス表のベイズファクターの事前分布って、あれどうなってんの?と気になった。ちょっと探してみたら、先月公開された解説記事が見つかった。第三著者はRのBayesFactorパッケージの中の人。こりゃラッキーだ、というわけで、ざっと目を通した。
クロス表の独立性の検定のためによく使われる手法は、カイ二乗検定、尤度比検定、フィッシャーの正確検定である。しかし[...ひとしきりp値の悪口...]。
本論文では、ベイズ・ファクター(BF)による仮説検定について説明しよう。この手法、実は長い歴史を持っているのだが、先行研究のほとんどは、統計的洗練のレベルが高い人々とか、古い数式記号フェチの人々とか、プログラミングやデバッグが目的の人々にしか相手にされてこなかった。[←そう書いてあるんです、私が言っているんじゃないです]
ほんとは古典的統計学の場合でもそうなんだけど、標本抽出デザインについて考えないといけない。クロス表の標本抽出デザインとして次の4つを区別できる。
- ポワソン抽出スキーム。全部ランダム。
- 同時多項抽出スキーム。全頻度のみ固定。
- 独立多項抽出スキーム。行周辺度数すべて、ないし列周辺度数すべてが固定。実験心理学ではこれが一番多い。
- 超幾何抽出スキーム。行周辺度数すべて、かつ列周辺度数すべてが固定。
いったんクロス表の話から離れて、ベイズファクターについての説明。[...略...]
なお、Jeffreyの解釈基準[BF>10が「強い証拠」だというような早見表]の有用性については、本論文の著者のあいだでも意見が一致していない。[←面白いコメントだ]
クロス表のBFについてはGunel&Dickey(1974 Biometrika)が定式化している。ここからは彼ら(GD74)の議論を追いかける。
$R \times C$のクロス表$y_{**}$を考える。$r$行$c$列の頻度を$y_{rc}$とする。
事前パラメータの行列$a_{**}$を考える。サイズは $R \times C$で, $r$行$c$列のパラメータを$a_{rc}$とする。このパラメータってのは、あとで出てくるけど、ガンマ分布なりディリクレ分布なりの形状パラメータのこと。
行と列が独立しているというモデルを$H_0$, 独立でないというモデルを$H_1$とし、この2つのモデルを比較するベイズファクターを定式化する。
- ポワソン抽出スキームの場合。
$y_{rc} \sim Poisson(\lambda_{rc})$
$\lambda_{rc} \sim \Gamma(a_{rc}, b)$
と考える。ここからBFが導出される。数式は複雑すぎるので省略するけど、とにかく導出できるのである。これを$BF_{01}^P$とする。 - 同時多項抽出スキームの場合。
$(y_{11}, \ldots, y_{rc}) \sim Multinomial(y_{..}, \pi_{**})$
$\pi_{} \sim Dirichlet(a_{**})$
と考える[あー、なるほどね...]。で、ここから$BF_{01}^M$が導出される。 - 独立多項抽出スキームの場合。
固定されていないほうの周辺分布が多項分布に従うと考える[書いてないけど、その事前分布はディリクレ分布ってことになるのかしらね]。ここから$BF_{01}^I$が導出される。なお、片側検定に相当するBFはどうなるかというと...[略] - 超幾何抽出スキームの場合。
(非心)超幾何分布を想定する。 ここから$BF_{01}^H$が導出される。[なんだか知らんが、信じます]
というわけで、いずれの抽出スキームでも、$a_{**}$があればBFが出せる。(正確にいうと、ポワソン抽出スキームの場合は尺度パラメータ$b$が必要だけど、GD74が$b$の決め方を提案してくれている由)。で、GD74に従えば、 $a_{**}$を全部 1 にするのがデフォルト。一様分布ってことね。
シミュレーション。いろいろ試してみると、BFはポワソン、同時多項、独立多項、超幾何の順に高くなる。サンプルサイズを動かすと同じように大きくなるけど、4つのBFの差は結構広いし、漸近的に近くなるわけではないので要注意。
事例。[各抽出スキームについてひとつづつ。略]
結論。[...中略...]
本論文ではGD74が定式化したBFについて解説したけど、ほかの定式化もある。対数線形モデルの枠組みでやるとか。また、GD74とはちがう形式の事前分布を使う手もある。解析的には解けなくなって、MCMCを使わないといけなくなるかもしれないけどね。
云々。
。。。へー、こういう仕組みだったんすか。細かいところはわかんないけど、おおざっぱには理解できたので、良しとしよう。
クロス表の独立性検定のとき、ふだんは抽出スキームについてほとんど考えないけれど(サンプルサイズが大きければ大差ないから)、BFの場合はきちんと考えないといけない、というのが最大の収穫であった。BayesFactorパッケージのcontingencyTableBF()だと、引数typeで上記の4つのスキームが選べる。
読了:Jamil, et al. (2016) クロス表のベイズ・ファクター
粕谷英一(2015) 生態学におけるAIC の誤用 ─ AIC は正しいモデルを選ぶためのものではないので正しいモデルを選ばない. 日本生態学会誌, 65, 179-185.
まさに題名そのままに、AICはあくまで平均的にみてよりよい予測を提供してくれるモデルを選ぶための指標であって真の構造を表現しているモデルを選ぶための手法じゃないよ、という論文。勉強になりましたです。
読了:粕谷 (2015) AIC では正しいモデルを選べない、なぜならAICは正しいモデルを選ぶためのものではないから
2016年8月22日 (月)
Wagenmakers, E.J. (2007) A practical solution to the pervasive problems of p values. Psychonomic Bulletin & Review, 14(5), 779-804.
伝統的な仮説検定(NHST)をディスりまくった上でベイジアン・アプローチを推す解説論文。
JASA(統計学の雑誌)に掲載されたベイズ・ファクターの解説論文を読んで、難しさに困惑したので、方針を変えてPB&Rの解説論文に目を通した次第。実験心理学の雑誌ですわよ奥さん!必ずしも数学が得意とはいえないかもしれない方向けの啓蒙論文ですわよ!あーらステキ!これが臨床心理学の雑誌とかだと、数学が得意でないと言い切れる方向けになってもっとステキなのに!
以下、内容のメモ。予想に反して面倒くさかった。
イントロダクション。
心理学におけるNHST批判の主な論点は次の3つだ。
- NHSTはデータの下での仮説の確率と仮説の下でのデータの確率とを混同させてしまう。
- 有意水準が恣意的。
- 帰無仮説は厳密には真でなく、よって標本サイズが大きくなるといつも棄却される。
こうしてみると、統計学におけるNHST批判とちがい、心理学者は解釈上の問題にばかり焦点を当てていることがわかる。本論文では無知モーマイな心理学者の諸君に[←そうは書いてないけどまあそれに近い]、統計学者からみたNHSTの真の問題点を指摘しよう。そして輝けるベイジアン・パラダイムについて教えてやるから聞け。
注意:
- NHSTが間違っているとはいわない。たとえば、データが瞳孔間外傷検査(interocular trauma test)を通過した場合、NHSTは正しい。[←目で見て腑に落ちる結果ならその検定結果も正しいよ、という意味のユーモラスな言い回しらしい...]。
- 経験を積んだ統計学者が注意深くNHSTを使えば賢明な判断ができることもあるだろう。要はp値に機械的に頼らないことだ。
- 現象の存在は反復的再現によって確かめられるのであって、単一の結果についての統計的推論なんて細かいことじゃん、という意見について。そりゃまあそうだけど、だからといって単一の結果についての判断がどうでもいいとはいえないでしょ。ついでにいうと、再現確率の指標$p_{rep}$だってp値の問題をそっくり継承しているのよ。
[いかん。面白いんで細かめにメモ取っちゃったけど、このペースではなかなか終わらない。以下、もう少し粗めにメモする]
NHSTとはなにか。
[...略...] 本論文ではネイマン・ピアソン流のNHSTではなくフィッシャー流のNHSTに焦点を当てる。
NHSTの問題点[豊富な事例がついている...]:
- p値は決して観察されることのないデータ(帰無仮説の下での架空のデータ)に依存している。[事例が3つ。たとえば、たとえデータが同じでも、実は(現実にはあきらかにひっかかってないんだけど)測定にセンサリングがあったのだとあとでわかったら、標本分布が変わってきちゃうことになるよね、それっておかしくない?というような話]
- p値は未知の主観的意図に依存しうる。[事例3つ。たとえば、途中までの結果を見てデザインを微妙に変えることって、実際にはよくあるし、それ自体は本来悪いことじゃないはずじゃん?でもそういうのNHSTだとうまく対応できないじゃん?というような話。なるほど、これは納得]
- p値は統計的証拠の定量化になっていない。[事例1つ。p値が全く同じでサンプルサイズが違う実験がふたつあったとき、Fisherの見方では証拠の強さは同じなのに、サンプルサイズが大きいほうが強いと思う人が多い、という話]
[疑問に思った点をメモしておく。ま、私ごときのこんな疑問は、この分野の膨大な議論の蓄積に照らせば屁のようなものだろうが。。。
1.は、ほんとにNHSTの問題点なのかどうか、よくわからなかった。統計的推論はどうしたってデータと知識のアマルガムだ。頻度主義の立場に立ち、データをある確率分布のひとつの実現値として捉えようとするとき、その確率分布について考える際にデータには基づいていない知識が用いられること自体は、ベイズ流の立場に立った時の事前分布がデータに基づいていないとの同じで、別に奇妙な話ではないのではなかろうか。もっとも、頻度主義的な統計的推論においては知識の混入を明示する枠組みが欠けているのが問題だ、とか、尤度原理は死守すべきだ、といった主旨なら納得するけど。あ、そういう主旨なのかな、ひょっとして。
3.は、Fisherの考え方を人々が正しく理解しているかという問題と、Fisherの考え方とベイジアンの考え方のどっちがよいかという問題が混じっているように思う。前者は単に多くの人が勘違いしているよねという話であって、後者の議論への決定打にはならないはずだ]
ベイズ推論とは何か。
[いまベイズの論文って増えてますねん.. でも心理学では見かけませんなぁ... どういう仕組みかというとですね、二項パラメータの推定を例にとると... 云々を2p強で説明]
[ベイジアンの仮説検定とは ... ベイズファクター(BF)とは... 計算例... Jeffreyの解釈基準...云々で1p]
事前分布をどうするか。検定の文脈では、主観的ベイジアンにとっては事前分布はそんなに大問題ではないが(それは事前の信念だから)、客観的ベイジアンにとっては大問題だ。客観的事前分布は十分にあいまいでなければならないが、それはパラメータのありそうにない値に確率を与えることになるわけで、つまり仮説の複雑性を増大させることになり、仮説の事後確率が常に低くなるからだ。これを避けるために、local BF, intrinsic BF, partial BF, fractional BFなどが提案されている[←恥ずかしながら存じませんでした。Gillの本を読むと良いらしい]
云々。
p値が同じなら証拠の強さも同じだといえるか
[もちろん、いえない、という話である。いや、それはさあ、証拠の強さというのをベイズ的に定義すれば、それはそうなるんでしょうけど...
事例として、p値を固定した状態で標本サイズを増やすと帰無仮説の事後確率は高くなるという現象を示している。正直、ベイズ流の事後確率と頻度主義のp値を比較するほうがどうかしているよと思ったが、著者もその点は言い訳していて、いわく、どんな事前分布を使おうが帰無仮説の事後確率は標本サイズを増やしたときp値と単調に関連したりはしないのだということを示したかったのだ、とかなんとか。
きちんと読んでないのにこんなことを書いてはいけないんだけど、これはなんというか、まず文中にp値に対する素朴な誤解を忍び込ませ、やおらそれを叩く、というタイプの藁人形論法ではなかろうか。正直、私にはよくわかんないや...]
NHSTに代わる手法
p値に代わる手法としてこれまでに提案されたものを挙げると:
- Bayesian-frequentist compromises (Berger, 2003 Stat.Sci.; etc.)
- AIC
- 交差妥当化
- ブートストラップ法
- prequential methods (Wagenmakers et al, 2008 J.Math.Psych.; etc.)
- minimum description lengthの原理に基づく手法 (Grunwald et al., 2005 書籍; etc.)
いずれもモデル選択手法である。
p値に代わる手法に求められる要件として以下が挙げられる。1-3は理論的要件、4-5は実験心理学者の実用的要件:
- 観察されたデータだけに依存する手続きであること
- 調査者の未知の意図に依存しないこと
- 帰無仮説と対立仮説の両方を考慮した指標であること
- 実装しやすいこと(SPSSのボタンをクリックしたら結果が得られるというような簡単さが必要)
- 客観的であること
上に挙げた手法は1-3を通過できない。ベイジアンの手法1は1-3を通過するけど4に反する(MCMCは実験心理学者には難しすぎる)。主観ベイジアンは5にも反する。そこで、客観ベイジアンの手法をどうにか簡単にすることを考えよう。
BIC近似によるベイジアン仮説検定
[というわけで、ベイズファクターを$\exp(\Delta BIC / 2)$で近似できるという説明で1p。事前分布はunit information priorがいいよとのこと。詳細は付録をみよとのことだが、えーっと、それってハイパーパラメータがデータで決まるってことですよね... 経験ベイズのススメっていう理解でよいのでしょうか...]
[BIC近似の注意点。細かいはなしなのでメモ省略]
[ANOVAで検定のかわりにBICで近似したベイズファクターを使うという例。ANOVA表から手計算する。面倒なので読み飛ばした]
結論
実験心理学者たちよ、p値じゃなくてBICで近似したベイジアンな検定をつかいたまい。
やれやれ... 長かった... 面倒くさかった...
それにしても、p値というのは巨大な怪物だなあ、とため息がでた。
この論文のようにベイジアンに足場を置いてp値を批判することは可能だろう。あるいは、ネイマン=ピアソンが諸悪の根源なり、フィッシャーに戻れ、と主張することも可能だろう。二値的な統計的判断そのものを批判し、信頼区間を使いましょうとか図を使いましょうとか、そもそも我々はもっと不確実性を受容するべきなのだとか、そういったタイプの批判も可能だろうし、お望みならば、世の中大きくは変えられないけど、従来の検定の代わりにもっと手法Xを使おうよ、そうすれば世の中ちょっぴりましになるよ、と主張することも可能だろう(Xには好きな手法の名前を入れる。FDRとか)。
ここに巨大な怪物が居座っている、現状はまずいよねとみんながうなずく。でもいざどうするかとなると百家争鳴、どこかの足場に立った批判と提案しかできない。困ったことに、足場によって怪物の姿はまるきり異なる...という感じだ。
読了:Wagenmakers (2007) p値はやめてBICの差を使いなさい
2016年8月19日 (金)
Kass, R.E., Raftery, A.E. (1995) Bayes Factors. Journal of the American Statistical Association, 90(430), 773-795.
題名の通り、Bayes Factor(BF)についての総説的論文。前から気になっていたんだけど、このたびきっかけがあってざっと目を通した。難しかったー。めんどくさかったー。
以下、内容のメモ。
まず、BFが役立ちそうな事例を5つ紹介。帰無仮説を支持する事例が3つ、モデル不確実性を考慮する奴がひとつ、変数選択課題がひとつ。[めんどくさいのでパス]
BFの定義。2つの仮説$H_1, H_2$について、BFとは$P(D|H_1)/P(D|H_2)$であり、事後オッズ = BF × 事前オッズである。それぞれの仮説が自由パラメータのない単一の分布であれば、BFとは尤度比のこと。未知パラメータを含んでいても、BFは形としては尤度比だけど、いわゆる尤度比ってのは最大尤度の比なのに対して、BFは周辺尤度の比である。つまり、ここでの$P(D|H_k)$はパラメータ空間を通じて積分して得られるものである。また、尤度比検定では仮説がネストしているけど、BFではそうとも限らないという点に注意。
解釈の仕方。BFのlog10を{0.5,1,2}で4分割してみたり[よく本に載っているJeffreysの基準ね]、尤度比みたいに2logを{2,6,10}で4分割したりする[へー]。
ところで、モデルが真であるかどうかを話から切り離し、BFを次のように解釈することもできる。いまデータ$D=\{y_1, \ldots, y_n\}$があり、それぞれの$i$に対して、$\{y_1, \ldots, y_{i-1}\}$に基づく$y_i$の予測分布$\hat{P}_i(\cdot)$を生成するなんらかのルールを構成できたとしよう。そのルールの性能評価を、対数スコアリング・ルール$\log \hat{P}_i(y_i)$によって行うとすると、全体のスコアは$LS=\sigma_i log \hat{P}(y_i)$。このルールってのが$H_k$から得られるのだとすると、$\log P(D|H_k) = \sum_i \log P(y_i | y_1, \ldots, y_{i-1}, H_k) = LS_k$だ。ってことは、BFの対数ってのはふたつの$LS_k$の差だ。つまりBFとはデータを2つの仮説に基づく予測の相対的成功度の差だとみることができるのだ。[←うううう... 話が急展開過ぎてついていけない... あとでゆっくり考えよう]
BFの計算の仕方。本来は
$I = P(D|H_k) = \int P(D|\theta_k, H_k) \pi (\theta_k|H_k) d \theta_k$
を求めたいわけだけど($\pi(\theta_k|H_k)$ってのはパラメータの事前分布ね)、こんなの真っ正直に求めてらんない。3つの方法がある。
- 漸近近似。ラプラス法、その変形、シュワルツ基準、がある[前の二つの説明は完全にスキップ。そんな体力はないぞ]。シュワルツ基準とは、$\pi(\theta_k|H_k)$を使わず、シュワルツ基準
$S = \log P(D|\hat\theta_1, H_1) - \log P(D|\hat|\theta_2, H_2) - (1/2) (d_1 - d_2) \log n$
を使おうというもの。$\hat\theta_k$とは仮説$k$の下での$\theta_k$の最尤推定量、$d_k$とはその次元数。$n$が大きくなるにつれ、$(S-\log BF)/(\log BF)$は0に近づくので、$S$は$log BF$のラフな近似とみることができる。なお、$S$を-2倍した奴のことをBICと呼ぶことが多い。さらにこの方法はですね、片方の仮説のパラメータを事前分布をこれこれな正規分布にしますとですね...云々云々。[だめだ、力尽きた。よっぽど暇になったら読み直そう] - モンテカルロ積分。[パス!]
- シミュレーション。[パス!!]
手法の比較。解析的に求められるんならそれがベスト。ラプラス法とその変形もなかなか正確。複雑なモデルならモンテカルロ積分。MCMCは今後に期待。シュワルツ基準は簡単なのが取り柄、自由度がでかいときには正確でない。
事前分布をどうするか。
既存知識から構成するやり方については、Kadane et al (1980 JASA)をみよ。云々、云々...[めんどくさいのでパス]
感度分析 ... [パス。すいませんいまちょっとそんな心の余裕がないです]
非正則事前分布 ... [パス]
モデルの不確実性。[読んでないからわかんないけど、ベイジアンモデル平均みたいな話だろうか。とにかく一章まるごとパス]
BFの実例。冒頭の5つの事例について、BFによるアプローチを紹介。[パス]
議論の的となる話題を3つ。
- そもそもあるシャープな仮説が正しいかどうか検証しようという姿勢がバカバカしい、という批判について。そんなことはない、もともと、科学において仮説が正しいとは、そこからの逸脱が十分に小さいということだ。だからといって検定より推定のほうが自然だということにはならない。[←なるほど。仮説検定へのラディカルな批判として、仮説に対する二値的な判断がよろしくないという意見があるが、そういう立場には立たないってことね]
- BFと伝統的な仮説検定のどっちがよいか。膨大な議論があるが、主な論点は:
- p値は帰無仮説が真である事後確率ではないけど、誤解が後を絶たないよ。
- 頻度主義的な検定はサンプルサイズが大きいといつも有意になっちゃうよ。
- BFは尤度原理に従っているから安心だよ。ケースが逐次的に生じる臨床試験のような場面で、事前に計画していない分析をするときとかさ。
- BFはネストしてないモデルでも比較できるよ。
- モデルが3つ以上あるとき、検定だと大変だけど、BFならモデル不確実性への対処という形で対応できるよ。云々。
- BFじゃなくて、ご存知 AIC=-2(対数最大尤度)+2(パラメータ数) を支持する議論。主に2つある。
- Akaike(1973)に代表される予測の観点からの議論。いま、所与のデータと一連のモデルの下で、将来のデータについての予測分布を構成したいとしよう。もし予測分布が、単一のモデルと、そのパラメータ推定値に条件づけられたものでよいならば、AICで選択されるモデルは漸近的に最良なモデルである。なるほど。しかし、パラメータの値とモデルの形式には依然として不確実性があるわけで、それを考慮していないという意味で、得られる予測分布は正しくない。実際、AICはパラメータ数を漸近的にさえ過大推定するといわれている。
- Akaike(1983)に代表されるベイズ的な議論。 AICによるモデル選択は、BFによるモデル選択と漸近的に等価である。なるほど。でもそれは事前分布の精度が尤度の精度と比較できるレベルである場合に限られる。実際には、事前情報はデータが与える情報と比べて乏しい場合が多い。そのときは、事後確率が最大なモデルとは、AICじゃなくてBICが最小なモデルである。
研究紹介。[パス]
結論。[パス]
読了:Kass & Raftery (1995) ベイズ・ファクターとはなにか
2016年8月10日 (水)
Ozaltın, O.Y., Hunsaker, B., Schaefer, A.J. (2011) Predicting the Solution Time of Branch-and-Bound Algorithms for Mixed-Integer Programs. INFORMS Journal on Computing. 23(3), 392-403.
B&Bアルゴリズムで整数計画問題を解いているさなかに、その問題があとどのくらいの時間で解けるかを予測する手法を提案する論文。
たまたま見つけてディスプレイ上で眺めた。なにこれ、俺って検索の天才なの?! ついに救いの神を見つけちゃったわけ?! と5秒くらい興奮したけど、ま、神はそんなに甘くない。
いわく。
終了時間の予測にはMIP gapがつかわれることが多いが、たいていずっと一定で、解が見つかる前に突然下がるので、いまいち使いにくい。未処理ノード数を監視することもあるけど、減っているからといってもうすぐ終わるとは限らないし、増え続けることだってあるので困る[←そうそう!]。そこで新指標SSGを提案しましょう。
先行研究概観。
branch-and-boundアルゴリズムのノード数推定にはオフライン法(探索打ち切り後に用いる)とオンライン法がある。前者は...[略]。後者としては、未探索ブランチのノード数はこれまでに探索したブランチのノード数と似ているだろうと仮定する奴とか...[略]...がある。
我々の提案はこれらとはちがって、まずは探索の進行を示す連続的指標をつくることを考える。
提案手法。
全体のMIP gapじゃなくて、B&Bツリーをサブツリーに分割し各サブツリーの最適性gapを測る。サブツリーへの分割がガンガン変わるというところがポイント。で、合計してうまいことスケーリングし、単調に増えていく指標にする。
この指標の時系列をつかって終了時間を予測する。カルマン・フィルタとかだと大変なので、二重指数平滑化で予測する由。
途中で「あ、これは... 誰かにソフトを作ってもらわないとだめだ...」と気づき、急速に関心がなくなってしまった。パラパラ捲っただけだけど読了にしておく。著者はBAKというソフトを配っていて、提案手法はそこで実装してある由。 整数計画ソルバーとして、論文の時点ではSYMPHONY、GLPK、CBC、に対応していたらしい。 いまでも配っているみたいだが、開発は止まっちゃっている模様。
読了:Ozaltın, Hunsaker, Shaefer (2011) 整数計画問題があとどのくらいで解けるかを予測する新手法
2016年8月 9日 (火)
Atkinson, A., Bailey, R.A. (2001) One hundred years of the design of experiemnts on and off the pages of Biometrika. Biometrika, 88(1), 53-97.
実験計画の歴史をBiometrika誌掲載論文を中心に振り返る、という長文の論文。この号はこの雑誌の100年記念号で、こういうのが各分野について載ったらしい。
前提知識が足りなくてほとんど理解できない内容なのだけれど、途中でうつらうつらしつつ、へえーそんな問題があるのねー...などと無責任に読了。
いくつかメモ:
- 実験計画で言うG最適基準を最初に提案したのはKirstine Smithという女性、なんと1918年のBiometrika論文。まじか。
- 実験計画にもベイジアン計画というのがあるんだそうだ。なんらかの事前情報とか、それまでの実験点から得られた結果なんかを使うわけね。ベイジアンD最適計画、なんていうのもあるらしい。ひえー、と思ったけど、これ、仕事の役に立つことがあるかも...
- adaptive design 全般については、著者らの"Optimum Design 2000"(2001)という本を見よとのこと。いま流行のバンディット問題とも関係があるらしい。うわ...めんどくさい...
読了:Atkinson & Bailey (2001) Biometrikaで振り返る実験計画の100年
2016年8月 3日 (水)
Scott, N.W., McPherson, G.C., Ramsay, C.R., Campbell, M.K. (2002) The method of minimization for allocation to clinical trials: a review. Controlled Clinical Trials, 23, 662-674.
都合により読んだ論文。Contolled Clinical Trialsなんていうジャーナルがあるのね、びっくり(現在はContemporary Clinical Trialsという誌名らしい)。そういえば院生のころ、学術雑誌の数は指数関数的に増えていて、このぶんだと20xx年には全人類の人口を上回るはずだと教わったことがあった。
無作為化比較試験におけるminimizationについてのレビュー。ここでいうminimizationとは、分析じゃなくて計画の段階で、無作為化の原理に従いつつも群間で共変量の分布を揃えておくための、ある種の割付手続きを指している。へー、こういうのをminimizationっていうの?とびっくりした。「最小化」でいいのかしらん? それともなにか定訳があるのだろうか。
いわく。
無作為化比較試験(RCT)は介入を評価するためのゴールド・スタンダードだ。そこでは予後因子(prognostic factor)が群間で類似することが期待されるが、運悪くバランスが崩れることもある。それを防ぐために層別無作為化(stratified randomization)がよく使われているが、予後因子の数が多いときには層が多くなってしまい、現実的でない。
そこで使われるのが最小化(minimization)である。これはもともとTaves(1974 Clin.Pharmacol.Ther.)とPocock & Simon (1975 Biometrics)が独立に唱えたもので、後者はsequential treatment assignmentと呼んでいた。
処置群と統制群にわける場合について考えよう。 まず予後因子のセットを決める。たとえば{性別(2水準), 年代(3水準), リスク因子(2水準)}だとしよう。
対象者をひとりづつ、どちらかの群に割り付けていく[書いていないけど、1人目はランダムに割り付けるんだと思う]。いま16人の割付が終わったとしよう。17人目は男性、30代、リスク因子高でした。16人について暫定的な集計表を作り、処置群と統制群それぞれについて、男性の人数、30代の人数、リスク因子高の人数を足しあげる(当然ながらダブりがある)。その値が小さい群のほうに17人目を割り付ける。これがTavesのいうminimizationである。ほかにも...
- Pocock&Simon(1975): Tavesの方法をもうちょっと一般化した方法。
- Begg & Iglewicz (1980 Biometriics): さらに一般化。交互作用項がいれられる。
- Atkinson (1982 Biometrics): 最適計画の理論を使う。
- Smith (1984 J.R.Statist.Soc.B): そのまた改善。
- Klotz (1978 Biometrics): Pocock & Simonを改善、不確実性のインバランスのトレードオフを調べる。
- Titterington (1983 Biometrics): よく似た方法で、バランス制約のもとで二次関数を最小化する。
- レビューとして、Begg & Karlish (1984 Biometrics), Kalish & Harrington (1988 Biometrics), Signorini et al.(1993 Stat.Med.)を参照のこと。
なお、こういうふうにリクルート時点でわかっている対象者特性を割付に使うことを"dynamic allocation"とか"covariate adaptive"法という。"response adaptive"法(対象者の反応を使う方法)とは区別すること。
他の手法との比較。
- 単純な無作為抽出と比べると、予後因子のインバランスが減る。[そらそうでしょうね。シミュレーション研究がたくさん挙げられているが、メモは省略]
- restricted randomizationと比べても、予後因子のインバランスは減る。これはTaveやPocock&Simonが示している。[ここでいうrestrictedの意味がよくわかんないんだけど、層別なしでパーミュテーション・ブロックを使うことを云っているのだろうか]
- 層別割付との比較。予後因子の数が増えると最小化のほうがよくなる。Therneau(1993, Control.Colin.Trials.)。
- そのほかの手法との比較。上出のBegg & Iglewicz、Zielhuis et al.(1999 Stat.Med.), Atkinson(1999 Stat.Med.; 2002 JRSS-A)がある。
批判。
まず、Peto et al.(1976, Br.J.Cancer)はこう批判している。最小化しても完全な無作為化と比べてたいして効率が良くなってないし、リクルートメントに害を及ぼすし、あとで共変量を調整するのが難しくなるよ。これには反論が多い由(Simon, 1979 Biometrics; Brown, 1980 CancerTreatmentRep.; Halpern & Brown, 1986 Stat.Med.)。
検討すべき論点が3つある。
- その1、最小化とは本質的に決定論的な手法であり、いっぽう分析は無作為割り当てを前提にしている。これはおかしい、という批判。最小化だけではなく、単純ランダム化以外のすべての割付手法に及ぶ指摘である点に注意。
- その2、次にくる対象者の割付先が予測できるわけだから、そこから選択バイアスが起きるのではないか、という批判。もっとも、これはよく考えてみると最小化に限ったことじゃなくて、パーミュテーション・ブロックをつかったときでも最後の対象者の行先は確定する。アルゴリズムによって割付の確率がどのくらい確定的になるか調べた実証研究もある。[←最初は批判の意味がぴんとこなかったんだけど、なるほどね、これ医学統計の話だから、患者なり医者なりが他の対象者の割付をみて自分の割付を知るということを気にしているわけだ]
- その3、話が複雑で、リクルートに害が及んだり、コスト増大の可能性があるという批判。[自分とはあまり関係ないのでメモは省略するけど、いろいろ書いてある。なるほどね、臨床試験ではすごく深刻な話だ、特に多施設でやっているときなんか...]
最小化はどのくらい使われているか。
2001年以降にLancetとNEJMに載ったRCTの報告150本中、割付に最小化を使っているのは6本、層内でパーミュテーションブロックをつかっているのが43本、やりかたは不明だが層別無作為化をしているのが19本、Efronのbiased coin法が1本、Signorini et al.の動的バランシングが1本、urn無作為化が1本[←この辺、あとで調べよう...]。残る79本は割付方法を明示してなかった。
考察。みんなもっと最小化をつかうといいよ。云々。
。。。いやー、大変勉強になりました。「無作為化実験で共変量が多すぎて層別割付できないときどうするか」という問題にはずっと前から直面していたのだけれど、こういう研究群があったのね! これまで探し方が悪かったんだなあ。
疑問点が2つ。
- どうやらこのレビュー論文では個々の対象者を逐次的に割り付けている状況が前提になっているんだけど、それは医学分野だからで、実験研究全体からみれば、確定した対象者集合を一気に割り付ける場合のほうが多いと思う。そういう分野での共変量のバランシング手法について知りたいものだ。
- これは実験研究の話だけど、観察研究のほうでは、共変量の効果を割付の工夫で調整するというのはすごく一般的で(matched case-controlとか)、共変量の数が多いときにどうするかといった問題について膨大な研究があるように思う。そういう研究との関係はどうなっているのかしらん。あんまり文献が重なってないのが不思議だ。具体的には、共変量が山ほどあるとき、線形計画法で割付を厳密に最適化するという話題が、観察研究ではあるらしいんだけど、実験研究でもあるのかどうか、知りたいんだけどなあ...
2016/08/12追記: 最小化(というか非ランダム化割付)に対する3つの批判のうちひとつめについて、引用されている文献のリストを作っておく:
- Tave(1974, Clin.Pharmacol.Ther.): この論点に言及。
- Pocock & Simon (1975 Biometrics): 患者が非ランダムな順序で試験に入ってきたときの偶然バイアスについて議論。共変量で層別しておいてその共変量を分析時に無視したとして、その影響は深刻ではないけれど、正しくない仮説的モデルを使うことにによって偶然バイアスが生じる可能性はある。
- Forsythe & Stitt (1977 Tech.Paper): 最小化を使った時にそれを無視した分析をするとp値が歪む。共分散分析すればよい。
- Simon (1979 Biometrics): 普通の検定じゃなくてパーミュテーション検定を使うべきだ。; ランダム要素をシステマティックなデザインに統合することで偶然バイアスが減ることはありうる。[←どういう主張かよくわからん]
- Begg & Iglewicz (1980 Biometrics): シミュレーション。共変量で層別したとき、パーミュテッド・ブロック・ランダム化におけるp値と、著者らの提案手法は、そんなには歪まない。正確法によって生じる保守性は、非ランダム的デザインによって生じる保守性よりも大きい。
- Kalish & Begg (1985 Stat.Med.): 普通の検定じゃなくてパーミュテーション検定を使うべきだ。; 割付において予後因子を使ったということを分析において考慮しなければいけないというのは皆が合意できる点だろう。いっぽう、聴衆の側は、共変量をいれた分析の結果より、重要な予後因子がうまくバランスされているデータで群間を単純比較した結果のほうが説得力があると感じるだろう。[←そうそう!これはほんとにその通りなんすよ!]
- Birkett (1985 Control.Clin.Trials): 単純ランダム化、層別ランダム化、最小化を比較。最小化はt検定を保守的にする。検定力はちょっぴり高くなるが大した差ではない。共分散分析するのがおすすめ。
- Kalish & Begg (1987 Control.Clin.Trial): 同上
- Halpern & Brown (1986 Stat.Med.): この論点に言及。; バイアスド・コイン・ランダム化の場合、古典的分析でたいてい満足できる結果が得られる。ただし例外もある。
- Lachin, Matts, & Wei(1988 Control.Clin.Trials): この論点に言及。
- Reed & Wickahm(1988 Pharmaceutical Medicine): 共変量を分析にいれることに反対。群間のインバランスによるエラーより、共変量の投入によるエラーのほうが大きいだろうから。
- Watson & Pearce (1990 Pharmaceutical Medicine): 非ランダムな割り当てをした場合でも、ランダム割り当てと同じ分析手法でいいじゃないか。
- Treasure & MacRae(1998 BMJ): ランダム化におけるインバランスを修正しようとすると結論の妥当性が不確実になるかも。
- Buyse (2000 App.Clin.Trials): 普通の検定のかわりにパーミュテーション検定を使ったって結果は大して変わらんよ。
- Tu, Shalay, & Pater (2000 Drug.Inf.J): シミュレーション。検定の観点からは、層別割り当てが優れ、最小化と単純ランダム化はほぼ同程度。予後因子の効果が交互作用していない場合には、最小化によって周辺分布を揃えればよいが、交互作用している場合には個々の層のなかでバランスしていることが必要。つまり最小化が信頼性を増すかどうかは共変量の交互作用によって決まる。
- Senn(2000 Stat.Med.): 最小化したらその共変量を分析に含めなきゃだめだ。
- Senn(2000 The Statistician): 同上。
- Green, McEntegart, Byrom, Shani, & Shepherd (2001 J.Clin.Pharm.Ther.): 普通の検定じゃなくてパーミュテーション検定を使うべきだ。
読了:Scott, McPherson, Ramsay, Campbell (2002) ランダム化比較試験でたくさんの共変量を条件間でバランスさせる割付方法
Zubizarreta, J.R. (2012) Using Mixed Integer Programming for Matching in an Observational Study of Kidney Failure After Surgery. Journal of the American Statistical Association, 107(500), 1360-1371.
ケース・コントロール・スタディで共変量が多いとき、対象者のマッチングを混合整数計画(MIP)でやりましょうという論文。ネットに落ちてたdraftで読んだ。
まず、観察研究におけるマッチングとはなにか、その利点について説明があって...
マッチングによくつかわれているのはネットワーク・アルゴリズムである。これは処理単位とそれにマッチングするコントロールのあいだの距離の合計を反復で最小化させる方法だが、どれだけ反復すればいいのかわからないし、コルモゴロフ・スミルノフ検定料とか共変量間の相関といった統計量を明示的にバランシングすることができない。
そこで新手法をご提案しますよ。Rのパッケージmipmatchもつくりましたよ。
この手法ではMIPを使います。なぜこれまで使われてこなかったか。それはtractableでなかったから(所与のサイズのもっとも難しい問題を解くのに必要なステップ数がサイズの多項式になっていなかったから)。これに対してネットワーク・アルゴリズムなら、シンプレクス法とかオークション・アルゴリズムとかで解けた。Rのoptmatchを参照のこと。
しかし[...と線形計画についての紹介があって...]、最近MIPはとても発展し、マッチングに使えるようになったのであります。
処理単位の集合を$T=\{t_1, \ldots, t_T\}$、潜在的なコントロール単位の集合を$C=\{c_1, \ldots, c_C\}$としよう($T \leq C$)。共変量のラベルの集合を$P = \{p_1, \ldots, p_P\}$とする。任意の処理単位とコントロール単位について、それぞれが共変量のベクトル$x_t, x_c$を持ち、距離$0 \leq \delta_{t,c} < \infty$を定義できるとしよう。
さあ、整数計画として定式化しまっせ。深呼吸...
変数$a_{t,c}$を、処理単位$t$がコントロール単位$c$に割り当てられたときに1、どうでないときに0とする。ベクトル(というか行列)にまとめて$a$とする。
以下の式を最小化する$a$を
$\sum_{t \in T} \sum_{c \in C} \delta_{t,c} a_{t,c} + \sigma_{i \in I} w_i \mu_i (a)$
第一項はマッチドペアの共変量の総和。第二項では、共変量のインバランスを表すいくつかの指標$mu_i (a)$があり、それに重み$w_i$をつけて足しあげている。指標をどうするかはあとで述べる。
制約条件は次の4本。
1本目、$\sum_{c \in C} a_{t, c} = m, t \in T$。それぞれの処理単位は $m$ 個のコントロール単位とマッチする。
2本目、$\sum_{t \in T} a_{t, c} \leq 1, c \in C$。それぞれのコントロール単位は、0個ないし1個の処理単位とマッチする。
3本目、$a_{t,c} \in \{0,1\}, t \in T, c \in C$。そりゃそうですわね。
4本目、$v_j(a) \leq e_j, j \in J$。ここで$v_j(a)$とは、制約式の$\mu_i(a)$と同様に、共変量のインバランスを表すなんらかの指標。[←なるほどね。制約をかける指標と最適化する指標が違っていていいように別の記号を使ってるわけだ]
では、$\mu_i(\cdot)$をどう定義するか。具体的事例に即して考えます。[以下、論文の表記よりも簡略化してメモする]
その1、単変量のモーメントをバランスさせたいとき。
$\mu_i(a) = | \sum_t \sum_c \frac{x_{c,i} a_{t,c}}{mT} - \bar{x}_{T,i}|$
ここで$i$は共変量のインデクス。$\bar{x}_{T,i}$とはすなわち、処理群における共変量$i$の平均。$\sum_c \frac{x_{c,i} a_{t,c}}{m}$で、処理単位$t$にマッチした$m$個のコントロール単位における共変量$i$の平均になるから、つまり処理群における平均からの各コントロール単位の偏差の絶対値の和を最小化しているわけだ。[←あー、なるほどね。ここでは処理単位のセットが事前に決まっているわけね]
絶対値記号が入ってて線形になっていないじゃんとお思いのみなさん。こうするといいのだよ。[←線形計画定式化の必須テクである。文系の私には、これが腑に落ちるまで結構な時間がかかった...]
最適化式は
$\sum_{t \in T} \sum_{c \in C} \delta_{t,c} a_{t,c} + \sigma_{i \in I} w_i z_i$
ってことにしといて、制約式に次の2本を追加する。
$z_i \geq \mu_i(a)$
$z_i \geq -\mu_i(a)$
実データを使って実験してみる。$w_i$を大きくすれば満足いく結果が得られる。一般的アドバイスとしては、距離行列を平均で割っておき、共変量も標準化した状態で、処理単位数の1/10の値にするとよい。
このように最適化式でバランスさせるのと制約式でバランスさせるのとどちらがよいか。制約式はわかりやすいし、MIPじゃなくて純粋な整数計画になるという利点がある。いっぽう閾値を小さくし過ぎるとinfeasibleになるというのが欠点。
その2、共変量の多変量のモーメント(相関)をバランスさせる場合には...[略]
その3、コルモゴロフ-スミルノフ検定料をバランスさせる場合には...[略]
その4、共変量を正確にマッチングさせたい場合。
$x_{.,p}$を名義共変量とし、とる値を$b \in B$とする。正確なマッチングは以下の制約式で表現できる。すべての$b$について
$\sum_t \sum_c a_{t,c} I(x_{t,p}=b AND x_{c,p}=b) = m \sum_t I(x_{t,p} = b)$
これはぴったり同じ場合だが、差の絶対値の上限を決めて緩く制約しても良い。なお、当該共変量で分割して各部分でマッチングさせればそりゃぴったり合うけれど、そのやりかただと緩く制約することができない。
とこで、上記のようなマッチングをfine balanceという。いっぽう
$\sum_t \sum_c a_{t,c} I(x_{c,p}=b) = m \sum_t I(x_{t,p} = b)$
というのをnear-fine balanceという。
ネットワーク・アルゴリズムでは複数の名義共変量の周辺分布をfine balanceないしnear-fine balanceさせることはできないが[←その理由が説明してあるが理解できなかった。Rosenbaum(2010)を読めとのこと]、提案手法だとできる。
というわけで、以上を実現するRパッケージ mipmatch を作りました。これは中でIBMのCPLEXを呼びます。[...説明略]
実データへの適用例 ... [略]
$m$が処理単位のあいだで変動してよい場合には ... [略]
考察。
いまやMIPはすごい。使いましょう。
マッチングは傾向スコアでやるという手もある。しかしそれは確率的なバランスが達成できるだけだし、ケース・コントロール研究においては傾向スコアが存在しない[←え、なんで? なくはないんじゃないの?]
云々、云々。
。。。いやー、この論文も勉強になりましたです。
しっかし、この定式化だと、$a$は(処理単位数 x 潜在コントロール数)の二値行列になり、各行の和が$m$となるという制約と各列の和が0か1になるという制約しかかからないわけだ。サンプルサイズが大きいと、いかにCPLEXとはいえ、手に負えなくなるだろうな...
この話は観察研究におけるマッチングの話だけど、ランダム化比較試験でもいくつかの共変量によって層別することはあるわけで(stratified randomization)、共変量がすごく多ければこの論文と同じ問題を抱えることになる。そういうときにMIPを使っている事例を探しているのだけれど、見当たらない。たぶん医学統計じゃなくて工業試験みたいな分野を探せばいいんだろうけど、検索のキーワードがわかんないんだよなあ。
読了:Zubizarreta(2012) ケース・コントロール研究でのマッチングを混合整数計画でやりましょう
2016年8月 2日 (火)
Navarro, D.J., Griffiths, T.L., Steyvers, M., Lee, M.D. (2005) Modeling individual differences using Dirichlet processes. Journal of Mathematical Psychology, 50(2), 101-122.
調べ物をしていて偶然みつけ、なんとなくディスプレイ上で眺めていたら、これがちょっぴり面白くて、ついつい全部読んでしまった。
ひとことでいっちゃうと、有限混合分布モデルならぬ無限混合分布モデルを提案する論文。
まず、認知モデル構築において個人差を正面からモデル化することがいかに大事かという話があって...
従来の主なアプローチはふたつある。(1)確率的(stochastic)パラメータ・モデル。個々の対象者が持っているパラメータ$\theta$を、あるパラメトリックな分布からの標本とみなす。(2)グループ・モデル。質的に異なる少数のグループがあると考える。
階層ベイズモデルの観点からみてみよう。対象者数を$n$、対象者$i$の観察事例数を$m_i$とする。$i$の$j$番目の値$x_{ij}$として、
$x_{ij} | \theta_i \sim F(\cdot | \theta_i) $
$\theta_i | \phi \sim G(\cdot | \phi)$
データセットを$x$として、尤度関数は
$p(x|\phi) = \prod_i \int \left( \prod_j F(x_{ij}|\theta_i) \right) G(\theta_i | \phi) d \theta_i$
モデルの適用に際しては$\phi$の事前分布が必要。$\phi \sim \pi(\cdot)$としておく。
主に関心が持たれるのは次の2つだ。(1)認知モデルのパラメータの事後分布$p(\theta|x)$。(2)個人差モデルのパラメータの事後分布$p(\phi|x)$。
確率的パラメータモデルはふつう、$G(\cdot|\phi)$について正規分布とかを想定する。いっぽうグループ・モデルは
$G(\cdot | w, \theta) = \sum_z^k w_z \delta(\cdot | \theta_z)$
$\sum_z w_z = 1$
という風に考える。つまり$\phi = (w, \theta)$となっている点に注意。ここで$\theta$ってのは$\theta_z$のベクトル、$\theta_z$ってのは個人じゃなくてあるグループのパラメータね。
どっちのアプローチにも良し悪しがある。
確率的パラメータモデルは個人差をユニモーダルな分布として捉えようとしている。つまり個人差を単一の典型的パラメータ値からの変動として捉えようとしているわけで、これは多くの場合不自然であろう(課題における個人差が課題の解釈のちがいから生まれているのなら、個人差はマルチモーダルであろう)。
いっぽうグループ・モデルは、グループの数を決めるという難題を抱える。
提案モデル。
グループ・モデルのグループが無限にあると考える。すなわち
$G(\cdot | w, \theta) = \sum_z^\infty w_z \delta(\cdot | \theta_z)$
と考えるわけ。実際のデータは有限だから、無限個のグループのなかから有限個のグループを抽出していることになるわけだ。これって心理学的にplausibleでしょ、云々。
$\phi = (w, \theta)$の事前分布$\pi(\cdot)$については次のように考える。[ここからちょっとややこしくなる。さあ深呼吸]
いったん話をグループ・モデルに戻す。ここで標準的な事前分布は以下であろう。
$\theta_z \sim G_0(\cdot)$
$w | \alpha, k \sim Dirichlet(\cdot, \zeta)$
一本目、$G_0(\cdot)$をベース分布という。それをどう選ぶかというのは、通常のベイジアン・モデリングと同じく諸説あり、この論文の主題ではない。
ポイントは二本目の式である。和が1になる有限個の確率変数の分布としては、ふつう$k$次元ディリクレ分布をつかうものだ。[...ここでディリクレ分布の密度関数について説明。省略。それにしても、この式に$\alpha$が出てくるのは話の先取りだろう。$\zeta$の誤植じゃないかな]
$w_i$の並び順には意味がないので、パラメータはすべて同じ値とする。これを対称事前分布という。この値の大きさは、事前分布がどのくらい重視されるかを表す。ここではすべてのパラメータは$\alpha/k$であると仮定する。なぜなら...[ここ、勉強になったので全訳]
ディリクレ・パラメータのこの特性を理解するためには、理想化された曲がったコイン(bent coin)を使った例について考えるのが有用であろう。
ここにある曲がったコインがあり、データはの$n$回の独立なコイン投げによって得られるとする。これらはiidなベルヌーイ試行系列で、表が出る確率は$p$だ、という単純なモデルを考える。
この未知の$p$の事前分布について考えよう。それは可能な結果を$k=2$通りしか持たないディリクレ分布、すなわちベータ分布だと考えることができる。コインがどう曲がっているのかわからないわけだから、$p$は対称でないとおかしい。そこでディリクレ・パラメータは$\alpha/2$としよう。
データ中に表が$h$、裏が$t=n-h$回観察されたとする。事後分布は依然としてベータ分布だ(なぜならベータ族は二項分布の尤度関数に対して共役だから)。事後ベータ分布のパラメータは$h+\alpha/2, t+\alpha/2$となる。$p$の事後期待値は$\bar{p}=(h+\alpha/2)/(n+\alpha)$となる。分母をみるとわかるように、事後期待値への影響という観点から見て$n$と$\alpha$はcommensurateである。この性質は$k$が大きくなっても変わらない。
さて、ここでの私たちの目標は、ある限られた量の情報だけを持つ無限次元の結果空間$W$について事前分布を指定することだ。情報の量が次元数$k$とは独立に決まるような事前分布を選ぶとよいだろう。そこでパラメータ数として$\alpha/k$を用いる。$k$がどうなっても合計が$\alpha$であるという点で都合が良い。
さて、いよいよ$k \rightarrow \infty$としたときの事前分布について考える。
$i$番目の観察が属するグループを$g_i$とする。$w_z$とは、$i$番目の観察がグループ$z$に属する確率であった。だから、
$p(g_i = z | w) = w_z$
である。事前分布はこうなる。
$x_{ij} | \theta, g_i \sim F(\cdot | \theta_z) $
$g_i | w \sim Multinomial(\cdot | w)$
$w | a, k \sim Dirichlet(\cdot | \alpha/k)$
$\theta_z | G_0 \sim G_0(\cdot)$
ここから無限長の$w$を消しにかかります。
すでに$g_{-i} = (g_1, \ldots, g_{i-1})$が観察されているとしよう。$i$がグループ$z$に落ちる条件付き確率は、[...途中省略して...] 結局こうなる。
$p(g_i = z | g_{-i}, \alpha, k) = \frac{s_z + \alpha/k}{i-1+\alpha}$
ここで$s_z$は、それまでの$i-1$個のうち$z$に落ちた数。$k \rightarrow \infty$とすると、$s_z$が0より大ならば
$p(g_i = z | g_{-i}, \alpha, k) = \frac{s_z}{i-1+\alpha}$
となり、[...途中省略して...] また、$s_z$が0だったら$\frac{\alpha}{i-1+\alpha}$となる。
この話をよくみると、実は中華料理店過程になっていて...[略]
$\theta_i$の抽出は、よくみるとポリアの壺からの抽出になっていて...[略]
[えーっと、途中から流し読みになっているけど、要するに、グループ数が無限のグループ・モデルでも、無限長のベクトルをうまいこと積分消去して推定できるよという話なのではないかと思う。さらに、ディリクレ過程混合モデルによって$\alpha$を推定しますとかって書いてある... もうやだ、パス、パス]
分析例。10人の被験者の認知課題成績の分析。心理学者125人の論文掲載誌の分析。web閲覧ログの分析。いずれもパス。
。。。数分の一も理解できていないんけど、これ、要するに個体パラメータの分布をマルチモーダルにできるような階層モデル、みたいなもんなのであろう。そいでもって、実は無限個の潜在クラスを想定していて、潜在クラスへの所属を潜在ディリクレ配分みたいにディリクレ分布で説明しているのであろう。なんだかしらないけど、ふうん、そうなんすか。
つまんないことだけど、心理学のジャーナルに載っているのに心理学における個人差モデルの先行研究が全然出てこないが、ちょっと意外。キャッテルのなんとかテクニックとか、認知発達の個体記述的モデルとか、そういうのは引用されず、むしろ機械学習系の論文が多数挙げられている。世の中広い。
読了:Navarro, et al. (2005) ディリクレ過程に基づく個人差モデリング
Goldstein, M. (2006) Subjective Bayesian Analysis: Principles and Practice. Bayesian Analysis, 1(3), 403-420.
先日ちょっとベイズ統計について話す機会があって(神を恐れぬ所業)、その資料作成のついでにめくった奴。
「客観ベイズ」主義者どもが幅を利かせる今日この頃ではあるが、主観主義的ベイズアプローチこそが、多くの実用的問題に対する唯一の実現可能な解なのだっ!という、意見論文というか、哲学的エッセイというか。
整理の都合上ざっと目を通したけど、雲をつかむような話だし、すごく眠いし、全然内容が頭に入ってない。特に4.1節の、主観主義理論にとってprimitiveは確率じゃなくて期待値なのだ... という話からのくだり、一体何を云っているのかさっぱり理解できなかった。残念だけど、またご縁がありましたら、ってことで。。。
専門家の信念を確率分布として表現する方法について、 Garthwaite, Kadane, & O'Hagan (2005 JASA)というのを挙げていた。南風原「続・心理統計学の基礎」でも挙げられていた奴だ。読まなきゃ。
2016年7月29日 (金)
久しぶりに整数計画法を使う仕事があって、案の定、大変に往生した。根っからの数学嫌いなのに、なんでこんな目に。
朝から晩まで問題が頭から離れず、日常生活に困る始末だったのだが、そんな日々もようやく一段落しそうなので、読み漁った資料のうちいくつかをメモしておく。
藤江哲也 (2012) 整数計画法による定式化入門. オペレーションズ・リサーチ, 57(4), 190-197.
はじめて整数計画法を勉強したとき(2008年だっけ。嗚呼)、もっとも助けになったのは、フリーの整数計画ソフトウェアLPSolveのマニュアル、そして宮代・松井(2006)によるチュートリアル記事であった。今回はそれらに加えて、著者の宮代先生のwebページ、そして上記記事による定式化についての説明がなによりも助けになった。専門家による社会的発信の価値を痛感した。実にありがたいことであります。
それにしても... 今回のひとつの反省点は、なによりも定式化に注意しないといけないという点であった。整数計画法ってのはですね、全く同じ問題であっても定式化の仕方がいっぱいあり、それによって解の求めやすさががらっと変わってくるのですよ、奥さん。実物を見ると仰天しますよ。いやあ、正直、悪い夢を見ているようであった。
藤江哲也 (2011) 最近の混合整数計画ソルバーの進展について. オペレーションズ・リサーチ、56(5), 263-268.
宮代隆平 (2012) 整数計画ソルバー入門. オペレーションズ・リサーチ, 57(4), 183-189.
はじめて整数計画を勉強したときにこうした論文を読むことができていたら、どんなに助かったかしれない... SCIPやNEOS Serverの存在を知るまでに、かなりの回り道が必要だったのである。
Berthold, T., Gleizner, A.M., Heinz, S., Koch, T., 品野勇治 (2012) SCIP Optimization Suiteを利用した混合整数(線形/非線形)計画問題の解法. ZIB-Report 12-24. Zuse Institute Berlin.
非商用界最強を謳われる整数計画ソルバーSCIPの開発チームがお送りする、なんと日本語によるモノグラフ。日本人の方がいらっしゃるんですね。先生、貴方は日本の誇りです(と、急に国粋主義的になったりして...)
宮本裕一郎 (2012) はじめての列生成法. オペレーション・リサーチ, 57(4), 198-204.
仕事の役には立たなかったし、内容を全部理解できたわけでもないんだけど、頭の体操としてすごく面白かった。暇ができたらもういちど読み直してみたい。文章も、いかにも工学部的なユーモアにあふれていて、とても楽しい。
今回のもうひとつの反省点は、やっぱり基礎ができてないと困る、という点であった。ソルバーが問題をどうやって解いていようが知ったことか、とにかく解さえ手に入ればいいんだと割り切り、branch-and-cut?なにそれ?というスタンスで取り組んでいたんだけど、そういうど素人にはやはり限界がある。こんな私でも勉強できるものなのかなあと心が揺らぎ、教科書を手に入れてみたんだけど(Williams, 2013)、一朝一夕で読めるものではなさそうだ。悲しいけど、人生は有限だしなあ...
読了: 藤江(2012); 藤江(2011); 宮代(2012); Berthold, et al.(2012); 宮本(2012) 初夏の整数計画祭りを振り返る
2016年7月12日 (火)
Madigan, D., Gavrin, J., & Raftery, A.E. (1995) Enhancing the predictive performance of bayesian graphical models. Communications in Statistics - Theory and Methods. 24(9), 2271-2292.
都合により目を通した。原文は手に入んなかったので、draftのpsファイルで。
グラフィカル・モデリングによる予測性能を高める2つの手法を提案します、という論文。2つの手法とは、ベイジアンモデル平均(BMA)と、専門家から事前分布をうまく引き出す方法。
まずBMAのほうから。
いま、関心ある量$\delta$について推測するための$k$個のモデルがある。データ$D$の下での$\delta$の事後確率は
$P(\delta | D) = \sum_k^K P(\delta | M_k, D) P(M_k | D)$
右端はモデル$M_k$の事後確率で、
$P(M_k | D) = \frac{P(D|M_k) P(M_k)}{\sum_l^K P(D|M_l) P(M_l)}$
ここで$P(D|M_k)$ってのは、モデルのパラメータを$\theta$として、
$P(D|M_l) = \int P(D|\theta, M_k) P(\theta |M_k) d\theta$
である。[←推定されたモデルの尤度ではなく、パラメータを通した周辺尤度だってことね]
Madigan & Rafery (1994JASA)のアプローチでは、データからの支持があまりに低いモデルはモデル集合から取り除かれる。さらに、オッカムの剃刀のひそみにならい、サブモデルよりも複雑なわりにぱっとしない親モデルも取り除かれる(オッカムの窓)。[←フォーマルに説明してあるけど、メモは省略]
さらに、MCMC model composition (MC$^3$)という方法もあって...[←難しいのでパス。いずれ必要になったら読みます]
[話はちょっと逸れているんだけど、ここで面白いくだりがあったのでメモ。数値例の誤記らしきものを勝手に訂正したけど、もしかすると私の理解に誤りがあるかも]
モデルの予測性能を以下のようにして評価しよう。データ$D$を学習データ$D^S$とテストデータ$D^T$に折半する。で、対数スコアリング・ルールを用い、スコア
$- \sum_{d \in D^T} \log P(d | M, D^S)$
を求め、これを予測性能とする。BMAの場合には、採用したモデル集合を$A$として、
$\ \sum_{d \in D^T} \log \{ \sum_{M_A} P(d | M, D^S) P(M| D^S) \}$
を求めることになるわけだ。
著者らが示した例では、テストデータのサイズは149。BMA(オッカムの窓アプローチ)によるスコアは、最良の単一モデルのスコアと比べて13.8小さかった。$\exp(13.8/149)=1.097$、つまりBMAの性能は約10%優れていた、といえる。
さてここで、ベルヌーイ試行から真の確率$\pi$を推定するという問題について考えよう。仮にわけもわからず$\hat\pi=1/2$とすれば、スコアの期待値は$\pi \log \hat\pi + (1-\pi) \log (1-\hat\pi) = -\log 2$。いっぽう正確に$\hat\pi = \pi$を推測したならば、スコアの期待値は$\pi \log \pi + (1-\pi) \log (1-\pi)$。このスコアの差がモデルの改善である。これをbiased coin prediction scaleと呼ぼう。
このスコアの差がさきほどの13.8と一致するのは、$\pi=0.72$。これがbiased coin prediction scale上でのモデル改善である。つまり、BMAを使わないということは、出目の確率が72:28であるコインを、あたかもまともなコインとして扱っているようなものだ。
[... うーん。かえって話をわかりにくくしているような気がするけど?]
後半戦。
BMAでは最初に$P(M_k)$を与える必要がある。たいていは無情報分布と称して一様分布を使ってんだけど、よろしくないことだ、ぜひ既存知識を有効活用したい。
しかしこれ、実は結構難しい。Lichtenstein & Fischhoff(1980 OBHP)は専門家に観察不可能な量を直接推定してもらっているけど(グラフィカル・モデルの場合で言うとリンク)、それって難しかろう。
間接的にうまく聞く方法はないか。以下のような提案がある。
- Winkler(1967 JASA): ベルヌーイ過程について[←なんと、Winklerはすでに60年代にこううことをやってたのか...]
- Chaloner & Duncan(1983 The Statistician): ベルヌーイ過程について
- Kadane et al.(1980 JASA): 正規線形モデルについて[←あ、これ面白そう]
- Garthwaite & Dickey(1990 JRSS, 1991 J.Behav.DicisionMaking): 正規線形モデルについて
- Laskey & Black (1989 Proc.): ANOVAについて
- Laud et al.(1992 Tech.Rep.): 一般化線形モデルについて
- Chaloner et al.(1993 The Statistician): 生存分析について
お待ちかねの提案手法。ひとことでいうと、まずは一様分布を考え、専門家が提供する「イマジナリー・データ」でこれをベイズ更新する。類似のアプローチとして、線形モデルの文脈でIbrahim & Laud (1994 JASA), Laud et al(1992), 二項分布の文脈で Gavasakar(1998 MgmtSci)がある。
適用する事例はscrotal swelling(陰嚢腫大)である。診断に関連する二値変数が7つある(痛みがあるかとか)。著者のひとりは陰嚢腫大について16年間の実践経験を持っている(患者じゃなくて医者としてね、もちろん)。この人に簡単なコンピュータ・プログラムを操作してもらう。このプログラムは、(1)ランダムに変数を選び、その状態(真偽)をランダムに選ぶ。(2)変数をもうひとつランダムに選び、そのありそうな状態を入力するように求める。(3)全変数が出てくるまで(2)を繰り返す。これを2時間繰り返し、95個のイマジナリー・ケースをつくった。
ここからモデルの事前分布を求め、やおらデータを使ってグラフィカル・モデルをBMA推定したら、予想性能がちょっと上がった由。
[ああ、なるほどな... 全然不思議な話じゃないな。イマジナリー・データが実データを補完したのであろう。逆に言うと、実データが膨大であれば、こういう工夫はあんまり意味がなくなりそうだ]
後半、思ったより簡単な話なんだけど、勉強になった。専門家からの主観確率抽出については、Spiegelhalter et al.(1990 Stat.Sci.)というのを読むとよいらしい。忘れないようにここでメモしておくけど、南風原「続・心理統計学の基礎」はGarthwaite, Kadane, & O'Hagan (2005 JASA)というのを挙げていた。
読了:Madigan, Gavrin, & Raftery (1995) 専門家の知識を生かしたベイジアン・モデル平均
2016年6月27日 (月)
Leibovici, L. (2001) Effect of remote, retroactive intercessory prayer on outcomes in patients with bloodstream infection: Randomised controlled trial. BMJ, 323, 1450-1451.
過去の事柄について祈ることの、過去に対する効果を示した論文。どこかで話題にされているのをみかけて、飯のついでに読んだ。論文といってもたった2頁です。
時間は線形に流れると我々は感じ、この感覚に我々は縛られている。しかし神がそれに縛られているかどうかは定かでない。我々はこのような仮定に依存しないランダム化統制試験を行いました。
ある大学病院の1990-1996年の血流感染の患者3393名を対象とする。実験は2000年に行った[←ここ、笑うところ]。患者を無作為に統制群と介入群に分け、ある祈祷者に介入群のファーストネームのリストを渡し、グループ全体の健康と回復を祈ってもらった。模擬介入は設定しなかった[←ポカンとしたんだけど、プラセボ群を作らなかったということの定番の言い回しなのかな。あとでじわじわと可笑しさが。この実験におけるプラセボってなんだ]
結果。死亡率は介入群で低かったが有意差なし。入院期間と発熱期間が、介入群で有意に短かった。Wilcoxonの順位和検定で、それぞれp=0.01, p=0.04。なお、いろんなリスク要因について比較したけど、群間で差なし。
考察。本研究はそもそもデザイン上、絶対に二重盲検であることが保障されている[←ここもちょっと笑った]。残念ながら患者のインフォームド・コンセントは得られなかったけれど。遡った祈りはコスト的にみて効率の良い介入であり、おそらくは副作用もないだろうから、臨床的適用を検討すべきだろう。今後の研究によるメカニズムの解明が望まれる。云々。
...いま検索したら、この論文の内容を紹介し著者はバカじゃないかとお怒りの方がいらしたが、掲載されたのはBMJのクリスマス号。年末恒例のお楽しみとして、こういう半分ジョークの論文が多数掲載される号である。私が記憶しているのは、老人の歩行速度と死亡率の関係を分析し、死神に追いつかれないために必要な速度を割り出す、という奴。
この論文は結構な反響を呼んだらしく、2003年のクリスマス号に素粒子物理学の観点からの考察(!)が、2004年のクリスマス号に牧師と物理学者による「おまいらたいがいにせえよ」的批判が載ったらしい。どちらも読んでませんけど。
というわけで、読む人によってさまざまな感興を持つであろう論文である。どうやら、他人が遡って祈ること(retroactive intercessory prayer)について超心理学的な観点から大真面目に取り組んでいる人たちもいるらしく、そういう文脈で真剣に引用されちゃうこともあるらしい。私はp値を実質科学的推論に繋げることの難しさの一事例として捉えたんですけど、どうなんでしょうね。
そういや、イギリスの分析哲学者の有名な論文で、部族の若者たちが狩りに出かけている間、酋長が無事の帰りを祈って踊り続ける、スケジュール上若者たちがもし死んでいるならばとっくに死んでいる段階になっても、帰ってくるまでは踊り続ける、それはなぜか... という話があったと思う。すでに確定している過去の出来事について祈ってしまうという気持ちは、ごく素直なものだろう。人の心の不思議のひとつだ。
読了: Leibovici (2001) 過去についての祈りが過去に及ぼす効果
2016年6月25日 (土)
二値の従属変数に対して線形回帰をかけて何が悪い、という論文。
実のところこういう論文を探していたのであった。だって、説明変数が生起確率そのものと線形な関係を持つという実質的知見がある状況だって、ありうるじゃないですか。そんなときにロジスティック回帰やプロビット回帰を掛けるのっておかしいじゃないですか。本来、モデルは世界についての我々の信念に整合させるべきじゃあぁりませんか。人はッ!自らの信じる道を進むべきだッ! ...まあ美しい建前ですけど。
というわけで読み始めてみたら、思っていたのとはちょっと違う内容で... 途中で頭のなかがハテナマークでいっぱいになり、途中から適当に読み飛ばしてしまった。
Hellevik, O. (2009) Linear versus logistic regression when the dependent variable is a dichotomy. Quality & Quantity, 43, 59-74.
二値の従属変数に対して線形回帰すると、予測値が0-1の外側に出てしまう。確かに。でもそれの何が悪い。そんなことが起きるのは独立変数群の値が極端なときだけだ。そんなときは予測値を理論的な最小値・最大値に丸めてしまえばよい。回帰の目的が予測でなくて因果的な分解なのであれば、予測値が0-1の外側に出ても別に困らない。むしろ、直接効果と間接効果と疑似効果の和が二変量連関に一致しているぶん、線形回帰のほうがよいくらいである。
二値の従属変数に対して線形回帰すると、分散等質性(homoscedasticity)の想定が破られる。それは回帰係数自体に影響しないがその不確実性の推定に影響する。確かに。じゃあ実験してみよう。同じデータに対してロジスティック回帰と線形回帰を行い、係数のp値を並べてみる。ごらん、結果はほぼ同じだ。
[ここからリスク差とリスク比とオッズ比がいろんな場面でどうちがってくるという説明が延々つづく。結局ロジスティック回帰をいろいろとディスっているみたいなのだが、話のポイントがいまいちつかめない]
というわけで、予測ではなくて因果的分析のために回帰分析を使うのならば、ロジスティック回帰じゃなくて線形回帰のほうがおすすめだ。
。。。きちんと読んでないのにこんなことを書くのは良くないんだけど、正直、容易に納得しがたい話だ。
拝察するに、議論のポイントは次の通りであろう。二値の従属変数に対する線形回帰は、(1)予測値が0-1の外に出るけど別に困らない、(2)誤差分散に異質性が生じるけど実害はない、(3)むしろわかりやすくていいじゃん。
(3)に関していえば、解析の良し悪しとコミュニケーションの良し悪しってのは本来別のものだ(Walterさんの受け売り)。それに、著者も触れているようにロジスティック回帰と線形回帰では交互作用の捉え方がちがってくるけど、どっちがよいかは一概にいえないわけで(VanderWeeleさんの受け売り)、ロジスティック回帰が因果分析に適さないのだといわれても、きっとそうなんだろう、先生の分野では... という感想しか持てない。
結局、クリティカルな論点は(2)じゃないかと思う。でも、もっと広範なシミュレーションをすれば、誤差分散の異質性が係数の標準誤差の推定を大きく歪める場合も出現するほうに、100ペリカくらいなら賭けてもいい...
うーん、この論文、プロの意見を聞いてみたいものだ。どうなんすか、これ。
読了:Hellevik (2009) 二値の従属変数に対してロジスティック回帰とかじゃなくて線形回帰をやって、いったい何が悪いんだよ
2016年6月23日 (木)
週末に学会の大会を聴講しに行った空き時間で読んだ奴。自分が発表しない学会というのは気楽なものである。
King, G., Tomz, M., Wittenberg, J. (2000) Making the most of statistical analysis: Improving interpretation and presentation. Amerian Journal of Political Science, 44(2), 341-355.
社会科学者よ、統計学的な分析結果を人に伝えるときはこういう風にしなさい、という啓蒙論文。Google様によれば被引用回数3241。すげえ。
あ、第一著者のKingって、名著と名高い「社会科学のリサーチ・デザイン」の著者だ... ちゃんと読んでませんけど。
冒頭に挙げられている良い伝え方の例:「ほかの点がすべて同一であれば、教育年数が1年増えると、年収は平均して1500ドル(±約500ドル)増えるでしょう」。悪い伝え方の例:「教育の係数は有意水準0.05で統計的に有意でした」。
ポイントは次の3つ。(1)標準的な統計モデルから、関心の対象となる新しい量を抽出すること。(2)その量の不確実性を評価すること。(3)統計的訓練を受けていなくてもわかる結果に変換すること。
以上を実現するための有力な武器がシミュレーションである。
統計モデルの非常に一般的なクラス、すなわち
$Y_i \sim f(\theta_i, \alpha)$
$\theta_i = g(X_i, \beta)$
を考える。一本目は統計モデルの確率的コンポーネントで、従属変数$Y_i$が確率密度$f(\theta_i, \alpha)$からのランダムドローとして生成されている。確率密度関数の特性はオブザベーションによって変動するかもしれないし($\theta_i$)、一定かもしれない($\alpha$)。二本目はモデルのシステマティックなコンポーネントで、$\theta_i$がどう変動するかを示している。$g(\cdot, \cdot)$はリンク関数と呼ばれることが多い。
このクラスのメンバーであるなんらかのモデルを考える。たとえば線形正規回帰モデルなら
$Y_i \sim N(\mu_i, \sigma^2)$
$\mu_i = X_i \beta$
ロジットモデルなら
$Y_i \sim Bernoulli(\pi_i)$
$\pi_i = \frac{1}{1+\exp(-X_i \beta)}$
ですわね。まあとにかく、なんらかのモデルをつくり、結果が得られた、としましょう。
ここからが本題である。モデルから得られた結果をどうやって解釈するか。
多くの研究者は$\hat\alpha$, $\hat\beta$の符号と「統計的有意性」しかみない。でもそれらはふつう、研究の動機となっている実質的問題と間接的にしか関連してない。実質的な関心が直接に持たれるような量を提示すべきだ。
また、つぎの2つの不確実性を無視してはならない。(1)推定の不確実性。$\beta$と$\alpha$は完全にはわからない。(2)根本的な不確実性。仮に$\beta$と$\alpha$が完全にわかったとしても$Y$には不確実性が残る。
そこでだ。諸君、シミュレーションしたまえ。
シミュレーションとは、サーベイ・サンプリングの理屈を使って複雑な数学的計算を近似することだ。たとえば確率分布$P(y)$の平均を計算するために、$E(Y) = \int^{\infty}_{-\infty} y P(y) dy$を求めるんじゃなくて、$P(y)$から$M$個の値をドローしてきて平均するわけである。$M$を増やせば正確になる。
まずはパラメータのシミュレーション。手順は次の通り。
- (1)$\alpha$, $\beta$の点推定値とその分散共分散行列を求める。通常のソフトで出力できる(たぶん最尤法で)。以下、$\hat\beta$と$\hat\alpha$を縦積みしたベクトルを$\hat\gamma$、その共分散行列を$\hat{V}(\hat\gamma)$とする。
- (2)多変量正規分布$N(\hat\gamma, \hat{V}(\hat\gamma))$からベクトルを一本ドローする。これを$\tilde\gamma$とする。
(2)を$M$回繰り返す。たとえば1000回とか。
次に、予測値のシミュレーション。手順は次の通り。
- (1)どんな予測値が得たいのかを決め、説明変数の値を決める。このベクトルを$X_c$としよう。
- (2)ある$\tilde\gamma$をつかって、$\tilde\theta_c = g(X_c, \tilde\beta)$を算出する。
- (3)前項の$\tilde\gamma$を使い、$f(\tilde\theta_c, \tilde\alpha)$から値をひとつドローする。これを$\tilde{Y}_c$とする。
必要ならば、従属変数の期待値についてもシミュレーションするがよい。なお、正確に言うと「従属変数の期待値」と「従属変数の予測値の平均」とはちがうのだが、非線形性がシビアでないかぎり両者はだいたい近くなる。
従属変数の期待値のシミュレーションと、予測値のシミュレーションとはちがうぞ。後者には二種類の不確実性がはいっているが、前者には推定の不確実性しか入っていない。たとえば選挙結果の予測とか為替レートの予測という場面では後者が大事だが、特定の説明変数の平均的な効果に関心がある場合には前者が大事かも。
手順は次の通り。
- (1)説明変数の値$X_c$を決める。
- (2)ある$\tilde\gamma$をつかって、$\tilde\theta_c = g(X_c, \tilde\beta)$を算出する。
- (3)前項の$\tilde\gamma$を使い、$f(\tilde\theta_c, \tilde\alpha)$から値をm回ドローして平均する。これが$\tilde{E}(Y_c)$。$m$を大きくすることで根本的な不確実性を取り除くことができる。
(2)と(3)を$M$回繰り返す。このとき、$M$と$m$は十分に大きくすること。なお、線形正規モデルやロジットモデルでは$E(Y_c)=\theta_c$なので$\tilde\theta_c$をそのまま使えばよろしい。
第一階差のシミュレーション。第一階差とは、2つの期待値の差のこと。上の手順の(1)で、$X_c$を2つ用意する($X_s, X_e$としよう)。で、(5)で$\tilde{E}(Y_s)$ と$\tilde{E}(Y_e)$の差を求める。これを繰り返して平均する。
ところで、たとえば順序プロビットモデルで$P(Y=3)$を求めるというような場合には、期待値を推定するアルゴリズムをちょっと修正しなければならない[←??? なんでだろう...]。そんなときは僕らが作ったCLARIFYというソフトを使うといいよ。
本論文で紹介したのとはちょっと別なアプローチとして以下がある。
- 完全にベイジアンな手法。本論文のように中心極限定理に頼って正規分布に基づく漸近解をもとめるんじゃなくてMCMCでやる。でも収束の判定が難しい。CRARIFYに載っているよ。
- ブートストラッピング。使いやすくて強力。でもある種の量($Y$の最大値とか)については推定値が歪む。CRARIFYに載っているよ。
- シミュレーションじゃなくて、デルタ法。これは確率変数の非線形関数を近似するあるツールを使う方法で... 非線形関数$g(X_c, \beta)$をテイラー展開して...[読んでもよくわからんのでパス]。計算が難しいし、結局は近似なので、あんまし使われていない。
まとめると、シミュレーションは便利だ。分析的な解がないときにも正確な結果が得られる。教育上も良い。ある研究者は「それでも分析的手法を教えるべきだ」という理由を挙げることができた人に5000ドルをあげると宣言しているが、この賞金を受け取った人はまだいない[ははは。Simonという人だそうだ]。ま、一番いいのは両方教えることだけどね。
シミュレーションの際のコツ。
- シミュレーションにはパラメータ推定量のSEだけじゃなくて、完全な分散行列$\hat{V}(\hat{\gamma})$が必要である。ちゃんと出力するよう、ソフトを設定しなければならない。
- MVNからドローするときいくつかのパラメータを除外しちゃうひとがいるけど($\beta$と$\alpha$のどちらかだけとか)、これはよくある間違い。時間はかかるかもしれないけど、必ず全部ドローすること。
- モデルによっては、$\gamma$の要素が直交していて、ソフトが別々の分散行列を出してくることがある。ちゃんと並べてブロック対角行列をつくること。めんどくさいようでも、とにかく$\hat{V}(\hat{\gamma})$を構成しちゃったほうが間違いがない。
- 有限標本で多変量正規近似が維持されるようにするためには、$\gamma$の要素を再パラメータ化しなければならない。正規分布の場合のように、すべてのパラメータに制約がかかってなくて論理的にシンメトリックであれば話は別だが、そうでない限りパラメータは再パラメータ化する必要がある。たとえば、$\sigma^2$のような分散パラメータはゼロより大きくないといけないので、$\sigma^2=\exp(\eta)$というような表現をつかって再パラメータ化するとよい。で、$\gamma$の要素の一つが$\eta$だと考える。こうすると$\gamma$はMVNに従うから$\eta$は$-\infty$と$+\infty$の間の値をとる。で、あとで$\hat\sigma^2 = \exp(\hat\eta)$を求め直すわけである。相関$\rho$だったら、FisherのZ変換$\rho=(\exp(2\eta)-1)/(\exp(2\eta)+1)$を使う。確率$\pi$だったら、ロジスティック変換$\pi = [1+\exp(-\eta)]^{-1}$を使う。
- 実をいうと、いつもいつも$Y$をシミュレートしないといけないわけではない。たとえばロジットモデルだったら、$\tilde{E}(Y)$を求めるためには$\tilde\pi$を求めれば十分なわけで、わざわざ二値の$Y$をドローする必要はない。でも、よくわかんないなと思ったら、とにかく$Y$をシミュレートすること。
後半は事例。線形回帰、ロジットモデル、時系列クロスセクショナルモデル、多項ロジットモデル、打ち切りのあるワイブル回帰モデルについて例を挙げている。最初のふたつだけ読んだ。メモは省略するけど、正直、前半の説明よか事例のほうがはるかにわかりやすいよ... 最初っから事例を使って説明してくれればいいのに...
結局、仕事の役には立たなかったんだけど、勉強になりました。特に、「2種類の不確実性」という言い方が勉強になった。以前、若い友人たちと新宿のカフェで応答曲面モデルの勉強会をやったとき、回帰モデルから得られる、ある条件下での期待値の信頼区間と、その条件下での予測の信頼区間とは全然ちがう問題なのよという話になり、私の説明が下手なせいであんまし納得してもらえなかったんだけど、そうだよな、こういうことなんだよな。
いっぽう、素朴な疑問でこっぱずかしいが、こうやってパラメータについて無理やりMVNを仮定するんじゃなくて、全部ブートストラップ法でいいんじゃない? というモヤモヤ感がある。
また、この論文はあるモデルから得られる結果をどうやってわかりやすく伝えるかという話けど、モデルの不確実性(変数選択やリンク関数選択の不確実性)をも考慮して、一連のモデルからなる集合から得られる結果について伝えるときに、こういうシミュレーションによる方法をうまく使えないもんかなあ、という疑問もある。
読了:King, Tomz, & Wittenberg (2000) 統計モデルから得られる知見について人々にわかりやすく伝えるためのシミュレーションの手引き
Aguilera, A.M., Escabias, M., Valderrama, M.J. (2006) Using principal components for estimating logistic regression with high-dimensional multicollinear data. Computational Statistics & Data Analysis, 50, 1905-1924.
主成分回帰(説明変数をいったん主成分に縮約してから回帰する)をロジスティック回帰でやりました、という論文。仕事の都合で目を通したんだけど、途中で眠くなってしまい、ろくろく読んでない。
回帰の説明変数とする主成分は、ふつうは上位から順に拾うけど、条件付き尤度比で検定しながら前向き選択する手もある、とのこと。そこまでこだわるならPLS回帰にすればいいじゃんと思ったが、シミュレーションしてみると少ない要素数で成績が良い、PLS回帰と比べても優れている、とかなんとか。
読了:Aguilera, et al. (2006) ロジスティック主成分回帰
2016年6月 8日 (水)
仕事の都合で大慌てで読んだ奴。
Royston, P., Ambler, G., Sauerbrei, W. (1999) The use of fractional polynomials to model continuous risk variables in epidemiology. International Journal of Epidemiology, 28, 964-974.
非線形的関係があるときの回帰で用いる変数変換法のひとつ、fractional polynomial についての解説。Hosmer-Lemeshowのロジスティック回帰の教科書に書いてあるらしいのだが、注文した本が届くのが待てなかったので。
まずは一番簡単な事例の紹介。
アウトカムはひとつ(10年間の死亡)。連続変数か順序変数のリスク因子$x$がひとつ(一日当たり喫煙本数)。$x$とアウトカムの間の関係は単調である。
最初に思いつくのは線形モデル
$b_0 + b_1 x$
である。さて、非線形性が疑われるので、1次のfractional polynomialを当てはめることにする。
$b_0 + b_1 x^p$
$p$の候補として、-2, -1, -0.5, 0, 0.5, 1, 2, 3を想定する($x^0$は$\log(x)$だということにする)。もっと考えてもいいんだけど、モデルはあんまり改善しないことが多い。特に、大きな負のべき(-3とか)はいれないほうがよい。
すべての候補を当てはめてモデルを比較する。比較の際には、$p=1$との間のデビアンスの差をカイ二乗検定して、有意に良いやつを探す。なお、事例ではあらかじめ $x$に最小増分である1を足している($\log(0)$を避けるため)。
結果、$p=0$すなわち
$b_0 + b_1 \log(x)$
が採用された。なお、(ここでは紹介しないけど) Hosmer-LemeshowのC統計量とかで適合度を調べておくように。また残差のプロットもみるように。
結果の示しかた。ここでは疫学でふつう求められる用量反応の推定値を示す方法を考えよう。タバコの本数を階級にわけ、各階級の中央を参照点として、その参照点におけるORと信頼区間を表にするとわかりやすい[信頼区間の求め方を説明しているが、省略]。ついでにその階級のリスク集団と死亡者数を示すのも忘れないように。[←ああ、なるほどね... 説明変数のカットポイントを決めていくつかの水準にわけて分析した場合の表と外見を似せておくということね]
以下、2次fractional polynomialとか、リスク因子だけじゃなくて共変量を入れる場合とか(ここ、予備知識不足でちょっと理解できなかった)、他の手法との比較とか、注意点とかが懇切丁寧に説明されていた。時間がないのでメモは省略。
読了:Royston, Ambler, Sauerbrei (1999) fractional polynomialsによる非線形回帰への招待
2016年6月 7日 (火)
調査手法論とか経験デザインとか考えているのがなんだか嫌になっちゃって、飯のついでの息抜きに、会社のソファーでうとうとしながら読んだやつ。仕事しろよ...
Flora, D.B., Curran, P.J. (2004) An empirical evaluation of alternative methods of estimation for confirmatory factor analysis with ordinal data. Psychological Methods, 9(4), 466-491.
順序尺度のCFAの推定方法をシミュレーションで比べました、という話。別にどうでもいいっちゃどうでもいいような話なんだけど(すいません)、リッカート尺度のCFAは仕事で頻繁に使うので、前からちょっと気になっていた話題ではあるので。
いまみたら、鬼のように引用されている論文であった。google様的には被引用件数1342。まじか。
以下、Muthenにならって[←ほんとにそう書いてある]、カテゴリ数$C$の順序変数$y$の背後に、潜在反応を表す連続変数$y^*$と閾値$\tau_0, \tau_1, \ldots, \tau_C$を考える。$\tau_0 = -\infty$, $\tau_C = +\infty$ね。
まずはポリコリック相関についておさらい。$y_1$の閾値を$a_i$, $y_2$の閾値を$b_j$とする。セル$(i,j)$の観察度数を$n_{ij}$、観察割合を$P_{ij}$、確率を$\pi_{ij}$とする。
ポリコリック相関の算出には、ふつうOlsson(1979)の2段階手続きが用いられる。以下、$y^*_1$と$y^*_2$が2変量正規分布に従うと仮定する。
第1段階では単変量でみて閾値を推定する。すなわち、周辺の観察累積割合を$P_{i.}, P_{.j}$として、
$a_i = \Phi^{-1}_1 (P_{i.})$
$b_i = \Phi^{-1}_1 (P_{.j})$
$\Phi^{-1}_1$ってのは標準正規累積分布の逆関数。
第2段階では、2変量の相関$\rho$をML推定する。対数尤度は
$l = \log K + \sum\sum n_{ij} \log \pi_{ij}$
$pi_{ij}$から$\rho$を逆算できる [式は省略]。
さて、ポリコリック相関行列をそのまま使ってML推定するSEMはよろしくない。それでもたいてい一致推定量は得られるのだが[←あ、そうなの?]、検定統計量とSEが歪む。
一般的なのはWLS推定量を使う方法。上で求めたポリコリック相関のベクトルを$s$、モデルから出てくるベクトルを$\sigma(\theta)$として、
$F_{WLS} = [s - \sigma(\theta)]' W^{-1} [s - \sigma(\theta)]$
ここで重み$W$は正定値行列で、ポリコリック相関の分散共分散から求める(頭が混乱してくるね...)。まあとにかくこいつから漸近的に有効なパラメータ推定量が得られることがわかっている。観察変数の分布を特定していないので、漸近的分布自由(ADF)推定量とも呼ばれる。
エレガントなんだけど、問題点が二つ。(1)もともとの2変量正規性が破られていたらどうなるかがわかっていない。(2)変数の数が多いと$W$が正定値行列でなくなる。Joreskogさんは、変数の数を$k$として、データサイズが最低$(k+1)(k+2)/2$ないと困ると云っている由。
そこで登場したのが、MuthenのロバストWLS推定量[MplusでいうところのWLSMVね]。
その理屈は... [なんか疲れてきちゃったので省略。要するに、$W$の逆行列を求めないですむようにちょっとズルするのである]
。。。さて、$y^*$のペアの間の2変量正規性が破られていたらどうなるか、シミュレーションで調べましょう、というのがこの論文の主旨である。
なんか疲れてきちゃったので、委細すっとばして要点のみメモ。
以下を操作する。
- 連続潜在反応分布、5水準。ひとつはMVNで、残り四つは尖度と歪度を動かして作る。[読み飛ばしたんだと思うけど、どうやって作ったんだろう?独自因子の分布は正規のままで、因子得点の尖度と歪度をいじっているってことかしらん]
- カテゴリ数、2水準。2と5。閾値は動かさない。[よくわからんが、たぶん全項目で同じ閾値にしているんだろうな]
- 真のモデル、4水準。1因子5指標、1因子10指標、2因子各5指標で因子間相関あり、2因子10指標で因子間相関あり。負荷はぜーんぶ0.7、独自性はぜーんぶ0.51、因子間相関は0.3。
- サンプルサイズ。4水準。100, 200, 500, 1000。
結果がいろいろ書いてあったんだけど... すいません、根気が尽きたので、パラパラ捲って済ませてしまいました。まあ結論としてはこういうことである由。
- 潜在反応変数が多少非正規でも、CFAモデルの推定はわりかしロバスト。
- でもWLS推定ではカイ二乗値が高め、パラメータのSEが低めになる。ロバストWLSならそれほどでもない。
- 非正規性がすごくきついと、クロス表にちっちゃなセルができちゃうのでやばい。
というわけで、ユーザ諸君に告ぐ。潜在変数の正規性という仮定についてはCFAは比較的にロバスト。推定量はロバストWLSがおすすめ。でもまあ、モデルの指定が正しければの話だけどな。はっはっは、グッドラック![←とは書いてないけど]
いやー、途中からもう眠くて眠くて... ある段落を読んでいると、途中から内容が小説に代わってしまったりするのである(もちろん夢をみているのだ)。困るなあ。
疑問点が2つ。(1)推定はMplusでやっているけど、いまでもMplusはこの論文で説明されている手順でポリコリック相関を求めているのかしらん。なんかこの... もっとカッコいい方法があったりしないのかしらね...。これはMuthen導師の論文をちゃんと読めばわかりそうな話だ。(2)WLS, ロバストWLSをベイズ推定と比べるとどうなのかしらん。これもMuthen一家がやってそうだな。
読了:Flora & Curran (2004) カテゴリカルCFAで潜在反応変数に二変量正規性がなかったときにどうなるか、WLS推定とWLSMV推定を比べてみた
2016年5月28日 (土)
Hatzinger, R., Dittrich, R. (2012) prefmod: An R package for modeling preferences based on paired comparisons, ranking, or rating. Journal of Statistical Software, 48(10).
Rのprefmodパッケージの解説。要は一対比較データを分析するパッケージである。実戦投入前の儀式として読みはじめたのだが、途中で今回は使わないことにしたので、急にやる気が落ちて、適当に済ませてしまった。
どういう話かというと...
いま、$J$個の対象に対する一対比較データがある。以下、モデルとして次の2つを考える。
その1, Bradley-Terryモデル。ペアの勝敗をモデル化する。対象$j$の価値を0以上の値$\pi_j$で表して
$p(j \succ k | \pi_j, \pi_k) = \frac{\pi_j}{\pi_j + \pi_k}$
これを以下のように書き換えることができるのだそうだ[よくわからないけど、素直に信じることにします]。$j$が$k$に勝ったら+1, 負けたら-1をとる$y_{jk}$を考えて
$p(y_{jk}) = c_{jk} \left( \frac{\sqrt{\pi_j}}{\sqrt{\pi_k}} \right)^{y_{jk}}$
ここで$c_{jk}$は定数。
これを対数線形モデルとして定式化してみよう(LLBTモデル)。$j$と$k$を比べた人数を$n_{jk}$として、$y_{jk}$がある値をとる期待度数
$m(y_{jk}) = n_{jk} p(y_{jk})$
について、こうモデル化する:
$\eta_{y_{jk}} = \log m(y_{jk}) = \mu_{jk} + y_{jk}(\lambda_j - \lambda_k)$
なお、$\log \pi = 2 \lambda$となる。
その2, パターン・アプローチ。ペアのセットの勝敗の同時確率をモデル化する。
ベクトル$\mathbf{y} = (y_{12}, y_{13}, \ldots, y_{J-1,J})$について、
$p(\mathbf{y}) = c \prod_{j <k} \left( \frac{\sqrt{\pi_j}}{\sqrt{\pi_k}} \right)^{y_{jk}}$
これも対数線形モデルとして定式化してみよう。期待度数のベクトル
$m(\mathbf{y}) = n p(\mathbf{y})$
について、独立性を仮定すれば:
$\eta_{\mathbf{y}} = \log m(\mathbf{y}) = \mu + \sum_{j=1}^J \lambda_j x_j$
$x_j$と$\mathbf{y}$との関係について説明があるけど、省略...
独立性を仮定せず、交互作用項を入れる定式化も説明してあるけど、省略...
... だんだんめんどくさくなってきたのですっとばすけど、一対比較にタイがある場合にも拡張できる。対象者の群別にパラメータを変えることもできる。$\lambda$の説明変数として人の共変量を投入することもできる。対象の共変量を投入することもできる。ランキングにも拡張できる。Likert型のレーティングにも拡張できる(タイがいっぱいあるランキングだと思えばいいわけだ)。欠損値も扱えるように拡張できる。対象者の潜在クラスを導入できる。
後半はパッケージの紹介と実例。眠くて途中船をこいだりしながらめくった。ま、ほんとに必要になったら読み直せばいいさ。
Bradley-TerryモデルのパッケージはほかにBradleyTerry2, eba, psychotreeというのがあるんだけど、独立性のない奴を扱えるのが(よってレーティング型データなどを扱えるのが)このパッケージの特徴である由。ふうん。
考えてみりゃ、MaxdiffだってBradley-Terryモデルで解けるはずだよな。効用に潜在クラスを入れられるんなら、このパッケージでやってもいいかも。
読了:Hatzinger & Dittrich (2012) Rのprefmodパッケージで一対比較データを分析しよう
2016年5月22日 (日)
先週都合により目を通した論文のメモをのせておく。ほんとはそれどころじゃないんだけど...
Rossi, P., Gilura, Z., Allenby, G.M. (2001) Overcoming Scale Usage Heterogeneity: A Bayesian Hierarchical Approach. Journal of the American Statistical Association, 96(453), 20-31.
調査票に5件法の項目をずらっと並べたところ、回答をみると妙に右側にばかりマルしている人もいれば妙に左側にばかりマルしている人もおり、これはいかなる前世の因縁かとくよくよ思い悩む世界1000万人のリサーチャーを憐れみ、ベイジアン・モデリングのビッグ・スターAllenby兄貴とその仲間たちが授ける必殺の階層ベイズモデル。(必殺でもないかも。憐れんでもいないかも。1000万人もいないかも)
仕事の都合で急遽目を通した。兄貴の主著"Bayesian Statistics and Marketing"(以下BSM本)のCase Study 3とほぼ同じ内容だと思うのだが、同じのを二度読むのもなんだか癪にさわったし、本を持ち歩くのは重かったので。
前置きは省略して、いきなりモデルにはいると。。。
対象者 $i$ ($N$人) の項目 $j$ ($M$個) への回答の背後に連続的潜在変数$y_{ij}$を仮定する。全部$K$件法だとして、閾値$c_0, \ldots, c_K$を仮定し、$c_0 = -\infty, c_K=\infty$とする。[ここでは閾値が全員共通だと考えている点に注意]
ベクトル$y_i = [y_{i1}, y_{i2}, \ldots, y_{iM}]'$について$y_i \sim N(\mu^*_i, \Sigma^*_i)$と仮定する。
[えーっと... ここまではまだ、潜在変数が回答に落ちる仕組みの話であって、潜在変数の生成についてはなんら語ってないわけね]
で、$y_i$についてこうモデル化する。
$y_i = \mu + \tau_i \iota + \sigma_i z_i, \ \ z_i \sim N(0, \Sigma)$
よって$\mu^*_i = \mu + \tau_i \iota, \Sigma^*_i = \sigma^2_i \Sigma$である。で、尺度の左端につけやすい人は$\tau_i$が大きく$\sigma$が小さい人、両極につけやすい人は$\tau_i$がゼロで$\sigma$が大きい人、という風に考える。
[注目!ここでいう$y_i$は態度のベクトルではなくて、態度と回答スタイルをコミにしたベクトルなのだ。$M$個の回答の背後にある態度ベクトルの分布としてまず多変量正規分布 $N(\mu, \Sigma)$を考え、$i$さんの潜在ベクトルの分布はそれを$\mu$から$\sigma_i$倍して$\tau_i \iota$ずらしたものだ、と考えるわけね]
あるいはこう考えてもよい。上では閾値を全員共通に$c_1, \ldots, c_K$と捉えたが、$y_i$の分布は全員で共通と考え、閾値の側に個人差があると捉えて
$c^*_i = \tau_i + \sigma_i c$
これでも結局は同じことになる。[そうやね、こっちのほうがわかりやすいわね]
モデルに階層をいれます。
標準的な階層モデルであれば、位置$\tau_i$と尺度は$\sigma_i$はアプリオリに独立で、条件付き共役事前分布に従うと仮定するところだが、ここでは次のように考える。
$[\tau_i, \log \sigma_i]' \sim N(\varphi, \Lambda)$
$\tau_i$と$\sigma_i$が相関を持ちうることに注意。
識別の都合上、$\varphi_1 =0 ,\varphi_2 = -\lambda_{22}$と制約します。$E[\tau_i]=0, E[\sigma_i]=1$としているわけです。
[2018/01/01追記: $\lambda_{22}$とは$\Lambda$の2番目の対角要素であろう。このくだり、この論文を読んだときには疑問に思わなかったのだが、このたび振り返ってみるとよく理解できない。BSM本の該当箇所(p.242)のほうが詳しいし、制約のかけ方が若干変更されているので、訳出しておく]
$\tau_i$を識別するため、制約$E[\tau_i]=0$をかける。$\tau_i$の分布は対称かつユニモーダルなので、この分布の中央値と最頻値もゼロにしたことになる。さて、$\sigma_i$の分布は歪んでいるから、識別制約の選択には十分な注意が必要である。ひとつの論理的な選択は$E[\sigma^2_i]=1$とすることであろう。これは識別制約として$\varphi_2 = -\lambda_{22}$をかけることに対応する。しかし、散らばりのパラメータ($\lambda_{22}$)が大きくなるにつれて、$\sigma_i$の分布は太い右裾を持ちつつ、1より左にある最頻値の周りに集中する。これは事前分布としてあまり望ましいものではない。[...]
もっと理にかなったアプローチは、$\sigma_i$の事前分布の最頻値を1に制約するというものである。これは識別制約として$\varphi_2 = \lambda_{22}$をかけることに対応する。[...] $\lambda_{22}$が大きくなるにつれて、$\sigma_i$の分布は1のまわりに固まるが、右裾が厚くなって散らばりが大きくなる。というわけで、我々は
$\varphi_1 = 0, \varphi_2 = \lambda_{22}$
という識別制約を採用する。なお、Rossi et al.(2001)では平均を1にするという方略を採用していた。
[うううむ。云っている意味はわかったけど、$E[\sigma_i]=1$とするためには$\varphi_2 = -\lambda_{22}$とすればよいという理由がやっぱりわからない。記号のせいでどうも混乱してしまうので、頭の悪い俺のために、$\tau_i$と$\sigma_i$を独立とみなし、$\sigma_i, \varphi_2, \lambda_{22}$をそれぞれ$X, A, B$と書き換えよう。すると
$\log X \sim N(A, B)$
$X$は対数正規分布に従っている。対数正規分布の平均は
$E[X] = \exp(A+B/2)$
だ。$E[X]=1$とするためには$A + B/2 = 0$、つまり$A = -B/2$とすればよい。もとの記号に戻すと$\varphi_2 = -\lambda_{22}/2$となる。あっれーーー? どこで間違えたんだろう?]
閾値のほうは、$\sum_k c_k = m_1, \sum_k c^2_k = m_2$と制約します。さらに、$c_k = a + b k + e k^2$という制約も入れ、自由パラメータを$e$だけにします。[細かいところよくわかんないけど、後者の制約はちょっと勘弁してほしい... 前者の制約だけで自由パラメータは$K-2$個になる模様だ、5件法とかならもうそれで十分じゃん]
最後に、事前分布の導入。
$\pi(\mu, \Sigma, \varphi, \Lambda, e) = \pi(\mu) \pi(\Sigma) \pi(\varphi) \pi(\Lambda) \pi(e)$
として...
2018/01/01追記: ここからは、この論文のメモから離れ、この論文、BSM本、Rのbayesm::rscaleUsage()のマニュアル、の3つを比較してみる。
- 潜在変数の平均ベクトル$\mu$の事前分布$\pi(\mu)$について。
- この論文: $\pi(\mu) \propto constant$
- BSM本: $\pi(\mu) \propto constant$
- bayesm::rscaleUsage(): $\mu \sim N(mubar, Am^{-1})$; mubarのデフォルトはrep(k/2, p) (kは段階数, pは項目数), Amのデフォルトは0.1*I。
- 潜在変数の分散行列$\Sigma$の事前分布$\pi(\Sigma)$について。
- この論文: $\Sigma^{-1} \sim W(\nu_\Sigma, V_\Sigma)$
- BSM本: $\Sigma \sim IW(\nu_\Sigma, V_\Sigma)$
- bayesm::rscaleUsage(): $\Sigma \sim IW(nu, V)$
- $\pi(\Sigma)$のハイパーパラメータについて。
- この論文: $\nu_\Sigma = dim(\Sigma) + 3 = K+3,\ V_\Sigma = \frac{1}{\nu_\Sigma} I$
- BSM本: $\nu_\Sigma = dim(\Sigma) + 3 = K+3,\ V_\Sigma = \nu_\Sigma I$
- bayesm::rscaleUsage(): nuのデフォルトはp+3(pは項目数)、Vのデフォルトはnu*I
仮にそうだとして... $M$次元多変量正規分布の共分散行列の事前分布を$IW(M+3, (M+3)I)$とするというのは、ここに限ったことではなくて、無情報事前分布としては一般的なやりかたらしい。BSM本の2.8.3節。 - 尺度使用の異質性を表すパラメータ$\tau_i, \sigma_i$の平均ベクトル$\varphi$は、この論文では$\varphi = [0 ,-\lambda_{22}]'$, BSM本とbayesmでは$\varphi = [0, \lambda_{22}]'$なので、その事前分布$\pi(\varphi)$については考えなくてよろしい。
- $\tau_i, \sigma_i$の共分散行列$\Lambda$の事前分布$\pi(\Lambda)$について。
- この論文: $\Lambda^{-1} \sim W(\nu_\Lambda, V_\Lambda)$
- BSM本: $\Lambda \sim IW(\nu_\Lambda, V_\Lambda)$
- bayesm::rscaleUsage(): $\Lambda \sim IW(Lambdanu, LambdaV)$
- $\pi(\Lambda)$のハイパーパラメータについて。
- この論文: $\nu_\Lambda = dim(\Lambda) + 3 = 2+3,\ V_\Lambda = \frac{1}{\nu_\Lambda} I$
- BSM本: (長くなるので後述)
- bayesm::rscaleUsage(): Lambdanuのデフォルトは20, LambdaVのデフォルトは(Lambdanu-3)*Lambda, Lambdaのデフォルトはmatrix(c(4,0,0,0.5),ncol=2)
- 閾値のパラメータ$e$の事前分布$\pi(e)$について。
- この論文: $\pi(e) \propto unif[-0.2, +0.2]$
- BSM本: $\pi(e) \propto unif[-0.2, +0.2]$
- bayesm::rscaleUsage(): e $\sim$ unif on a grid. なお、この点についてはBSM本のp.252に解説がある。いわく、Rの実装にあたっては、$e$の事前分布として、間隔(-0.1, 0.1)におけるグリッド上の一様分布を使い、このグリッドのうえでランダムウォークした。つまり、グリッドの点の右か左に等しい確率で移動した(ただし両端においては内側に移動した)。云々。
BSM本における$\Lambda$の事前分布についての説明。まわりくどくて面倒なので、虚心に丸ごと全訳する。
$\Lambda$の事前分布は、$\tau_i, \sigma_i$の推定値がシュリンクする程度に影響する。我々の階層モデルは、$\tau_i, \sigma_i$の分布についてデータが持っている情報に適応できるが、ただしそれはハイパーパラメータ$\Lambda$の事前分布の支配下での話である。$\tau_i, \sigma_i$の推定値の基盤となる設問は、あまり数が多くないのがふつうだろう。このことは、$\Lambda$の事前分布の影響がきわめて大きくなるであろうということを意味している。階層モデルの多くの適用事例では、十分な量の情報を提供してくれるユニットのサブセットが存在し、このサブセットのおかげで、適応的シュリンケージによって$\Lambda$を決定できる。しかし我々の状況では、こうしたサブセットを利用することができず、$\Lambda$の事前分布が通常よりも大きな影響力を持ちうるのである。以上の理由により、$\Lambda$の事前分布の選択には注意が必要である。また、ここで検討・提案する事前分布のセッティングは、階層モデルの文脈で通常用いられるものよりも幾分タイトなものになる。
$\Lambda$の事前分布の役割は、$\tau_i, \sigma_i$の事前分布を導出することである。事前分布のハイパーパラメータの選択が持つ含意について検討宇するために、$\tau_i, \sigma_i$の周辺事前分布をシミュレーションで計算してみよう。周辺事前分は下の式で定義される。
$\pi(\tau, \sigma) = \int p(\tau, \sigma | \Lambda) \pi(\Lambda | \nu_\Lambda, V_\Lambda) d\Lambda$
$\nu_\Lambda, V_\Lambda$について評価するために、$\tau_i, \sigma_i$がとりうる値については幅広く検討するが、事前分布の分散については許容可能な範囲より大きくならないように制約する。$\tau$については範囲を$\pm 5$とする。これは10件尺度の大部分を包含するという意味で非常に幅の広い範囲である。$\sigma$については、このパラメータによって潜在変数が取り得る値の範囲がどのように制約されるかといを考えないといけない。$\sigma$が小さいということは、回答者が尺度のうち狭い部分しか使わないということを表し、$\sigma$が大きいということは、回答者が尺度の全体を使うということを表す。いま、「小」尺度使用者(たとえば、下の3段階とか、上の3段階とかしか使わないような人)、「中」尺度使用者(10件法で5段階しか使わない人)、「大」尺度使用者(尺度の両端を使う人)がいるとしよう。「中」使用者のSDに対する「小」使用者のSDの比は、$\sigma$の「小さい」値に対応するだろう。また、「中」使用者のSDに対する「大」使用者のSDの比は、$\sigma$の「大きい」値に対応するだろう。このように考えると、$\sigma$の範囲は幅を広く取って(0.5, 2)程度だといえるだろう。そこで次のセッティングを採用する。これは$\tau_i, \sigma_i$についての比較的に情報的な事前分布に対応している。
$\nu_\Lambda = 20, \ V_\Lambda = (\nu_\Lambda - 2 - 1) \bar{\Lambda}$
$\bar{\Lambda}$は2x2の対角行列で、対角要素は[4, 0.5]とする。
このセッティングは、$E[\Lambda]$が$\bar{\Lambda}$にほぼ等しいことを保証する。$\tau_i, \sigma_i$の周辺事前分布は、変に大きな値を取ることなく、適切な範囲をカバーする。
やれやれ... 追記はここまでにして、論文のメモに戻る。
....でもって、これをGibbsサンプラーで推定する。[付録に細かいことがいろいろ書いてあるけど、パス]
実例。顧客満足度調査、n=1811, 10件法6項目。このモデルで推定した真値と支出額との相関が高かった、というような話。
... 読みなおしてみて、やっぱり面白い論文であった。Allenby兄貴のチームは、論文は面白いのにね、なんであの本はあんなにわかりにくいんだろうか。
感想が4点。
- こうやって$M$項目の回答データの背後に$M$次元の多変量正規分布を仮定し、尺度使用の異質性を取り除いた真の態度を推定したとして、じゃあどうすんの、と思う。きっと推定したスコアを回帰分析や因子分析や潜在クラス分析にかけることを想定しているのだと思うけれど、そのときにはスコアが多変量正規分布に従うという想定を外すことになるわけだ。ほんとは尺度使用の異質性だけを先にモデリングするんじゃなくて、そのあとで想定するモデルまで全部一発で同時推定したほうがいいんじゃないかろうか。この論文のような二段階アプローチってどこまで許されるんだろうか、その辺のところ、ご専門の方に訊いてみたいものだ。
- scale usage heterogeneityをモデル化する動機はなんだろうか。この論文の理屈では、ほっとくと項目間の共分散行列が底上げされちゃうことが問題なのだろうけれど(そうか、結局この論文はcommon method varianceの話なんだな)、実際の調査データ分析では、CMVそのものを問題にすることより、群間での回答スタイルの差(典型的には国によるちがい)を問題にすることのほうが多いんじゃないかしらん。えーと、そうすると、この論文の枠組みでいえば、上の階層で$\tau_i$と$\log \sigma_i$を群を表す共変量に回帰させればいいんだろうな。正直に言うと、群内の閾値の異質性なんてあんまし関心なくて、Mplusでいえば
MODEL: F1-F3 by u1-u20 (*1);
MODEL US: [u1$1-u20$1 u1$2-u20$2 u1$3-u20$3 u1$4-u20$4];
MODEL JP: [u1$1-u20$1 u1$2-u20$2 u1$3-u20$3 u1$4-u20$4];
...
というような感じのモデルを柔軟に組みたいんだけどなあ(上のコードが正しいかどうかは別にして)。ま、Stanとかで自分でやれってことなんでしょうね。 - いっぽう、尺度使用の記述(?)としてこのモデルを使うのはすごく面白いなあ、と思った次第である。そんなこんなで、k件法尺度の項目をある個数以上聴取したデータを扱うときには、この論文の手法を実装したRのbayesm::rscaleusage()を回してみたりしているんだけど、うーん、どのくらいの項目数があればいいのかしらね。直感としては、項目数が少ないときはうまくいかないだろうと思う。そのへんを教えてくれるとありがたいんだけど。
- ところで、尺度使用の異質性のせいでセグメンテーションにバイアスがかかるという実証研究としてGreenleaf (1992, JMR)というのがあるのだそうだ。回答スタイルの研究については以前原稿の都合でかなり頑張って論文を集めたのに、見落としがあった模様。やになっちゃうなー。[→2018/01/07追記: ちゃんと読んでいた。なんだかなあ]
せっかくなので(なにがだ)、Allenby兄貴の「兄貴」称号の由来となった、香港映画最後のカンフー・スター、ドニー・イェン兄貴の名場面から。日本での最新公開作「カンフー・ジャングル」 (2014, 陳徳森監督)の最後の対決シーンより。
ドニー兄貴の大ヒット作といえば「イップ・マン」シリーズだが、現代劇に限って言えば、本作が兄貴の最高傑作なのではないだろうか。個人的な意見でございますが、回り道をし歳を食い、カンフーこそすごいけれどもちょっとダメなところのある男を演じ始めたとき、ドニーさんは俄然光り輝き始めたように思う。「孫文の義士団」のギャンブル中毒とか。
この映画でいうと、敵役のワン・バオチャンがいかに非人間的なまでに強いかという描写に力を注いだところも勝因だけれど、主演のドニーさんが妹弟子の写真をひそかにスマホの待ち受け画像(?)にしているというあたりが、なんというかその、ぐっとくるわけであります。
(2018/01/01: 大幅に追記した)
読了:Rossi, Gilura, Allenby (2001) k 件法項目で高いほうにばかり答える人や低いほうにばかり答える人がいるのをなんとかする
2016年5月21日 (土)
仕事も副業もうまくいかないことばかり、たまにスマホの画面でSNSを開くと、あの人もこの人もみんな立派で有意義な人生を送っておられるので、あわてて目をそらし、沼の泥を掬うような地味な仕事のことを考えるのであった...
DuMouchel, W.H., Duncan, G.J. (1983) Using sample survey weights in multiple regression analysis of stratified samples. Journal of the American Statistical Association, 78(383), 535-543.
調査データの分析の際、標本をウェイティングしている場面(いわゆるウェイト・バック集計をしている場面)で、その標本を使って回帰分析するときはどうすんのさ、という論文。仕事の都合で読んだ。またまた、古い論文を...
シンプルな回帰分析について考えよう。サンプルサイズ$n$、目的変数1個、説明変数$p$個とする。回帰係数の最小二乗推定量は
$\hat{\beta} = (X' X)^{-1} X' Y$
だ。
さてここで、標本の抽出確率が均等でなかったらどうするか。ここでは層別抽出に絞って考える(かつ、$Y$による層別ではないとする)。
ひとつの考え方は、層を無視して上の推定量をしれっと使うというもの。
もうひとつは、多くの教科書に書いてあるんだけど、WLS推定量を使うというもの。層別変数を$\tilde{J}$、層数$k$、母集団における割合$\{\pi_j\}$は既知とする。水準$j$のサンプルサイズを$n_j$とすると、個体$i$に与えるウェイトはそいつが属する層を$j_i$として
$w_i \propto \pi_{j_i} / n_{j_i} $
このウェイトを対角にいれた行列を$W$とする。WLS推定量とは
$\hat{\beta}_W = (X' W X)^{-1} X' W Y$
さあ、どっちを使うべきか? [カーン ←ゴングの音]
この議論、少なくともKlein & Morgan(1951)というのにまで遡るのだそうだ。
「しれっと」派の言い分はこう。WLS推定ってのは誤差分散が等しくない時に使うんであって、この話と関係ないじゃん[←そうそう、俺もそう思った]。誤差分散が等質であるかぎり$\hat{\beta}$は不偏かつ最小分散なのであって、層のサイズがどうなっていようがどうでも関係ない。
いっぽうWLS派にいわせると、抽出スキームのせいでバイアスが生じているはずだから、$\hat{\beta}$はもはや最適でないはずである。どうにかしなきゃ。
著者らいわく。これは結局、母集団についてどう考えるかで決まる問題だ。
4つのモデルを考えよう。
その1, 等質な線形モデル。
$\tilde{Y} = \tilde{X} \beta + \tilde{\epsilon}$
$\tilde{\epsilon}$は平均0, 分散$\sigma^2$の偶然誤差で、$(\tilde{X}, \tilde{J})$とは独立。
その2, 混合モデル。
$\tilde{Y} = \tilde{X} \beta(j) + \tilde{\epsilon}$
$\tilde{\epsilon}$は平均0, 分散$\sigma^2$の偶然誤差で、$(\tilde{X}, \tilde{J})$とは独立。
つまり、$\beta$が層によって違うと思っているわけである。分析者が関心を持つのは、$\beta$の重みづけ平均
$\bar{\beta} = \sum_{j=1}^k \pi_j \beta(j)$
である。
その3、omitted-predictorモデル。
実は、$q$個の変数$\tilde{Z}$があって、
$\tilde{Y} = \tilde{X} \alpha + \tilde{Z} \gamma + \tilde{\epsilon}$
なのだけれど、我々は不幸にして$\tilde{Z}$を持っていない。で、$\tilde{Z}$のうち$\tilde{X}$に直交する部分を取り出して$\tilde{U}$とすると
$\tilde{Y} = \tilde{X} \beta + \tilde{U} \gamma + \tilde{\epsilon}$
なのである。分析者はほんとは$\alpha$と$\gamma$が知りたいんだけど、あきらめて$\beta$を調べているのだ。
その4、一般的な非線形モデル。ないし、モデルなし。
$\tilde{Y} = \tilde{X} \beta^* + \tilde{\epsilon}^*$
$E[\tilde{\epsilon}^*] =0$
$cov(\tilde{X}, \tilde{\epsilon}^*) = 0$
としか想定しない。$(\tilde{X}, \tilde{J})$ で条件づけられた$\tilde{\epsilon}^*$の期待値とか分散とかについてはなあんにも考えてない。
分析者が関心を持っているのは
$\beta^* = E(\tilde{X}' \tilde{X})^{-1} E(\tilde{X}' \tilde{Y})$
である。これは有限母集団を全数調査したときの最小二乗推定値、いわば「センサス係数」だと考えてもよいし、$\tilde{X} \beta^*$が$\tilde{Y}$の最良の線形予測となるような係数なんだと考えてもよい。モデル1,3が正しかったらその$\beta$と等しい。しかし、モデル2が正しいときに$\bar{\beta}$と等しいとは限らない。[←ああ、そうかも... 俄然面白くなってきた。センサス係数は混合モデルの係数の加重和じゃないわけだ]
ところで、モデル3との関係について。$\tilde{U} \gamma + \tilde{\epsilon} = \tilde{\epsilon}^*$だと思えばモデル4と同じことではある。しかしモデル3には、$\tilde{U}$ というか $\tilde{Z}$は本当は観察できたはずの少数の変数なのだ、という含みがある。
さて、WLS推定量$\hat{\beta}_W$を使うべきなのはどういうときか。
- 当然ながら、モデル1が正しいときは使うべきでない。
- モデル2が正しい場合、$\hat{\beta}$も$\hat{\beta}_W$も、$\bar{\beta}$の良い推定量とはいえない。[←なるほどね! ]
- モデル3が正しい場合には$Z$を探すべき。無理な場合にはモデル4。
- モデル4の観点から$\beta^*$に関心があるときは、WLS推定量を使うべき。少なくとも一致推定量ではあるので。
ここからは、モデル1を支持できるかどうかをデータで決めるやり方について考えよう。調べるのは
$\hat{\delta} = \hat{\beta}_W - \hat{\beta}$
もしモデル1が正しければ、$\hat{\delta}$の期待値はゼロ。で...
ここからよく理解できなくなっちゃったんだけど(ちゃんと読んでないからだ、と信じよう)、$Y$の全分散を、{$\hat{\delta}$ で説明できる平方和、ウェイトで説明できる平方和、誤差平方和}に分解するANOVAを考える。結論だけメモしておくと、以下の方法で「ウェイトで説明できる平方和」$SS_W$を求めることができる由。$Z_ij = w_i X_ij$として、$X$と$Z$を説明変数にした$Y$の回帰を求め、ここから$Z$を落としてまた求める。平方和の差が$SS_W$。で、これを$p$で割った値が、帰無仮説のもとで自由度$p$, $n-2p$の$F$分布に従う。
最後に実例。読み飛ばした。
。。。モデル2、すなわち層によって回帰係数がちがうんじゃないかと思っていて、その加重和を推定したいと思っている場合には、OLSだろうがWLSだろうが駄目なんだ、というところが勉強になった。いっぽう、これまでに「ウェイティングして回帰してください」と言われた場面で漠然と想定されていたのはモデル4に近いと思う。
疑問点が2つ。
その1。モデル4の立場で、俺はセンサス係数を知りんたいんだ、と割り切って考えることができる場面とはどういう場面だろうか。推定した係数に対して、層間の異質性を無視して実質的な解釈を与えるならば(そうなることが多いと思う)、それは途中でモデル1に視点をすり替えたことになる。前から思っているんだけど、「データ生成メカニズムがどうなっているのか知りませんけど、とにかく母集団を全数調査したときに得られるであろう係数を推定しました」っていうのは、なんというか、すごく実査担当者的な発想だと思うんですよね。かつて私の上司様がシニカルに呼んでいた、「コンナンデマシタケド」的データ解析だ。 その係数をどう解釈せえというの?という問いに対しては、ごにょごにょと言葉を濁すわけである。胸が痛むので大きな声ではいえないけど、それはちょっと不誠実なんじゃないかしらん。
もっとも、係数を実質的に解釈するつもりがなく、単に「これから同一母集団から単純無作為抽出する標本に適用できる最良の線形予測式」を求めることに関心があるのだ、ということであれば、それはそれで納得するけど。その場合のWLS推定量とは、学習データ(層別抽出)と検証データ(無作為抽出)で層の割合が違うので学習時に修正しておきたい、という話として捉えられるのではないかと思う。
その2。層別抽出においてモデル3ないし4の立場をとったとして、WLS推定量が一致性を持つことはわかったけど、それは最良な推定量といえるのだろうか? もっと良い推定量があったりしないのでしょうか。WLSって、誤差分散の不均一性に対処するために、誤差分散が大きそうな個体に小さなウェイトを与える方法だと思うんだけど、層別抽出の際のウェイトとはあくまで抽出確率の逆数であって、誤差分散とは関係ないと思うんですよね。WLSじゃなくて、個体尤度に重みをつけた最尤法を使うってんなら、なんとなく納得するけど... SASのproc surveyregやRのsurveyパッケージはどうなっているんだろうか、ヒマになったら調べてみよう。
読了:DuMouchel & Duncan (1983) 回帰分析も「ウェイト・バック」すべきでしょうか
2016年5月15日 (日)
グローバル・マーケティング時代のマーケティング・リサーチにおいて(←かっこいい書き出し)、リサーチャーを苦しめる新たな難題リストのトップに躍り出たトピックがあると思う。AskingからListeningへとか?ビッグデータ活用とか?まさか。どなたも言わないのでひとりで勝手に呟くけど、 測定不変性(MI)の問題こそがそれだ。巷に溢れる実務家向け参考書のどこにも書いてないのが不思議なくらいだ。そういう本当に深刻な問題には、きっとみなさんご関心がないのであろう。面倒くさいもんね。
このたびもMIの問題で延々悩む事態が生じ、とりあえず知識のアップデートのためにと思って昼飯のついでに手に取ったのだが、いかん、油断していたら、聞いたこともないようなアプローチが出てきている...
van de Schoot, R., Schmidt, P., Beuckelaer, A.D., Lek, K., & Zondervan-Zwijnenburg, M. (2015) Measurement Invariance. Frontiers in Psychology, 6, 1064.
この雑誌のMI特集号のEditorial。まずMIという問題についてごく簡単に触れたのち、MIへのアプローチを4つに整理し、先行研究と掲載論文を紹介。
MGCFA。70年代のJoreskog, Sorbom に始まる伝統的アプローチである。
- Byrne et al. (1989 Psych.Bull.), Meredith(1993 Psychometrika) により、full MIとpartial MIの区別が導入された。
- レビュー: Vandenberg & Lance (2000 ORM), Davidov et al.(2014 Ann.Rev.Sociol.), Millsap(2011 書籍)
- 入門者むけおすすめ: Meredith(1993), Millsap(2011 書籍) [←故Millsap先生のこのご著書、初心者向けとはいいがたいと思うけど...?]
MIの欠如への対処。
- Lommen et al. (2014 Front.Psych.): PTSDについての事例。
- Hox et al. (2015 Front.Psych.): mixed mode調査で弱いMIさえ成立しなかったという事例。
- de Roover et al.(2014 Front.Psych.): cluster-wise ssimultaneous component analysis (SCA)による 不等項目検出。[←読まなきゃ!!]
- Barendse et al.(2014 Front.Psych.): Bayeian restricted latent factor analysis (RFA) による不等項目検出。[←BSEMとはちがうのだろうか?]
- Guenole & Brown (2014 Front.Psych.): categorical item factor analysisで、潜在変数の構造に不等性があるのを無視すると回帰パラメータにどんなバイアスがかかるかをシミュレーション。
近似的MI。
- Muthen & Asparouhov (2012 Psych.Method): BSEMアプローチ。[説明が書いてあるけど略]
- van de Schoot et al.(2014 Front.Psych.): 近似的MIに到達する方法のチュートリアル。
- Cieciuch et al. (2014 Front.Psych.), Zercher at al.(2015 Front.Psych.), Bujacz et al.(2014 Front.Psych.), Chiorri et al.(2014 Front.Psych.): BSEMと伝統的手法の比較。
- Fox & Verhagen (2010 in "Cross-cultural Analysis"): 近似的MIをIRTに拡張。事前分布を使わない。[←面白そう!!]
- Kelcey et al. (2014 Front.Psych.): Fox & Verhagenの拡張。
- Muthen & Asparouhov (2014 Front.Psych.), Asparouhov & Muthen (2014 SEM): alignment法。[SEM誌の論文とはたぶんMplus Web Notes 18のことであろう]
MGCFAよりもっと複雑なモデルにおけるMIのテスト。
- Wang et al.(2014 Front.Psych.): 補助変数が名義変数じゃなくて順序変数・連続変数だったときのMIのテスト。[←順序変数ってのはわかるけど... 連続変数ってどういうことよ。動的回帰みたいな話になるの?!]
- Verdam & Oort (2014 Front.Psych.): クロネッカー制約付きのSEMモデルにおけるMIのテスト。時系列潜在変数モデルの代替案となる。[←全然わからん... 読んでみなければ]
- Adolf et al.(2014 Front.Psych.): miltiple-occasion and multiple-subject time series において、時点間MI, 個人間MI, 時点x個人間MIをテストする。[←やばい... これ滅茶苦茶面白そう...]
- Boom (2014 Front.Psych.): 認知発達の分析にMIが重要な役割亜を果たすという事例。
- Jak (2014 Front.Psych.): 3レベル階層モデルでMIをテストする。
- Geiser et al.(2014 Front.Psych.): MMTMモデルの拡張。
- Kroonenberg (2014 Front.Psych.): two-way rating デザインにおけるMIのテスト。
。。。特に国際調査の場合がそうなんだけど、MIが失われる主要な原因のひとつはresponse styleのちがいなので、そっちに言及がないのがちょっと残念。まあ考えてみると、MIの文脈では、DIFとかがある特定の項目を削ったりなんだりしてMIに到達するのが目的になるのに対して、response styleの文脈では項目共通のscale usage heterogeneityを仮定してそれを修正するのが目的になるので、研究が重ならない、というのはわかる。実務場面では、項目セットにおけるDIFとresponse styleはたいてい手を取り合って襲いかかってくるんだけど。
読了: van de Schoot, et al. (2015) 測定不変性の最前線
2016年5月 6日 (金)
Diderrich, G.T. (1985) The Kalman filter from the perspective of Goldberger-Theil estimators. American Statistician, 39(3), 193-198.
題名の通り、Goldberger-Theil推定量とカルマン・フィルタとの関係をあきらかにしましょう、というマニアックな論文。先日の原稿準備の途中で疑問に思って、試しに読んでみた奴。
難しくてわからんことは覚悟の上である。たまに理解を超える論文を無理やり読むことによって、人の精神は鍛えられ、深い絶望に耐え抜く力を身につけることができるのだ、と自分に言い聞かせつつ。
内容を一応メモしておくと...
まずは準備から。
$y = X b + e$
の$b$のBLUEな推定量$\hat{b}$について考えよう。BLUEってことはunbiasedかつbest、すなわち$E(b-\hat{b})=0$かつ$cov(\hat{b}-b)$がトレース最小である。$\hat{b}$は下式で与えられる:
$\hat{b} = P X' W^{-1} y$
ここで$W$は$e$の共分散。$P$は推定誤差の共分散行列$cov(\hat{b}-b)$であり、具体的には
$P = (X' W^{-1} X)^{-1}$
である。
これをGauss-Markov-Aitken定理という[←へえええ?知らなかった。ガウス-マルコフ定理という言い方は聞いたことがあったけど]。最小二乗法の入門書では、この定理は
$(y-Xb)^{-1} W^{-1} (y-Xb)$
を最小化する問題として紹介されている。確率的・分布的な仮定がないところにご注目。
こんどは、いわゆる逆行列の補助定理(matrix inversion lemma)について。以下、行列は必要なときに逆行列を持つものとする。
$P_1^{-1} = P_0^{-1} + X' W^{-1} X$
が成り立つのは、以下のすべてが成り立つとき、そのときに限る:
$P_1 = (I-KX) P_0$
$P_1 P_0^{-1} = (I-KX)$
$K = P_0 X' [W + X P_0 X']^{-1}$
$P_1 X' W^{-1} = K$
[証明略。文系の私としては、わざわざ変な記号を使っておまえは何を言っているんだという感じだが、あとで意味がわかると信じて先に進もう]
では、いよいよ本題です。
$\hat{b}_0 = b + e_0$
を$b$の事前推定値とする。$e_0$の分散を$P_0$とする。当面$b$は定数とする。
これを上の
$y = X b + e$
とどう結合するか。ひとつの路線は、以下の式を最小化するという路線である:
$(b-\hat{b}_0)' P_0^{-1} (b-\hat{b}_0) + (y-Xb)^{-1} W^{-1} (y-Xb)$
もうひとつの路線はこうだ。ベクトル$y$と$\hat{b}$を縦積みし$y_1$とする。行列$X$と$I$を縦積みし$X_1$とする。ベクトル$e$と$e_0$を縦積みし$e_1$とする。すると上の2本の式は
$y_1 = X_1 b + e_1$
これにGauss-Markov-Aitken定理を適用し、BLUEな推定量
$\hat{b_1} = P_1 X_1' W_1^{-1} y_1$
を得る。これをばらしていくと、
$\hat{b_1} = P_1 X' W^{-1} y + P_1 P_0^{-1} \hat{b}_0$
となる。これをGoldberger-Theil推定量という。
さて、この式に逆行列の補助定理を適用すると[...中略。なるほど、このときのために変な記号を使っていたのね...]
$\hat{b}_1 = \hat{b}_0 + K (y - X \hat{b}_0) $
が得られる。なんと、古い推定量にイノベーション$y - X \hat{b}_0$を足しているぞ。これはカルマン・フィルタではないか。
$b$が確率変数であっても、$e_0$, $e$と独立であればこの関係が成り立つ[説明を大幅に略]。
さらにだ。事前推定値$\hat{b}_0$を0とし、$P_0=I(1/k)$, $W=I$とすると、
$\hat{b} = [kI + X'X]^{-1} y$
となる。なんと、これはリッジ推定量ではないか。このようにリッジ推定量とは、事前情報$\hat{b}$は使わないが$P_0$は使う、「半」カルマン・フィルタなのである。
[最後に、この結果を使って一般化カルマンフィルタを導出しよう...という話。力尽きたのでパス]
というわけで、カルマン・フィルタ理論と線形最小二乗理論のつながりがあきらかになった。
60年代初頭、工学ではカルマン・フィルタが登場し、統計学ではGoldberger-Theil推定量が登場した。多くの人々が同じときに違う場所で同じことを考えていたわけだ。
。。。やれやれ。最後の一般化カルマンフィルタの話がよくわかんなかったけど、いいのよ! 文系だから! 次にいこう次に。
読了:Diderrich (1985) Goldberger-Theil推定量からみたカルマン・フィルタ
2016年4月26日 (火)
ベイズ統計とマーケティング・リサーチ、というようなキーワードでウェブを検索すると、Allenby兄貴の著書"Bayesian Statistics and Marketing"ばかりがヒットする。ちょっと読んでみるかと思ったそこのあなた、別にかまいませんけど、その道は地獄へと通じています。香港映画界の最後のカンフースターであるドニー・イェン兄貴は、共演者に対する要求水準が大変高く、ほぼ無理難題に近いアクションを求めるそうなのだが、Allenby兄貴の本も、途中からいきなりハードルを上げてくるのです。Allenbyさんが世界中の統計学習者に"Ah-Niki"と呼ばれているのはそのためである。(嘘です、私が言ってるだけです)
Allenby兄貴以外の人が書いた文章がないだろうかと探してみたら、Marketing Research誌の記事のPDFをみつけた。こりゃいいや、と思ってディスプレイ上で目を通した。この雑誌は完全に実務家向けで、めちゃくちゃ易しいのです。
まずはベイズの定理について紹介。ベイズの定理が市場調査実務にあまり適用されなかった理由は3つ:(1)事前確率が決めらんない。(2)計算が大変。(3)リサーチャーはデータ生成過程に関心を持たない場合が多い(例外は消費者選択。リサーチャーは消費者の効用最大化過程に関心を持つ)。
80年代のMCMC登場がすべてを変えた... [正直に告白すると、このあたりから、あれおかしいな、と気づき始めていました...]
階層ベイズモデルとは... [略]
選択型コンジョイント分析に適用すると...[略]
うちの院生が、消費者の決定ルールを推測するという面白い研究をやってて... [ここで完全に気が付いて、ガックリしたのだが、悔しいので最後まで読んだ]
WinBUGSとかあるよ... これからはこんな問題にも適用できるだろう... [略]
Allenby, G.M., Bakken, D.G., Rossi, P.E. (2004) The HB revolution: How Bayesian methods have changed the face of marketing research. Marketing Research, Summer 2004.
というわけで、よくよくみたら、これもAllenby兄貴の記事であった。それもGrover&Vriens(eds)での解説とだいたい同じ内容。くっそー。
悔しいので、今回はドニー兄貴の動画は載せません。(別に誰にも頼まれてないけど)
読了:Allenby, Bakken, Rossi(2004) HB革命とは何か
Koenker, R., & Hallock, K. (2001) Quantile regression. Journal of Economic Perspectives, 15 (4), 143-156.
分位点回帰についての素人向け解説。こりゃ基礎から復習しないとだめだと気づき、あわてて読んだ。Koenkerって、やっぱ偉い人だったんだ...
いわく。
みんな知ってると思うけど、平均は残差平方和
$\min_{\mu} \sum(y_i - \mu)^2$
を最小化するという問題の解だよね。同様に、中央値は絶対誤差の合計を最小化するという問題の解だよね。他の分位点に一般化すると、それらは次の解だ:
$\min_{\xi} \sum \rho_t (y_i - \xi)$
ここで$\rho_t (\dots)$は左右で異なる傾きを付けた絶対誤差の関数。[←ここ、理解できなくて混乱したんだけど、"Mostly Harmless Econometrics"によれば、厳密な定義はおいといておおまかにいうと、$u$が正のときに$\rho_\tau = \tau u$, 負のときに$\rho_\tau = (\tau-u) u$となる関数らしい。$\tau=0.5$なら$\rho_\tau = 0.5|u|$。なるほどね]
これを条件つき平均に拡張しよう。$\mu$をあるパラメトリックな関数$\mu(x_i, \beta)$に置き換える。条件付き期待値関数$E(Y|x)$は
$\min_{\beta} \sum (y_i - \mu(x_i, \beta))^2$
の解だ。同様に、$\xi$をあるパラメトリックな関数$\xi(x_i, \beta)$に置き換える。条件付き分位点関数(CQF)とは
$\min_{\beta} \sum \rho_\tau(y_i - \xi(x_i, \beta))$
の解だ。
これ、線形計画法で簡単にとけるのです。
よくある誤解は、分位点回帰なんかしなくても、反応変数で層別して、それぞれに最小二乗フィッティングすりゃいいじゃん、というもの。これは従属変数によるトランケーションであって、悲惨な結果を招く。いっぽう、共変量の側で条件づけるのはオッケー。それこそが局所フィッティング、すべてのノンパラ分位点回帰の基礎となるアイデアである。
一番極端な場合として、共変量ベクトルでデータを$p$個のセルにわけ、それぞれのセルの中でふつうに分位点を計算しちゃう、という手もある。別の極端なアプローチとして、なんらかカットオフをきめて、反応変数がそれを超える確率について二項反応モデルを推定する、という手もある。
分位点回帰推定量の漸近特性については研究がいっぱいある。推定手法はいろいろあるが、たいして変わらないことがわかってます。
云々。
読了:Koenker & Hallock (2001) 分位点回帰入門
Koenker, R. (2015) Quantile Regression in R: A Vignette.
分位点回帰のRパッケージ quantreg のvignette。実戦投入前のおまじないとして読んだ。著者についてはよくわからないが、調べてみたら2005年にCUPから"Quantile Regression"という単著を出しているから、有名な人なのかも。
... 細かいところ、難しくってよくわかんなかった。ま、使いながら考えよう。
著者曰く、分位点回帰というアイデアは18世紀、クロアチアのイエズス会巡回説教師(the itinerant Croatian Jesuit) Rudjer Boscovichに遡る由。はぁ??まじ?!と思ったが、考えてみたら、回帰という名を生んだゴールトンは19世紀の人だけど、回帰という発想自体は18世紀からあったそうだし(詳細は全く知りませんが)、条件つき分布の中央値に注目する発想(分位点回帰)が、条件付き分布の期待値に注目する発想(ふつうの回帰)に負けないくらいに古くても、おかしくはないわね。Wikipediaで調べたら、ルッジエーロ・ジュゼッペ・ボスコヴィッチ、物理学・天文学・数学・統計学に名を残している人らしい。
読了:Koenker (2015) 分位点回帰パッケージ quantreg
2016年4月22日 (金)
Allenby, G.M., Rossi, P.E. (2008) Teaching Bayesian Statistics to Marketing and Business Students. The American Statistician, 62(3), 195-198.
ベイジアン・モデリングの大スター Allenby兄貴がお送りする、「俺はビジネススクールの統計学のクラスでベイズ統計を教えてるぜ」エッセイ。
(私が彼を兄貴と呼ぶ理由は、何度でも書きますが、主著"Bayesian Statistics and Marketing"においてAllenbyが読者に求める無理難題が、香港のカンフースター、ドニー・イェン兄貴が共演者に求めるという無理難題と似ているからである)
以下、すごくいいかげんなメモ:
なんといっても大変なのは、尤度ベースの推論の価値と、情報事前分布の意義について教えることですね。経済統計あがりの学生は事前分布に懐疑的だし、積率法と漸近分布の理論に慣れてるし。修士で統計やってましたっていう学生でも、ベイズ統計は練習問題くらいしかやってないし。
とにかく基礎教材が大事だと思います。情報事前分布が、主観的な事前情報の組み込みという点だけではなく、スムーズネスや数値的安定性という点でも大事だと教え込むわけです。パネルデータ分析で、階層ベイズ離散選択モデルじゃないとできない分析を教えるとか。
講義の具体的な内容ですか?
教えているのはオハイオ州立大とシカゴ大のPh.Dコースの学生です。教科書はもちろん"Bayesian Statistics and Marketing"。この本にはRのbayesmパッケージがついてますからね、そりゃもう、うまくいってますよ。
毎週の宿題では、いろんな問題について実装の練習をさせてます。基本的なコードを渡して拡張させるんです。回帰分析のコードを渡して、係数に順序制約をつけなさい、とか。スクラッチから書かせると、標準的な公式について直接にアホな実装してきますからね。クロネッカー積の関数を使うとか、逆行列とか行列式を求めるとか、そういうのはやらせたくないわけです。コレスキー分解とクロス積の関数で済ませたほうがいい。
えーと、コースの前半はベイズ統計の基礎に割きます。標準的な内容だと思うけど、手法や実装の実用的な価値、それから情報分布に力を入れてます。後半はマーケ・ビジネス寄りです。潜在変数モデル、多項離散モデル、多変量離散モデル、離散選択モデルの需要理論[←?]、ユニット・レベルの尤度を使った離散変数の階層モデル、モデル選択と決定理論、同時性、ってとこですね。
最後に、最近の研究から事例を選ばせて、ベイズ統計の観点からどうやって解けるか、というのをやります。ケーススタディを5つ、本に載せたから、読んでみてください。
成績は宿題と最終レポートでつけます。宿題の採点はなるべく優しく... 単位がもらえるかどうかみんなおびえてますからね。レポートのほうは、学術論文と似た形で書かせます。テーマは自由だけど、標準的な回帰モデルはダメ。自分がやってる研究と関連する内容について取り組むのが理想ですね。実データの分析だけじゃなくてシミュレーションもさせます。目標は、自分のデータの尤度関数について真剣に考えさせることです。
ミクロレベルのデータを扱っている学生にとって、消費者異質性のベイズ的な取り扱いはとても重要です。異質性の一般的なモデルを一連の条件つき分布で構築できます。
$y_i | \theta_i \ \ \sim \pi_1 (\theta_i)$
$\theta_i | \tau \ \ \sim \pi_2 (\tau)$
$\tau | h \ \ \sim \pi_3(h)$
最初の条件つき分布を僕らはユニットレベル尤度と呼んでます。マーケティングだと$y_i$はたいていなんらかの形で離散的です。2つめの条件付き分布は、パラメータについての事前情報の一部になってます。経済統計ではランダム係数の分布って呼びますが、僕らはこれも尤度の一部だと捉えます。たいていの場合、一番関心が持たれるのは3番目の$\tau$です。学生に教えるポイントは、階層モデルと事前分布の価値、そして、すべての未知の量をランダムだと捉える推論手法の価値です。
非正則事前分布を使う場合、階層モデルでは事後分布が必ずしも存在しません。階層モデルというアイデアは正則事前分布においてのみ意味を持ちます。だから学生は事前分布の重要性について真剣に考えないといけないわけです。
階層モデルはモジュラー的で、モデリングの面でもアルゴリズムの面でも実装が楽だ、という点も、ベイズ統計に懐疑的な学生にとっていい勉強になります。ある事前分布について標準正規分布を混合分布に切り替える、ディリクレ分布に切り替える、なんてことが容易にできます。
同時性についての議論も学生の関心を惹くようです。ビジネスデータはたいてい、消費者の企業の相互作用の結果で、どちらも同時に自分の行動を最適化しようとしてますから。需要-供給の同時モデルは尤度の最大化が難しくなるので、シミュレーション手法がぴったりです。よくベイズ統計の教科書には回帰モデルが載ってますが、そういうのではベイズ統計の力がわかりにくいんんじゃないですかね。
[ここでbayesmパッケージの紹介。分布の可視化も大事なのよ、bayesmパッケージにはそういう機能もあるよ、とのこと。パス]
というわけで、優秀な学生ならば、およそどんなモデルであっても推定できる概念的・操作的なスキルが身に付きます。そうでもない学生であっても、自分がやってる分析の背後にある想定について評価する能力は身に付きます。
悩みとしては... 学生からの評判はいいんですけど、宿題が多すぎるっていう不満の声もありますね。それから事後分布について、可視化して全体を検討させたいんですが、どうしても積率での要約に頼ってしまい、なかなかうまくいかないです。決定理論に対するベイズ統計の価値についても、説明の時間がなかなか取れないです。
コース終了後、勤勉な学生がさらに勉強を進める際にもbayesmパッケージは役立ちます。修了生のなかにはベイズ統計を使った応用論文を書いた人もいますよ。
。。。Allenby兄貴。。。 学生に対しても、ドニー兄貴なみの厳しさであったか。。。
せっかくなので(なにがだ)、ここでドニー兄貴のアクション・シーン。「孫文の義士団」(2009, 陳徳森監督)より。いったん撮り終えたアクションが気に入らず監督に直訴、自分のチームのメンバーを急遽招集、自らアクション監督をつとめて自腹で撮り直した、といういわくつきの名場面である。
雑踏を駆け抜けるドニー兄貴も素晴らしいが、敵役のカン・リーが登場する直前、モノやらヒトやらがなぜか上方向に吹っ飛んでいくというカットもとても面白いと思うのです。カン・リーの並外れた怒りと力を表現しているんだけど、アニメーションのようなコミカルさがある。
読了:Allenby & Rossi (2008) 学生にベイズ統計をこうやって教えてます (feat. 「孫文の義士団」)
2016年4月21日 (木)
Srinivasan, V., Mason, C.H. (1986) Nonlinear least squares estimation of new product diffusion models. Marketing Science, 5(2), 169-178.
Bassモデルの推定方法として、Bass(1969)によるOLS推定、Schmittlein & Mahajan (1982, Mktg.Sci.)によるML推定、そしてNLS推定を、実データやシミュレーションで比較。NLS推定がもっとも良いです。という論文。ざっと目を通しただけだけど、いちおう読了にしておく。
OLSがひどいのはまあわかるとして、ML推定でパラメータの標準誤差が過小評価されるのはなぜか。そもそも推定誤差には、(1)標本抽出に伴う誤差、(2)経済条件やマーケティング変数みたいな変数を無視していることの誤差、(3)密度関数の誤指定による誤差(たとえば模倣係数が累積受容率に応じて動く場合とか)、の3つのソースがあるんだけど、ML推定では(1)しか考慮してない、だからパラメータの標準誤差が過小評価される。でもNLS推定なら全誤差の項をいれてある大丈夫。なのだそうだ。
うーん、その理屈がいまいち呑み込めない。ちゃんと読んでないせいだろうか。それともSchmittlein & Mahajanを読まないといかんのだろうか。
読了:Srinivasan & Mason (1986) Bassモデルは非線形最小二乗法で推定しろ
2016年4月18日 (月)
Vanhonacker, W.R., Lehmann, D.R., Sultan, F. (1990) Combining Related and Sparse Data in Linear Regression Model. Journal of Business and Economic Statistics. 8(3), 327-335.
Sultan, et al.(1990)の後続研究としてSultanさんが紹介していた奴。実はこっちのほうがわかりやすいんじゃないかと疑って読んでみた。その予想はあたっていて、細かいところまできちんと説明してくれている論文であったが(というか、Sultan, et al.(1990)が説明を端折りすぎなのである)、しっかし、ねえ...
イントロ部分に早速わからない箇所があるので訳出しておく。
事前情報を使うことによって得られる効率性は、ベイズ統計手法が幅広く用いられ発展してきた理由でもある。Lindley & Smith (1972)は階層事前分布の使用を奨めており、多くの適用例の基礎となっている。独立に生成された知見を事前分布に統合しようという初期の試みはこのアプローチを採用している。しかし、階層事前分布の根底には交換可能性という非常に強い想定があり、これは過度な単純化だとして批判されてきた(Kass, 1983 JASA)。この想定は、通常は正規事前分布として捉えられているのだが(Leamer, 1978書籍)、知見はお互いに関連しており、データはその関連性についての情報を含んでいる、ということを述べている。この関連性には、研究における差異のせいで、ほぼ確実に異質性が含まれている。異質性についての事前情報はスパースであることが多く、グルーピングや条件付き事前分布の使用は現実的でないので、事前の研究のすべてに等しい情報が含まれているという厳密な想定を伴う伝統的アプローチが、妥当な批判にも関わらず生き延びている。
体系的変動をあきらかにするという試みにおいて、メタ分析の結果は独立に実行された研究群を通じたパラメータ異質性を明示的に捉える。従って、その結果を事前情報として用いれば、階層ベイズ事前分布の根底にある、厳密な交換可能性という想定を回避し、こうした事前分布に頼ることに対して実証研究の中でしばしば表明されてきた懸念に応えることができる。新しい研究を、メタ分析モデルで指定されたモデレータ変数について先行研究とマッチングさせることによって、事前分布の情報内容を差異化できる。いいかえれば、異質性が事前情報において明示的に捉えられていることになる。
ううむ。ひらたくいえばLenk&Raoのような階層ベイズモデルを使うアプローチをディスっているのだと思うのだが、階層事前分布における交換可能性の想定はきつすぎる、という批判の意味がよくわからない。もしかすると、階層事前分布には共変量を入れられないけどメタ分析モデルなら入れられるよ、という意味なのだろうか。だとしたら、Lenk&Raoが提案しているように、共変量をいれた階層ベイズモデルならいいんでしょ、という話になるはずで、交換可能性という概念を持ち出す必要はないだろう...
まあいいや。以下、本文についてのメモ。
いま、オリジナルのm個の研究で重回帰が使われているとする。
$y_i = X_i \beta_i + u_i$
$i$は研究番号。$y_i, X_i$のデータサイズを$n$、$X_i$の変数数を$p$とする[$n$と$p$に添字$i$がついてないけど、ほんとはつけるべきだろう]。すべての$i$において$E(u_i) = 0$, 異なる2つの研究$i,j$の間で $E(u_i u_j')=\sigma^2_i I$とする。
ここから「メタ分析事前分布」を導出する。
いま、研究の属性(製品カテゴリとか推定手法とか)によって、研究を$k$個のグループに分類できるとする。研究$j$がグループ$l$に属しているとき、ランダム係数を想定して
$\beta_j = \bar{\beta}_l + e_j$
ただし$E(e_j) = 0$、グループ$l$に属する異なる2つの研究$i,j$の間で$E(e_i e_j') = \Sigma_l$とする。
階層ベイズ事前分布は、すべての$i$について、パラメータ・ベクトル$\beta_i$がある平均ベクトルと共分散行列を持つある事前分布からのドローだと想定する。従って$\beta_i$は交換可能であり、この事前分布はすべての研究のあいだの「つながりの程度」を捉えていることになる。[中略]この強い想定について検証する方法もある。この想定によって、ある研究グループを分離して分析できるようになる。[中略。いっぽう]メタ分析によって異質性を明示的に捉えて記述すれば、すべての研究グループを同時に分析できるようになる。こちらのほうが効率が良いし、理解も促進される。[やっぱりそうだ。階層ベイズモデルには共変量がいれられないというのが話の前提になっているみたいだ]
まとめて表現しよう。$m$個の研究について、パラメータ、平均、誤差をそれぞれ縦積みする。
$\beta' = (\beta'_1, \ldots, \beta'_m)$
$\bar{\beta}' = (\bar{\beta}'_1, \ldots, \bar{\beta}'_k)$
$e' = (e'_1, \ldots, e'_m)$
とする。2本目の式に注意。たとえば3つ研究があって、所属グループが$(1,1,2)$なら、$\bar{\beta}' = (\bar{\beta}'_1, \bar{\beta}'_1, \bar{\beta}'_2)$である。
以上を使って
$\beta = \bar{\beta} + e$
さて、$\bar\beta$を各研究のデザインを列とする$Z$の線形和とみて
$\beta = Z c + e$
とする。これがメタ分析モデルだ。
実際には真のパラメータベクトル$\beta$は観察されないわけで、そのかわりに
$\hat\beta = Z c + \epsilon$
を推定する。 誤差項$\epsilon$について考えよう。これは真のパラメータに含まれる誤差項$e$と、パラメータの推定誤差$\hat{u} = \hat\beta - \beta$の和である。$E(\epsilon)=0$となる。では$E(\epsilon \epsilon’)$はどうなるか。
[さあ、この辺から話がややこしくなってくるんだけど]
$E(\epsilon \epsilon’)$を$\Omega$としよう。それは$m \times m$のブロック対角行列で、グループ$l$の対角ブロックが$\Sigma_l + \sigma^2_i (X'_i X_i)^{-1}$となる。[なぜか理解していないが、信じることにしよう]
で、ここから、$\hat{c}$のBLUEな推定量は下式となるのだそうだ[これも信じることにしよう]。
$\hat{c} = D\hat\beta$
$D = (Z' \Omega^{-1} Z)^{-1} Z' \Omega^{-1}$
さて、新しい研究がやってまいりました。そこでは
$y_o = X_o \beta_o + u_o, \ \ E(u_o)=0, \ \ E(u_o u'_o)=\sigma^2_o I$
が得られているとしましょう。この研究のデザインは$Z_o$で、これをメタ分析モデルに放り込み、 $\beta_o$の事前推定値
$b_o = Z_o \hat{c}$
が得られたとしましょう。
この$b_o$は、こういう性質を持っている、ということが示せるのだそうだ。
$b_o - Z_o D d = Z_o D M \beta_o + Z_o D \gamma$
$D$はさっき定義した行列。$d$は、すべての研究について、それが属するグループの平均パラメータのベクトルと、新研究が属するグループ平均パラメータのベクトルの差を縦積みしたもの。$\gamma$は$\hat{u}$と、「それが属するグループの$e$と新研究が属するグループの$e$の差」を足しあげたもので... ま、これは実際には使わないので、あんまし気にしなくてよさそうだ。
ってことはですね。
$y_o = X_o \beta_o + u_o$
$b_o - Z_o D d = Z_o D M \beta_o + Z_o D \gamma$
この2つを縦に積み上げて、一気に推定すればいいや、ということになる。縦に積んだのをこうやって表現することにします。
$y = X \beta_o + v$
ただし、$y$は$y_o$と$b_o - Z_o D d$を縦に積んだもの。$X$は$X_o$と$Z_o D M$を縦に積んだもの[本文中には $X' = \left[X'_o (Z_o D M)'\right]$とあるが、$X' = \left[X'_o, (Z_o D M)'\right]$の誤植であろう]。$v$は$u_o$と$Z_o D \gamma$なる謎のベクトルを縦に積んだもの。
さあ、この$\beta_o$の推定量はどうなるか。こうなることが示せるのだそうだ。
まず、誤差項$v$の共分散行列$\Omega_v$について考えよう。それはブロック対角行列となり、左上には$E(u_o u'_o)=\sigma^2_o I$が、右下には$Z_o D E(\gamma \gamma') D' Z_o$がくる。
では、$E(\gamma \gamma')$はどうなるのか。それは次の2つの行列の和になるのだそうだ。ひとつめ、$\Omega$。ふたつめ、新しい研究がグループ1に属するとして、すべての要素が$\Sigma_1$である行列。
さて、$\beta_o$のBLUEな推定量は
$\hat\beta = (X'\Omega_v^{-1}X)^{-1}X'\Omega_v^{-1}y$
これをrecursive estimatorという。
実際の推定は次のように行う。[一応メモするけど、要するにtake it easyという感じ。原文から少し添え字を変えた]。
グループ$l$の研究数を$m_l$とする。新研究はグループ1に属するということにする。
- $\hat{\sigma}^2_i = \frac{(y_i - X_i \hat{\beta}_i)'(y_i - X_i \hat{\beta}_i)}{n-1}$
- $\hat{\sigma}^2_o = \frac{1}{m_1} \sum_{i=1}{m_1} \hat{\sigma}^2_i$
- $\hat{\bar{\beta}}_l = \frac{1}{m_l} \sum_{j=1}{m_l} \hat{\beta}_j$
- $\hat{\Sigma}_l = \frac{1}{m_l} \sum_{j=1}{m_l} (\hat{\beta}_j - \hat{\bar{\beta}}_l)(\hat{\beta}_j - \hat{\bar{\beta}}_l)'$
- $d$は単純に、$\hat{\bar{\beta}}_l$同士を引き算して求める。
事例が2つ。1つめのマーケティング・ミクス・モデルはとばして、二つ目の新製品普及のほうのみ読んだ。
ご存知Bassモデルは、時点$t$において未受容者が受容する条件付き確率を$P(t)$、既受容者を$Y(t)$として
$P(t) = p + (q/m) Y(t)$
離散データの場合はラグをとって
$S_t = a + b Y_{t-1} + c Y^2_{t-1}$
とすればOLS推定できる。ほんとはNLSのほうがいいんだけど、話の都合上OLSで推定する。
過去の19個の普及曲線について$a, b, c$を推定した結果を集めてきた。これを消費財と産業財の2群にわける。
ほんというと、過去の普及曲線について$a, b, c$の共分散がほしいんだけど、手に入らないのであきらめて、共分散はみんな0だということにした[$\omega$を単なる対角行列にし、対角要素は当該パラメータの分散にした、ということであろうか]。
誤差分散の推定値$\hat\sigma^2_i$も手に入らないので、$\hat\sigma^2_o$のかわりに一年目の売上をいれた[いいのか、そんなことで。というか1年間の売上ってなんのことだ、予測対象であるカラーテレビのことか]
新研究としてカラーテレビの普及曲線を使い、1期目のみ、2期目まで、の2つについて事後パラメータを出す。2期でかなり予測できるようになった。3期だともうぴったり予測できちゃう。云々。
いやあ... メモしてみたはいいけれど... これ、死ぬほどややこしいわ... そのわりに、線形回帰に限定されている、という... Bassモデルの推定だったら、やっぱし階層ベイズモデルをつかったほうがいいんじゃなかろうか。
話を逆向きにたどり、推定手順をメモしておこう。
- それぞれの研究について、誤差分散の推定値を求める。すなわち$\hat\sigma^2_i = \frac{(y_i - X_i \hat\beta_i)'(y_i - X_i \hat\beta_i)}{n-1}$。
- 新研究について、誤差分散の推定値を求める。それがグループ1に属するとして、$\hat\sigma^2_o = \frac{1}{m_1} \sum_{i=1}{m_1} \hat\sigma^2_i$ 。
- それぞれのグループについて、パラメータ平均の推定値を求める。すなわち$\hat{\bar{\beta}}_l = \frac{1}{m_l} \sum_{j=1}{m_l} \hat{\beta}_j$。
- それぞれのグループについて、パラメータの分散を求める。すなわち$\hat{\Sigma}_l = \frac{1}{m_l} \sum_{j=1}{m_l} (\hat{\beta}_j - \hat{\bar{\beta}}_l)(\hat{\beta}_j - \hat{\bar{\beta}}_l)'$。
- すべての研究について、「そのグループの平均パラメータ」と「グループ1の平均パラメータ」の差を求める。これが$d$。
- 過去の研究のパラメータ推定値$\hat\beta$について、その誤差項$\epsilon$の分散行列$\Omega$を求める。それは$m \times m$のブロック対角行列で、グループ$l$の対角ブロックが$\Sigma_l + \sigma^2_i (X'_i X_i)^{-1}$。
- 話の都合上登場した謎の変数$\gamma$の共分散行列$E(\gamma \gamma')$を求める。それは、新研究がグループ1に属するなら、$\Omega$の全要素に$\Sigma_1$を足したもの。
- $\hat\beta$から事前パラメータを求める際に使う係数行列$D=(Z' \Omega^{-1} Z)^{-1} Z' \Omega^{-1}$を求める。
- 事前パラメータ$b_o=Z_o D\hat\beta$。
- 縦積みモデルの従属変数ベクトル$y$をつくる。それは新研究の従属変数$y_o$と、$b_o - Z_o D d$を縦積みしたベクトル。
- 縦積みモデルの誤差項の共分散行列$\Omega_v$を求める。それはブロック対角行列で、左上に$\sigma^2_o I$が、右下に$Z_o D E(\gamma \gamma') D' Z_o$がくる。
- 事後パラメータの推定量は、$(X'\Omega_v^{-1}X)^{-1}X'\Omega_v^{-1}y$。
つ、疲れる...
読了:Vanhonacker, Lehmann, Sultan (1990) 重回帰のメタ分析で事前分布をつくってベイズ推定
2016年4月15日 (金)
Allenby, G.M. & Rossi (2006) Hierarchical Bayes Models. in Grover, R. & Vriens (eds), The Handbook of Marketing Research: Uses, Misuses, and Future Advances, Sage.
仕事の都合で読んだ。ベイジアン・モデリングの大スター、Allenby兄貴による、HBモデルの素人向け解説。
私が心のなかで彼を兄貴と呼んでいるのは、香港映画界最後のカンフー・スター、ドニー・イェン兄貴と似ていると思うからである。聞くところによれば、ドニー兄貴は宇宙最強なアクションを追求するあまり、共演者にとんでもない無理難題を求めるのだそうだ。Allenby兄貴も、著書に"Bayesian Statistics and Marketing"なんていかにも親しみやすそうなタイトルをつけておいて、読者をあの無闇に難解な内容へと突き落すあたり、ドニー兄貴に瓜二つである。この類似性、お分かり頂けただろうか (←誰に言っているのかわからないが)
ま、さすがに市場調査実務家向けハンドブックの1章であれば、そんなには難しくないだろうと思って手に取った次第。
いわく。
過去10年、消費者行動のモデルは飛躍的進歩を遂げた。個人レベル・データの分析においてはベイジアンの手法がすっかり普及し、選択モデル(コンジョイント分析)だけでなく幅広い問題に用いられるようになった。消費者間異質性に関心が集まり、ベイジアン手法によるモデリングが進んだ。本章では、これらの進展を支えた立役者、階層ベイズモデルについてご紹介しよう。
1.想定
たとえば、ある製品の需要に対する価格の影響について分析したいとしよう。販売量が連続的単位で得られるなら、価格感受性を回帰モデルで測れる:
$y_t = \beta_0 + \beta_1 price_t + \epsilon_t$
$\epsilon_t \sim Normal(0, \sigma^2)$
って感じね。
ところが個人レベルの需要は、こんな風に連続的には動かない。そこで、連続モデルと打ち切りを想定し、
$y_t = 1$ if $\beta_0 + \beta_1 price_t + \epsilon_t > 0;$ otherwise $y_t = 0 $
という風に考える。こういう発想は、散布図やクロス集計表からは得られない。ところがマーケティング実務家は、これまでこういうモデルをあまり使ってこなかった(コンジョイント分析を別にして)。
1.1 階層モデル
さっきの式を書き換えようう。潜在変数を導入して、
$y_t = 1$ if $z_t > 0$; otherwise $y_t=0$
$z_t = \beta_0 + \beta_1 price_t + \epsilon_t$
$\epsilon_t \sim Normal(0, \sigma^2)$
潜在変数$z_t$の下で、$\beta_0, \beta_1, \sigma^2$についての推論は$y_t$と独立である点に注目。
モデルは階層的に捉えると便利なことが多い。上の例で、一本目の式は、もし販売量($z_t$)が十分に多いならば購買が生じやすい($y_t=1$)、というシナリオを表している。二本目の式は販売量と価格の関係を表している。こういう風に捉えるとモデルを精緻化しやすい。
マーケティングでは、階層モデルは(a)個々の対象者の行動と(b)対象者を通じた反応の分布を記述するために用いられてきた。前者は単位内の行動のモデル、後者はモデルのパラメータの横断的な変動のモデルである(異質性の分布と呼ぶことが多い)。
1.2 ベイジアン分析
階層ベイズモデルとは階層モデルのベイジアン手法による分析だ。ベイジアン手法とは[...ここでベイズの定理についての説明をひとしきり。事前オッズ、尤度比、事後オッズを使って説明している。これ、かえってややこしくないか]
...とまあこのように、ベイジアン手法はエレガントなのだが、その割には最近まであまり使われていなかった。ちょっとしたモデルについて適用しても、計算がややこしくなっちゃうからである。
2.HB革命
革命前、ベイズ定理を実装するためには、事前分布の確率密度に尤度をかける必要があった。たとえば、
$y_t = \beta + x_t + \epsilon_t$
$\epsilon_t \sim Normal(0, \sigma^2)$
というモデルがあるとして、$\beta$の事前分布が正規分布だとすると
$\pi(\beta) = \frac{1}{\sqrt{2 \pi s^2}} \exp \left(\frac{-1}{2s^2}(\beta - \bar{\beta})^2 \right)$
省略するけど、$\pi(\sigma^2)$もなんらか考えないといけない。で、尤度は
$\pi(y_t | \beta, \sigma^2, x_t)$
$= \prod_{t=1}^{T} \frac{1}{\sqrt{2 \pi s^2}} \exp \left(\frac{-1}{2s^2}(y_t - \beta x_t)^2 \right)$
これらを全部かけて
$\pi(\beta, \sigma^2 | y_t, x_t) \propto \pi(y_t | \beta, \sigma^2, x_t) \times \pi(\beta) \times \pi(\sigma^2)$
いやーエレガントですね。でも計算が難しすぎる。
ここで革命が起きた。MCMCの登場である。[...ここでMCMCについてかなり投げやりな説明があって...] おかげで計算が容易になり、応用が一気に広がった。
3.事例
ここでは、多変量分布のextremes(分布の裾)について調べる例を示し、極値HB+MCMCの威力を示そう。
3.1 背景
企業は、新製品をもっとも買いそうな顧客、マーケティング戦略の変化によってもっともスイッチしそうな顧客、もっとも良い反応をしてくれる人... を分析する必要がある。つまりextremesの理解が求められる。
3.2 モデル
階層ベイズ・ランダム効果ロジットモデルについて考えてみよう。対象者$h$が選択肢$i$(その属性ベクトルが$x_i$)を選択する確率についてモデル化する。
$Pr(i)_h = \frac{\exp(x'_i \beta_h)}{\sum_j \exp(x'_j \beta_h)}$
異質性をいれる。観察可能な共変量を$z_h$として
$\beta_h = \Gamma z_h + \xi_h$
$\xi_h \sim MVN(0, V_\beta)$
$\Gamma$は「部分効用が他人と違う人」がどんな人なのかを表している。$V_\beta$の対角成分の大きさは、部分効用の異質性のうち$\Gamma z_h$で捉えきれていない部分の大きさを表し、非対角成分は属性水準の評価のパターンを表す(たとえば、属性水準の部分効用の間に正の共変動があるということは、それらの水準を持っている製品が特定の人にすごく好かれるということだ)。
$\Gamma$と$V_\beta$に事前分布を与え、このモデルを階層として書き下ろすと、
$y | x, \beta$
$\beta | z, \Gamma, V_p$
$\Gamma | a, A$
$V_\beta | w, W$
パラメータの数はすごく大きいが(個人ごとの$\beta_h$があるから)、MCMCなら大丈夫。
3.3 データ
[クレジット・カードの選好について電話調査でコンジョイント実験をやった。属性は7つ、共変量は年齢、年収、性別。詳細略]
3.4 結果
[推定しましたって話があって...]
部分効用の共分散行列$V_\beta$の事後平均をみると、水準"out-of-state bank"と"low annual fee"の相関が高い。このことは、年会費の安いクレジットカードを提供することが、国外顧客の利用促進のために効果的であることを示唆している。[←このあとの説明で使うための指摘である。面白い指摘だけど、こんな風に共分散行列そのものをちくちくと眺めるのは、実際には難しかろう]
3.5 異質性の分布
各属性水準についての部分効用の確率分布を、全体についても、ある特定の個人についても観察できる[実例]。各個人の部分効用推定がかなりの不確実性を伴っていることに注意。
3.6 Focusing on Extremes
[ここ、ちょっと面白いので詳しくメモ]
$\Gamma$の事後平均をみるとわかるのは、国外銀行のクレジットカードの効用は平均して3.758低いということだ。このペナルティを乗り越えるためのインセンティブとして、利率を下げる、年会費を下げる、の2つがある。
$\Gamma$の事後平均だけをみると、どちらもインセンティブでも十分であるようにみえる。しかし、共分散行列$V_\beta$の事後平均をみると、年会費と国外銀行の相関が高い。つまり、年会費に対する感受性が高い人は国外銀行への部分効用が高めだ。いっぽう利率と国外銀行の相関は低い。
低年会費+国外銀行と低利率+国外銀行の2選択肢を考え(他の属性は等しくする)、全体効用の分布を比較してみると、前者の選択肢では全体効用のばらつきが大きくなっており右裾だけみると前者のほうが大きいことがわかる。
[なるほどね... 実際の場面ではめんどくさいのでいきなりシミュレータを使っちゃうところだと思うけど、こうやって全体効用の分布を細かく見ていくのも面白いなあ]
4. HBモデルを使うときに厄介なこと
複雑なHBモデルを推定する際には、すぐに使える(off-the-shelf)ソフトがない。WinBugsは貴重な例外だがデータサイズが大きいときには問題が生じる。HBの普及に貢献したのはSawtooth Softwareのプログラムだが、選択型コンジョイントとOLS回帰のHB推定に限定されている。そこで! 僕らが書いた"Bayesian Statistics and Marketing"を買うといいよ!Rのソフトつきだよ!!
HB推定は古典的推定とは違って閉形式の解がない。いくらバーンインしても、パラメータ推定の平均の変動は残るかもしれない。また、個々人についての点推定が得られるのではなく、推定値の分布が得られる、という点に注意。そのせいで話が複雑になることがある(マーケット・シミュレーションとか)。
やれやれ、終わった。疲れた。
なにか変わった実例が紹介されるかと期待してたのだが、結局選択型コンジョイントだったよ...シクシク。
この章、末尾に8ページにわたって主要文献解題が添えられている。労作だが、2006年の段階では、こんな風に「マーケティングにおけるHBモデルの主要論文」をリストアップすることができたのね。今ではちょっと無理だろう。
ちなみにドニー兄貴による傑作アクション・シーンのひとつがこちら。「SPL/狼よ静かに死ね」(2005, 葉偉信監督)より。この振付を覚えろと敵役の俳優(呉京)に求めるあたり、Allenby兄貴が著書において説明もなくいきなり逆Wishart分布を持ち出す際の酷薄さを彷彿とさせますね。(すいません、いまちょっと適当なことをいいました)
呉京さんは昨年公開された「SPL2」にも出演しているらしい。日本でも公開してくれるといいんだけどなあ。
読了:Allenby & Rossi (2006) 階層ベイズモデルとはなにか (feat.「SPL 狼よ静かに死ね」)
2016年4月12日 (火)
Kyriacou, D.N. (2016) The Enduring Evolution of P Value. JAMA. 315(11), 1113-1115.
JAMA (The Journal of the American Medical Association) 3月15日号のEditorial。この号には、1990年以降の生物・医学系論文におけるp値の使われ方を片っ端から調べましたというとんでもない論文が載ったのだそうで、この文章はその論文の露払い(?)みたいなものらしい。
いちおうメモをとったけど、別にいらなかったかな... ま、コンパクトにまとまった良い文章であった。(←偉そう)
いわく。
科学文献においてP値の使用が顕著になったのはFisher(1925) "Statistical Methods for Research Workers"にさかのぼる。FisherによればP値とは「仮に帰無仮説が真であるとして、観察された結果ならびにそれより極端な結果が得られる確率」。FisherはP値を統計的推論の柔軟な指標としてとらえていた(意思決定の道具ではなくて)。また、P値の適切な使用は以下の想定と結びついているものであった。(1)いま検討している因果的要因と、関心の対象である結果との間に関連性がない(=帰無仮説が真)。(2)研究デザインと分析に体系的エラーが全くない(=誤分類とか選択バイアスとか交絡とかがない)。(3)適切な統計的検定が選択されている。
こうしてみると、P値についての誤解や誤用など生じなさそうなものだが、実際にはもう生じまくりである。Goodman(2008)はP値についての12の誤解を挙げている。「P値は帰無仮説が真である確率だ」とか、「P値が.05以上だったら帰無仮説は真であり曝露とアウトカムの間に関連がない」とか。
フィッシャー派とネイマン=ピアソン派では哲学は違うが、確率についての頻度主義的解釈をとる点、ある実験を統計的に独立な結果をもたらす無数の実験のひとつとみなす点は共通しており、これが臨床試験・疫学の教育の基礎となっている。
いっぽう、違う点を挙げると...
フィッシャー派の立場では、P値は個別的な研究上の知見について、帰無仮説に反対する証拠として解釈される。有意水準を事前に固定する必要はない。対立仮説もない。仮説を受容するか棄却するかという判断ではなく、仮説に関する推論を行うのが良しとされる。
ネイマン=ピアソン派の立場では、目的は推論じゃなくて決定である。事前に有意水準を決めておき、P値がそれを下回ったら「統計的に有意」という決定を行い、対立仮説を支持する。この過程で生じうるエラーは2種類あることになる(Type IとType II)。ここから検定力という概念が生まれた。また、この考え方は臨床試験における標本サイズ決定の基盤となった。
ネイマン=ピアソン派への主な批判は、決定に柔軟性がなさすぎるんじゃないかという点である。これに対して、確かさの程度を条件つき確率として特徴づけ、因果関係を帰納的に評価しようとするのがベイジアン帰納推論である。事前分布がわからない、ベイズ・ファクターはP値よりも計算が大変、教室であまり教えられてない、というのが難点。とはいえ、P値とベイジアンを融合しようという提案もあるぞ(Greenland & Poole, 2013 Epidemiology)。
突き詰めていえば、P値を使った統計的推論とは、偶然誤差という文脈において説明理論を構築することを数学的に手助けしようという試みである。しかし、P値が提供するのは特定のデータセットの数学的記述に過ぎず、目標母集団における因果関係の科学的説明ではない。
P値の真の意味、強みと限界、そして統計的推論のもっとも適切な適用方法について理解することが重要である。P値そのものは正しく使用されていれば悪いものではないけど、事前に決めた有意水準の下で二値的仮説検証を自動的にやっちゃうのは良くない。効果量の推定値とか信頼区間とかP値そのものとかを使ったもっと複雑な過程を導入しないといかんよ。科学者・統計家・臨床家が自分の推論能力でもって科学的重要性を決められるようにね。
... Greenland & Poole (2013)って面白そうだなあ。時間ができたら探してみよう。
読了:Kyriacou (2016) p値を正しく理解しましょう
Bates, J.M., Granger, C.W. (1969) The Combination of Forecasts. OR. 20(4), 451-468.
予測結合の研究ですごくよく引用される古典なので、一応ざっと目を通した。
不偏な予測が2つあるとき、どう結合するのがよいか。
誤差分散が過去を通じてそれぞれ$\sigma^2_1, \sigma^2_2$だとしよう。重み$k, 1-k$で線形結合したとして、分散は
$\sigma^2_c = k^2 \sigma^2_1 + (1-k)^2 \sigma^2_2 + 2\rho k \sigma_1 (1-k) \sigma_2$
となる理屈である($\rho$は誤差の相関)。これを最小化する$k$は
$\displaystyle k=\frac{\sigma^2_2 - \rho \sigma_1 \sigma_2}{\sigma^2_1 - \sigma^2_2 - 2 \rho \sigma_1 \sigma_2}$
ところで、もし過去データがなかったら、最初の$k$は0.5にしといて、データが溜まるにつれて$k$を直していくしかない。時点$T$における予測結合を以下としよう。予測を$F_{1,T}, F_{2,T}$として、
$C_T = k_T f_{1,T} + (1-k_T)f_{2,T}$
二乗誤差最小な結合手法は以下の条件を持つだろう:(1)予測性能が定常だとして、予測数の増大とともに$k$が最適値に接近する。(2)予測の成否とともに$k$が変わる。(3)$k$の最適値まわりの変動は小さい。さらにいえば、ビジネスマンのみなさんのために、なるべく簡単な手法にしておきたい。
以下、予測1,2の時点$t$での予測誤差を$e_{1,t}, e_{2,t}$とする。
選手入場です。
- 過去$v$期の予測誤差の合計を$E_1 = \sum_{t = T-v}^{T-1} e^2_{1,t}$として、$k_T = \frac{E_2}{E_1 + E_2}$
- 0-1のあいだをとる定数$x$を導入し、$k_T = x k_{T-1} + (1-x) \frac{E_2}{E_1 + E_2}$
- 1以上の定数$w$を導入し、$S^2_1 = \sum_{t = 1}^{T-1} w^t e_{1,t}$として、$k_T = \frac{S^2_2}{S^2_1 + S^2_2}$
- 誤差共分散を$C = \sum_{t = 1}^{T-1} w^t e_{1,t} e_{2,t}$として、$k_T = \frac{S^2_2-C}{S^2_1 + S^2_2-2C}$
- $k_T = x k_{T-1} + (1-x) \frac{|e_{2,T-1}|}{|e_{1,T-1}| + |e_{2,T-1}|}$
実データにあてはめてみると...[いろいろ比較しているけど、別に決着がつくわけでもない。関心なくなったのでパス]
[ちょっとした修正案にも触れているけど、パス]
云々。
いやあ、時代の違いだなあ。現代であれば、なんらかの枠組みの下で最適な推定量を導出します、という風に話を進めるだろう。こんな風に推定量を思いつきで作って実データで比較するというような牧歌的な研究は、ちょっと許されないんじゃないかしらん。
というわけで、途中からまじめに読んでないんだけど、もともとの研究の文脈がわかったので良しとしよう。こうしてみると、Morris(1974)が予測結合という問題にベイズ更新という観点を導入したのは、ひとつの革新だったんだな、と納得。
読了:Bates & Granger (1969) 2つの予測をどうやって結合するか
2016年4月 7日 (木)
Clemen, R.T., & Winkler, R.L. (1986) Combining Economic Forecasts. Journal of Business and Economic Statistics, 4(1), 39-46.
ベイジアン合意モデルの有名論文。やれやれ、どういう話なのか、ようやくわかったよ...
予測対象である変数$x$について、複数の予測値からなるベクトル$\hat{\mathbf x} = (\hat{x}_1, \ldots, \hat{x}_k)'$が得られているとしよう。これらの予測を結合する一番手っ取り早い方法は、平均
$\displaystyle y_1 = \frac{\sum_i^k \hat{x}_i}{k} $
を求めることだが、この方法は、それぞれの予測値の精度のちがいを無視しているし、予測値が基づいている情報源の重複も無視している。
そこでベイジアン・モデル。かつてNewbold & Granger(1974, JRSS), Winkler(1981) はこう考えた。予測誤差のベクトル $\mathbf{e} = (\hat{x}_1 - x, \ldots, \hat{x}_k - x)'$が$MVN(0, \mathbf{\Sigma)}$に従い、共分散行列$\mathbf{\Sigma}$は正定値行列だとする。$\mathbf{\Sigma}$の推定値を$\hat{\mathbf{\Sigma}}$としよう。予測の結合は
$\displaystyle y_2 = \frac{\mathbf{u}' \hat{\mathbf{\Sigma}}^{-1} \hat{\mathbf{x}} }{\mathbf{u}' \hat{\Sigma}^{-1} \mathbf{u}}$
ただし$\mathbf{u} = (1, \ldots, 1)'$。これはつまり、重みベクトル
$\displaystyle \mathbf{w}' = \frac{\mathbf{u}' \hat{\mathbf{\Sigma}}^{-1}}{u' \hat{\mathbf{\Sigma}}^{-1} u}$
を使って$\hat{\mathbf{x}}$の加重和をとっているわけである。
$\hat{\mathbf{\Sigma}}$をどうやって手に入れるか。普通に考えれば、標本共分散行列をそのまま使えばよいのだが、データサイズが小さくてペアワイズの相関が高いとき(たいていそうだ)、不安定になってしまう。以下では、標本共分散行列をつかった正規モデルを出発点とし、標本共分散行列の不安定性にどうやって対処するかを考えよう。
[ここからいろんなアイデアが紹介される:標本共分散行列を求めるのに使うデータを増やす、最近の事例を重視する、$\mathbf{\Sigma}$は対角行列だと考えてしまい非対角要素にゼロを埋める、結合した予測値が予測値ベクトルの最小値と最大値の範囲の外に出た時だけその範囲へと修正する、ウェイトが足して1だという制約を捨てて切片なしのOLS、予測の誤差の平均ベクトルが0だという想定も捨てて切片ありのOLS、前回一番良かった予測を使う、改善を期待してあえて前回一番悪かった予測を使う。いろいろ考えてみたけど、こういうの全部アドホックだよね、というわけで...]
提案。
$\mathbf{\Sigma}$の事前分布を、共分散行列$\mathbf{\Sigma}_0$、自由度$\alpha(>k-1)$の逆ウィシャート分布とする。すると$\mathbf{\Sigma}$の事後分布も逆ウィシャート分布となり、その共分散行列と自由度は
$\displaystyle \mathbf{\Sigma}^* = \left( \frac{\alpha \mathbf{\Sigma}_0^{-1} + n \hat{\mathbf{\Sigma}}^{-1}}{\alpha + n} \right)^{-1}$
$\alpha^* = \alpha + n$
となり、$x$の事後平均は、
$\displaystyle y_3 = \frac{\mathbf{u}' \hat{\mathbf{\Sigma}}^{*-1} \hat{\mathbf{x}} }{\mathbf{u}' \hat{\mathbf{\Sigma}}^{*-1} \mathbf{u}}$
となる。
$\mathbf{\Sigma}_0$は、すべての予測を交換可能とみなして、対角成分を$\sigma^2$, 非対角成分を$\sigma^2 \rho$とする。
$\alpha$は等価な事前標本サイズに相当する。大きくすると$w_i$は等しくなっていく。
実例。1971-82年の名目・実質GNP(四半期)の、4つの機関による予測と実現値を使用。4つの予測を結合した値の予測誤差を調べる。以下の方法を試す。
- 単純平均。
- 正規モデル。過去$n$期のデータから$\hat{\mathbf{\Sigma}}$を求める。$n$は5, 10, 15, 20とする。
- 正規モデルで、過去の事例を重視する。予測$i$の$t$期の予測誤差を$e_{it}$として、$\hat{\mathbf{\Sigma}}$の各要素を、$\sum_i^n \beta^t e_{it} e_{jt} / \sum_t^n \beta^t$とする。$\beta$は1から2まで0.1刻みで動かす。
- 正規モデルで、結合した予測値が予測値ベクトルの最小値と最大値の範囲の外に出た時だけその範囲へと修正する。
- 正規モデルで、$\hat{\mathbf{\Sigma}}$の非対角成分にゼロを埋める。
- OLS。切片なしとあり。
- 前回の成績が最良だった予測を採用する、最悪だった予測を採用する。
- ベイジアン・モデル。$\sigma^2$はプールした推定値とし、$\rho=.7$とする。$\alpha$は4, 10, 20, 50, 100を試す。
- 独立性を仮定したベイジアン・モデル。$\Sigma_0$と$\hat\Sigma$の非対角成分を0とする。$\alpha$は20とする(これを変えても結果はあまり変わらない)。
結果。成績が良かったのは、単純平均、独立性を仮定した正規モデル、そしてベイジアン・モデル(独立性仮定はあってもなくてもよい)。独立性仮定がうまくワークしたのはたまたまであろうから、ベイジアンがよろしいのではないでしょうか、云々。
。。。最初に手に取ったときは文脈がつかめずに挫折したんだけど、ようやく状況がわかってきた。こういうことじゃないかと思う。
複数個の不偏な予測があって、これを結合したいとき、予測の共分散行列の逆行列を縦に合計し、これを和が1になるように調整し、これを重みとして予測値の加重和を求めるとよい。というアイデアは、ベイジアン・アプローチとは無関係にすごく昔からある。未読だが、Bates & Granger(1969)が最初だと思う。
この手法をベイジアンの観点から基礎づけたのがWinkler(1981), Bordley(1982)。$x$の事前分布が一様分布で、予測の誤差が多変量正規性を持つという前提の下で、上の予測合成が$x$の事後分布の平均となることを示した。
ここまでの話では、予測の共分散行列は基本的に既知であった。実際には、予測の共分散行列を推定するのがすごく難しい。そこで2つの路線が登場する。
- Winkler(1981)の後半に始まり、この論文へと続く路線。共分散行列についてもベイズ推測する。つまり、共分散行列の事前分布として逆ウィシャート分布を与える。合成された予測値は、 加重和を単純平均にシュリンケージしたものになる。
- Diebold & Pauly(1990)の路線。共分散行列ではなく、個々の予測を説明変数とする重回帰モデルをベイズ推定する。DieboldらはZellnerのg事前分布を使っている。合成された予測値は、OLS重回帰を単純平均にシュリンケージしたものになる。
2つの路線はどう違うんだろうか。おそらく、切片項が入れられるぶん、枠組みとしては後者のほうが柔軟なのであろう。逆にいうと、もし後者に切片項を入れないならば、本質的には前者と同じことだったりしそうだなあ...
読了:Clemen & Winkler (1986) 共分散行列もベイズ推定するベイジアン合意モデル
2016年4月 6日 (水)
Diebold, F.X., Pauly, P (1990) The use of prior information in forecast combination. International Journal of Forecasting, 6, 503-508.
いろんなモデルによる予測を結合したら素晴らしい予測が出来上がるんじゃないかしらという話をしてるところに乗り込んで行ってそんな暇があったらモデルを作り直せと言い放つ 、樹木希林なみにロックンロールな計量経済学者Dieboldさんがご提案する、経験ベイズな予測結合手法。
予測の結合において、MSE最小化を夢見て加重平均を用いるべしとか、諦めて単純平均を使おうとか、いろんな立場がありうるが、根本的な問題は、どの立場がいいのか事前にはわからないという点である。本研究では回帰の枠組みでこの問題に取り組む。
時点$t-1$において、変数$y_t$についての不偏な予測$f^1_t, \ldots, f^m_t$があり、ここから
$C_t = \omega_1 f^1_t + \omega_2 f^2_t + \cdots + (1-\sum_i^{m-1} \omega_i) f^m_t$
と作るとしよう。一期先予測誤差の共分散行列を$\Sigma$として、$C_t$の分散を最小化する重みのベクトルは
$\omega^* = (\Sigma^{-1} i) / (i' \Sigma^{-1} i)$
である($i$は1のベクトル)。元の予測が不偏なんだからMSE最小化だともいえる。これはBates & Granger (1969) にはじまる路線である。分散共分散法と呼ぼう。
次に、回帰に基づく予測結合。Zellnerのg事前分布モデルを用いる。
まず普通の回帰を考える。
$Y = F \beta + \epsilon, \ \ \epsilon \sim N(0, \sigma^2 I)$
係数に自然共役正規-ガンマ事前分布を与えて
$P_0(\beta, \sigma) \propto \sigma^{-K-v_0-1} \exp((-\frac{1}{2\sigma^2})(v_0 s_0^2+(\beta-\beta_0)'M(\beta-\beta_0)))$
ふつう$K=m+1$(切片があるから)。
さて、ここで$M=gF'F$とすると、事後分布の平均ベクトルは
$\beta_1 = \beta_0 + \frac{1}{1-g}(\hat{\beta}-\beta_0)$
$g$はシュリンケージ・パラメータになっているわけである。これをg事前分布推定量と呼ぼう。
この$g$をデータから決める方法を考えよう。
回帰式に戻り、$\sigma$の下での$\beta$の条件付き確率の事前分布を正規とみなして
$P_0 (\beta | \sigma) = N(\beta_0, \tau^2 A^{-1})$
とすると、事後分布の平均ベクトルは
$\beta_1 = \beta_0 + \frac{1}{1-\hat{\sigma}^2/\hat{\tau}^2}(\hat{\beta}-\beta_0)$
となる。g事前分布推定量の$g$が$\hat{\sigma}^2/\hat{\tau}^2$にすり替わったわけである。$\hat{\sigma}^2$と$\hat{\tau}^2$は推定量があって...[省略]。これを経験ベイズ推定量と呼ぼう(さっきのも経験ベイズではあるんだけどね)。
実例。名目・実質GNPについての4社の予測データを用いる。一期先予測について、4社の予測、分散共分散法での結合予測、経験ベイズ推定量による結合予測、いろんなgでのg事前分布推定量による結合予測、を比較。
分散共分散法、OLS回帰による予測(つまりg=0のg事前分布推定量)はぱっとしない。経験ベイズはぐっと良くなる。g事前分布推定量はgが大きいときに良い。gが無限大だということは算術平均だということなので、つまり算術平均への大きなシュリンケージで良くなったという次第である。
... うぐぐぐ。大筋はつかめたけど、細かいところがわからない。やはりg事前分布の話をきちんと勉強せなあかんのか... つらい...
読了:Diebold & Pauly (1990) ベイジアン・シュリンケージによる予測結合
2016年4月 4日 (月)
経済予測でもビジネス上の予測でもなんでもいいんだけど、異なる手法による複数の予想が目の前にあるとき、それを結合すれば最強の予想になるじゃん!... というアイデアについて、Clemen(1989)が長大なレビュー論文を書いている。あとで気が付いたんだけど、この論文には6人の識者によるコメントがつけられていた。
うち5人のコメントをメモ。うっかりしていて、Horgarthという人のコメントは未入手である。
Armstrong, J.S. (1989) Combining forecast: The end of the beginning or the beginning of the end? International Journal of Forecasting, 5, 585-588.
Clemenも述べているように、予想結合についてこれまでに分かっている主な結論は2つある。(1)予想の結合は誤差を減らす。(2)単純な平均でうまくいく。
逆にいうと、これまでの研究から上記以上のガイドラインは得られそうにない。その意味で、我々は終わりの始まりにいる。今後は以下の方向の研究が必要だ。
- メタ分析。コーディングが難しいけど。
- 現実的なシミュレーション。問題点: (1)ある手法が優れている理由はわからない。(2)状況の変化に対応するまでに時間がかかる。
- ルール・ベースの予想。
今後の課題:
- 結合した予測がよりよくなるのはどんなとき?
- 具体的にどんな手法群で予測するのがよいか?
- 単純平均は常に最良か?
- 結合するとどのくらいよくなるのか(コストに見合うのか)?
Diebold, F.X. (1989) Forecast combination and encompassing: Reconciling two divergent literatures. International Journal of Forecasting, 5, 589-592.
計量経済学者にとっては、経済システムにおける構造的諸関係の理解が主目的であり、予想は二の次だ。このパラダイムでは、異なるモデルによる予想の結合などお呼びでない。
この10~15年の間に、計量経済学は理論重視からデータ重視へと大きく舵を切った。我々はモデルの誤指定の可能性を認めるようになり、既知の真のモデル形式をどうやって想定するかではなく、データに最良の説明を与えるモデルをどうやって見つけるかに焦点を当てるようになった。しかしそれでも、異なるモデルによる予想の結合はほぼお呼びでない。そんな暇があったらモデルを改善すべきだ、と考えるのがふつうである。
そもそも予想結合の正しい使い方とは何か。情報集合が即時に結合できる世界であれば、予想ではなく情報集合を結合すべきである。いっぽう、せまる締切か何かのせいで、情報集合の結合が難しい場合も多い。これが予想結合のレゾンデートルである。
計量経済学は長期的視野に立ち、データ生成過程の特徴をうまく捉えるモデルへの累積的な科学的接近を良しとする。プーリングは短期的視野に立ち、対立をどうやって取り繕うかを考える。ま、どっちも大事ではある。
往年の女優メイ・ウェストは「いいことがありすぎるのってステキ」("Too much of a good things is wonderful")といったが、予想結合にはあてはまらない。予想のユーザがモデルのビルダーでもあるならば、情報集合を結合し、真剣な分析を行うべきだ。
もし共分散が既知ならば、最適なプーリング予想のMPSE(予測誤差の平均平方)は最良の予想のMPSE以下となるはずだ。しかし実際にはそうはならない(ウェイトにサンプリング誤差が乗っているから。共線性のせいでさらに深刻になる)。そのため、現実的には単純平均が最良となることが多い。Diebold & Pauly (1990, Int.J.Forecasting)は、ベイジアン・シュリンケージによってさまざまな程度の事前情報を統合する方法を示している。
云々。
Mahmoud, E. (1989) Combining forecasts: Some managerial issues. International Journal of Forecasting. 5, 599-600.
Clemenさんのレビューにはビジネス分野での事例が少ない。主観的予想と定量的予想を組みあわせている例はいっぱいあるのだけれど。[と、簡単なレビュー...]
Makridakis, S. (1989) Why combining works? International Journal of Forecasting. 5, 601-603.
予想の結合で誤差が減るのは、予想の誤差を生む諸要因を平均するからである。諸要因とはすなわち、(1)測るべきものを測ってない。需要の代わりに注文数や生産量を使っている、とか。(2)測定誤差。(3)パターンや関係性が不安定だったり変化してたりする。(4)モデルが過去の誤差を最小化している。
予想結合を改善するポイント: (1)手法の成績をチェックし続け、良い手法だけを結合する。(2)お互いに補完的な関係にある手法を結合する。保守的な手法と過去トレンドの補外を結合するとか。(3)意思決定者からの主観的判断をひきだす。
云々。
Winkler, R.L. (1989) Combining forecasts: A philosophical basis and some current issues. International Journal of Forecasting. 5, 605-609.
予想結合の研究史が意外に浅い理由のひとつは、予想にかかわる人々の多くが統計モデリングの伝統のなかで育ち、真のモデルの探索を重視してきた、という点であろう。もっとも、この伝統と予想結合は必ずしも矛盾しないのだが(重みを「そのモデルが真である確率」と捉えればよい)、私としてはむしろ、この流れゆく世界において真のモデルなんかないのだという立場に立ちたい。
人々の統計的バックグラウンドによるもう一つの帰結として、理論なり過去データなりに基盤を置くという点がある。でも主観的判断も大事だ(これはベイジアンの枠組みでうまく形式化できるだろう)。ポイントは、複数の予測は必ずしも真のモデルを目指して競争しているわけじゃないという点である。
取り組むべき課題:
- 結合ルールの形式。黄金のルールはない、その背後の想定が大事。ベイジアン・アプローチによる研究が有用であろう(実際のルールがベイジアンかどうかは別にして)。
- 予想が一致していたときどうするか。どのモデルもAとBが独立だとみなしていたとして、結合した予測においても独立かというと、これがなかなかややこしい。予想の不確実性のせいで直感に反することがよく生じる。
- 予想が劇的に違っていたらどうするか。
- モデル間の依存性。共線性にどう対処するか。
- 予想の特性の不確実性。データが少ないときにどうするか。
- 予想プロセスの不安定性。モデルが時間とともに性質を変えていく場合とか。
- 頑健性と単純なルールの役割。ベイジアン・シュリンケージで共分散行列を対角行列に近づける路線が有望であろう。
- 集団内相互作用の役割。
...一番おもしろかったのはDieboldという人のコメントであった。異なる予測モデル1, 2, 3...を所与としてその出力を結合することを考えるより、より良いモデルを作ることを目指すべきだというのは、なるほど正論である。実のところ、これは予想結合だけではなく、もっと最近のベイジアン・モデル平均に対してもモヤモヤと感じていた点なのだけれど、この分野じゃそういう風には考えないんだろうな、と諦めていた。そうか、こういう批判はアリなのか。
Dieboldさんとほぼ同じ議論を展開しているにも関わらず、Winklerさんのほうは予想結合に好意的だ、という点も面白い。これは要するに、モデルというものをどう捉えるかという哲学的なスタンスの問題であろう。
読了: Armstrong, Diebold, Mahmoud, Makridakis, Winkler (1989) 予想結合をめぐる識者のコメント
Bordley, R.F. (1982) The combination of forecasts: a Bayesian approach. Journal of Operation Research Society, 171-174.
これも、80年代のベイジアン合意研究でよく引用される論文。中身はWinkler(1981)とほぼ同じなのだが、独立に書かれた論文だそうだ(と、どこかに書いてあったが、どこだっけ... Clemenの文献レビューかな...)。
いわく。
$X$についての$n$個の予想$z_1, \ldots, z_n$があるとき、その加重和
$Q = \sum_k w_k z_k$
は、$z_1, \ldots, z_n$が共分散行列$S$を持つ確率変数であるとき
$Q = (I^t S^{-1} I)^{-1} (I S^{-1} z)$
とすることで分散最小になる。ということは、実はBates & Granger (1969) などがとっくに示している。問題は、これが最良の推定量だといえるのがどんなときか、だ。これにベイジアン・アプローチで答えようとしたのがBunn(1975)なのだが、いくつか欠点がある[説明省略]。厳密な解を示そう。
ベイジアン・アプローチでいうと、予想を受け取った意思決定者の事後分布は
$f(x | z_1, \ldots, z_n) = \frac{f(z_1, \ldots, z_n | x) f(x)}{\int 分子 dx}$
なんだけど、$f(x)$がわかんないので、Edwards et al.(1963)に従い、有限区間$B$について
$f(x | z_1, \ldots, z_n) = \frac{f(z_1, \ldots, z_n | x) }{\int 分子 dx}$
とする。[←これ、要するに拡散事前分布を使うってことだよね...当時はそういういい方はなかったのだろうか]
いま、$f(z_1, \ldots, z_n | x)$が真値まわりのMVNに従い、共分散行列が$S$だとすると、[...途中大幅に端折って..] 上式の$Q$が事後分布の平均、つまり最良の推定量であることが示せる。
いっぽう、$f(z_1, \ldots, z_n | x)$が対数正規分布をとるならば(汚染レベルの評価なんかはそうですね。過小評価は小さいが過大評価は大きい)、重みつきの幾何平均が最良になる。このように、最良の推定量は誤差の分布次第である。
2016年4月 3日 (日)
Winkler, R.L. (1981) Combining probability distributions from dependent information sources. Management Science, 27(4), 479-488.
80年代のベイジアン合意モデル研究として、よく引用されている論文。
いわく。
異なる情報源から得られた推定や予測(これを「専門家」と呼ぶ)から、どうやってひとつの値(「合意」)を得るか。ここでポイントになるのは、専門家のあいだに確率的(stochastic)な依存性があるかもしれないということ。これは先行するベイジアンモデルであるMorris (1977, MgmtSci.)なんかがあまり注目してこなかった点だ。
関心ある変数$\theta$の分布について$k$人の専門家が評価するとしよう。話の都合上、$\theta$は実数、$k$個の予測分布はみんな連続とする。専門家$i$の密度関数を$g_i$とする。その平均
$\mu_i = \int \theta g_i (\theta) d\theta$
を$\theta$の点推定値とみることができる。誤差を
$u_i = \mu_i - \theta$
と書く。誤差の密度を$g_i (\mu_i - u_i)$と書く。
意思決定者から見た$\vec{u} = (u_1, \ldots, u_k)^t$の密度関数を$f$とする。意思決定者の立場からは、$\theta$についての知識は$\vec{u}$の密度関数を変えないと想定する。つまり、$f$の関数形は$\theta$や$\vec{\mu} = (\mu_1, \ldots, \mu_k)^t$に依存しないと想定する。なお、この想定は緩めてもよい(話がややこしくなるけど)。
意思決定者は$\theta$の事前分布を持っていて、専門家の意見によってそれを更新し事後分布を得る。ここで、$f(\mu_1 - \theta, \ldots, \mu_k - \theta)$を尤度関数とみることができるから、事前分布を$h_0(\theta)$とすれば、事後分布は
$h(\theta | g_1, ..., g_k, f, h_0) \propto h_0(\theta) f(\mu_1 - \theta, \ldots, \mu_k - \theta)$
さあ、準備はできた。$f$をどうやって決めるか。
ここでは、$f$は$k$変量正規分布で、平均はすべて$0$、共分散行列$\Sigma$は正定値行列だ、と仮定する。この仮定が無理めな場合でも、適切なキャリブレーションによってこれに近づけることができるんとちゃいますかね。
$\Sigma$が既知であるとしよう。
$\theta$について拡散事前分布を想定すると、事後分布はこうなる。$1$の縦ベクトルを$\vec{e}$とし、
$\mu^* =\vec{e}^t \Sigma^{-1} \vec{\mu} / \vec{e}^t \Sigma^{-1} \vec{e} $
$\sigma^{*2} = 1 / \vec{e}^t \Sigma^{-1} \vec{e} $
として、標準正規密度関数を$\phi$として、
$h(\theta | \vec{\mu}) \propto \phi[(\theta - \mu^*) / \sigma^*]$
具体的に言うとこうだ。事後分布の平均は、個々の$\mu_i$の重み付け和 $\sum_i^k w_i \mu_i$となり、重みは共分散行列の逆行列 $\Sigma^{-1} = (\alpha_{ij})$を縦に足し上げた値に比例させた合計1の重み
$w_i = \sum_j^k \alpha_{ij} / \sum_m^k \sum_j^k \alpha_{mj}$
となるわけである。相関が高いときは重みが負になっちゃっても全然おかしくないという点に注意。
[数値例。省略]
$k$が大きくなると$\Sigma$を与えるのが大変になるので、相関行列の非対角成分が全部同じ、という制約をかけて考えると...[略]
$\Sigma$が未知である場合。
$\theta$と$\Sigma$はアプリオリに独立だと想定します。$\theta$には拡散事前分布を想定します。$\Sigma$には逆ウィシャート事前分布を与え、ハイパーパラメータを$\delta_0, \Sigma_0$とします。。[...中略...]事後分布は$t$分布となり、自由度は$\delta_0+k-1$、平均は
$m^* = \vec{e}^t \Sigma_0^{-1} \vec{\mu} / \vec{e}^t \Sigma_0^{-1} \vec{e}$
分散は[...省略]。事後分布の平均をよくみると、$\Sigma$が$\Sigma_0$にすり替わっただけであります。
[数値例。省略]
。。。なるほどねえ。ベイジアン合意って、もともとこういう枠組みだったのか。この論文をもっと早く読んでおけばよかったな。
ところで、わからないところを検索していてうっかり見つけてしまったのだけれど、この論文の内容について、言い回しや数値例まで含めほぼ逐語的であるとさえいえる、解説というかなんというか、を提供している日本語の紀要論文があった(美しい表現)。人によって見方が分かれるところかもしれないが、そういうのもアリなんじゃないか、と、これは本気で思う。非専門家としては、誰かに日本語にして頂けるだけで助かります。さらにいえば、いま自分が調べていることがほんとに誰かの役に立つ話なのか、だんだん不安になってきていたところだったので、その意味でもほっとした。
読了:Winkler(1981) ベイジアン合意モデル (正規性仮定バージョン)
2016年3月31日 (木)
Morris, P.A. (1974) Decision Analysis Expert Use. Management Science, 20(9), 1233-1241.
Clemen (1989)のレビューで、ベイジアン合意モデルの初期研究として挙げられていたもの。80年代の論文をいくらめくっても、いまいち文脈が掴めず腑に落ちないもので、思い切って遡ってみた。こんなことをしているから睡眠時間が足りなくなるのだが。
論文冒頭には「本論文は専門家による情報を評価する論理構造を提出する研究シリーズの一本目だ」とあるのだが、続きの論文はどれなのかわからない(調べてない)。
いわく。
専門家についての研究には2系統ある。(1)専門家からどうやって情報を引き出すか。(2)専門家からの情報をどう使うか。前者の研究としてはたとえばデルファイ法がある。本研究は後者に焦点を当てる。
個々の専門家がある未知の変数について確率評定を行った場合について考える。未知の変数を$x$とする。ある情報状態$\delta$における確率密度関数を$\{x | \delta\}$とする。$\delta$の下での事象$E$の確率を$\{E | \delta\}$とする。
一般化したサメーション演算子$\int_x$を定義しておく。$x$が離散だったら$\int_x = \sum_{all \ x}$、連続だったら$\int_x = \int_{all \ x} dx$である。
$\delta$のもとでの$x$の期待値は次のように定義できる: $\langle x | \delta \rangle = \int_x x \{x | \delta\}$。
[なぜこんなエキゾチックな記号を使うのか... 以下のメモでは、本文中の$\{ x | d \}$のかわりに$P (x | d)$と書き、$\langle x | d \rangle$の代わりに$E(x | d)$と書く。$x$は離散だと決め打ちし、$\int_x$のかわりに$\sum_x$と書く]
まず、専門家が一人の時。
専門家の持つ事前分布を$P(x | e)$、意思決定者の持つ事前分布を$P(x | d)$とする。[←以下を読んでいくと、専門家は事前分布を更新しない。ただ公表するだけだ。つまり、ここでいっている事前というのは、意思決定者が専門家の情報によって自分の信念を更新する前、という意味合いだ]
専門家からの情報をどう使うか。いま、専門家が自分の事前分布$P(x | e)$を公表したとしよう。意思決定者はベイズの定理に従って自分の確率評価を更新する。
$P(x | P(x|e), d) = \frac{P (P(x|e) | x, d) P(x | d)}{P (P(X|e) | d)} $
$= k P (P(x|e) | x, d) P(x | d) $
[ここからの説明があまりに回りくどくてわかりにくいので全訳する:]
ベイズ定理を適用する事例の多くにおいて、尤度関数は特定の確率モデルから導出されている。しかし重要なのは、尤度関数とはいつだって主観的に特徴づけられるものだという点である。直接的な確率付与で特長づけられることもあれば、適切な確率モデルを選ぶことによって特徴づけされることもあるが、どちらにしても主観的である。
専門家の事前分布の可能な集合が、実数の可算集合でパラメータ化されているとしよう。尤度関数を評価するということは、通常の同時確率関数を特徴づけるということに等しい。この仮定によって、柔軟なモデリングが可能になり、かつ、関数を確率変数として扱うことについての詳細な数学的分析が不要になる。
変数$x$が値$x_0$をとる、という風に考えるのと同じくらい容易に、変数$x$のある関数が値$E(x | e)$をとる、という風に考えることができる。従って、$E(x | e)$は概念的には、他のあらゆる未知の変数と同じように評価することができる。しかし、$P (P(x|e) | x, d)$は古典的な意味での「確率の確率」の特徴づけではない。それは、離散的な場合で言えば、専門家の事前分布が$P(x | e)$であるという事象の確率である。
たとえば、$P(x | e)$の可能な値の集合が$[f_1(x), f_2(x), f_3(x), f_4(x), f_5(x)]$であるとしよう。それぞれの値は、図1に示す5つの確率分布からドローされた値である。関数$P(x|e)$が値$f_3$をとる確率は、すべての$x$について$P(x|e)$である確率である。
尤度関数は、私たちは専門家のアドバイスに、その専門家に対する私たちのフィーリングに応じた重みをつけなければならない、という直感的概念を確認するものとなっている。実のところ、尤度関数は私たちが持っている専門家についてのモデルである。尤度関数は、フォーマルに決めてもいいし、インフォーマルに決めてもよい。この種の評価が持っているユニークな性質は、ある興味深い概念的挑戦を提出する。
尤度関数を、専門家の信頼性についての主観的指標としてみることもできるだろう。意思決定者は$x$の真値を与えられている。もし彼が、専門家はとても有能だと感じているのなら、彼は、専門家がその大部分が真値を指し示しているような狭い確率によって返答するということに高い確率を割り当てるだろう。したがって、尤度関数は$x$に強く依存し、意思決定者の事前分布を著しく更新するだろう。もし意思決定者の専門家評価が、真値に対してinvariantであるならば、更新された分布はオリジナルの事前分布と等しいだろう。直感的にはこのことは、意思決定者のこころのなかで、専門家がその変数に対して全く反応しないということを意味している。
[なんだろう、このまわりくどさは... なぜこんな風に延々説明しないといけないのか、文脈が理解できない。私がなにかをすごく見落としているのではないかという不安が募る...]
専門家が$N$人いる場合。
最初の$n$人の専門家の事前分布からなる集合を次のように略記する:
$E_n = [P(x | e_1), P(x, e_2), \cdots, P(x | e_n)]$
意思決定者の課題は事後確率$P(x | E_n, d)$の決定である:
$P(x | E_n, d) = k P (E_n | x, d) P(x | d) $
尤度関数は条件付き確率に分解できる:
$P(E_n | x, d) = P(P(x|e_N) | E_{N-1}, x, d) P(E_{N-1} | x, d) $
$= \prod_i^N P(P(x|e_i) | E_{i-1}, x, d)$
事後確率に代入して
$P(x | E_n, d) = k \prod_i^N P(P(x|e_i) | E_{i-1}, x, d) P(x | d) $
というわけで、$x$と専門家$1$から$(i-1)$までのパフォーマンスの下での専門家$i$のパフォーマンスについてどう感じるかを特徴づけるという難しい課題が生じる。
なお、現実的ではないけれど、専門家が$x$の下で条件つき独立だと想定すると、話はぐっと簡単になる。すべての専門家$i$について、尤度関数は
$P(P(x | e_i) | E_{i-1}, x, d) = P(P(x| e_i) | x, d)$
専門家の経済的価値について考えてみよう。専門家を雇うかどうか自体がひとつの決定となるような場面では重要な問いである。
不確実性の下での決定問題で、選択肢$a_1, \ldots, a_N$から一つ選ばないといけないという場面を考える。選択肢$a_i$の価値は、もし$x$が既知だったらその期待値が決まると想定し、これを$E(v | x, a_i, d)$とする。
専門家に相談することなく決定することによって得られる価値の期待値は、最良の選択肢を選ぶことの期待値に等しい:
$E (v | d) = \max_i \sum_x E(v | x, a_i, d) P(x | d)$
専門家に相談に乗ってもらって決定することによって得られる価値の期待値は、専門家の返事によって変わってくるので、すべての可能な返事について足しあげて:
$E (v | C, d) = \sum_{P(x | x)} [ \max_i \sum_x E(v | x, a_i, d) P(x | P(x | e), d)] P(P(x|e) | d)$
専門家の価値は$E (v | C, d) - E(v|d)$である。
事例。
先に断っておくと、ある専門家による確率付与を情報とみなすということは、その専門家自身になにかを付与するということとは異なる。これは直感的にはなかなかわかりにくく、訓練が必要である。
意思決定者はピクニックに行きたいと思っている。彼は、50%の確率で雨が降ると思っている。彼はラジオをつけて天気予報マンが喋りだすのを待っているが、そのあいだに、天気予報をどう使おうかと考えている。天気予報マンがこれからしゃべる降水確率を$p=P(R | e)$とする($R$は雨の略。降らないことは$R'$と書く)。
彼は考える。仮にいま、誠実な千里眼の人があらわれ、「雨が降りますよ」と教えてくれたとしよう。その場合、天気予報マンは高い確率で「雨でしょう」というだろう。その確率$P(p | R, d)$はただの$p$より高い。こう仮定しよう:
$P(p | R, d) = 3 p^2$
逆に、千里眼さんが「雨は降りませんよ」と教えてくれたとしよう。その場合、天気予報マンが「雨でしょう」という確率は低い。その確率についてこう仮定しよう:
$P(p | R’, d) = 3 (1- p)^2$
以上で、尤度関数が定義された。これから天気予報マンがどんな$p$を口にしようが、彼は事後確率を次のように求めればよい:
$P(R | p, d) = \frac{P(p | R, d) P(R | d)}{P(p | R, d) P(R | d) + P(p | R', d) P(R' | d)} $
尤度関数と自分の事前分布をいれると、結局こうなる:
$P(R | p, d) = \frac{p^2}{2 p^2 - 2 p + 1}$
[力尽きたので、さらにちがう天気予報マンの予報を聞く場合は省略。さっさとピクニックに行け]
いやあ、疲れた...
この論文の主題は、複数の予測を結合する際にその重みをどうやって決めるかという問題ではなくて、その手前の、ヒトの意見というのはこのように用いられるべきだというベイズ流の枠組みを提供することなのであった。うむむ、遡りすぎたような気がするが...
読んでいて思ったのだけど、もしかすると74年の段階では、ベイズの定理を使うという発想そのものが、かなりの説明を要したのではないだろうか。この論文では、専門家による事象の確率的評価と、意思決定者による専門家の情報の確率的評価とはちがうものなのだ、という記述が繰り返されている。いまならもっとサラッと書いてしまうのではないかと思う。
読了:Morris (1974) 専門家の意見を用いたベイジアン決定モデル
2016年3月29日 (火)
Duncan, G.T., Gorr, W.L., & Szczypula, J. (2001) Forecasting analogous time series. in Armstrong, J.S. (ed.) "Principles of Forecasting," Springer. pp 195-213.
こんなことをセキララに書くのは恥ずかしいのだが、原稿の都合で70-80年代の予測研究におけるベイジアン・コンセンサスの研究について調べていたら、ベイジアン・プーリングやらあれやらこれやら、聞きなれない概念が山ほど出てきて、なにがどうなっているのかわからなくなり、もう大混乱してしまったのだった。
ようやく見つけ出した、ベイジアン・プーリングに的を絞った解説。なんと、かつて大枚はたいて買ったきり本棚に鎮座していた分厚いハンドブックの中にみつかった。資料は買っておくべきだ。買った資料の目次くらいは目を通しておくべきだ。
著者いわく。
ベイジアン・プーリングとは、ベイジアン・シュリンケージ、経験ベイズ、スタイン推定の別名である[←えっ...? まったく同じ意味ってこたないでしょう?!]。ある時系列についての予測に、それと類比的な(analogous)他のたくさんの時系列を使う。ベイジアンVARだったら、予測したい時系列にとって他の時系列は独立変数(リード指標)だということになるが、ベイジアン・プーリングではそうじゃない。
手順は以下の通り。
その1、予測したい時系列(以下「ターゲット時系列」)と類比的な時系列(以下「類比時系列」)を選ぶ。手当たり次第に全部使うのはよろしくない。以下のアプローチがある。
- 相関が高い時系列を選ぶ。一本ずつターゲット時系列との相関をみて、なんらかの閾値を超えた奴を選びましょう、とか。過去の相関はたまたま生じただけかも、というのが欠点。
- 多変量の因果的因子をつかって時系列をクラスタリングする。たとえば、地域ごとに時系列があるとして、人口密度とか住民の年齢とか収入とかで地域をクラスタリングしましょう、とか。時系列以外のクロス・セクショナルデータが使えるし、時系列の相関の背後にある因果関係を利用できるというのがメリット。いっぽう、時系列の相関を生んでいる大事な変数が手元にないかも、という危険もある。
- 専門家の判断で選ぶ。観察されている相関と併用するがよろし。
その2、時系列をスケーリングして、プールするデータを等質的にする。たとえば、一本ずつ標準化する(平均を引いてSDで割る)とか。
その3、モデリング。同じspecificationの時系列モデルを2つ推定する。(1)ローカル・モデル。ターゲット時系列にあてはめる。(2)グループ・モデル。類比時系列のプールにあてはめる。
著者らのモデル(適応的ベイジアン・プーリング, ABP)を例に挙げると、こんな感じ。
- ローカル・モデルのほうは指数平滑化モデル。レベル項とトレンド傾き項を持ち、切片項はなし。指数平滑化、カルマン・フィルタ、多状態カルマン・フィルタなどで推定する。また、単純な指数平滑化を使って、パラメータの分散を再帰的に推定しておく[←うーん、このくだり、ちょっと理解できない... ローカル線形トレンドモデルをカルマン・フィルタで推定したのなら、レベルと傾きについての誤差分散系列も得られるのでは?]
- グループモデルのほうは短期記憶モデル。プールした時系列における前期の標本平均を当期のレベルの推定値とし、前々期と前期の差の標本平均を傾きの推定値とする。[←まじか。そんなええかげんな話でいいのか。本文中の別の場所では「グループモデルとしては階層ランダム効果モデルを最尤推定する」と言い切っているのに。ある論文の中のこの温度差はいったいなんなのか]
その4、パラメータ結合。2つのモデルのパラメータを結合する。重みをシュリンケージ・ウェイトという。ウェイトは各パラメータの分散に反比例させ、和を1とする。
たとえば、季節要素のない単変量予測についての経験ベイズ・シュリンケージは以下の通り。ターゲット時系列の推定されたレベルを$L_{it}$、傾きを$S_{it}$とする。グループ側の標本平均を$\bar{x}_t$、一期差の標本平均を$\bar{\delta}_t$とする。結合した推定値は
$L'_{it} = u_1 L_{it} + u_2 \bar{x}_t$
$S'_{it} = w_1 S_{it} + w_2 \bar{\delta}_t$
ベイジアン・シュリンケージは時間定常でボラタリティが大きいモデルで用いることが多いんだけど、別に時間定常でなくてもよいことに注意。
その5、予測。k期先の予測がほしければ、単純に$L'_{it} + k S'_{it}$を使うがよろし。[←えええ?当期のレベルと傾きを伸ばしちゃうの? ひょっとして傾きをstochasticな要素ではなく、時変のない確定的要素として捉えているのだろうか?]
その6、予測の再調整。その2でやったスケーリングをもとに戻す。
ベイジアン・プーリングの原則:
- 時系列のボラタリティが大きいときに使う。[研究がいろいろ紹介されているけど、パス]
- 時系列が外れ値を含んでいるときに使う。[これもパス]
- 時系列をクラスタリングすると時系列がクラスタ内で似ていてクラスタ間で違うというときに、適切なクラスタをプーリングすると効果大。[そりゃそうだろうな。詳細パス]
- プーリングとグルーピングは単純に。[グルーピングとして{全標本、相関ベース、モデルベース、専門家ベース}、クロス・セクショナルのプーリングとして{Holt法, 多状態カルマンフィルタ}を比べたら、専門家がグルーピングしてHolt法でプーリングするのが一番良かった、という事例を紹介している。そんなん事例によるんじゃないかと思うのだが]
- 時系列の本数が少ないときは、時系列を監視し、パターンが変わったなと思ったら手動でシュリンケージ・ウェイトを切り替えるべし。[これも実験が紹介されている。パス]
。。。そんなこんなで、「かゆいところに手が届く」というより「かゆいところがいっぱい出てくる」という感じの文献であったが、ま、勉強になりましたです。
読了:Duncan, Gorr, & Szczypula (2001) 時系列のベイジアン・プーリング
2016年3月27日 (日)
Clemen, R.T. (1989) Combining forecasts: A review and annotated bibliography. International Journal of Forecasting, 5, 559-583.
原稿の都合で読んだ。80年代までの予測結合の文献紹介。予測研究、心理学、統計学・管理科学の3領域にわけて過去研究を概観したのち、応用例と今後の方向について議論。本編は比較的に短いが、長大な文献解題がついている。
面白かったところをメモ:
- 心理学では50年代に専門家の判断についての研究がさかんに行われた。さきがけはMeehlというひとの、clinitianの判断を反応変数、criteriaを説明変数にして回帰を行うという研究で、これはbootstrappingといわれた(統計学で言うbootstrappingとは無関係)。この流れから、専門家の判断を平均するとよりよいという研究がうまれた。70年代には、6~20人の判断を平均せよとか(Hogarthという人)、いや2~3人でよいといった研究があった。へー。著者はこの系列の研究を心理学的合意モデルと呼んでいる。雑誌でいうとOrganizational Behavior and Human Performanceが多い模様。
- 統計学方面の初期研究(雑誌で言うとOperational Research Quarterlyが多いそうだ)では、さかのぼればきりがないが、予測結合をベイズ流に考えた研究としてGeisser(1965, JASA)がある。
- それとは別に、70年代から、他人の予測を含めいろんな情報をデータとみて確率分布をベイズ更新していくという予測結合モデルの流れがあった。こちらはWinker, Agnewといった人たちだそうだ。著者はこれをベイジアン合意モデルと呼んでいる。
- 著者いわく、ベイズ流の予測結合研究の有望な方向性がふたつある。(1)複数の予測を組み合わせて使う決定支援モデル。(2)わざわざ複数の予測を組み合わせて使うことに意味があるのかどうかの検討。
2016年3月11日 (金)
MacCallum, R.C., Edwards, M.C., Cai, L. (2012) Hopes and Cautions in Implementing Bayesian Structural Equation Modeling. Psychological Methods, 17(3), 340-345.
Rindskopf, D. (2012) Next Steps in Bayesian Structural Equation Models: Comments on, Variations of, and Extensions to Muthen and Asparouhov. Psychological Methods, 17(3), 336-339.
Muthen, B., Asparouhov, T. (2012) Rejoinder to MacCallum, Edwars, and Cai (2012) and Rindskopf (2012): Mastering a New Methods. Psychological Methods, 17(3), 346-353.
MuthenらのベイジアンSEM(BSEM)に対してPsychological Methods誌上に載ったコメントと回答。原稿の準備で読んだ。
ここでいっているBSEMとは、SEMへのベイジアン・アプローチそのもののことではなく、Muthen & Asparouhov (2012)が提唱した方法論のこと。CFA(確認的因子分析)モデルをML推定するのではなく、因子負荷や残差共分散といったパラメータに事前分布を与えてMCMC推定する。伝統的には因子負荷行列にエイヤッとゼロを埋めるんだけど、その代わりに情報事前分布をいれる、というのがミソ。従来のEFA(探索的因子分析)とCFAの中間くらいの使い方が想定されている。
BSEMについては、このやり取りの後、Stromeyer et al. (2014)という批判論文も出ているが、そちらのほうにはMuthen一門がほぼコテンパンといってよい返事をしている。
せっかくなので(なにがだ)、原文通りではなく、勝手に問答体に翻訳してメモしてみよう。
以下, MacCallum et al. をMEC, RindskopfをR, Muthen & Asparouhovを導師と略記する。
[MEC] 導師はこうおっしゃいました。伝統的なSEMならゼロに固定したであろうパラメータに分散の小さな事前分布を与え、自由推定するパラメータに分散の大きな事前分布を与えよ。
導師よ、そのハイパーパラメータの値はどうやって決めるのがよろしいでしょうか。これ、結果に響くんですが、とても決めにくうございます。
事前分布の解釈は、特にパラメータが自然な制約を持っているとき(分散は非負だとか)、すごく難しくなります。
パラメータ同士に関係がある場合もそうです。たとえば、因子が直交してるCFAでは、ある測定変数の共通因子負荷の平方和は共通性で、これに独自因子負荷を足すと全分散となり、これはデータで固定されています。つまり、因子負荷の事前分布は独自因子分散の事前分布に影響するわけです。さらに、共通性は負荷の非線形関数なので、因子負荷に対称な事前分布を与えると、独自因子の分散への影響は非対称になります。
交差負荷に与えた事前分布が共分散に与える影響が、残差共分散に与えた事前分布のせいで変わってくる、という問題もあります。たとえば、独立クラスタ解で直交因子が$p$個ある場合を考えましょう[←おそらく、因子数$p$、因子は直交、各測定変数はそのうちひとつだけに負荷を持つという状況を指しているのだと思う]。同じ因子に負荷を持たない任意の2変数の間の共分散は0です。しかし、もしすべての交差負荷に事前分布$N(0, \sigma)$を与えると、同じ因子に負荷を持たない任意の2変数の間の共分散に、平均0, 分散$(p-1)\sigma$の事前分布を与えてしまったことになります。
BSEMのユーザはよほど気を付けないといけないと思うのです。導師が仰るように、いろんな事前分布を試して感度分析するとか...
[導師] 間違った印象を与える質問だ。
BSEMでは全分散はデータで固定されていない。それは事後分布を持つ推定パラメータだ。
あるパラメータの事前分布が、他のパラメータの事前分布とデータの共分散によって決まってしまう、なんてこともない。事前分布はデータとは関係ない。
残差共分散の事前分布の選択については、確かに検討が必要だ。もっとも、負荷のような重要なパラメータの推定にはそれほど影響しないであろう。
[MEC] 導師よ、MCMCに関してお伺いします。MCMCとMLでは目標が違うのではないでしょうか。
ML推定は尤度関数を最大化するパラメータ推定値を探すのが目標で、そこに全精力が注がれます。たとえば、1因子5指標のCFAで負荷がすべて0.6だとして、尤度の観点からいえば、負荷がすべて-0.6であってもやはり良いモデルです。どちらになるかは初期値次第です。
いっぽうMCMCは、事後分布の全体を正しく表現しようとします。上の例の場合、MCMCはきっと、事後分布に2つのmodeがあると報告するでしょう。MCMCによほど詳しいユーザでないと、事後分布の平均を点推定値としてしまいかねません。
[導師] 確かに、潜在変数モデルのMCMC推定には符号スイッチングという問題がある。負荷が小さく標準誤差が大きい、複雑なモデルで問題になる。EFAとか, bifactorモデルとか、MTMMモデルとかが危険だ。
わがMplusは符号スイッチングを回避する再ラベリング・アルゴリズムを備えている。だから心配しなくてよろしい。
[MEC] 導師よ、MCMCを使うにはかなりの習熟と努力が必要ではないでしょうか。
たとえば、収束の判断、バーンインの設定、MHアルゴリズムのチューニングパラメータ、間引き(thinning)の設定など、とても難しいです。複雑なモデルになるほど、ケース・バイ・ケースな側面が強くなります。
[導師] 確かにその通り。
しかし、いくつかの問題については実用的な解決策がある(PSRによる収束判断とか)。また、これから人々は経験を積み、ソフトは改良される。かつてのSEM普及初期を思い出すがよい。EFAの因子得点でパス解析するのと比べ、SEMは難しすぎるといわれたものだ。
[MEC] 導師よ、ベイジアンのフレームワークですと、モデルの識別の問題がよりややこしくなりませんでしょうか。
もともと識別というのは難しい問題ですが、MLなら、まだルールのようなものがあります。ベイジアンのおかげで、推定できるモデルが広がったという良い面もありますが、どんなモデルが識別不能かわかんなくなったという面もあると思います。
[導師] 識別できないモデルは収束しない。
[MEC] 導師はこうおっしゃいました。 伝統的なSEMならゼロに固定したであろうパラメータに分散の小さな事前分布を与えよ。
導師よ、ゼロに固定していたであろうパラメータはたくさんあります。どれに分散の小さい事前分布を与えればよいのでしょうか。導師は、交差負荷に与えたり、残差相関に与えたり、全部に与えたりなさっておられますね。できますれば、すべての迷える応用研究者を導く明確な原理をお与えいただきたいのです。
[導師] 当該の研究分野が証拠構築のどの段階にあるかによる。
初期段階で探索に焦点が当たっているならば、事前分布は無情報ないしある程度大きめにして、データに語らせないといけない。この場合はMLもベイジアンもたいしてかわらない。測定モデルについていえば、できるだけ構造を制約しないこと。EFA, ESEMが望ましい。
証拠が蓄積されて来たら、ゼロであるはずのパラメータに分散の小さな事前分布を与えてBSEMを行う。このスペクトラムの極北が伝統的SEMだ。
注意しないといけないのは、BSEMモデルでは、モデルの適合が良くても、ゼロに近いはずのパラメータの推定値がゼロから離れていたら、モデルを見直さないといけないということだ。
[MEC] 導師はこうおっしゃいました。 分散の小さな事前分布(情報事前分布)を与えたのに信用区間がゼロを含まなかったパラメータがあったら、分散を大きくして(無情報事前分布にして)再推定せよ。
伝統的SEMでは、修正指標の値が大きいパラメータを探し、自由パラメータにして再推定、モデルの適合度が上がるまで繰り返す、という所業が広く行われて参りました。これは事前理論を放棄してデータにあわせているわけで、深刻な問題を引き起こしますこと、よく御存じのとおりです。
導師よ、BSEMにおける情報事前分布から無情報事前分布への切り替え手続きも、哲学としてはこれと同じではありませんか。
もちろん、違いはございます。伝統的方法では自由パラメータをひとつづつ増やします。修正指標が引き起こす問題の多くは、この系列的手続きによるものだと考えられておりました。いっぽう導師は、複数のパラメータを一気に無情報事前分布にせよと仰っています。この違いはわかっておりますが、やはり危険に感じるのでごさいます。モデルの妥当性に問題は生じないでしょうか。
[導師答えず]
[MEC] 導師はこうおっしゃいました。 BSEMは「母集団においてパラメータが0」という厳しい想定をより穏やかな想定に置き換えるので、その分モデル・エラーが小さくなる。
導師よ、仰せのとおりではありますが、代償もあろうかと存じます。
伝統的SEMでは、自由パラメータを減らすと適合度があがりました。自由パラメータが減るということは、推定誤差が減るということでもあります。
BSEMにおいて、パラメータをゼロに固定せず事前分布を与えると、そのことによって推定誤差は増えるはずです。ひいては、安定性と一般化可能性が損なわれるかもしれません。分散を小さくしておけば大丈夫だと言い切れるのでしょうか。
[導師答えず。いい指摘だと思うんだけどな。その場その場でモンテカルロ・シミュレーションするしかないのだろうか]
[MEC] 導師よ、交差妥当化についてお伺いします。伝統的SEMでは、自由パラメータの点推定値の一般化可能性を交差妥当化によって評価できました。BSEMでは、事後分布の一般化可能性をどのように評価すればよろしいでしょうか。
[導師答えず]
[R] 導師よ、情報事前分布は交差負荷や残差共分散だけでなく、注目されるパラメータに与えてもよいのではないでしょうか。たとえば、値が大きいであろうと期待されている負荷に事前分布として$N(0.7, 0.15)$を与える、というのはいかがでしょうか。
[導師] 良い指摘である。その事例を示そう。[略]
[R] 導師よ、LISRELには負荷の上下限を制約するという機能がございます。BSEMでも、事前分布として上下限を決めた一様分布を与えるのはいかがでしょうか。もし推定値が上下限に張り付いたら、見直して再推定すればよいではありませんか。
[導師答えず]
[R] 導師よ、BSEMは bifactorモデルを容易に推定できるのでありませんか。特に、一般因子が直交していないようなモデルでも大丈夫なのではないでしょうか。
[導師] まことにその通りである。
[R] 導師よ、ハイパーパラメータを動かして感度分析するのはよいですが、研究者はいろいろ試した中で都合の良い部分だけを報告してしまうのではないでしょうか。
[導師答えず]
Rさんはほかにもいくつかネタを振っているが、導師は答えていないし、あんまりおもしろい話ではなかったので省略。
読了:MacCallum, Edwards, & Cai (2012); Rindskopf(2012); Muthen & Asparouhov (2012): ベイジアンSEM問答
Buckland, S.T., Burnham, K.P., Augustin, N.H. (1997) Model selection: An integral part of inference. Biometrics, 53, 603-618.
こないだ目を通した劉(2009)に出てきた論文。仕事の都合で、非ベイジアンのモデル平均について知りたくてざっと目を通した。
みんな頑張ってモデル選択しているけど、選択したらそのモデルで推論しちゃっている。つまりその推論はモデルに条件づけられた推論だ。この論文では、たくさんあるモデルのどれかが真だがそれをデータで同定することなんてできっこないという見方に立ち、 統計的推論にモデル選択を統合することの重要性を示し、その方法を教えてあげよう。
アプローチはふたつある。モデルに重みづけしてパラメータの推定値の重みづけ平均をとるのと、ブートストラップ法でモデル比較を繰り返すやりかただ。
... というわけで、説明が続くのだけど、時間がないのでメモは省略。前者の重みづけはベイジアンではなくて、AICとかをつかう。なぜベイジアンでないかというと、事前分布を決めるのが大変、モデルの数が多いときに大変、だからだそうだ。
後半は事例。ポワソン回帰の変数選択で、ブートストラップ標本ごとにAICを比較するという話。動物の密度推定のための確率分布を選ぶという話。生存モデルの正解を決めといてシミュレーションした例。いずれも読み飛ばした。
考察。ベイジアンよかこっちのほうが簡単だ。真のモデルを見つけるのなんて難しいんだからひとつのモデルに頼るのはやめよう。AICがいいかBICがいいかというのは諸説ある。云々。
ちゃんと読んでないのに読了にしちゃうのは後ろめたいが。。。まあいいや、いずれ必要になったらきちんと読もう。
読了:Buckland, Burnham, & Augustin (1997) 非ベイジアン・モデル平均
ここのところ、全く先の見えない煉獄のような原稿と、蟻地獄のようなデータ分析で、気息奄々というのはこういうことか、という有様である。
もっとも、こういうことがストレートに書けるのはどちらも副業の案件だからであって(本業の話は書きにくい)、その意味では、好きなことで苦労してるんだから幸せなんだけど.... いやいや、やっぱり辛いものは辛い。シベリアとかに逃げたい。この数ヶ月で、ちょっと寿命が縮んでいるんじゃないかと思う。
Wasserstern, R.L. & Lazar, N.A. (2016) The ASA's statement on p-values: context: process, and purpose. The American Statistician.
このたびASA(米統計学会)が検定についての声明を出したのだそうで、この論文はその声明本文に、経緯を説明する序文と、検定に関する精選文献リストをつけたもの。原稿が公開されてたので、夜中の気分転換に目を通した。
本文は、6つのprincipleにコメントをつける形で書かれている。 まあ声明であるからして、ごくシンプルな文章であり、冒頭で断られているように、新しい話はなにもない。
いわく。p値とはある特定の統計モデルの下でデータの統計的要約が観察値と同じないしそれより極端になる確率である[←これが超わかりにくいのが、そもそもの元凶なんでしょうね...]。
(1)p値が示しているのは、データが特定の統計モデルと不整合かどうかだ。
(2)研究仮説が真である確率でもなければ、データがランダム・チャンスで作られた確率でもない。
(3)科学的結論やビジネス・政策上の決定を、p値が閾値を超えたかどうかだけで行ってはならない。
(4)正しい推論のためには完全な報告と透明性が必要だ[と、ここでpハッキングを批判]。
(5)p値は効果サイズや結果の重要性の指標ではない。 [おっと、効果量の話をするのかな、と思ったけど、そういう話は一切なし。ま、教材じゃないからね]
(6)p値はモデルなり仮説なりに対する証拠の強さについての良い指標ではない。
検定を補完・代替するアプローチとして、これまでに、(a)信頼区間とか信用区間とか予測区間とか、(b)ベイズ流の手法とか、(c)尤度比とかベイズ・ファクターとか、(d)決定理論とかFDRとか、が提案されている[←この段落、文面つくるの揉めただろうなあ... 各論となると絶対に紛糾する話題揃いだ]。これらのアプローチもそれはそれで別の想定に依存しているわけだけど、効果のサイズとか仮説の正しさとかについて、より直接に教えてくれる、かもしれない。
文献リストはきっと定評ある教科書ばかりだろうと思ったら、これがそうでもなくて、結構論争的な雰囲気の奴も載っていて、なんだかちょっと楽しい。前に読んだHoening & Heisey (2001)の標本効果量ベース検定力への批判も載っていた。なるべくいろんな分野から選んでいる感じだ。暇なときにいくつか読んでみたいのもある。
序文の経緯説明で面白かった箇所をメモ:
- twitterやブログなどで、ASAがこういう声明を出すのは初めてだ!と云ってる人がいて、またいい加減なことを、数年前にNo Child Left Behind絡みで逆切れ声明を出したことがあったじゃんか、とうんざりしていた。でもこれは私の勘違いで、こういうことだそうだ。ASAは、2010年にrisk-limiting post-election auditsについての声明[←なにそれ、知らない...]、2014年には教育評価におけるVAMモデルの使用についての声明を出している。でもそれらは純粋に政策に関連する声明であった。統計的実践における特定の問題についての声明を出すのはこれがはじめてだ、とのこと。なるほど。
- この声明に至るまでには会合とか意見聴取とかディスカッションとかいろいろやってて、揉めた話題もいっぱいあった由。その例として、多重比較、「0.05に近いp値は帰無仮説に抗する弱い証拠となるか」問題、p値に代わるアプローチをどう位置付けてどこまで紹介するか、が挙げられている。また、対立仮説、過誤のタイプ、検定力について声明で触れなかったけど、それに対する批判もあった、とのこと。お疲れさまでございます...
オンライン補足資料として、議論に参加した識者によるコメントが添えられている。ちゃんと読む時間も気力もないが、ディスプレイ上でいくつかめくってみた。せっかくなので口語調でメモしておくと...
Altman, N.S.: (無題)
[もっとFDRっぽく考えようよ、というような話だった。メモは省略]
Benjamin, D.J., Berge, J.O.: 「p値の単純な代替案」
素晴らしい声明ですね。でもこういう指摘は大昔からあります。世の中変わらなかったのは、検定にかわる良い代替案がなかったからです。既存の代替案は、ややこしすぎるか、頻度主義者とベイジアンのどっちかに嫌われるものでした。
そこで私たちは新しい代替案を提案しています。ご紹介しましょう!帰無仮説の「誤った棄却に対する正しい棄却の実験前オッズ」です! [←十分ややこしいよ!]
実験前オッズとは2つの値の積です。ひとつは帰無仮説に対する対立仮説の事前オッズ。これは非頻度主義的な考え方です。もうひとつは棄却比。これは頻度主義的な考え方で、対立仮説が真のときにそれを棄却する確率を、帰無仮説が真のときにそれを棄却する確率で割った値、すなわち、検定力とType I エラーの比です。
[熱弁頂いている途中で申し訳ないですが、関心が薄れてきました... いつか暇になったら読みます]
Benjamini, Y.: 「p値に罪はない」
たいていの人が合意できる、よくできた声明だと思います。ベイジアンの人は(1)に合意しないかもしれないし、頻度主義の人は(6)の意味がわかんないかもしれないけど。でも、残念ながらこの声明では、私たちの間違いをp値のせいにしてしまってますね。これじゃ、ASAはp値に対して否定的なのね、で終わっちゃいます。ほんとうはほとんどの統計的ツールの使い方に問題があるのに。
声明が挙げている代替アプローチだって、p値と同じ問題を抱えています。研究仮説の尤度比がどのくらいあればジャーナルに載るんでしょうか? 科学的発見は事後オッズが特定の閾値を超えていることに支えられないといけないんでしょうか?
20世紀を通じてp値がこんなに成功したのは、偶然性に騙されないようにする第一防衛線を提供してくれたからです。検定に必要なモデルは他のツールよりシンプル。まともな無作為化実験なら保障されるようなモデルに基づいています。いっぽう尤度比や効果寮や信頼区間やベイジアン手法は、どれも帰無仮説だけでなく、状況についてのもっと幅広いモデルに依存しています。
もし可能ならば、検定とともに信頼区間や効果量を使うべきです。でも、検定しか使えないような場面も少なくありません。
声明の(4)に「完全な報告と透明性」とありますが、これだけでは不十分です。大きな問題においてはセレクションが避けられないのです。表のセレクション、モデルのセレクション、図のセレクション。推論におけるセレクションの影響について調べるために、さらなる統計的手法が必要です。[...中略。このビッグデータの時代において、みたいな話が書いてある]
p値を排除したり、使用しないよう勧めたりするべきではないと思います。問題はp値ではなく、セレクションそのものにあるのですから。
Berry, D.A.: 「p値は世間の人々が思っているようなものではない(P-values are not what they're cracked up to be)」
過去50年間、p値についてたくさんの批判がなされてきました。それらの批判が及ぼしたインパクトをぜんぶ合計したら、どのくらいになるかというと... ほぼゼロです。統計学者はp値を正しく定義できるけど、本当の問題が理解できていないんです。非統計家の無理解を責めることはできません。統計的有意性についての無知と誤用の広がりはひとえに我々のせいです。もっとコミュニケートしなきゃ。なんなら屋根の上から叫ばなきゃ。ASAがやっているように。
[という感じの熱弁ののち、声明のいくつかの点を取り上げて補足。読み物として面白そうだけど、パス]
Carlin, J.B.: 「パラダイム・シフトなしの改良は可能か?」
声明を読むにつけ驚かされるのは、誤用と誤解釈に対抗するためにかくも努力が必要か、ということです。これは哲学や科学史で問題にされているんでしょうけど、科学的判断をルール・ベースの活動へとコード化しようという、逆らいがたい衝動があるんでしょうね。
BASPみたいにp値を禁止するというのは、問題を広く認知させ議論を起こすという点では有意味なんでしょうけど、それで推論の質が高まるのかどうかはわかんないです。必要なのは、推論という課題について、私たちがある種の広い原理に同意することなのではないでしょうか。具体的に言うと、不確実性について語るための言語です。私はベイズ流の確率を受け入れるしかないと思うんですけどね。[...後略。もっと根本的なパラダイムシフトが必要だという話]
Cobb, G.: 「期待される2つの結果」
関係者のみなさん、おつかれさまでした。ASAはこれから毎年こういう声明を出すといいんじゃないでしょうか。これから教育も変えてかないといけないですね。
Gelman A.: 「 p値の問題は単なるp値の問題ではない」
まず指摘しておくと、声明の(4)のところに「どんな分析を何回やったか報告しろ」って書いてあるけど、それだけじゃ足りないのよ? ポイントは、なにをやったかじゃなくて、もしデータが違ってたらどんな分析をやってたか(what analysis would have been done had the data been different)だよ。ベテランのユーザでも、p-ハッキングをせずなにをやったかをきちんと書けばそれでOKだと誤解している人が多いよね。 ここ、文面の修正案送ったんだけどなあ。[←なるほど、序文の「揉めた話題紹介」の多重比較の箇所で、multiple potential comparisonsのpotentialがわざわざイタリックになっているのはそういう事情か]
突き詰めていうと、問題はp値じゃなくて帰無仮説の有意性検定そのものなのよ。好きな人形を支持する証拠にするために藁人形を倒すという、 こういう反証主義のパロディみたいなことをやっている限り、問題は解決しないと見たね。信頼区間でも信用区間でもベイズ・ファクターでも交差妥当化でもその他なんでも、証拠がないところに強い証拠があるようにみせかけちゃえるもんよ、わざとかどうかは別にして。
声明の最後の段落はいいね。デザインも理解も文脈も大事だっていうところ。俺なら測定も大事だっていうのを入れるけどね。だってさ、デザインもデータ収集も文脈に照らした解釈も大事だってみんな知っているのに、結局p値の誤用とかが起きてるわけでしょ? これはやっぱ統計教育のせいだと思うわけですよ。ひとつには、これは自分も含めてだけど、講義とか教科書とかって、データセットとモデルが天下りに降ってくるところから始まるじゃない。せいぜい、サンプルサイズはどうやって決めましょうか、なんていう話をするくらいで。測定のこと、全然教えてないよね。それにさ、統計学ってなんか錬金術みたいに教えられてるよね。偶然性を確実性に変えるのだ、なあんてさ。話をデータからはじめて、有意差が出たら成功、みたいな。綺麗な結論のついたパッケージになっちゃってるのよ。自分でいってて耳が痛いけど。
まあそんなわけで、ASAの声明ね、いいと思いますよ、大部分はね。でも問題はもっと深刻だと思う。p値を再構築したり他の何かと置き換えたりしても解決にならない。目指すべきは、不確実性を受け入れること。変動を抱きしめること。これですよ。
Greenland, S.: 「ASAガイドライン、そして現在の教育・実践におけるナル・バイアス」
まずは声明を称賛したいと思います。でも、たくさんの対立点についての妥協案だから、どこかの部分に不満を持つ人も多いと思います。私の不満は... [声明における「帰無仮説」という言葉の使い方がおかしい、こういう用法のせいで混乱が起きている。検定のせいで効果がないという仮説だけが検討されるバイアスが生じている。実は客観的ベイジアンもこの罠に落ちていて...とかなんとか。面倒くさいのでパス]
Greenland, S., et al.「統計的検定、p値、信頼区間、検定力:誤った解釈ガイド」
[これはコメントではなくて、7名の共著による、本文だけで20pに及ぶ解説。さすがに読む気力ないです]
Ioannideis, J.P.A. 「目的合致的な推論手法とは: p値を放棄/変更するか、研究を放棄/変更するか」
[未読]
Johnson, V.E.: 「声明へのコメント、ならびにmarginally significant なp値について」
[なんか超めんどくさそうなのでパス]
Lavine, M., Horowitz, J. : (無題)
[未読]
Lew, M.: 「推論をめぐる3つの問い、そしてp値の2つのタイプ」
[面白そうだけど、未読]
Little, R.J.: (無題)
良い声明だと思いますけど、もっと注目しないといけないのは、p値をひとつの孤立した統計的指標として使っている、ということだと思います。効果の大きさと、推定した効果がシグナルかノイズかという問題とは別で、ひとつの指標では答えられないです。信頼区間や信用区間を使ったほうがいいと思います。
公衆衛生の学生に生物統計を教えていて思うのは、信頼区間は簡単に教えられるけど、仮説検定はすごく難しいということです。仮説検定という概念そのものがゴマカシを含んでいて(The basic artifice of hypothesis testing as a concept)、それが諸悪の根源だと思うんですよね。ASA声明のような慎重な声明で、問題が解決するのかどうか、疑問です。
Mayo, D.G.: 「誤った統計学という産湯は捨てても、エラー・コントロールという赤子は捨てるな」
[未読]
Miller, A.M.:「教育に関するいくつかの含意」
[未読]
Rothman, K.J.:「統計的有意性に別れを告げよう」
検定は科学的結果という市場の通貨のようなものでした。本物の通貨がそうであるように、その価値はそれ自体にはなく、その背後にある、広く受け入れられている想定や期待から生まれたものでした。検定への依存は怪しい紙幣への信頼に似ています。悪貨が良貨を駆逐してきたわけです。
検定に依存することの根本的な問題は、まず、すべての結果を二分法的に分類してしまうことです。また、有意かどうかという二分法そのものも恣意的に決まっており、p値に比べて情報が足りません。さらにp値それ自体も、信頼区間とはちがい、効果量と推定精度がコミになっているという解釈上のハンディキャップを負っています。[←なるほど、代替として信頼区間を買っているわけだ。前にも思ったんだけど、ロスマン先生って言い方が過激な割に発想は保守的だよね]
有意性と真の重要性の間にはとても距離があります。人々が有意性を追求し、その結果として重要な効果を無視してきたせいで、たくさんの人々が傷ついたり、亡くなったりしてきたといってよいでしょう。
では、どうすればよいのでしょう? 統計的有意性はすでに社会システムに深く組み込まれてしまっています。でも私たちにできることはあります。統計学を学ぶ学生に、検定を使うな、推定を使えと教えるのです。それは簡単なことではありませんが、疫学では、新しいトレンドが確かに生まれています。検定ではなく信頼区間を使いって効果量と推定精度をそれぞれ把握し、有意でない結果にも証拠との価値を認めるというトレンドです。
さらに、私たち専門家は力を合わせて、科学者、ジャーナリスト、編集者、そして世の人々を啓蒙していきましょう。統計的有意性は有害な概念であり、効果の推定のほうが有用であると。ASAの声明はこの目標には遠く及びませんが、期待できる出発点だと思います。
Senn, S.: 「p値は問題なのか?」
[未読]
Stangle, D.: (無題)
問題の責任は私たち統計教育者にもあります。これを機に、統計教育の世界でp値についての議論が起きて、ベイジアン決定理論とかについても教えるようになるといいなと思います。
Stark, P.B.: 「p値の価値」
ASAの声明の精神には同意するけど、中身には同意できない。(1)声明冒頭のp値の定義があいまい。(2)声明は「帰無仮説」と「p値の背後にある想定」を区別しているけど、帰無仮説というのはp値の背後にある想定の完全なセットのことだ。(3)代替アプローチのなかにp値と似たようなものが入っている。FDRとか。(4)仮説検定がつかわれる状況のなかには、パラメータとか「効果」といった概念がない場合もあることを見落としている[←???]。(5)頻度主義とベイズ主義の違いを無視している。
[以下、この先生が考えるところの、p値についての解説。うーん...ASA声明の説明が気に入らないということなんだろうけど、本質的な対立点はどこなのか、そもそも本質的な対立点があるのか、私には読み取れない]
Ziliak, S.: 「ASA声明の重大性(significance)」
[こういう声明っていろんな人が鵜の目鷹の目で叩くのに、書いた人えらいよね、尊敬するわ、というような話の後で、声明の逐条解説みたいなのがついている。パス]
読んだ中では、ゲルマン先生のが面白かった。「やったことを報告するだけじゃだめだ」というのは、まあ確かにそうだ。
それにしても... この話題って、結局のところ、ずいぶん前から話の構図が変わっていないと思う。どこまで遡れるのかわかんないけど、私が院生のころにも、おんなじように悲憤慷慨してたような気がするんですよね。専門家の方にとっては大事な話だろうけど、いちユーザとしては、正直付き合いきれないな、と思う部分もある。
読了:Wasserstern & Lazar (2016) p値に関するASAの声明について
2016年2月29日 (月)
しばらく前にメモを取った奴。どうも最近は気ばかり急いて、メモだけ取って放り投げているものが多い。
以前ベイジアン・ネットワークのソフトの講習会に行ったとき、休憩時間に開発元の講師の方を捕まえて、目的変数が二値ひとつ、説明変数が複数という状況で、ナイーブベイズ学習器とロジスティック回帰とどう使い分ければいいんですかね? と尋ねた。その若い方は「さあ...」という返事であった。わからないというよりも、ちょっと一言では答えられない、ということだったのかな。
実のところ、この問いはずっと心に引っかかっている問いで、自分なりの経験的な答えのようなものはなくはないのだが、いちど専門の人に訊ねてみたいものだ、と思っていた。
Ng, A.Y., Jordan, M.I. (2001) On Discriminative vs. Generative classifiers: A comparison of logistic regression and naive Bayes. Advances in Neural Information Processing Systems 14 (NIPS 2001).
そのものずばりのタイトルなので、NIPSなどというオドロオドロシイ出典にも関わらず手に取った。Google様によれば被引用件数1314。まじっすか。
著者いわく。
入力$x$とラベル$y$を受け取って同時確率$p(x, y)$をモデル化し、所与の$x$についてベイズルールで$p(y|x)$を予測し、もっともありそうなラベル$y$をピックアップする。これが生成的分類器である。いっぽう、事後確率$p(y|x)$を直接にモデル化するのが識別的分類器である。
Vapnik(1998)いわく、汝分類課題のためにより一般的な課題を解く勿れ。回り道してないで、さっさと$p(y|x)$をモデル化しろ。とこのように、ふつうは識別的分類器のほうが好まれている。また、必要な事例数はモデルの自由パラメータ数と線形の関係にあることが多いという言い伝えもある。こういう信念は正しいのでしょうか。
いま、「入力とラベルの同時尤度を最適化しましょう」という基準に従う分類器を$h_{Gen}$とする。それと同じパラメトリックなファミリーのモデルで、「条件付き尤度$p(y|x)$を最適化しましょう」ないし「$p(y|x)$に閾値をつけて予測したときの訓練誤差を最小化しましょう」という基準に従う分類器を$h_{Dis}$とする。このペアを生成-判別ペアと呼ぼう。たとえば$p(x|y)$を正規分布、$p(y)$を多項分布とすれば、正規判別分析とロジスティック回帰モデルがペア。入力が離散なら、ナイーブ・ベイズとロジスティック回帰がペアだ。
どっちが優れているだろうか? ナイーブベイズとロジスティック回帰を比べる。
入力変数は$n$個とする。出力ラベルは二値とする。$m$個のiidな事例をとってきて訓練セット$S$とする。
赤コーナー、生成モデルの入場です。ナイーブベイズ分類器。$S$を使って$\hat{p}(x_i | y)$と$\hat{p}(y)$を予測する。
入力変数がすべて二値の場合、$S$におけるイベント発生数を$\sharp s\{\cdot\}$と書くとして、予測式は
$\displaystyle \hat{p}(x_i = 1 | y=b) = \frac{\sharp s\{x_i=1, y=b\}+l}{\sharp s\{y=b\}+2l}$
と書ける。$l=0$とすれば経験的推定値。伝統的には$l$を正の整数にすることが多く(1とか)、これは確率のラプラス・スムージングにあたる。さて、$h_{Gen}(x)=T$という予測値を返すのは、下式が正であるとき、その時に限る。[めんどくさいので省略するけど、$\prod$は$i$から$n$まで回る]
$\displaystyle l_{Gen}(x) = \log \frac{(\prod \hat{p}(x_i|y=T)) \hat{p}(y=T)}{(\prod \hat{p}(x_i|y=F)) \hat{p}(y=F)}$
入力変数がすべて連続の場合は...[めんどくさいので省略。要するに正規判別]
青コーナー、識別モデルの登場です。ロジスティック回帰。予測式は
$p (y=T | x; \beta, \theta) = 1/(1+\exp(-\beta^T x -\theta))$
$h_{Dis}(x)=T$という予測値を返すのは、下式が正であるとき、その時に限る。
$l_{Dis}(x) = \sum \beta_i x_i + \theta$
で...
ここから難しい数学用語が乱舞するので、ほぼ3pにわたってまるきり理解できないのだが、とにかくこういうことがいえるらしい。
- データが無限大なら、ナイーブベイズよりロジスティック回帰のほうがエラーが小さい。
- 識別モデルがエラーの漸近値に到達するのに必要な事例数は、せいぜい$n$のオーダー。
- 生成モデルがエラーの漸近値に到達するのは...それよか速い。(「それよか」のところの説明は!もう全然わかんない!一行たりともわかんない!呪文か!呪文なのかこれは!!)
私のような呑み込みの悪い哀れなアホのために(ちがうかな)、事例が示してある。15個のデータセットで事例数を変えながら成績を比較。ほんとだ、最初はナイーブベイズが勝ち、データが増えるとともにロジスティック回帰がキャッチアップするデータセットが多い。
。。。というわけで、肝心のところは全然理解できていないんだけど、結論のみ学ばせていただきました。へー、知らんかった、そうなんですか。
純粋に素人の感想ですけど、これ、入力空間のなかの学習事例の分布によっても違うんじゃないかと思うんですが、どうなんでしょうか。あくまで経験的な印象だけど、ロジスティック回帰で判別するにあたっては、(もちろんもともと線形判別が可能な課題だとして、) 学習事例の数そのものよりも「閾値の近くにある」学習事例の数が勝負になるような気がする。誰に教わったのかはっきりしないが、「人数は少なくてもいいから、合否ぎりぎりの奴を15人は集めろ」という言い伝えが耳に残っている。その点はナイーブ・ベイズでも同じことなのかなあ。
読了:Ng & Jordan (2001) 対決!ナイーブベイズ vs. ロジスティック回帰
2016年2月27日 (土)
しばらく前に読んだ奴のメモだけど、整理の都合上記録しておく。
Li, T., Anderson, J.J. (2009) The vitality model: A way to understand population survival and demograaphid heterogeneity. Theoretical Population Biology, 76, 118-131.
ふつうの生存モデルとは全然違う生存モデル、その名も4パラメータ生命力モデルをご提案します。という論文。
なにかのきっかけで目にして(あ、そうだ。CRANのtask viewにパッケージが載っていたのだ)、気分転換用の読み物としてストックしていた奴。生存モデルは仕事で使うことがあるので、目先を変えて「このたびは生態学での最新のモデルを適用しまして...」なあんて言えたら、ちょっとカッコよくね? なんて色気を出したんだと思う。ははは、センスないな俺。全然ちがう話であった。
どういうモデルかというと...生存曲線を下式とする。
$l(t) = l_a(t) l_v(t)$
$l_a(t)$は生命力とは関係ない外発的な死に対応する。これはポワソン過程に従うと考えて
$l_a(t) = \exp(-kt)$
とりあえず$k$は定数としておく(時変させるのは今後の課題とのこと)。
$l_v(t)$のほうが本命。これは「生命力が0になったことによる死」に対応する。えーと、実は各個体は生命力(vitality)$v$を持っている。開始時点での生命力$v_0$は個体を通じて正規分布する(SDを$\tau$とする)。生命力は時々刻々と次のように変化していく:
$dv/dt = -\rho + \sigma \epsilon_t$
$\rho$は生命力の減衰率の平均、$\sigma$は生命力のばらつき(この2つは定数だと考える)。$\epsilon_t$はホワイトノイズ。こういうのをウィナー過程というのだそうだ。で、$v$が0に到達したら死ぬ。というメカニズムから導出される生存関数が$l_v(t)$である。
ここからの式の導出がまっっっったく理解できないので、数式も省略するけど、結局, 生存関数$l(t)$は次の4パラメータを持つ超ややこしい式で表現される: ドリフト率$r=\rho/\bar{v}_0$, スプレッド率$s=\sigma/\bar{v}_0$, 初期生命力分布の分散$u=\tau/\bar{v}_0$, そして外的死亡力$k$。何だか知らんが、これ、MLで解けるんだそうです。
ふつうの(?)生存分析でも、Coxモデルの共変量のパートに個体差を表す切片項(フレイルティ)を入れることがある。初期生命力$u_0$に個体差を与えるのはそれと同じかな? と思ったのだが、著者に言わせると次の点が異なる。フレイルティ・モデルでは個体のフレイルティは時変しない(低い個体が間引かれるので、分布は変わるけど)。また、ベースライン死亡力からは独立である。いっぽう生命力モデルでは個体の生命力が経験によっても変化するし、生物学的基盤を持つモデルになっている、とのこと。
モデルの特徴についていろいろ説明があったけど、省略して...
生命力モデルが活躍する事例を4つ紹介。
その1、medflyパラドクス。medfly (辞書によればチチュウカイミバエ)はオスのほうが平均寿命が長いが、最後まで生き残るのはたいていメス。これはオスとメスの死亡力が途中で逆転するからであることがわかっている(パラドクスっていうほどのことではないんじゃないの...?)。先行研究ではメスのフレイルティの分散が大きいんだと考えているけれど、このモデルにいわせれば、メスはスプレッド率が大きいのであって、初期生命力の分散はむしろ小さい。前者はきっと多産性のせいだ(現に子供のいないメスは平均寿命が長い由)。後者は...と延々と生物学的な考察があるけど、省略。
その2、食事制限。寿命を延ばす効果があるといわれているが、従来の手法では平均生存時間や生存曲線を比べるくらいしかできない。ショウジョウバエのデータに当てはめてみると、ドリフト率が低下することがわかる。とかなんとか。すいません、適当に読み飛ばしました。
その3、その4は疲れたのでパス。
ディスカッション。古典的な死亡力モデルの文脈ではフレイルティを生命力ということがあるけど、俺たちの生命力モデルとは全然違うからな、気を付けて物を云えよ。生命力モデルは状態依存死亡力モデルともちがうからな、気をつけろよ(←状態依存モデルってのがあるのか...なにそれ...)。死を初通過過程として捉えるってところが最大のポイントだかんな。云々。
。。。いやー、こういう研究分野があるのね。さまざまなtime-to-eventデータのモデリングについての抽象的な話ではなくて、なにかの生物種の生存曲線を、生物学的にリーズナブルな形でどうやって説明するかという、かなり実質科学寄りの話なのであった。心理学でいうと分散学習の効果をどうやってモデル化するかとか、マーケティングでいうとBassモデルをどう拡張するかとか、そういうレベルの話である。半分も理解できてないけど、自分なりに勉強になりましたです。
ちゃんと読んでないせいだと思うけど、わかんなかった点をメモ。(1)観察に打ち切りのあるデータにはどう対応するの? いっかいカプラン・マイヤー推定量を出して、やおら当てはめるのかしらん。それともこの分野では打ち切りなんて問題にならないのかなあ。(2)共変量はどうやってモデルに組み込むの? それとも、この分野にはそもそもそういう問題意識がなくて、観察された生存曲線を記述することだけが関心事なのだろうか。よくわからん。
読了:Li & Anderson (2009) 生命力モデルによる生存分析
2016年2月22日 (月)
Carsternsen, B. (2007) Age-period-cohort models for the Lexis diagram. Statistics in Medicine, 26, 2048-3045.
age-period-cohortモデル(いわゆるコウホート分析のこと)について、レキシス図(人口統計の文脈でみかけるわけのわからない図)の観点から解説するという、私にとっては悪夢のような論文。こんなの勉強してる場合じゃないんだけど、仕事の都合でコウホート分析が必要になり、観念して手に取った。
本文では自明視されているけれど、頭の整理をしておくと...
この論文が想定しているのは、「西暦xxxx年(period)、xx歳(age)の、西暦xxxx年生まれの人々(cohort)が、 これこれの率で死にました」というような表の分析である。本文では一貫してtabulationと呼んでいるが、コウホート表と訳す。モデリングもコウホート表から出発する状況を想定している。
レキシス図とは、横軸にperiod、縦軸にageをとった図のこと。本来period=cohort+ageだから、 ある人の生命は右上に向かう傾き1の線分として表現される。
コウホート表の個々の値はレキシス図のある領域に対応している。その領域は正方形だったりそうでなかったりする。たとえば「西暦xxxx年(period)、xx歳(age)の、西暦xxxx年生まれの人々(cohort)」という領域は、左辺が垂直(年始)、上辺ないし下辺が水平(誕生日)である直角二等辺三角形になる。この論文は一般性を重んじているので、領域の形は定めていない(おかげでかなり回りくどい)。なお、本文ではこの領域を一貫してsubsetと呼んでいるので、サブセットと訳す。
いわく。age-period-cohortモデル(以下、APCモデル)を、レキシス図からの観察を記述する一般的モデルとして示そう。
話を先取りすると、本稿のポイントは3つ。(1)表をつくるときにに情報を捨てるな。(2)age, period, cohortは連続変数として捉えろ。(3)率の絶対値を示せ。
まずは、視覚化しましょう。古典的な図は次の4つ。
- 横軸にage, 縦軸に率, periodで層別した折れ線
- 横軸にage, 縦軸に率, cohortで層別した折れ線
- 横軸にperiod, 縦軸に率, ageで層別した折れ線
- 横軸にcohort, 縦軸に率, ageで層別した折れ線
注目点は、率が比例的に動くかどうか。すなわち、縦軸を対数にしたとして、図1,3が直線か (ageごとの率はperiodと比例するか), 図2,4が直線か (cohortと比例するか)。
データをどのように表にすべきか。
レキシス図からみると、あるサブセットが1行のレコード、イベント数とリスク時間[←観察人年のことであろう]がアウトカム、age, period, cohortのサブセット内平均が説明変数である[←ここでいう平均とは、サブセットに属する観察対象者たちの平均ではなく、領域の平均だと思う]。行はできるだけ多くすること。イベント数がゼロの行があってもかまわない。
サブセットのリスク時間はこうやって求める。ageとperiodは年刻みだとしよう。age $a$ のperiod $p$ 初頭での人口サイズを$L_{a,p}$とする。period $p$初頭においてageが$a-1$であった人(=カレンダー年 $p-a$に生まれた人)における、period $p$を通じたリスク時間は、次の2式の和になる。
- age $a-1$において、$y_{a-1, p, p-a} = (1/3) L_{a-1, p} + (1/6) L_{a, p+1}$
- age $a$において、$y_{a, p, p-a} = (1/6) L_{a-1, p} + (1/3) L_{a, p+1}$
[いやー、このくだりで時間がかかった。。。
直感的にはだいたい上の式のような感じだろうなと思ったのだが、こんなにきれいな式になる理由が、考えれば考えるほどわからない。だって、「誕生日に射殺される患者」の年始からの平均余命でしょう? 病死のハザードを定数とし(累積ハザードは時間の指数関数になる)、誕生日の分布を一様として(累積ハザードは時間の一次関数になる)、このふたつの競合リスクの下での平均余命を考えるとなると、それってもっと複雑にならないか?
電車での移動中に宙を眺めてあれこれ考えたが(おかげで傘をどこかに忘れた)、どうにも埒が明かないので付録の証明を読んでみたところ、「年始に$a$歳であり、かつ年内に死んだ人の死亡日の分布」を一様分布と仮定している。この仮定の下では、なるほど、ごく簡単な積分で上式が導出できる。ここにトリックがあるわけだ。本文中には「constant mortalityを仮定する」とあるので、そんなら死亡日の分布は指数分布にすべきだろうと思うのだが、ハザードが低い状況で、1年間くらいならまあ一様分布でいいや、ってことなのだろう。私としてはマーケティング・データへの応用を考えていて、消費者行動のハザードは死亡のハザードよりもはるかに高いから、ここは気を付けないといけない...]
あるサブセットにおけるage, period, cohortの平均について。[←くどいけど、そのサブセットに属する人の平均じゃなくて、領域自体の平均の話。いまなんでこんな話をしているかというと、モデリングにおいてコウホート表から出発するからだ]
ダイアグラム上で、age vs. periodの表は長方形、period vs. cohort の図は左右の辺が垂直な平行四辺形、age vs. cohortの図は上下の辺が水平な並行四辺形になる。いずれにせよ、その範囲のage, period, cohortの平均は、単にその辺の平均である。
しかし、たとえば「1980年の年内に61歳になった人のその誕生日から年末まで」は直角二等辺三角形になる。年齢の平均は61+(1/3)である。こういう風に、平均は辺の1/3とか2/3とかになる。
以下では、任意の形状の領域におけるケース数を$D$、リスク時間の合計を$Y$と呼ぶ。その共変量は、a, p, c(=p-a)のその領域における平均である。
さあ、いよいよモデリングだ。
age $a$, period $p$ における率を$\lambda(a, p)$として、乗算APCモデルは
$\log[\lambda(a, p)] = f(a) + g(p) + h(c)$
入力される$a, p, c$は観察単位における平均である[←たとえばageを年齢で切っていたらaは満年齢+0.5、ということだろう]。率はサブセット内で一定と仮定する(そうせざるを得ない)。
あるサブセットで$(D, Y)$だとして、対数尤度に対する寄与は
$l(\lambda|D,Y) = D \log(\lambda) - \lambda Y$
率が定数だと仮定する場合を別にすれば、これは平均$\lambda Y$のポワソン分布に従う確率変数$D$の、ある観察の対数尤度と同じである。だから独立な観察に対するポワソン回帰のプログラムを使って推定できる。ただし、ケース数がポワソン分布に従っているわけではないことに注意。[...このあたり、ちょっと理解が追い付かない記述があるが省略]
モデル右辺の項を減らし、デビアンス統計量で尤度比検定することも多い(これは記述モデルなんだから検定してもしょうがない、という見方もできるけれど)。a,p,cの間隔を細かくすれば有意になりやすいことに注意。
a,p,cの効果は非線形かもしれないので、factorとして扱い水準ごとにパラメータを推定するのが古典的方法。がんの疫学的研究では5年で区切ることが多かった。パラメトリックなスムージングをかける方法もある。スプライン、自然スプライン、分数多項式など。[パラメータ数の選び方についていろいろ書いている。省略]
線形トレンドを抽出するために、factorモデルで推定した各水準のパラメータを実際のageなりperiodなりcohortなりに回帰することがある。報告の時には傾き、切片、残差も載せる。[←このくだりはこのあとの話への伏線で、いろいろ説明が書いてあるけど大幅省略]
より一般的には、
$\log[\lambda(a, p)] = f(a) + g(p) + h(c)$
の関数f, g, hをどうにかうまく決めて推定する。上の古典的方法はf,g,hをピースワイズ一定とみなしているわけだ。
関数を選ぶ際に目指すのは、(1)意味があること、(2)わかりやすいこと、(3)普通のソフトで推定できること、(4)報告された値から率を再現できること。
まずはage-cohortモデルについて考えてみよう:
$\log[\lambda(a, c)] = f(a) + h(c)$
伝統的には、コホートの参照点$c_0$を決めて$h(c_0)=0$と制約する。$f(a)$はコホート$c_0$における年齢のログレート、$h(c)$はコホート$c_0$と比べたログレート比になる。つまり
$\log[\lambda(a, c)] = \tilde f(a) + \tilde h(c) = (f(a)+\mu) + h(c)-\mu)$
と考え、$\mu=h(c_0)$と定義して、$\tilde h(c)=f(a)-h(c_0)$、$\tilde h(c)= h(c)-h(c_0)$と解するわけだ。
これをage-period-cohortモデルに拡張しよう。
$\log[\lambda(a, p)] = \tilde f(a) + \tilde g(p) + \tilde h(c)$
についてどうにかうまく制約したいわけである。どこか2つの水準と、どれかひとつの傾きを制約する必要がある[←その理由が縷々説明されていたのだけど、よくわかんなかったので今回は断念]。
ひとつの方法は: $h(c_0)$を0に制約。$f(a)$はコホート$c_0$における年齢のperiod調整済ログレートとして、$h(c)$は$c_0$に対する対数RRと解釈できる。さらに、$g(p)$を平均0に制約。$g(p)$はage-cohort予測に対する対数RRと解釈できる(ないし、基準日$p_0$において$g(p_0)=0$と制約。その場合は$a_0=p_0-c_0$における年齢効果が$p_0$の率と等しくなり、periodの効果が$p_0$に対する残差の対数RRになる)[←ぐわー、ややこしくてわかんないー]。
あとは、age-cohortでまず推定してそこにperiodを突っ込む話とか、実例とか。疲れたのでパス。
。。。途中で力尽きて、いい加減な読み方になってしまった。ま、背景知識が足りないので、仕方ない。
想像していたのと全然ちがう内容であった。文脈がよくわかっていないんだけど、 要するに、疫学では間隔を広めにとったfactorモデルで良しとすることが多いので、もっと細かくやるべしという主旨の啓蒙論文だったのではないかと思う。
読んでいてわかったのは、手法の細かいところにdomain-specificな事情が意外に効いているという点。たとえば、レキシス図上で三角形になる領域の集計値の話が多かったのは、生年x死亡時暦年x死亡時満年齢の集計表を分析することが多いという事情からきているんじゃないかなあ。こういう集計、マーケティング・データではちょっと想像しにくい(生年と満年齢のどっちかしか使わないだろう)。うーん、やっぱり社会科学系の解説を読むべきだったかも。
最後まで読んでようやく気が付いたんだけど、著者はRのEpiパッケージの開発者。なるほど、それでEpiパッケージのドキュメントはこの論文を引用しまくってるのか... (気が付くのが遅いぞ!!)
読了:Carsternsen(2007) レキシス図で学ぶコウホート分析
2016年2月10日 (水)
Dormann, C.F, et al. (2012) Collinearity: a review of methods to deal with it and a simulation study evaluating their performance. Ecography, 36, 27-46.
環境研究の分野における、説明変数間の共線性とその対処に関する解説。すごく引用されているようだし、なにかの足しになるかと思って手に取った。ぱらぱらめくっただけだけど、整理の都合上、読了にしておく。
共線性の診断について、こんな早見表がついていたのでメモ。いろいろ批判がありそうだけど...
- 説明変数間の相関の絶対値。0.7以上が危険。
- 相関行列の行列式。0に近いときに危険。
- condition index。相関行列の固有値の最大値を他の固有値で割ったとき、30以上だったら危険。
- condition number。condition indexの一番大きい奴。
- Kappa。condition numberの二乗。
- VD(variance-decomposition proportions)。ある変数の分散がある固有値で表される割合。0.5以上は危険。
- VIF(variance inflation factor)。10以上は危険。
- Tolerance。1/VIF。
後半はモデリング手法の紹介とシミュレーション。聞いたこともないような手法がいっぱいあった。latent root regressionとか(要するにPLS回帰みたいなものらしいがよくわからん)、OSCARとか(要するに正則化らしいがよくわからん)。シミュレーションはめんどくさいので読み飛ばした。
回帰の文脈で、いつもストレスに感じていることがあるんだけど...
説明変数間に共線性があるとどう困るのか、その理由をきちんと整理しないといけないんじゃないかと思うのである。ひとつの理由は「解が不安定になるのが困る」だけど、もうひとつの理由として、説明変数間の関係について十分な知識がないとき(Pearlさん風にいうと「DAGが描けないとき」)、偏回帰係数の実質科学的解釈がとてつもなく難しくなるのが困る、という点が挙げられると思う。
前者と後者では問題のレベルが異なる。前者はいうなればテクニカルな話であって、サンプルサイズや測定誤差と密接な関連があるし、完璧とは言えないにせよ検出方法もある(VIFとか)。いっぽう、後者はもっと原理的な話、大袈裟に言えば「私たちは偏回帰係数を実質的に解釈するだけの能力を持っているのか」という話だ。
この2つがごっちゃにされているせいでいろんな混乱が起きているように思う。たとえば「偏回帰係数の符号が常識的な因果関係と逆だったらその変数は取り除きなさい」なんていうアドバイスがそうだ。このように信じている人はとても多い。私は静かに暮らしたいだけで、他人を説教する気はないので、そういう人がいると、率直に申し上げてかなり困る。
研究者のみなさま、ぜひ分かりやすい説明を...と願っているのだけれど、研究分野によってはそもそも後者のような問題が起きないだろうから、見境なく期待するわけにもいかない。この論文にしても、共線性についての説明がいきなりVIFの説明に移っちゃうわけで、やっぱ環境科学とかだとそうだよね、うぐぐぐ...と呻きながら読んでいた。
混乱の原因のひとつは、それぞれの現象に良い名前がないという点だと思う。上の2つの問題のうち後者の問題は、伝統的な教科書では抑制(suppression)という見出しの下で解説されていると思うが、なにをもって抑制と呼ぶかも実は相当あいまいらしい。小島隆也さんという先生の一般向け解説書では、前者を「マルチコ」、後者を「マルチコもどき」と呼んでいて、我が意を得たりと思ったのだけれど、考えてみるとマルチコ(multicollinearity; collinearity)という用語自体も、「説明変数間の高い相関のせいで解が不安定になる」現象を指して用いられる場合もあれば、(この論文のように)独立変数間の相関の存在そのものを指して用いられる場合もあるわけで、ここにも混乱の種があると思う。
読了:Dormann, et al. (2012) 共線性とその対処
数日前から、朝から晩までモデル・アベレージングについて考えている中年男、それがわたくしである。単にぼんやり考えているだけ。思えば不思議な人生だ。
劉慶豊(2009) モデル平均理論の新展開. 京都大学経済論叢, 183(2).
前半は解説、後半は事例紹介(ARCHモデルとかEGARCHモデルとかOGARCHモデルとかが乱れ飛ぶ。悪夢だ)。いずれも私の理解が及ぶ内容ではなかったが、ま、こんな日もある。
モデル平均の手法の紹介についてメモ:
- ベイジアンモデル平均。データを$y$として、モデル$M_k$に与えるウェイトは$P(M_k | y)$[モデルの事後確率]。Cf. Draper(1995 JRSS), Hoeting et al.(1999 Stat.Sci.), Clyde & George (2004 Stat.Sci.).
- smoothed-BIC。$BIC \approx -2 \log (\lambda_k)$なので[$\lambda_k$とはたぶんモデルの周辺尤度のことだと思う]、ウェイトを$\exp(-BIC_k/2) / \sum_s \exp(-BIC_s/2)$とする。Cf. Buckland et al.(1997 Biometrics).
- smoothed-AIC。上のBICをAICに入れ替える。これもCf. Buckland et al.(1997).
- Mallowの$C_p$を使う方法。丁寧に説明してくださっているのだろうとは思うが、残念ながらさっぱり理解できなかった。Cf. Hansen(2007 Econometrica)。
Clyde, M. & George, E.I. (2004) Model Uncertainty. Statistical Science, 19(1), 81-94.
ベイジアン・モデル・アベレージングについてのレビュー。
重回帰などのいくつかのモデルにおける変数選択問題を中心に先行研究を概観。モデル空間の探索手法と事前分布の決め方について概観。木モデルとグラフィカル・モデルでの例について簡単に紹介。周辺尤度が解析的に求められないときの手法を紹介。最後に決定理論的観点からの諸問題を紹介。という構成であった。
多くの話題について、差し迫った関心がないので適当に読み飛ばしてしまったが(←「難しくてわかんなかった」の婉曲表現)、勉強になった箇所をいくつかメモしておく。
- 重回帰の変数選択問題の場合、事前分布の王道は、パラメータについてはゼルナーのg事前分布、モデル空間については独立ベルヌ―イ分布(つまり、各変数がモデルに含まれるかどうかを独立ベルヌーイ試行だと捉える)。
- 独立ベルヌーイ分布のほかに、変数の数についてトランケートつきのポワソン分布を想定するという手もあって、これはスパースなモデルを表現するのに向いている。
- ベルヌーイ事前分布の弱点は、共線性がきついとき、一連のよく似たモデル群に高すぎる事前確率が割り振られちゃうという点。[←そうですよね! この点、Hoetingたちの論文のコメントにも書いてあったんだけどそのときは意味がわからず、実データで試してみてやっと腑に落ちた。モデル・アベレージングって意外に共線性に弱いのだ]
- ベルヌーイとg事前分布の黄金ペアでやるとして、じゃあ無情報だからgはなるべく大きくしよう、という作戦は失敗する。なぜなら、ベイズ・ファクターで見るとナルモデルとすごく極端なパラメータ推定値を持つモデルが有利になっちゃうからだ[←そういうもんか...]。これをLindley-Bartlettパラドクスという。そういうわけで、とりあえずのおすすめは、ベルヌーイ分布のパラメータwは1/2 [←無情報ってことであろうか]、gは10000以下にすること。
- $\sigma^2$が固定されている限り、gとwをどう定めても、事後確率が高くなるモデルはAICやBICも良いことがわかっている。[←えええ? よくわからんけど、なんだかやる気をなくすねえ。George & Foster (2000, Biometrika)をみよとのこと]
読了:Clyde & George (2004) ベイジアン・モデル・アベレージング・レビュー
2016年2月 8日 (月)
仕事していて、ふと思うことがあったのである。これって、PLS回帰モデルを協調学習するとうまくいくんじゃないかしらん。ははは、まさかそんな手法はないよね... とためしに検索してみたら、なんと、パッケージがあった... 世の中は広いなあ...
Xiao, N., Cao, D, Xu, Q.S. (2015) enpls: R Package for Ensemble Partial Least Squares Regression.
Rパッケージenplsのvignett。
要するに、訓練データからリサンプリングしてpls回帰モデルをk本つくる。リサンプリングはモンテカルロとブートストラップを用意している。並列処理もできる。
係数の平均をSDで割ったのを重要性として表示してあげるから変数選択に使え。外れ値検出の機能もつけたので使え[詳細略]。 無論予測もできるので使え。k-fold CVもつけたので使え。以上。
そ... そうですか...
読了:Xiao, Cao, & Zu (2015) 協調PLS回帰 (Rのenplsパッケージ)
Zeugner, S. & Feldkirchner, M. (2015) Bayesian Model Averaging Employing Fixed and Flexible Priors: The BMS Package for R. Journal of Statistical Software, 68(4)。
Rのベイジアン・モデル・アベレジーング(BMA)のパッケージBMSの紹介。実戦投入前の参詣のような意味合いで目を通した。
RのBMA用パッケージとしては、他に先週読んだ論文の著者HoetingsさんたちによるBMAパッケージとか、その論文にコメントを寄せていたClydeさんによるBASパッケージとかがあり、優劣は良くわかんないんだけど。
BMA概論。ここでは線形回帰のBMAについてだけ考える[BMSはそういうパッケージであるようだ]。
説明変数の候補が$K$個あり、その行列を$X$としよう。そこから$X_\gamma$を選んで、
$y = \alpha_\gamma + X_\gamma \beta_\gamma + \epsilon, \ \ \ \epsilon \sim N(0, \sigma^2 I)$
を推定したい。でも全部入れたモデルを検討するにはサンプルサイズが足りない。
そこでBMAだ。ありうる$2^K$個のモデルについて片っ端から推定し、それぞれにベイズ定理で事後確率を与えて平均する。モデルの事後確率(以下PMPと略記する)は
$p(M_\gamma | y, X) = p(y | M_\gamma, X) p(M_\gamma) / \sum_s p(y|M_s, X) p(M_s)$
分母は分子を全モデルで合計しているだけである。分子のひとつめの$p(y | M_\gamma, X)$はモデルの周辺尤度 [←最大尤度とかじゃないのである。うんうん、ここはHoetingさんたちのおかげで理解できたぞ]。ふたつめの$p(M_\gamma)$はモデルの事前確率。
統計量$\theta$(たとえば回帰係数$\beta$)について、次のようにして事後分布を得ることができる。
$p(\theta | y, X) = \sum_\gamma p(\theta | M_\gamma, y, X) p(M_\gamma | X, y) p(M_\gamma) / \sum_s p(M_s | y, X) p(M_s)$
[←そ、そうなの??? モデルで推定された$\theta$の事後分布$p(\theta | M_\gamma, y, X)$にモデルのPMP$p(M_\gamma | y, X)$を掛けて足しあげればいいんじゃないの? なんでここでまたモデルの事前分布$p(M_\gamma)$が出てくるの?
探してみると、この論文のドラフトであろう BMSパッケージのVignetteでは、素直に
$p(\theta | y, X) = \sum_\gamma p(\theta | M_\gamma, y, X) p(M_\gamma | X, y)$
となっている。これはこの論文の誤記ではなかろうか?]
さて、モデルの周辺尤度$p(y | M_\gamma, X)$、パラメータの事後確率$p(\theta | M_\gamma, y, X)$をどう求めるか。ベイジアン回帰で求めます。[←ここがHoetingさんたちと違うところだ。彼らは個別のモデルの推定は最尤法でいいやと思ってたんじゃないかしら]
パラメータの事前分布は、切片は$p(\alpha_\gamma) \propto 1$、誤差分散は$p(\sigma) \propto \sigma^{-1}$でよしとしよう。問題は$\beta_\gamma$の事前分布。ゼルナーのg事前分布を使うことにします。
[...ここでg事前分布についての定義があるけど、パス。ダレダレの事前分布だなんて、そういう難しい話、できれば一生関わらずに過ごしたい...]
まあとにかく、g事前分布を使うってことは、係数はゼロだよねと思っているということだ。ハイパーパラメータ$g$はその確信の度合いを表す(小さな$g$は「まず間違いなくゼロだよ」に相当)。
g事前分布を使うと、$\beta_\gamma$の事後分布は$t$分布になり、その期待値は、モデル$M_\gamma$のOLS推定量を$\hat\beta_\gamma$として、$\frac{g}{1+g}\hat\beta_\gamma$になる。要するに、$0$と$\hat\beta_\gamma$を$g$で重みづけて足しているわけだ。[←へー!そりゃ面白いなあ。偉いぞゼルナーくん]。
g事前分布を使えば、モデルの周辺尤度もすごく簡単に求められる。[数式省略]
[ここでBMSパッケージの使用例を紹介... 以下、機能の紹介。]
モデルの事前分布について。以下をご用意しております。
- 一様分布。bms(data, mprior="uniform")と指定する。
- 二項モデル事前分布。モデルサイズ(モデルに使う説明変数の数)について考えよう。モデルサイズの事後分布の期待値は、ある説明変数がモデルに含まれる確率(以下PIPと略記)を全変数で合計したものだ。いっぽう、モデルサイズの事前分布は、モデルの事前分布が一様だとすると、問答無用で、$K/2$を中心にした左右対称の山形になっている[←なるほど...]。モデルサイズの事前分布を思い通りに指定できないか? そこで登場するのが「二項モデル事前分布」。モデル$M_\gamma$のモデルサイズを$k_\gamma$として、
$p(M_\gamma) = \theta^{k_\gamma} (1-\theta)^{K-k_\gamma}$
こうすると、モデルサイズの事前分布の期待値が$\bar{m}=K\theta$になる。mprior="fixed", mprior.size=$\bar{m}$とする。 - PIPの直接指定。mprior="pip", mprior.size = c(0.01, ...)という風に指定すると、最初の変数のPIPが0.01になる。
- 二項ベータモデル事前分布。二項モデル事前分布を使うと、モデルサイズの事後分布は$\bar{m}$のあたりでぐわっと高くことが知られている。そうじゃなくて、$\theta$をベータ分布からドローしようという提案がある[ややこしい...]。モデルサイズの事後分布がもっとなだらかになる。mprior="random", mprior.size=$\bar{m}$とする。
- ほかにもいろいろあるよ。
変数の数$K$が大きくて、$2^K$本のモデルを数え上げるだけで寿命が尽きる。そんなあなたのためにMCMCサンプラーをご用意しました。
- birth-deathサンプラー。まずランダムにひとつ変数を選ぶ。もしそれが現在のモデルに含まれていたら落とし、もし含まれていなかったら含める。mcmc="bd"と指定する。
- reversible-jumpサンプラー。50%の確率でbirth-deathサンプリング。残りの50%の確率で、いま含まれている変数と含まれていない変数をひとつづつランダム選びスワップ。mcmc="rev.jump"と指定する。
- MCMCじゃなくて全部数え上げる。mcmc="enumerate"と指定する。
$K$が14までならenumerate、それ以上ならbdがデフォルト。なお、MCMCのときには初期モデルをうまいこと選ぶ機能もつけてあるよ。ほかにもこんな工夫をしているよ[めんどくさいのでパス]。
パラメータの事前分布について。[このパッケージでは、どうやらg事前分布を使うというのはマストらしい]
- unit information prior。ハイパーパラメータ$g$をサンプルサイズ$N$にする。g="UIP"と指定。これがデフォルト。
- Bayesian Risk Information Criterion。$g=max(N, K^2)$とする。g="BRIC"と指定する。
- お好きなgを指定する。たとえばg=5とか。
- モデルごとに$g$を変える。経験ベイズ法(まずOLSで推定しちゃって、そのF値でgを決める)と、$g/(1+g)$がベータ分布に従うと考えてハイパーパラメータを指定する方法を搭載。[気が狂いそうなので大幅に省略。先生方、ちょっと凝りすぎじゃないですか...]
そのほか、予測分布の出し方とか、グラフィック機能の話とか。
... 読みながらパッケージをいじってたんだけど、ちょっと意外なことに気がついた。
ためしに、変数がすごく多くてサンプルサイズがすごく小さい訓練データ(N=15, K=64)でBMAを試してみたら、過学習がすさまじい。それはしょうがないんだけど、意外にも、モデルサイズの事前分布をいじって、事後分布の平均を2くらいまで下げても、やっぱり過学習するのである。つまりモデルサイズにペナルティをかけたってダメだということだ。回帰係数のハイパーパラメータgを下げれば、さすがに過学習は起きなくなるけど... 結局、素直に小さなPLS回帰モデルをひとつつくったほうが、学習性能も般化性能もよかった。
うーん、モデル・アベレージングは過学習に強いと聞いていたのだが、なぜうまくいかないのだろうか。共線性が強すぎるからだろうか、それともMCMCのやりかたがまずいのか...
読了:Zeugner & Feldkirchner (2015) RのBMAパッケージ
2016年2月 6日 (土)
Hoeting, J.A., Madigan, D., Raftery, A.E., Volinsky, C.T. (1999) Bayesian Model Averating: A Tutorial. Statistical Science, 14(4), 382-417.
ベイジアン・モデル・アベレージング(BMA)についての解説。仕事の都合で必要に迫られ急遽目を通した。オフィスの本棚には解説書もあるはずなのに、そっちは手に取らず、題名に"A Tutorial"なんて書いてある奴をふらふらと読んでしまう、という...
BMAとはなにか。いきなりフォーマルに書いちゃうと気持ちが萎えますが、いまデータ$D$から関心ある量$\Delta$を予測するモデル$M_1, M_2, \ldots, M_K$があるとして、
$P(\Delta | D) = \sum_k P(\Delta|M_k, D) P(M_k|D)$
を求めましょうよ、という話である。
モデルの事後確率$P(M_k | D)$は、事前確率$P(M_k)$と尤度$P(D|M_k)$の積を、全モデルを通じて合計1になるようにしたものである。
尤度$P(D|M_k)$というのは積分尤度である。つまり、モデルのパラメータを$\theta$として、
$P(D|M_k) = \int P(D | \theta_k, M_k) P(\theta_k | M_k) d\theta_k$
である。[←ここですごく混乱したんだけど、一晩寝て読みなおしたら腑に落ちた。ここでいうモデルの事後確率$P(M_k | D)$とは、「推定されたモデル」が正しい確率ではなくて、なんていえばいいんだろう、モデルの式そのものが正しい確率というか、SASのPROC GLMのMODEL文が正しい確率というか、Rのlm()に与えるformulaが正しい確率というか、そういうものを指しているのだ、きっと。だから、尤度は推定されたモデルの持つ尤度$P(D|\theta_k, M_k)$ではなく、周辺尤度$P(D|M_k)$でなければならないのだ]
BMAには次の問題がある。
- A. モデルの数が多すぎて足し上げきれない。
- B. 積分の計算が難しい。MCMCが登場したいまでも大変。
- C. 事前確率$P(M_k)$をどうするか。
- D. どんなモデルを足し上げるのか。
問題Aについて。これには大きく2つのアプローチがある。
- データによって支持されるモデルだけを足しあげる。これをオッカムの窓という。それぞれのモデルについて$P(M_k|D)$を求め、その最大値と比較する。なにか閾値を決めといて、比が閾値を下回ったら、足し上げせずに捨ててしまう。さらに、「それをもっと単純にしたモデル」が生き残っていて、しかもそいつよりも確率が低い、という図々しいモデルも捨てる。こういうことをやってると、たいていモデルの数はひと桁にまで落ちる。[ああ、なるほど... こないだ読んだ機械学習ユーザ向け箴言集みたいな論文で、BMAなんてのは結局モデルを選んでるだけだ、という悪口が出てきたけど、そういうことか...]
- MCMCモデル合成(MC^3)。えーと、モデル空間$M$を状態空間とするマルコフ連鎖$\{M(t)\}$と、均衡分布$P(M_i|D)$を考えまして... [このへんで頭に霞がかかったようになってきたので中略]。柔軟なやり方だけど、収束するとは限らない。ちょっと似ている方法に確率探索変数選択(SSVS)というのもある。importance samplingを応用するのもある... 云々、云々。
問題Bについて。
- 尤度$P(D|M_k)$がほんとに積分で出せちゃう場合もある(線形回帰の場合とか)。
- 尤度$P(D|M_k)$ を積分なしで近似する方法もいくつかある。BICで近似しちゃうとか。[←ああ、そうだったのか... 各モデルで推定したなにかをBICで重み付けするのってどういう意味だろうかと思っていたのだが、あれは積分尤度の代用品なのか]
- [問題Bからはちょっと話が逸れているんだと思うけど] 事後分布$P(\delta|M_k, D)$のほうを、パラメータの最尤推定$\hat\theta$を使って$P(\Delta | M_k, \hat\theta, D)$で近似しちゃう、というのもある。これをMLE近似という。
問題Cに進む前に、ここで具体的なモデル・クラスを4つ挙げる。
- 例その1、線形回帰。予測子を選択せず、すべての可能な予測子セットを通じて平均する。尤度は閉形式で書けるぞ。俺たちの論文を読め(Raftery, et al., 1997 JASA)。反応変数をBox-Cox変換するとき、そのパラメータを決めずにBMAでどうにかする、という論文も書いたから読め。外れ値をどうこうするっても書いたから読め。[この辺、大幅中略。著者らはどうやらRのBMAパッケージの中の人らしいので、すいません、いずれ勉強いたします]
- 例その2、一般化線形モデル。リンク関数と予測子を変えてBMAする。モデルを$M_k$、ナルモデルを$M_0$として、ベイズファクターは周辺尤度の比
$B_{10} = P(D|M_k) / P(D|M_0)$
事前のオッズを$\alpha_k=P(M_k)/P(M_0)$として、モデルの事後確率は
$P(M_k|D) = \alpha_k B_{k0} / \sum_r \alpha_r B_{r0}$
じゃあ周辺尤度$P(D|M_k)$はどうやって出すのかというと... [なんか超めんどくさい話が続いているので、ええい、省略だ。そういう難しいお話は先生方にお任せしますよ!] - 例その3、生存分析。CoxモデルのBMAはどうやってやるかっているとねえ... [省略!! 落語の「寝床」の丁稚みたいな気分になってきた]
- 例その4、グラフィカル・モデル。[だめだ、視線が紙の上をつつつーっと滑っていく... 省略]
気を取り直して、問題C、モデルの事前確率をどうやって決めるか。
- まず思いつくのは一様分布。
- 予測子セットを動かすBMAで、各予測子について「モデルにこれが含まれる」事前確率を決めておき、積をとってモデルの事前確率にするという方法がある。George & McCullock (1993 Statist. Sinica)を見よ。[←あー、これは面白いわ! 予測子の有用性なら関係者の合議で決められそうだ。応用場面が目に浮かぶなあ...]
- グラフィカルモデルで、リンク有無に事前確率を振る。
- 専門家の合議で情報事前分布を決める。Madigan, Gavrin, & Raftery (1995 Comm.Statist.TheoryMethods), Ibrahim & Laud (1994 JASA)をみよ。
予測成績をどうやって測るか。[このくだりは次の事例1のための説明らしい。事例2では使ってない]
データを学習データ$D^B$と検証データ$D^T$に折半します。成績はこうやって測ります。検証データのすべての実現値 $d$ について
$- \sum_{d \in D^T} \log P(d | M, D^B)$
BMAそのものの予測成績は、logの右側を、それぞれのモデルにおける確率をモデルの事後確率で重み付け合計した奴に変えればよい。
[←これ、対数スコアリング・ルールじゃん。びっくり。この手法はプロパー・スコアリング・ルールになっているんだよ、なんて書いてある。ゲーム理論の文脈で出てくる考え方なんだけど、こういう場面でも使うのかー]
事例紹介をふたつ。
ひとつめ、Cox回帰の共変量を選ばずにBMAでやったという話。[難しくはなさそうだけど、面倒なので読み飛ばした]
ふたつめ、体脂肪率を回帰で予測するときにBMAでやったという話。データは$N=251$、説明変数は年齢、身長、体重など13個。全部使った重回帰で$R^2=0.75$。さて、データを折半し、学習データ側で変数選択ないしBMAをやってみた。BMAは、モデル$2^{13}=8192$個、モデルの事前確率は一様、モデルの事後確率の求め方は俺たちの論文を読め。変数選択手法としては、F値によるステップワイズ、Mallowの$C_p$最小化、調整済$R^2$最小化を試す。[←論文には「良く知られている」なんて書いてあるけど、ごめんなさい、後ろの2つがよく理解できない。$C_p$なり調整済$R^2$なりを基準に最良サブセットを悉皆検索したってこと? 8192本のモデルから? それって良いやり方なの?]
結果:BMAでは、モデルの事後確率は上位3位がそれぞれ12~14%、上位10位で計57%[←ほんとだ、BMAって事実上のモデル選択だ...]。変数選択のほうは、どの手法でも同一の8変数モデルが選ばれた。予測精度はBMAの勝ち。[←いやあ、悪評高きステップワイズ法なんかに勝っても、ねぇ...]
考察。
- 問題Dについて。モデルのクラス(回帰とか)をいろいろとりまぜたBMAというのもあるよ。Draper(1995)を読め。
- 頻度主義的なモデル・アベレージングもあるよ。AICで重みづけするとかね。ほかに機械学習系の、スタッキングとかバギングとかブースティングとか計算学習理論とか[←なにそれ]、いろいろあるけど、そういうのはたいてい点予測に焦点を当てていて、いっぽうBMAでは予測分布に焦点を当てているよ。
- BMAは「モデルのクラスが事前にわかっている」視点でのアプローチだと思われがちだけど、そんなことないよ。オッカムの窓をみてよ、「モデルのクラスが事前にわかってない」という発想に立ち、 いいモデルがみつかったらしょぼいのは捨てているよ。
- BMAの結果は複雑すぎて理解されないっていわれることあるけど、だったら事後確率だけみせればいいじゃん。p値より全然わかりやすいよ。なんならBMAはパラメータについての一種の感度分析だと割り切って、最良のモデルだけ見せればいいんじゃない?[←ああ、そういう思想なんだ...協調学習とは全然ちがうんだな]
- 今後の課題: 事前分布の選択、真のモデルが含まれていなかった時のパフォーマンス、オッカムの窓のような手法のチューニング、いろんなモデルクラスへの適用、など。
この論文には3人の研究者によるコメントと返事がついているので、そっちも一応目を通してみたのだけど、難しい話が多いわ、眠いわ、疲れたわ、途中でうっかり芋焼酎を飲み始めてしまったわで、ほとんど頭にはいらなかった。また次の機会にということで...
読了:Hoeting, et al. (1999) ベイジアン・モデル・アベレジーングへの招待
2016年1月27日 (水)
週末にぼけーっとめくっていたビジネス誌で経済学者の方が紹介していて、なんだか面白そうなので探して読んだ論文。自分だけは勝ち組になれるかもと思っている哀れなサラリーマン向けの嫌ったらしい雑誌だと思っていたが、たまには役に立つぞ、日経ビジネス!
Binder, C.C. (2015) Measuring Uncertainty Based on Rounding: New Method and Application to Inflation Expectations. Working Paper, August 25, 2015.
たとえば「将来のインフレ率は何パーセントだと思うか」というような、数値を尋ねる設問では、キリの良い数字を答える人は確信度が低いことが多い。そこから逆に確信度を推定する、という話。
著者が公開しているWorking Paperを読んだ。under reviewとのこと。
著者いわく。
個人の信念の不確実性をどうやって測定するか[←たとえば、ある人が将来インフレがどのくらいの確率で起きると思うかを調べたとして、その人がどのくらいの確信をもってそう信じているのかをどうやって調べるか]。これは重要な問題だ。信念を確率分布のかたちで直接訊くのは難しい。対象者間の不一致性とかボラタリティとかで代用することが多いけど、ミクロレベル[←個人レベルということであろう]での測定ではない。
昔から、確信度が低い人は丸めた数字を答えやすいことが知られている。この性質を使った手法をご提案します。
長所: (1)ミクロレベルの測定です。(2)信念の形成過程についてはなんら仮定を置きません、申告過程についての仮定を置くだけです。(3)過去データに適用できます。
丸めた数字(5の倍数とか)は「正確でない」ということを伝えるために使われる。「497人が参加しました」といったらそれは497人だけど、「500人が参加しました」といったらそれは約500人だ。Krifka (2009 Theory & Evidence in Semantics)はこれを「丸めた数字は丸めた解釈を示唆する」原理(RNRI原理)と呼んでいる。
実証的研究による証拠もある:
- 心理学: Baird et al.(1970 P&P), Huttenlocker et al.(1990 JEP:LMC)
- ファイナンス: Harris(1991 Rev. Financial Stud.), Zhao, et al.(2012 Tech.Paper), Herrman & Thomas(2005 Accounting Rev.), Shiller(2000 Book), Westerhoff(2003 J.Behav.Finance), Dechow & You (2012 Accounting Rev.)
- 経済史では、収入や年齢に確信がないとき丸めた数字が出やすいことが知られている: Zalnick (1961), A'Hearn & Beten (2009), Pudney(2008), Schweitzer & Severance-Lossin (1996)
- 主観確率推定: Manski & Molinari (2010, J.Business.&Econ.Stat.), Fischhoff & de Bruin, 1990 J.Behav.DecisionMaking), Hill et al.(2004), Hudomiet & Willis (2013 Decision Analysis)
Michigan Survey of Consumers (MSC) におけるインフレ期待の設問をみてみよう。国レベルの電話調査で、対象者は毎月500世帯(うち4割は半年前の対象者)。「これからの12ヶ月で、物価は平均して何パーセントくらい下がる/下がるでしょうか?」と尋ね、整数ないしDKを答えさせる。みよ、このヒストグラムを。5の倍数が多い(「3%」もちょっと多いけど)。
5の倍数の回答者だけ取り出すと、実際のインフレ率からの誤差(MAE, RMSE)が大きく、2回参加した人における回答の変更率が高く、2回目調査でのDK率が高い。[←おおお... ただの思弁的議論じゃなくて、こういう証拠を持っているのか、やるなあ]
さて、回答者の確信度をどうやって測るか。簡単に思いつくのは、「5の倍数」だったら確信度低だとみなすという手だが、これはあまり宜しくない。確信を持って5の倍数を答えている人だっているかもしれないじゃないですか。
お待たせしました、提案手法の登場です。
消費者$i$が時点$t$において持っている、将来のインフレについての主観確率分布について、平均を$f_{it}$, 分散(=不確実性)を$v_{it}$とする。
$v_{it}$が閾値$V$を超えている消費者をタイプH、超えていない消費者をタイプLと呼ぶ[←原文ではh, l だが、小文字のlは読みにくいので大文字に変えた]。
回答$R_{it}$は、タイプHでは$f_{it}$にもっとも近い5の倍数、タイプLでは$f_{it}$にもっとも近い整数になる、と仮定する。
回答が5の倍数でなかったら、その人はタイプLだ。しかし、回答が5の倍数の場合、その人のタイプはわからない。そこで、ある人がタイプHである確率を$\zeta_{it}$とし、これを最尤推定しよう。
どうやるかというと...
タイプHの$f_{it}$の分布を$N(\mu_{Ht}, \sigma_{Ht}^2)$, タイプLの$f_{it}$の分布を$N(\mu_{Lt}, \sigma_{Lt}^2)$とする。
ある$t$における$R_{it}$の分布は2つの確率質量関数の混合分布である。ひとつはタイプLの確率質量分布$\phi_t^L$で、サポートは整数。もうひとつはタイプHの確率質量関数$\phi_t^H$で、サポートは5の倍数。それぞれ定義できる[数式略。個々のサポート点の周りに等幅の閉区間をつくって積分する]。タイプHの割合を$\lambda_{t}$として、混合分布は
$\phi_t = \lambda_t \phi_t^H + (1-\lambda_t) \phi_t^L$
タイプLの人数を$N_t^L$, タイプHの人数を$N_t^H$とすれば、尤度は
$\prod_{j=1}^{N_t^L+N_t^H} \phi_t (R_{it} | \lambda_t, \mu_{Lt}, \mu_{Ht}, \sigma_{Lt}, \sigma_{Ht})$
ほらね、尤度関数が書ける。5つのパラメータを最尤推定すれば、個々の対象者のタイプH確率$\zeta_{it}$が推定できるという寸法だ。$V$についてはなんら仮定していない点にご注目。
最後に、集団レベルのインフレ不確実性指標をつくろう。上で除外していたDK回答者は$\zeta_{it}=1$だということにして、全員について$\zeta_{it}$の平均をとる。結局それは次の式になる。DK率を$DK_t$として、
$U_t = (1-DK_t)\lambda_t+DK_t$
MSCのインフレ期待設問に当てはめて観察。$\zeta_{it}$が高い人は、実際のインフレ率に対するインフレ期待の誤差が大きく、2回調査参加したときのインフレ期待の変化が大きい。$\zeta$は2回の調査参加を通じて安定している。
別の調査で消費者にインフレ予測を主観確率分布の形で直接聴取しているのがあって、そこから不確実性がわかるんだけど、この調査の分析にいくつか仮定を追加すると、その調査の不確実性をあてることができる由 [詳細は付録を参照とのこと]。
デモグラで層別して$\zeta$の平均をみると、高年収、高学歴、男、30-60台で低い... などなど、別調査での結果と整合している。
インフレ不確実性指標$U_t$の時系列をみると、'81-'82の不景気で高く、湾岸戦争でも上昇。実際のインフレ率と不確実性とのあいだにはBallの仮説というのがあって、インフレ率が高いときに不確実性があがるといわれているが(政府が介入するかもしれないと思われるから)、実際のインフレと$U_t$とのVARモデルを組むと仮説通りのグレンジャー因果性がある。[そのほか、失業率とか、横断でみたインフレ期待の不一致とか、いろんな時系列と比較している。めんどくさいので読み飛ばした]
[最後に、耐久消費財の消費行動と$U_t$との関連性を分析。これも関心ないのでパス。すいませんね]
結論。[インフレ期待の研究に対する貢献の話はとばして...] 提案手法はほかの調査データにも使える(未来への期待の設問でも、それ以外でも)。 今回はタイプLとHの2タイプを考えたけど、もっと増やしてもいい。云々。
なるほどねぇ、こりゃあ面白いな。
調査で数値を答えてもらったとき、キリのよい回答をどう扱うか、一緒に集計してよいものか、というのは以前ちょっと考えたことがあった(サーヴェイ調査に関わる人にとってはそれほど突飛な問題意識ではないと思う)。混合分布をあてはめたらいいんじゃないか、というところまでは考えたんだけど、そのときは回答自体(連続変数)と「キリのよさ」ダミーの2指標を持つLCAを想定し、いまいちうまくいかなかったので、途中で投げ出してしまった。
いっぽう著者の戦略は、回答を「主観確率分布の平均を離散変数で表現するプロセス」とみなし、その離散変数のメトリックについて潜在クラスを想定する、というもの。著者は、ある人が所属する潜在クラスは主観確率分布の分散と閾値の比較で決まる、云々と述べてはいるが、その仮定は結局使っていないから、いわば潜在クラスは外生的に決まってしまっているわけだ。つまりこの手法にとっては、主観確率分布の分散なんてほんとはどうでもよくて、単に「回答を5の倍数に丸める人」と「整数に丸める人」を想定しているだけなのだ。なるほどね、頭いいなあ。
マーケティング・リサーチの文脈だと、たとえばカテゴリ購入金額のような設問に使えればいいなあと思うんだけど、金額はたいてい右に裾を引くので、この論文で提案している正規性仮定はちょっと厳しい。そういう場合はどうしたらいいのかなあ。どなたか頭の良い方、考えて下さらないかしらん。
読了:Binder (2015) 回答におけるキリの良い数字に注目して確信度を測定する
2016年1月19日 (火)
Green, P.E., Krieger, A.M. (1988) Choice Rules and Sensitivity Analysis in Conjoint Simulators. Journal of the Academy of Marketing Science, 16(1), 114-127.
仕事の都合で読んだ。なんで四半世紀前の論文を読まねばならんのだ、とも思うのだけれど、知りたいことが書いてある本が見つからなくて。探し方が悪いのだろうか...
コンジョイント分析で属性の部分効用を推定し、かつ選択集合となる製品群を定義できたとして、そこから消費者の選択確率を求めるとき、方法がいろいろあるけどどれがいいのか、という話。
おかしい... こうやって書いてみると、どうみてもその辺の参考書に載っているべき話だ。探し方が悪いんだよな、やっぱり...
著者らいわく。
歴史的にいうと、初期のコンジョイント分析では対象者レベルでの最大効用ルールを使うのが一般的だった。個々の対象者は自分から見て効用がもっとも高い製品を確率1で選ぶ、と考える。いまでもこれが主流。
最近では効用シェアルールも使われている。効用のベクトルを選択確率のベクトルに変換する。良く使われているはBradley-Terry-Luceモデル(BTL)モデルとロジット・モデル。結果はだいたい同じ。どちらも"majority fallacy"という問題を抱えている。すなわち、異質性が高い市場において、効用の平均が高いのに誰にとってもfirst choiceでないという製品が出現するという問題である[←ちょっと待って先生...それがなぜ問題なの? 誰にとっても二番手の製品が市場全体を通してシェア最大になる、ってことは実際にあり得るんじゃないですか? どうも文脈がつかめない]
ほかに、EBA, 辞書型、probit型、tobit型、conjunctive/disjunctive型などのルールが提案されているが、推定が難しいしあんまし使われていないので、ここでは扱わない。[←知らなかった... コンジョイント分析の文脈でも、かつては非補償的選択を取り入れるという提案があったのか]
各ルールについての説明。
いま、部分効用は対象者内で最小0, 最大1に規準化されているとしよう[←おっと、合計0じゃないのね。BTLルールの説明をしたいからだろう]。製品$1,2,\ldots,J$の効用$s_1, s_2, \ldots,s_J$を選択確率に変換する関数について考える。
- 最大効用ルールは, 最大の製品が確率1,ほかのすべての製品が確率0。
- BTLルールは、効用の割合を確率とみる。
- ロジットルールは、いったん効用を指数に変換して、その割合を確率とみる。[原文には、$T'=\sum_j \exp(s_j)$として$\exp(s_1/T'), \exp(s_2/T'), \ldots$と書いてあるんだけど、$\exp(s_1)/T', \exp(s_2)/T', \ldots$の誤記だと思う]
- これらは実は一例にすぎず、他のルールだって作れる。たとえば、すべての効用をいったん$\beta$乗してからその割合を確率とみる、とか。
BTLルールは効用に定数を加えると確率が変わる。ロジットルールは効用を定数倍すると確率が変わる。
向き不向きについていうと、散発的に買う製品の異質性の高い市場では最大効用ルールが良い。反復購買する製品に市場ではBTLなりロジットなりが良い。
後半は感度分析のすすめ。候補集合をちょっぴり変えてシェアの変化をみるといいよ、という話[←推定量に対するパラメータの感度分析というような話じゃなくて、もっと実質的な話だ]。
- 候補集合から製品をひとつ選んで取り除いてみよう。企業のシェアにとってどれが大事かがわかる。
- 製品をひとつ選んで属性をひとつ選んで水準を変えてみよう。局所的な変更の影響がわかる。
- 属性をひとつ選び全製品で共通の水準に固定してみよう。
- 対象者を絞ってみよう。
- Status Quo選択肢の効用を動かしてみよう。
- ランダムなバンドルをつくってみよう。
とかなんとか。[←牧歌的な話で実に心暖まるが、いま心暖めてもしょうがないので、適当に読み飛ばした]
効用から確率を求める方法については、もっと新しい方法もあるので(Sawtooth社のrandomized first choiceとか)、1988年の論文を読んでもしょうがないんだけどね、実のところ。
BTLモデルとロジットモデルでは、その背後にある効用についての理論が違うのではないかと思う。その辺の事情が知りたくて手に取ったんだけど、やっぱりよくわからなかった。なにを読めばいいんだろう? もちろん、難しい数式が出てこない範囲でお願いしたい... 修士のときに読まされたCoombs-Dawes-Tverskyの数理心理学の教科書が、いまだトラウマになっているのである。
読了:Green & Krieger (1988) コンジョイント分析で推定した効用から市場シェアを推定する方法 in 1988
2016年1月10日 (日)
Ronkko, M., McIntosh, C.N., & Antonakis, J. (2015) On the Adoption of Partial Least Squares in Psychological Research: Caveat Emptor. Personality and Individual Differences, 87, 76-84.
構造方程式モデリング(SEM)の研究者が集うメーリングリストSEM-NETを眺めていて気が付いた論文。なにより驚いたのは第2著者の名前。Cameron McIntosh!! Cameronさんじゃありませんか!!
SEM-NETを読んでいる人なら知っていると思うけど、世界中の有象無象が送りつける、統計モデルにまつわるありとあらゆる質問に対し、適切な参考文献リストを一瞬にして返信する謎の人物、それがCameronさんであった。その速度と博識は人間業をはるかに超え、Cameronとはどこかの研究所の奥深くの人工知能なんじゃないか、ないし脊髄から光ファイバーがgoogleのデータセンターに伸びている人なんじゃないかと思っていたのである(日本語だからと思って云いたい放題ですね、すいません)。数年前にぷつりと行方を晦ましていたのだが、お元気であったか!というか、Camって実在する人物だったのね!(すいません)
あまりの衝撃に、researchgateのdraftを読んだ。夜中にディスプレイで 。なにやってんだ、この忙しいときに...
SEMのバリエーションであるPLS-SEM(偏最小二乗法SEM)を批判する論文。PLS-SEMは回帰の文脈でつかうPLS回帰とはちょっと違ってて... まあとにかく、SEMの推定手法のひとつである。日本語の資料はほとんどみかけないが、マーケティングの分野では結構メジャーではないかと思う。ある方がまとめたマーケティング分野でよく引用される論文Top20の第1位はPLS-SEMのレビューだったし、顧客満足の分野で有名な米顧客満足指標(ACSI)のモデルはたしかPLS-SEMに基づいていたはずだ。私も仕事で使ったことがあります、すいません。
PLS-SEMに対する批判というのは珍しくなくて、情報科学系のジャーナルでも熾烈な罵倒と反論が交わされているのを見かけたことがある。第三著者のAntonakisさんもかつてPLSを痛烈に批判していた。この論文の主たる仮想敵はWillaby et al (2015, 同誌) という論文で、心理学での個人差研究におけるPLS-SEMのレビューらしい。
著者ら曰く。
そもそもPLS-SEMはSEMじゃない[←そうきたか...。以後、著者らは執拗に、PLSウェイティング・システムという言葉を使うが、面倒なのでPLS-SEMと略記する]。古典的な最尤法ベースのSEMの背後には統一的な統計理論がある。PLSアプローチはわけわからない手順の寄せ集めにすぎない。PLS-SEMは、指標を加重和として合計し、その合成変数を使ったOLS回帰でパス係数を推定しているだけだ。そんなのSEMとはいわん。
PLS-SEMは多重指標の潜在変数モデルの推定に有用か。まずこう問うべきだ。(1)潜在変数のあるSEMを、潜在変数を合成変数で近似して推定するのは良いアイデアですかね? (2)その合成変数を求めるために最良の方法はなんですかね?
(1)について。どうみても答えはノーだ。なぜなら、合成変数は指標の測定誤差を継承する。そのせいでPLS-SEMには一致性がないし(真値への漸近的収束がない)、不偏性もない。一致性がないというのは特に深刻だ。かのグレンジャー先生はこう言っている。nが無限大になっても正しくならないようなものを使うな、と。
(2)について。PLSのウェイトは「最適」だと人はいう。しかしなにをもって最適というのかがはっきりしない。Fornellたちは予測の最大化をもって最適と呼び、Chinたちは信頼性の最大化をもって最適化と呼ぶ。この2つは全然ちがうぞ。さらに、指標の合成の方法はほかにもある。回帰法の因子得点ウェイト、これは合成変数の信頼性の期待値を最大化する。相関保存法の因子得点ウェイト、これは因子相関を維持する[←相関保存法ってなんのことだろう、Bartlett法のことだろうか]。主成分ウェイト、これは指標の分散説明率を最大化する。これらと比べ、PLSはどういう点で優れているというのか? それどころか、PLSがつくる合成変数は信頼性が単純合計よりも低いという報告があるくらいだ。ついでにいうと、標本における信頼性を最大化するという観点では、理想的ウェイトでさえも単純合計と変わらないといわれている。[←へー。Bobko et al.(2008 ORM), Cohen et al.(2003, 書籍), Cohen (1990, Am.Psychologist), McDonald (1996 MBR), Raju et al.(1999 App.Psych.Measurement)というのが挙げられている。院生の頃だったか、因子得点をこねくり回している人に「単純合計のほうがましだよ」と言い放つ人を見たことがあって、一理あると思ったんだけど、実証研究もあったとは]
[ここでWillabyらのデータの再分析。省略]
PLS合成変数間の相関は不偏でない。測定誤差間の相関によってインフレを起こす。この”capitalization on chance"について、Ringleたちは「悪いことばかりじゃない、変数自体の測定誤差で合成変数間相関はデフレを起こすからトントンだ」というが、インフレとデフレが釣り合う証拠がどこにある。後者は希釈化補正なり変数誤差モデルなりで対処すべき問題だ。
モデル検証について。
PLS-SEMは丁度識別な回帰の組み合わせなので過識別テストはできない。もともとモデル検証というマインドセットがないのだ。
これに対してPLS派はヒューリスティクスに頼る。信頼性指標とAVEを比べるとか、R二乗ベースの適合度指標をみるとか。前者の問題点は、PLS-SEMの因子負荷は正方向に偏るので、信頼性とAVEも偏るという点。後者の問題点は、R二乗じゃモデルの適合度はわからないという点。適合と予測とは別の問題だ。さらに、不一致な推定量だって高いR二乗を持つことがある。
Ringleたちは最近新たな指標を提案している。これはよくみるとPLSアルゴリズムとは全然関係なくて、単に指標の相関行列から出している。発想は悪くないけど、ふつうのSEMの弁別的妥当性検証の手順より優れているかどうかは今後の課題だ。
[ここでWillabyらのデータの再分析。省略]
パラメータの検定について。
PLS派はブートストラップでSEを出して t 検定する。でもPLS推定値の標本分布は非正規だから t 分布は使えないはずだ。ブートストラップ信頼区間は決め方によって結果がかわってくるし、その性質についてはよくわかっていない。
さらにややこしいのは、いわゆる「符号反転修正」だ。これはブートストラップ反復から要約を出す前に、個々のブートストラップ反復のすべてのウェイト、負荷、回帰係数の符号を調べて、必要あらば全部反転する、という手続きである[←なにそれ、そんなことしてたの?]。この手続き、ふつうのブートストラップ法では行われない。ブートストラップ反復における統計量が元の推定で使われた統計量と同じでないといけないと述べていることになるわけで、ブートストラップの基本原理に反する。この手続きはもともとWaldの考え方に由来していて、Waldさんは、指標のウェイトの符号は不定なので「多数の指標でウェイトが正になる」ように符号を選べばいいと考えていた。しかしPLS-Graphは個々の反復についてこういう風に処理していて... これには具体的にはこういう問題があって...[と、シミュレーションの紹介に突入。めんどくさいので飛ばし読み。ようするにブートストラップ信頼区間があてにならんという話ではないかと思う]
PLSのいわゆる「長所」について。[←ようやく本丸に攻撃を開始します。待ちくたびれたぜ]
「PLSはサンプルサイズが小さくて良い」というのは本当か。また、「PLSは非正規データでもOK」というのは本当か。
通常の最尤法SEMは小標本や非正規データで歪む。しかし、不偏でないかもしれない推定量を、不偏ではなく一致性もない推定量に取り換える理由がどこにあるのか。「この推定量はデータについての想定が少なく、小標本でもうまくはたらきます」だなんて、統計的推定の基本原理に反している。パラメータ推定というのは、標本情報と非標本情報(想定や制約)の組み合わせから得られるものなのだ。実際、Westland (2015, "Structual Equation Models")のシミュレーション研究は、PLSのバイアスの強さとfalse positive率の高さを示している。[←この本面白そう...]
さらに、近年のSEMでは小標本・非正規性に対処する方法が次々に開発されている。小標本ではカイ二乗統計量を修正するとか、非正規性に多変量的変換で対処するとか、検定統計量を修正するとかロバスト推定量を使うとか。PLS理論家のなかにはこの進展を踏まえ、もうPLSを使うのは時代遅れだと認めている人もいるぞ(Gafen, Rigdon, & Straub, 2011 MIS Quarterly)。
「PLSは探索的研究に適している」というのは本当か。
PLSだってSEMだって、想定モデルと構造モデルを事前に決めなきゃいけない点では変わらない。さらに、PLSのウェイティングは、パスでつながれた合成変数間に高い相関があることを前提としているから、つまりすごく強い理論がないといけないわけだ。理論がないんなら単純合計のほうがマシである。さらに、SEMには探索的ツールがたくさんあるぞ、修正指標とか、モデル探索の自動化とか。[←な、なにそれ?! Marcoulides & Ing(2012)というのが挙げられている。Hoyle(ed)のSEMハンドブックの章だ]
「PLSはformative measurementモデルに適している」というのは本当か。
残念ながら、そもそもformative measurement自体が論争の種だ。それ自体をやめちゃえという意見もあるし(Edwards, 2011 ORM; Hardin, et al., 2011 Edu.Psych.Measurement)、すくなくともそれは測定じゃないという指摘もある(Markus & Borsboom, 2013 書籍; Rhemtulla, Bork, Borsboom, 2015 Measurement)。「項目内のすべての分散に意味がある」というformative measurementの想定には、調査データ分析に関する限り無理がある。formative指標は測定誤差という概念を否定しているわけで、これは受け入れがたい。測定誤差を考慮しつつformative measurementと同じ目的を達する手法だってある。[←なんのこと? 前掲のEdwards(2011)が挙げられている]
百歩譲ってformative modelを受け入れるとして[←ええ、そこは百歩譲ってくださいな]、PLS-SEMがこのタイプのモデルについてうまく機能するのかどうかがよくわからない。WoldもLohmollerもそんなことは主張していない。これをもともと言い出したのはFornell & Bookstein (1982)で、彼らはPLS合成変数を構築する2つの方法(Mode A, Mode B)を統計モデルの構造(reflective, formative)と混同しただけである。近年の研究は真実をあきらかにしつつある[Aquirre-Urreta & MarakasとRigdonらの論争を引用している。Info.Sys.Res., 2014]。さらに、仮に「formative 指標は因果的性質を持たない」「formative変数とは概念的に意味がある実体ではなくただの簡便な合計に過ぎない」という立場に立つとしても、PLSはその合成変数をつくるための最適な手法とはいえない(上の"capitalization on chance"のせいで)。固定したウェイトのほうがましだ(Howell, 2013 AMS Review)。
結論。PLS-SEMは使うな。以上。
。。。ダラダラとメモしたが、PLS-SEMで作った(reflective指標の)潜在変数が測定誤差を分離できてないとか、モデル検証ができないとか、その辺はPLS-SEMユーザにとっては織り込み済みの欠点ではないかと思う。人によるでしょうけど、私だったら、普通に最尤推定できるSEMモデルをわざわざPLS推定しようとは思わない。PLS-SEMの是非をめぐる議論の焦点は、なんといっても、formative指標しか持たない潜在因子を含むSEMモデルを想定し(普通のSEMだと識別困難)、全体のR二乗を最大化するパス係数を小標本でどうにか推定したい... という場合ではないか。
だから論文のポイントは一番最後の部分で、ドキドキしながら読んだんだけど、いきなりformative指標モデルそのものについての批判から始まり、ちょっとがっくり。モデルのよしあしと推定のよしあしは別の話でしょう。前者について言えば、formative指標そのものを排斥するのはちょっと極論で、前にBaggozziさんたちが書いていたように、要するにそれは現象をどのように概念化するかということなのだと思う。肝心の後者のPLS推定批判のほうも、引用文献任せでちょっと迫力が足りない感じだ... すいません、勉強します。
本筋と離れるけど、推定量の望ましい性質をめぐる議論について不思議に思う点があるので、メモ。
この論文のなかで引用されているGrangerのコメントのように、線形モデルの文脈で、なによりもパラメータ推定量の一致性を重視するという立場を見かけることは多い。しばらく前にAchenのかなりユーザ寄りのモノグラフを読んだときも、そういう断言がなされていて、へええ、と思った。
馬鹿にされるのを覚悟でいうと、それって場合によるのではなかろうか、という気がする。たとえば調査データからSEMモデルを組んで解釈しようというような局面で、推定量の漸近的性質についてはあまり関心が持てないような気がする。リッチなデータが手に入る架空の世界で正しい結果が手に入ることより、とにかく手元の標本から得られるパラメータ推定値が誤った解釈を引き起こさないことが大事なわけで、こういう場合は、どちらかというと一致性よりも有効性(最小分散不偏性)が大事だったりしないかしらん。いやまてよ、それどころか、真値に対するMSEの期待値さえ小さければ、不偏性さえどうでもよいかも?
うーむ、ユーザにとってほんとに大事な推定量の性質って、いったいなんだろう。学生の頃にもっと勉強しておけば、こんなことでいちいち悩まなくても済んだだろうか。
読了: Ronkko, McIntosh, & Antonakis (2015) PLS-SEMに怒りの鉄拳を
2016年1月 7日 (木)
Domingos, P. (2012) A Few Useful Things to Know about Machine Learning. Communications of the ACM, 55 (10), 78-87.
たまたま見つけて、前半はお茶を飲みながらぼけーっと眺めていたのだけれど、途中でこりゃあ勉強になるわと気づき、心を入れ替えて真剣に読んだ。大変面白かった。
きわめてイイカゲンな訳だが、メモをとっておくと...
みんな機械学習使ってますね。教科書もいっぱいありますね。でも、機械学習をうまく使うためには、知っておかなければならない「民間伝承」(folk knowledge)があるのだ。よろしいか、よくお聞きなさい。
1. 学習=表現+評価+最適化。
要するに、鍵はこの3つだ。たとえば分類課題だとして、(1)分類器はなんらかの形式的言語で表現されてないといけない。事例ベースとか(K最近隣法やSVM)、超平面ベースとか(ナイーブベイズやロジスティック回帰)、決定木ベースとか、ニューラル・ネットワークベースとか。(2)分類器の良し悪しを知るには評価関数が必要。エラー率とか二乗誤差とか尤度とかなんとか。(3)良い分類器を探す手段が必要。貪欲サーチとか勾配降下とか線形プログラミングとか。
たいていの教科書は表現によってまとめられている。評価と最適化のことは見過ごされがちだ。
2. 大事なのは汎化だ。
初心者のよくあるミスは、訓練データでテストして成功の夢をみちゃうことだ。テストデータを使ってチューニングしまくるのも同じこと。訓練データとテストデータは厳密に分けるべし。
ふつうの最適化とはちがって、機械学習では最適化関数にアクセスする方法がないのだ(訓練エラーはテストデータの代理物にすぎない)。ポジティブにいうと、目的関数が真の目標の代理であるからこそ、完全に最適化する必要がないのだともいえる。単純な貪欲サーチでみつけた局所最適解が大域的最適解よりも良い、なんてこともあるわけだし。
3. データだけでは十分じゃない。
手元に事例が100万件あり、2値変数が100個あるとしよう。あなたはすべての事例について知っているといえるか? まさか。手元の事例はたったの$10^6$個、可能な事例は$2^{100}$個だ。手元にない事例についてどうやったらわかるというのか?
完璧な学習器なんて存在しない(ノー・フリー・ランチ)。いつだって、データを超えたなんらかの知識・想定が必要になる。幸いなことに、スムーズネスとか、似た事例は似たクラスに属するとか、複雑性に限度があるとか、そういったすごく一般的な想定が、たいていの場合うまく効く。
ここから次のことがいえる。表現を選ぶ際には、その表現で楽に表現できるのはどんな知識か、ということが鍵になる。もしあなたが事例の類似性をつくりだしているものについて知識を持っているならば事例ベースの手法がよいし、もしあなたがそれぞれのクラスにどんな前提条件が必要かという知識をもっているならIF-THENルールを使うのがよい。便利な学習器とは、そこに想定が組みこまれているような奴というだけではなく、それを使えばあなたの知識を明示的に表現できるような奴、いろんな知識を表現できるような奴、学習を通じて知識を自動的に統合できるような奴、である。機械学習は魔法じゃない。必要なのは知識とデータの組み合わせだ。
4. オーバーフィッティングにはいろんな顔がある。
機械学習における恐怖の化け物、それがオーバーフィッティングであることは誰もが知っている。しかし、奴はいろんな形で現れ、すぐには目に見えない。汎化エラーにはバイアスという側面と分散という側面があるのだ。
奴と戦う武器のひとつは交差妥当化である。決定木のサイズを交差妥当化で決めるとか。しかしこれも万能薬ではない。たくさんのパラメータを交差妥当化で決めることは、それ自体がオーバーフィットのはじまりだ。
ほかに、評価関数に正則化項を加えるという手や、新しい構造を加えてよいかどうか検定するという手もある。しかし、解決策があるなどと安易に信じてはならない。分散が小さくなったと喜んでいたらバイアスが増えていた、なんていうことはままあることだ。
オーバーフィッティングについてのよくある誤解に、ノイズのせいでオーバーフィッティングが起きる、というのがある。ノイズがなくたってオーバーフィッティングは起きます。
多重検定(multiple testing)という問題はオーバーフィッティングと密接に関係している。標準的な統計的検定は、あるひとつの仮説だけが検定されると想定する。しかし現代の学習器は膨大な量の検定を簡単にこなす。その結果、有意に見えるものも実はそうではない、ということが起きる。仮説の数を考慮して有意性検定を修正すると、こんどはアンダーフィッティングが生じる。より良いアプローチとしてはFDRがある。[←多重比較についてこういう視点で考えたことはなかったなあ...まだちょっと腑に落ちてないけど、勉強になる]
5. 高次元では直感は無力だ。
オーバーフィッティングに次ぐ大問題は次元の呪いだ。正しい汎化は特徴の数とともに指数的に困難になる。さらに困ったことに、類似性ベースの推論は高次元では破たんする。類似性指標としてハミング距離を使う最近隣分類器について考えよう。いま、クラスは単に $x_1$かつ$x_2$であるとしよう。特徴がこの2つだけなら楽勝だ。いっぽう、あと98個無関係な特徴があったら、そこからくるノイズのせいで、最近隣分類器はまったく機能しなくなる。では、その98個もクラスと関連していたら? それでもだめだ。高次元ではどの事例も互いに似てきてしまう。
幸いなことに、次元の呪いに対抗する効果がある。「非一様性の祝福」とでも呼ぼう。たいていの場合、事例は空間に一様に分布しているのではなく、低次元の空間に固まっている。学習器は暗黙的にこの低次な次元を利用したり、明示的に次元を縮約したりする。
6. 理論的保証ってのは見かけ通りのものではない。
機械学習の論文は理論的保証のてんこ盛りである。良い汎化のために必要な事例数が有界ですとか。
たとえばこんなのだ。分類器の真の誤差率が $\epsilon$より大きいとき、その分類器は「良くない」ということにしよう。「良くない」分類器が$n$個の独立な訓練事例と整合する確率は$(1-n)^\epsilon$より小さい。いま、学習器の仮説空間$H$における「良くない」分類器の数を$b$としよう。そのなかの一つ以上が整合する確率は$b(1-n)^\epsilon$より小さい。学習器が常に整合的な分類器をひとつ返すとしよう。その分類器が「良くない」確率は、$b \leq |H|$より、$|H|(1-n)^\epsilon $以下だ。ゆえに、あなたはがこの確率を$\delta$以下にしたかったら、
$n > \frac{\ln(\delta / |H|)}{\ln(1-\epsilon)} \geq \frac{1}{\epsilon} (\ln|H| + \ln(1/\delta))$
とすればよい...
申し訳ないけど、こんな保証は眉唾だ。このようにして得られる範囲というのは通常きわめていいかげんなものである。上の例では、必要な事例数が$|H|$と$1/\delta$とともに対数的にのみ増大する。残念ながら、関心がもたれる仮説空間というものは、ふつう特徴数$d$とともに二重指数的に増大する。$d$個の二値変数からなるブール関数の空間を考えよう。もし可能な事例が$e$個あったら、可能な関数は$2^e$個あることになる。この空間には可能な事例が$2^d$個あるんだから、関数の数は${2^d}^d$個だ。さらに、上で求めた範囲は非常に悲観的であることに注意。二値特徴100個、決定木の深さが10までだとして、$\epsilon=\delta = 0.01$を達成するには50万個の事例が必要だということになるが、経験上そこまで必要ではない。
さらにいうと、上で言っている有界ってなんのことだ。「あなたの学習器がいま目の前にある訓練セットと整合する仮説を返したら、その仮説はたぶんよく汎化します」ってこと? ちがうよね。「訓練セットが十分に大きければ、あなたの学習器は高い確率で、よく般化する仮説を返すか、あるいは整合する仮説を返せないでしょう」ということなのだ。さらに、良い仮説空間の選び方については何も述べていない。「もし仮説空間が真の分類器を含んでいたら、学習器がよくない分類器を返す確率は訓練セットのサイズとともに減少します」と述べているだけだ。
ほかによく聞く台詞は、無限大のデータが与えられれば、この学習器は正しい分類器を出力することが保証されている、というものだ。我々はふつうそんな漸近トピア(asymptopia)にはいない。無限大のデータの下では学習器Aの勝ちでも、有限のデータの下では学習器Bの勝ちかもしれない。
ユーザよ、用心せよ(caveat emptor)。学習とは複雑な現象だ。ある学習器が理論的に正当化されており、かつうまく機能しているからといって、うまく機能している理由が理論的な正当化にあるとは限らない。
7. 特徴づくりが鍵だ。
機械学習のプロジェクトは、最終的には成功することもあれば、失敗することもある。そのちがいをもたらすものとは? もちろん、いちばん大事なのは特徴だ。初心者はびっくりするが、機械学習プロジェクトにおいて機械学習に割かれる時間は極めて短い。 労力のほとんどは特徴の構築に捧げられる。それは領域固有な知識を必要とする困難な部分だ。また、もっとも面白い部分でもある。それは技術力、直感、創造性、そして黒魔術の世界だ。
もちろん、機械学習の聖杯のひとつは特徴づくりの自動化である。その主な手法は特徴の候補集合からの選択だが、単独ではクラスと関連しない特徴でも組み合わせでは関連するかもしれない。とはいえ、膨大な特徴のなかから有益な組み合わせをみつけるのは時間がかかるしオーバーフィッティングを招く。結局、頭の良さに勝るものはない。[←このくだり、Deep Learningがもてはやされる2016年現在だと、ちょっと書き方も変わってくるかも...]
8. アルゴリズムの賢さよりデータの大きさ。
あなたは最良の特徴のセットを選びました。でもあなたの分類器の正確さはいまだ十分でありません。次の一手はなんでしょう? 選択肢その一、もっと良い学習アルゴリズムを設計する。選択肢その二、データを増やす。研究者は前者を選びがちだが、成功への近道は後者だ。アホなアルゴリズムと死ぬほどたくさんのデータの組み合わせは、賢いアルゴリズムとそこそこのデータの組み合わせに勝つ。
賢いアルゴリズムが報われないのはなぜか。その理由のひとつは、賢くてもアホでもやってることは同じだ、という点にある。どの学習器も、要するに、近くの事例を同じクラスにまとめているだけだ。「近く」という意味がちがうだけである。データが一様に分布しているんなら話は別だが、どこに境界線を引いたところで、予測はたいして変わらない。強力な学習器が不安定であるにも関わらず正確でありうる理由がここにある。
というわけで、お勧めはこうだ。簡単な学習器を先に試すこと。ロジスティック回帰よりもナイーブ・ベイズが先、サポート・ベクター・マシンよりもk最近隣法が先だ。複雑な学習器にはつまみがいっぱいついているし、中でなにやってんのか不透明だ。
世の中の学習器には2種類ある。表現が固定サイズの奴と(線形分類器とか)、データとともに成長する奴だ(決定木とか)。固定サイズの学習器は、データが大きくてもそんなに得しない。可変サイズの学習器は、原理的には十分なデータのもとであらゆる関数を学習できるが、現実には局所解や計算コストのせいでそうならないし、次元の呪いのせいで、どれだけデータがあっても足りないかもしれない。こうした事情を勘案して賢いアルゴリズムを選ぶことは、最終的には報われるかもしれない。学習器の設計と分類器の学習とは明確には分けられないわけで、機械学習プロジェクトの締めくくりが学習器の設計となることも少なくない。実務家も少しは勉強しておいた方が良い[←あれれ? 途中でいっていることが微妙に変わってきてませんかね...]。
9. 多くのモデルを学習せよ。
かつて人々はお気に入りの学習器を持っていた。人々は自分のお気に入りの学習器が優れていると信じるアプリオリな理由みたいなものを持っていた。人々はその学習器のいろんなバリエーションをつくっては最良のものを選ぶことに心血を注いでいた。しかるに、学習器の優劣は場面場面で違っていることが明らかになり、いろんな学習器を組み合わせて使うモデル協調の時代がやってきた。バギング、ブースティング、スタッキングといった手法だ。
モデル協調をベイジアン・モデル・アベレージング(BMA)とごっちゃにしないように。モデル協調は仮説空間そのものを変えるし、いろんな形式をとりうる。BMAは元の仮説空間における仮説群にウェイトを割り振るだけで、そのウェイトは(バギングやブースティングとちがって)極端に偏っており、事実上、いずれかひとつの分類器を選んでいるに過ぎない。
10. 単純だからといって正確とは限らない。
オッカムの剃刀って有名ですよね。機械学習でいうと、同じ訓練エラーをもつ2つの分類器があったら、単純な奴のほうがテスト・エラーが低いだろう、これすなわちオッカムの剃刀だ... なんて主張をよく見かける。しかし、ここでもノー・フリー・ランチだ。たくさん反例を挙げられる。
たとえばモデル協調。ブースティング協調の汎化エラーは、訓練エラーが0になってしまった段階でさえ、分類器の追加によってさらに改善する。たとえばサポート・ベクター・マシン。無数のパラメータを持つがオーバーフィッティングしない。たとえば関数 sign(sin(ax))。この関数はx軸上の任意のサイズの任意のラベルの点を判別できてしまうが[←そ、そうなのかなあ??]、パラメータ数はたったひとつだ。
複雑さについてのもっと洗練された見方を紹介しよう。複雑さとは仮説空間のサイズだ。空間が小さければ仮説は単純に表現される。たしかに、仮説をつくる際に我々は単純さを好む。しかし、仮にその仮説が正確だったとして、それは我々の好みが正確だったからであり、仮説が単純に表現されていたからではない。
さらにややこしいのは、たいていの学習器は仮説空間を漏れなく探索したりしないという点だ。広大な仮説空間から少数の仮説をつくろうとする学習器のほうが、小さな空間からたくさんの仮説をつくろうとする学習器よりもオーバーフィッティングしにくい。つまり、仮説空間のサイズそのものはおおまかな目安に過ぎないということだ。訓練エラーとテスト・エラーにとって本当に問題になるのは、仮説を選択する手続きだ。
というわけで、次のようにアドバイスしたい。単純な仮説のほうが望ましいというのは本当だ。でもそれは、単純さそれ自身に徳があるからであって、正確性とは関係ない。思うに、オッカムがもともと云わんとしたのもそういうことであろう。
11. 表現できるからといって学習できるとは限らない。
サイズ可変な学習器に使われている表現はなんであれ、次のような形のなんらかの定理を用意しているものだ:「この表現を用いればあらゆる関数が表現できる、ないし近似できる」。その表現のファンたちはこれに舞い上がっちゃって他のことを忘れがちだ。しかし、ある関数を表現できるからといって、それを学習できるとは限らない。たとえば、決定木は訓練事例以上の枚数の葉を持てない。また、仮説空間のなかで評価関数が多数の局所解を持ち、真の関数を見つかられないかもしれない(表現はできるのに)。だから、大事なのは「表現できるか」じゃない、そんなのはたいていどうでもよい。本当に大事なのは「学習できるか」だ。[←なるほどねえ。ここは勉強になった]
ある関数についてある表現よりも他の表現のほうが指数的にコンパクトだ、ということがある。当然、後者が必要とする訓練データのサイズも指数的に小さくなる。多くの学習器は単純な基底関数の線形和をつくる(サポート・ベクター・マシンがそうだ)。このときnビットの表現には2のn上の基底関数が必要になる。でも、多層な表現を使うと(つまり入力と出力のあいだにもっとステップをおくと)、おなじnビットが線形なサイズの分類器で符号化できたりする。こういう深層表現をどうやってみつけるかというのが、機械学習の最前線の課題のひとつだ。
12. 相関は因果を意味しない。
これ、耳にタコができていると思うけど、ここで質問。学習器による結果が因果関係として解釈されているの、みたことありませんか? あれは間違いなの? 仮に間違いなら、なぜみんなこぞって間違えるの?
予測モデルをつくる目的は、たいていの場合、行為を導くことにある。ビールとおむつが一緒に売れているんなら、並べて売れば売上が上がるかな、なんて思うじゃないですか。本当にそうなるかどうかは実験してみないとわからない。でも、観察によって得られる相関は、ありうる因果的結びつきのサインであり、さらなる検討のためのガイドなのだ。
この世界に真の意味での因果関係というものがあるのかどうか知らないが、実務的にいえば、機械学習にとってのポイントはふたつ。我々は相関だけじゃなくて行為の効果を予測したいのだということ(それを「因果的」と呼ぶかどうかは別にして)、そして、もし実験ができるんならなんとしても実験すべきだということだ。
以上だ。諸君のさらなる精進を期待するぞ。チャオ! [←とは書いてないけど、まあそういう雰囲気のことが書いてある]
読了:Domingos(2012) 機械学習について知っておきたい12の事実
2016年1月 4日 (月)
Chen, T., & He, T. (2015) Higgs Boson Discovery with Boosted Trees. JMLR: Workshop and Conference Proceedings, 42, 69-80.
えーと、なんでも、Kaggleっていう予測モデリングのコンペティションがあるそうなんです。世界中の頭の良い人たちが寄ってたかって同じデータを分析して予測モデルを構築し、賞金と名誉を目指して優劣を競うのだそうです。わたしゃよく知りませんけど。弊社インターンの超優秀な青年は「オノさんKaggleとか出ないんですか...? ああそうですか...」と落胆しておられたが、そんなもん出るわけないじゃん、こちとら人文系の出自で、地を這う虫のような仕事してるのに。
Kaggleではいつも複数のコンペティションを開催しているけど、参加チームが多いコンペもあれば少ないコンペもあって、あの差はどうやって生まれているのだろう、賞金額で決まるわけでもないらしいし、よくわからない。一昨年話題になっていたのはHiggs Boson Machine Learning Challengeというコンペで、参加チーム数1785、かなりの人気コンペであった。
機械学習の分野は流行りすたりが早すぎて訳がわからないが、しばらく前から有名であるらしいライブラリにxgboostというのがあって、Kaggleのようなコンペでもよく使われているらしい。この論文はxgboostの開発チームが自ら語るHiggs Bosonコンペ戦記。調べたところ、彼ら自身も45位にランクインした模様。
そもそもHiggs Bosonというのはなんなのか、それさえも私にはさっぱりわからないが、wikipediaによると、素粒子?の名前?なんだそうです。素粒子ってなんだ? 高校で物理とか習っていれば出てきたのかしらん。原子とか物理学とか、そういった感じのなにかなのでしょうね。名前からして、なんかこうすごく小さな?粒?とか?そういう感じのものなのではないかと思う。でなければ、そうでないなにかであろう。
ま、事情はともあれ、死ぬほど巨大なデータのなかに、稀にHiggs Bosonなるもののシグナルが含まれている、でもノイズは大きいし、どういうときに出てくるかは複雑すぎてわからない。この際理屈はどうでもいいから、とにかく特徴ベクトルでシグナル有無を予測する二値分類器をつくれ。というお題だと思えばいいらしい。
まずは著者ら謹製、xgboostのご説明から。
以下、特徴ベクトルを$x_i$, 対応するラベルを$y_i$とする。予測スコアを
$\hat{y}_i = \phi(x_i) = \sum_{k=1}^K f_k (x_i), \ \ f_k \in F$
とする。$f_k$とはなんらかの関数で、話の先取りになるけど、 ここでは回帰木である。
目的関数を次のように定義する:
$L(\phi) = \sum_i l (\hat{y}_i, y_i) + \sum_k \Omega (f_k)$
第一項は予測と目標のずれである。$l$は微分可能な凸関数だとみなす。第二項は正則化項で、$\Omega$でモデルの複雑さを測っている。
さて、この目的関数を直接最適化するのではなく、$f_1, f_2, \ldots, f_t, \ldots$を順につくって協調させる。$f_t$はそのiterationにおいて目的関数を最適化するような関数である。$t$回目のiterationにおけるケース$i$の予測を$\hat{y}^{(t)}_i$としよう。この時点における目的関数は
$L^{(t)} = \sum_i^n l(y_i, \hat{y}^{t-1}_i + f_t(x_i)) + \sum_i^t \Omega(f_i)$
ポイントは、明示的に正則化項を入れている、という点。
具体的には...入力変数空間を$T$個の領域にわける。このマッピングを$q$と呼ぼう。領域に与えるスコアのベクトルを$w$とする。で、
$f_t (x) = w_{q(x)}$
とする。この関数のクラスに含まれるものとしては回帰木があるが、別に回帰木でなくてもよい。
正則化項の関数は
$\Omega(f_t) = \gamma T + (1/2) \lambda \sum_j^T w^2_j$
とする。[ああそうか、領域数つまり葉っぱの枚数と、スコア二乗和つまり葉っぱごとの予測値の二乗和に、ペナルティを与えてるのか...]
[以下、目的関数をさらに書き直して、あるitarationで追加する木を具体的にどうやって作るか、欠損値があったらどうするか、というアルゴリズムにまで話を持っていくんだけど、そういうこみ入った話にはあんまり関心ないので省略。木を伸ばすのは要するにgreedy searchであるらしい]
... というのが、著者らが開発しているxgboostである。ここからはコンペの話。
特徴量をいろいろ工夫して...[物理学の知識がないとわからない箇所。パス]
元のデータではシグナルの数が少なすぎるので、物理学の知識に基づくシミュレーションで学習データと検証データをつくって...[パス]
木の最大の深さは6, シュリンケージ・パラメータは0.1, 木の本数は120にして、xgboost, Rのgbm, pythonのsklernを比較。このコンペでは、精度はAMS(approximate median significance)というヘンな指標で測ることになっているので[説明省略]、ここでもAMSで比較する。結果、xgboostの勝ち。パラメータをファイン・チューンしたらともっと勝てた[←そこのコツのようなものが聞きたいんですけどね...]。ちなみにスピードも圧勝。
なお、上で「パラメータのファイン・チューン」といっているのは、主に正則化パラメータ$\gamma$と$\lambda$のことのようで、いくつかのパターンについてAUCを示しているのだけれど、なるほど、全然違ってくる。コンペでは$\gamma=0.1, \lambda=0$にした由。
... 正直、機械学習の難しい話はよくわかんないし、数年待てばもっと素人フレンドリーになるような気がして勉強する気力が沸かないんだけど、ともあれ、勉強になりました... なったような気がします。
仕事の都合上、xgboostの実装上のパラメータ名をメモしておくと、おそらく、木の最大深さとはmax_depth(デフォルト6)、シュリンケージ・パラメータとはeta(デフォルト0.3)、$\gamma$とはgamma(デフォルト0)、$\lambda$とはL2正則化パラメータ lambda(デフォルト1)であろう。ほかにL1正則化パラメータalphaというのもあるんだけど(デフォルト0)、この論文には出てこなかった。
話の本筋からは離れちゃうけど、配られているデータで学習するんじゃなくて、いったんシミュレーションで架空データをつくって学習しているのね。機械学習のコンペとはいえ、やっぱり領域知識(ここでは素粒子物理学の知識)が生きてくるわけだ。このへんはマーケティング・データでも事情は同じで、面白いところでもあり、辛いところでもある。
読了:Chen & He (2015) xgboostかく戦えり
2015年12月28日 (月)
Elith, Leathwick, Hastie (2008) A working guide to boosted regression trees. Journal of Anomal Ecology, 77, 802-813.
タイトル通り、ブースティング回帰木(boosted regresion trees, BRT)の使い方についての素人向けガイド。ええと、良く知らないけど、Rでいうとgbmとか、流行りのxgboostとかのことですかね。正直なところ機械学習の話は、学校出たてのチェックのシャツを着たお兄さんたちに任せておきたいんだけど、仕事となるとそうも言っていられない。
動物生態学についてはなんの知識もございませんが、こういう分野向けの啓蒙的文章は助かる。イントロによると、生態学では種の分布を予測したりするときにGLMやGAMをよく使うけど、機械学習手法はあまり使わない、ましてやBRTなんて... という感じらしい。そりゃそうでしょうね、何やってんだかわかんなくて気持ち悪いもん。
まず、決定木について。
決定木は、予測子の空間を矩形に分割し、それぞれに定数をフィットさせる。矩形は反応変数において等質的であることを目指してつくる。定数といっているのは、分類器ならばクラスだし、回帰木ならば平均である。
決定木に人気があるのは、なんといってもそのわかりやすさ。さらに、予測子の型を選ばない、単調変換なら影響なし、はずれ値に強い、交互作用をモデル化している、といった美点がある。いっぽう、滑らかな関数の表現が苦手、訓練データのちょっとした違いで構造がかわっちゃう、という弱みもある。
ブースティングについて。
根底にあるのは、ラフな目安をたくさんつくって平均する、というアイデア。兄弟分であるバギング、stacking、モデル・アベレージングとちがうのは逐次的に進むという点。モデルを訓練データに適合させ、うまくいかなかったケースの重みを増して...というのを繰り返す。
もともとブースティングは2クラス分類に注目していたので(AdaBoostとか)、機械学習の分野でブースティングについて論じる際には、重みをどう変えるかという観点から論じる傾向がある。でもここでは回帰木に関心があるのでちょっと違った観点からとらえてみよう。要するに、ブースティングとは一種の関数的勾配降下(functional gradient descent)である。ここになんらかの損失関数があるとしよう(たとえばデビアンス)。ブースティングは損失関数を最小化させる最適化テクニックで、それぞれのステップで、損失関数の勾配を降りるような木を追加する。
具体的にBRTの場合について考えると、まず最初の回帰木は、与えられたサイズの木のなかで、損失関数をもっとも減少させるような木である。次の木は最初の木の残差に適合させる。当然ながら変数も分割も全然違う。二本の木による予測は、それぞれの予測に学習率をかけて合計して求める。三本目の木は二本の木の残差に適合させる。これを延々繰り返す。一旦作っちゃった木は直さない、というのがポイント。なお、反応変数の型はいろいろ扱える(損失関数を反応の型にあわせて選べば済む話だから)。
ユーザの観点からいうと、BRTの特徴は以下の通り。
- 確率的な要素を含んでいる。乱数のシード次第で結果が変わります。
- モデル適合の過程で、焦点が「予測しにくいケース」へと徐々に移動する。
- 重要なパラメータは二つ。(1)学習率(lr)。シュリンケージ・パラメータともいう。それぞれの木がモデルに貢献する程度。(2)木の複雑さ(tc)。1だと端末ノードは2個、つまり単純な加算となり、2だと2変数交互作用まで扱える。この2つのパラメータが決まれば、木の本数も決められる。
- 予測はストレートだが、モデルの解釈は大変。どの変数・交互作用が大事かとか、フィットした関数をどう視覚化するかとか、それなりのツールが必要。
後半はケース・スタディ。ニュージーランドにおけるAnguilla australisの分布を予測する(調べてみたところ、日本の魚市場ではオーストラリアうなぎと呼ばれている由)。各観測地点で捕獲されるかどうかを11個の予測子で予測する。ソフトはRのgbmパッケージ。内容はこんな感じ。
- 学習にはランダムネスを導入したほうがよい。gbmでいうbag fraction。二値反応だったら0.5から0.75にするのがおすすめ。[xgboostでいうsubsampleのことらしい。デフォルトで1になっている]
- 学習率(lr)について。学習率を下げて木の本数を多くするのがおすすめだが、適切な値は交差妥当化(CV)で決めること。すくなくとも1000本くらいまでは増やすのが目安。[学習率とはxgboostでいうetaのことであろう。デフォルトで0.3。論文の事例では学習率は0.005というすごい値になっている。xgboostのetaとは単位が違うのかも]
- 木の複雑さ(tc)について。tcとは理屈からいえば「何次の交互作用までモデル化したいか」なのだが、普通はそんなのわかんないので、やっぱりCVで決めるかしかない。サンプルサイズが小さいときには小さくしておいたほうがよい。また、tcを倍にしたらlrを半分にするとだいたい予測性能は同じになる(木の本数が同じなら)。というわけで、サンプルサイズが十分あるなら、tcを高くしてlrを思い切り低くするのがよいけど、すると木の本数が増え計算時間がかかるわけで... 云々。[tcとはxgboostでいうmax_depthのことかな? デフォルトでは6になっている]
- CVの戦略について。木の本数を決める際のおすすめは以下の手順。(1)データを(たとえば)10個に分割する。(2)10個中9個を学習セット、残りを検証セットとする。これを1ペアとすると、全部で10ペアできるわけだ。(3)木の本数を適当に決めて(たとえば50本)、学習セットでモデルを作り、検証セットで性能を測る。10ペアを通じて、性能の平均と標準誤差を求める。(4)木の本数を徐々に増やしながら(3)を繰り返す。(5)木の本数が10水準目になったら結果比較をスタートする。6水準前から10水準前までの性能の平均を、現在の水準から5水準前までの性能の平均と比較する。後者が大きくなったら、最小値を通りすぎたと考えて繰り返しをストップする。(6)最小値を探す。こうして木の本数が決まる。
- 変数選択について。ブースティング木とはいえ、特にサンプルサイズが小さいときは、あらかじめ変数を削ることに意味がある。やりかたは付録を見よ。[ちゃんと読んでないけど、どうやら重要度が低いのを削って再推定ということらしい]
- モデルの解釈。まず、木に変数を使った回数に基づいて変数の相対的重要度を求めるやり方があって、gbmパッケージに載っている[xgboostにも載ってますね]。また、各変数についてpartial dependence plotを描くのがよろしい。交互作用については3次元のpartial dependence plotを描きなさい。
- なぜBRTで曲線的な関数にフィットできるのか、簡単な事例で説明。
そんなこんなで、付録に詳細なチュートリアルをつけたから読みなさい、とのこと[すいません、読んでないです]。
...というわけで、あんまりきちんと読んでないけど、勉強になりましたです。
xgboostなどを使っていると、ついつい細かいことを考えて混乱しちゃうわけだけど、割り切って考えちゃえばブースティングなんて最適化のテクニックに過ぎないわけで、シュリンケージ・パラメータ(eta)なんかについてあれこれ悩んでいるのはある意味で不毛というか、なんというか... いずれはパラメータを勝手にうまいこと決めてくれるようなソフトも出てくるんじゃないかと思う。
読了:Elith, Leathwick, Hastie (2008) ブースティング回帰木ユーザーズ・ガイド
2015年12月27日 (日)
Ture, M., Kurt, I., Kurum, A.T., Ozdamar, K. (2005) Comparing classification techniques for predictiong essential hypertention. Expert Systems with Applications. 29, 583-588.
高血圧のリスク予測をいろんな分類手法でやってみました、という話。いま決定木手法の比較に関心があって、足しになるかと思ってざっと目を通した。
疾患の結果予測を分類手法でやるってのはいくつか先行研究があって、
- Moisen & Frescino (2002, Ecological Modelling) : 線形モデル、GAM, CAART, MARS, ANN Delen, Walker, & Kadam (in press, AI in Medicine) : ロジスティック回帰、決定木(C5)、ANN
- Stark & Pfeiffer (1999, Intelligent Data Analysis): ロジスティック回帰、決定木(ID3, C4.5, CHAID, CART), ANN
- Calombet et al. (2000, Proc.): ロジスティック回帰, CART, ANN
- Chae, Ho, Cho, Lee, & Ji (2001, J.Med.Informatics): ロジスティック回帰, CHAID, C5.0
で、本研究は... 694人(うち高血圧患者452人)を後ろ向き(retrospective)に分析し、高血圧群/統制群を予測する。独立変数は、年齢、性、家族病歴、喫煙、リポプロテイン[高脂血症かなんかの指標らしい]、トリグリセリド[中性脂肪のことらしい]、尿酸、コレステロール、BMI。
選手入場。
- CHAID. SPSS AnswerTree 2.1搭載。
- CART. 同上。
- quick unbiased efficient statistical tree (QUEST). 変数選択にバイアスがないという特徴がある[へええ]。同上。
- ロジスティック回帰(LR)。SPSS 10.5。
- フレキシブル判別分析(FDA)。線形判別をノンパラ化したもので、多変量回帰と最適スコアリングを組み合わせたものだと思えばよい。S-plus 6.1。
- 多変量加法回帰スプライン(MARS)。これも一種のノンパラ回帰。S-plus 6.1。
- 多層パーセプトロン(MLP)。バック・プロパゲーションで学習。NeuroSolutions 4.3というのを使う。
- 放射基底関数(RBF)。同じくNeuroSolutions 4.3。 [この手法、要するに三層ニューラル・ネットワークらしいのだが、恥ずかしながらよく知らない... 短い説明がついているのだけれど、これだけ読んでもわかるものではなさそうなので省略]
データの75%で学習して残りで検証。検証群における敏感度[高血圧群に占める、それと予測できた人の割合、ということね]、特異度[統制群に占める、それと予測できた人の割合]、適中率を比べると、敏感度はLR, FDA, FDA/MARS,MLPが僅差で勝利、特異度はFDA, MLP、適中率はCHAIDが勝利。学習群における3つの成績をみると、{CART, MLP, RBF}グループ(特異度と適中率が高い)、{FDA, CHAID}グループ(中くらい)、{FDA/MARS,LR.QUEST}グループ(低い)、にわかれる。[←おいおい、それは学習時の話で、検証の成績は全然ちがうじゃん...]
考察。CHAID, QUEST, CARTは予測についての理解に適するけど、成績がいいのはMLP, RBF。もっと使えばいいんじゃないですか、データを足して学習しつづけることができて便利だし。云々。
はあ、そうですか...。
シニカルにいえばこの研究は、持ってるソフトでいろいろやってみたらこんなん出ました、という話である。 もちろんモデリング手法の特徴を知ることはとても大事だし、実データを使った比較研究はそのための大事な手段だ。でも、この論文で取り上げた手法のいずれも、それぞれパラメータ次第でどんどんパフォーマンスが変わってしまうし、実装によっても挙動が異なる。このデータセットでの結果が他のデータセットに対して一般化できるかどうかもよくわからない。勝手な想像だけど、この手の研究に対し、玄人筋の評価は高くならないのではなかろうか。
いっぽう、私のような無責任なデータ解析パッケージ・ユーザからすると、気楽に読めるという意味で、こういう報告はありがたい面もある。なまじ厳密だが限定的な話をされるより、どこまで信じていいのかわかんないけど親しみが持てる話のほうが、なんとなく得をしたような気がするものである(「示唆が得られた」「考えさせられた」云々)。こういう性向のことを「実務的」と呼ぶ人もいるだろうし、知的な退廃と捉える人もいるだろう。
読了:Ture et al. (2005) 高血圧患者をいろんな手法で予測してみた
2015年12月25日 (金)
仕事の都合で、シンプルな決定木・回帰木モデルをつくることがちょくちょくあるのだけれど、細かい手法選択の場面でいつも困惑する。CARTみたいな感じの二進木と、CHAIDの流れを汲んでゴリゴリ検定統計量をつかうタイプの方法、どういうときにどっちを使えばいいんだろう? 不勉強をさらすようで、恥ずかしいのだけど...
ま、そもそもRをつかっているのがいかんのだ、という説もありますわね。かつてRを使っていなかった時分には、SPSS AnswerTree 一択であった。CHAIDとCARTの両方が載っていて、深く考えずにその日の気分で使い分けるのである。あの平和な時代が懐かしい。
決定木モデルのRパッケージとして参考書でよく見かけるのは、rpart(Rの標準パッケージ), mvpart (開発がストップしている模様)、RWeka、あたりだと思う。いま手元にある Kuhn &Johnson本 (かのcaretパッケージの中の人の本)はC50をつかっている。
CRAN Task Viewの機械学習・統計的学習で、「再帰パーティショニング」の下を見ると、名前を挙げられているパッケージが実にたくさんあって、困惑してしまう。メモしておくと...
- rpart: 回帰、分類、生存分析のための木構造モデル。CART的木の計算におすすめ。
- tree: 回帰、分類、生存分析のための木構造モデル。
- Weka: パーティショニング・アルゴリズムの豊富なツールボックス。RWekaがインタフェイスを提供する。C4.5, M5のJ4.8的バージョンを提供。[←呪文みたいだが、いずれもアルゴリズムの名前]
- Cubist:ルール・ベースド・モデル。終端葉での線形回帰モデル、事例ベース修正、ブースティングを提供。
- C50: C5.0分類木、ルール・ベースド・モデル、それらのブースティング版。
- party: 不偏な変数選択と統計的停止規準の2つのアルゴリズムを実装。関数ctree()は、反応変数と入力変数の間の独立性を検証するノンパラ条件つき推論手続きに基づく。関数mob()はパラメトリックモデルのパーティションに使える。ほかに、二進木の視覚化、反応変数のノード分布の視覚化を提供。
- vcrpart: 木構造の変動係数モデル。
- LogicReg: 二値入力変数のための論理回帰。
- maptree: 木の視覚化ツール。
- REEMtree: ランダム効果によって縦断データをモデリングする木。
- RPMM: 混合モデルのパーティショニング。
- partykit: 木表現の計算インフラ、予測・視覚化の統一的手法を提供。
- evtree: 大域的に最適な木の進化的学習。[へええ?]
- oblique.tree: oblique木。[はああ?なにそれ?という感じだが、どうやらこういう話らしい。たとえばC4.5とかだと、それぞれのノードにおいて、その属性で分割したら情報利得がいちばん大きくなる属性をひとつだけ探す。つまり、属性空間をどこかの軸に直交する形で切っていくわけだ。いっぽうoblique木では、複数の属性の組み合わせをつかって、空間を斜めに切ることができるらしい。ふうん]
というわけで、いろいろあって頭が痛いが、mvpartなきいま、CART系ならrpartパッケージ、CHAID系ならpartyパッケージ、あたりが本命なのであろうか... できることならばすべての開発者のみなさまを鬼界ヶ島に流し、all-in-oneの統一的パッケージをつくるまで京に戻さない、というようなことをしたいものだ。
Hothorn, T., Hornik, K., Zeileis, A. party: A laboratory for Recursive Partytioning.
というわけで、partyパッケージのvignett。これまで深く考えずにノリで使っていたので、ちょっと反省して目を通した。
ま、途中で難しくってわけわかんなくなっちゃいましたけどね! あとで調べたら、もっとかみ砕いた解説が下川ほか「樹木構造接近法」に載ってましたけどね!
読了:Hothorn, et al. partyパッケージ (と愉快な仲間たち)
2015年12月16日 (水)
Olden, J.D., Koy, M.K., Death, R.G. (2004) An accurate comparison of methods for quantifying variable importance in artificial neural networks using simulated data. Ecological Modeling, 178, 389-397.
仕事の都合でざざっと目を通した。
人工ニューラルネットワークにおける説明変数の寄与を定量化する手法について検討します。すでにGevrey et al (2003, Ecological Modelling) が実データで手法比較しているんだけど、シミュレーションできちんとやり直します。という論文。
扱うのは、隠れ層ひとつのフィード・フォワード型ネットワーク、ノードの数は入力側から5, 5, 1。バックプロパゲーションで学習。
まず母集団をつくる。10000ケース、反応 y と説明変数 x1, x2, ... の相関は、それぞれ0.8, 0.6, 0.4, 0.2, 0.0。説明変数間の相関は0.2。ここから50件抽出してネットワークを推定して重要性を測る、というのを500回反復。各回の重要性の順位を真の順位と比べる。
お待たせしました、選手登場です。
- Connection weights. 入力ノードから出力ノードへのウェイトの積の総和。[つまりこういうこと。隠れ層のノードをh1, h2, ..., h5とする。x1 -- h1 -- y のウェイト積を求める。これをh2, h3, h4, h5について繰り返して合計する]
- Garsonのアルゴリズム。[どうやらこういうことらしい。x1 -- h1 -- y のウェイト積の絶対値を、h1 -- y のウェイトの絶対値で割る。これをh2, h3, h4, h5について繰り返して合計する]
- 偏微分。出力を入力ノードに関して偏微分する。
- 入力perturbation。他の入力は変えず、ある入力ノードに50%のホワイトノイズを乗せ、MSEの変化を見る。
- 敏感性分析。他の入力は変えず、ある入力ノードを均等な幅の12水準に動かす。[うーん、正確なところはちょっと理解できなかった。まあいいけどさ]
- 前向きステップワイズ追加。その入力ノードを追加してモデルを推定しなおしたときのMSEの変化。
- 後ろ向きステップワイズ削除。その入力ノードを削除してモデルを推定しなおしたときのMSEの変化。
- 改善されたステップワイズ選択1。その入力ノードを削除したときのMSEの変化 (モデルは推定しなおさない)。
- 改善されたステップワイズ選択1。その入力ノードを平均にしたときのMSEの変化。
結果。Connection weightが一番当たる。前向きステップワイズ、後ろ向きステップワイズは成績が悪く、Garsonは超悪い。
結論。Garsonはやめとけ。
。。。えーっ? Connection weightsがいちばん計算が楽じゃないですか。そんな単純なやりかたでいいの?
この論文では、説明変数の真の重要性とは母集団における目的変数との相関の順位なわけだが、入出力の関連性が非線形だったり、入力変数間の交互作用があったり、といった場合はどうなるのだろうか。もっともその場合は、真の重要性を定義するのも難しくなるんだろうけれど。
読了:Olden, Koy, & Death (2004) ニューラル・ネットワークの説明変数の重要性を測る最良の方法(それは意外にも...)
2015年12月 3日 (木)
Zyphur, M.J., Oswald, F.L. (2015) Bayesian Estimation and Inference: A User's Guide. Journal of Management, 41(2), 390-420.
この雑誌のこの号は「経営科学におけるベイジアン確率・統計学」という特集号で、この論文は編者による啓蒙的内容。ちょっと事情があって目を通したんだけど、これ、31頁もあるやんか...
この号の所収論文の題名をメモしておくと:
- 経営におけるベイズ的思考の抵抗しがたい興隆:決定分析からの歴史的教訓
- 組織科学におけるベイズ主義の制度化:実用的ガイド、有名学者のコメントつき [←ほんとにこういう題名]
- ベイジアン構造方程式モデリングの武勇と落とし穴:経営科学のための重要な考慮事項 [←あ、たまたま読んでた。私は反論のほうが分があると思ったけど、それは私がMuthen信者だからかもしれない]
- 経営研究のためのベイジアン仮説検定入門
- 業務の相対的効果:順序仮説のベイズ・ファクター [←相対的重要性の話らしい。おおっと、これは読まなきゃ]
- ベイジアンモデル選択によって対人プロセスとチーム業績の経時的変化を社会的影響力の観点から解釈する
- アントレプレナーシップの決定要因再訪:ベイジアン・アプローチ
- 実践の組織的コミュニティのオペレーショナルなインパクト:組織変化分析に対するベイジアン・アプローチ
- 組織における知識共有:近接性とフォーマル構造の役割についてのベイジアン分析
- 経営科学における一般化可能性理論のアップデート:分散成分のベイジアン推定 [←ぐわー。蕁麻疹でそう]
- 効果量のメタ分析的評価を情報ベイズ事前分布で改善する [←効果量推定とかは別にどうでもいいんだけど、企業の過去経験をinformative priorで表現するっていう実例なら読んでみたいなあ。要旨ではいまいち判断がつかない]
ほかに、Gigerenzerさん, Gelman大先生、Galavottiという人のEditorial Commentaryがついている。
著者曰く、
社会科学におけるベイジアン革命の意義は:(1)検証可能な仮説の範囲を広げ、帰無仮説有意性検定(NHST)に依存しない直観的な解釈を可能にする。(2)事前の知見と新データを結合できる。その結果は自動的にメタ分析となる。(3)事前の知見を使うことで、より小標本の研究を可能にする。(4)伝統的な推定方法なら複雑すぎて失敗するようなモデルでも推定できるようになる。
伝統的アプローチは頻度主義の確率理論に依存している。そのせいで、ORにおいてはp値と信頼区間の混同が起きたり、小標本研究が抑制されたり、多くの統計モデルが推定不能になっていたりする。ベイジアン・アプローチをお勧めしたい。
ふたつのアプローチを比較しよう...
...というわけで本編が始まるのだが、初心者向けの概観なので、以下メモは簡単に。
前半の話の流れはこんな感じ。
まず、ベイジアンはパラメータをデータの下での確率変数として捉えるのよという話。次にベイズのルールの話をして、事前分布$P(\theta)$, 尤度$P(z|\theta)$、事後分布$P(\theta|z)$を導入。
事前分布を決めるのが難しい。次の3つがある。
- 情報事前分布。利点:過去の研究の知見を利用できる;小標本研究を促進;手元のデータから得られる尤度を事前分布で補うことができる。
- 経験事前分布。利点:たとえばマルチレベルモデリングで、全データでグループ平均を推定し、かつ一部のデータでパラメータを推定することができる。いっぽう、シングルレベルモデルではデータで尤度と事前分布の両方を推定していることになり、これはおかしい。
- 無情報事前分布。標準的なルールでつくった無情報事前分布のことを「客観事前分布」と呼ぶこともある。
事前分布をどう更新するかというのを、コイン投げを例に紹介。[ここ、眠くて読んでない]
いきなり、MCMCってのがあるんだよ、と紹介。詳しくは参考書を読め。[共役事前分布の話とかしないんだ... 時代だなあ]
ベイジアン推論の例として2つ紹介。
- パラメータの事後分布から信用区間を求める。頻度主義的な信頼区間との違いを説明。
- モデル比較。posterior predictive checkingについて紹介。[この説明だけ読んでもよくわかんないけど、PPPってやつですね。モデル比較と云えばベイズ・ファクターの話になるかとおもったら、そっちは省略している。DICにもほとんど触れていない。へー、そういうものか]
最後に、頻度主義との違いを整理。
- 頻度主義では確率は観察に適用されるのであってパラメータに適用されるのではない。
- 事前分布がない。
- サンプルサイズが小さいと、効果が大きくても帰無仮説を棄却できない。
後半は、自分の昔の研究を取り上げてベイジアンでやりなおすというデモンストレーション。
例1はSEM。5指標1因子(社会的身分)、その因子に外生変数(テスタトロン)からのパスが刺さるというモデル。Mplusで残差共分散を片っ端からベイズ推定したら(事前分布の分散は思い切り小さくするわけね)、テスタトロンの効果が小さくなった、とかなんとか。ちゃんと読んでないけど。[編者がこんなにMplus推しの解説をしているのと同じ号に、Stromeyer et al. のMuthen批判が載ったのか... すごいな]
例2はANOVA。これは面白いのでちゃんとメモを取ろう。
元論文は、先行する自己制御が将来のパフォーマンスに与える影響を調べたもの。自我消耗理論によれば、自己制御能力とは限定的な資源であり、使いすぎると枯渇してしまう。そこで実験。学生に{楽しい, 悲しい}ビデオを見せて、{感情的反応を抑圧するように教示(自己制御群), 非教示(統制群)}。で、陸軍の戦闘シミュレーションをさせて、判断の正しさ、課題遂行の所要時間、調べた属性の平均個数[←なんだかわからん]を測定。つまり、従属変数は3つ、2x2の被験者間2要因実験だ。対象者は全部で80人。
元論文では各従属変数についてOLS回帰をかけた。いずれの変数でも、ビデオ種別と交互作用は有意でなかった。判断の正しさにおいてのみ、自己制御群が有意に低かった。これが一番大事な結果変数だったので、自我消耗理論の予測が支持されましたね、という結果ではあった。
さて、欠点が二つある。まず、理論も先行研究もあるのに分析で使ってない。自己制御群は課題遂行時間が短くなり属性数が減るという仮説があるのに。また、小標本だったので、model-wideな最尤推定値ではなくてOLS推定値を使っている。ほんとうは3本まとめたパス解析をやったほうがいいのに。
というわけで、Mplusでやりなおしましょう。自我消耗のメタ分析研究に基づき、パラメータと残差分散の情報事前分布を決める[うっわー。求め方が細かく書いてあるけどパス]。パス解析すると、果たして、どの変数においても要因の効果の信用区間は0を含みませんでした。つまり理論的予測がさらに強力に支持されました、云々。
[うぐぐぐぐ。素朴な疑問なんだけど、こういう分析の意義はなんだろう? 先行研究のメタ分析から事前分布をつくって実験データで更新するという分析も確かに面白いけど、もし先行研究に知られざる系統的誤謬があったら、それを末永く引きずることになるわけで...早い話ですね、戦前のアメリカには「黄色人種は知能が劣る」という実証研究があったと聞いたことがあるけど、もし戦後の知能研究者が先行研究のメタ分析から事前分布をつくり、新たな実験データでそれを更新してたら、たとえ個々の実験データを単独でみたときには人種間に有意差がなかったとしても、「黄色人種は知能が劣る」という知見が量産されていたことになりませんかね? 言い換えると、すべての報告において過去知識のベイズ更新を試みるという姿勢は、社会なり組織なりにとって健全なのだろうか。ううむ...]
考察。
研究者は事前分布の選択において誠実でなければならない。ある事前分布を十分に正当化できないならばいろんな事前分布を使って報告しなければならない[←これ、よくいう話ですけど、ほんとにそういうことをやっているの、あんまり見たことないですけどね...]。
もちろん、ベイジアン事前分布はbad faithとして働きうる。もっとも頻度主義アプローチだって結果を知ったうえで仮説を組んでいるわけで、これだってbad faithだ。ベイジアン・アプローチのほうが透明なぶんまだましだ。云々。[←どうも話をずらされているような気がするんだけど...]
これから複雑なモデルを扱う人はベイジアンにならざるを得ないだろう。昔と違っていい本がたくさん出ているから読め。云々、云々。
読了:Zyphur & Oswald (2015) 経営科学のためのベイジアン統計学ユーザーズ・ガイド
2015年11月25日 (水)
ここんところ市場メカニズムに関する資料ばかり読んでいて、なんだか殺伐とした気持ちになってしまったので、気分転換に目を通した。
Gelman先生2009年の論文、うっかり2007年のdraftで読んじゃったけど、中身は同じだと思う。
Gelman, A., Park, D.K. (2009) Splitting a predictor at the upper quarter or third and the lower quarter or third. American Statistician, 63(1).
回帰分析は素人には難しい。そこで、Xで高群と低群にわけ、群間でYの平均の差をみる、という方法が広く行われている。でもどうせなら高中低の3群に分けたほうがいいよ。という論文。
(ここで感涙... ああ、なんて親しみやすい話題でしょう。心温まるね)
まずは数値例。
例1. 過去のUS大統領選における、各州の平均所得とその週の共和党得票率の関係を回帰分析で調べると、1980年頃以降の選挙では回帰係数がどんどん負の方向に変化している(平均所得が低い週で共和党が勝ちやすい)。
例2. 過去のUS大統領選における、個々の投票者の所得と共和党への投票の有無の関係をロジスティック回帰分析で調べると、1980年頃から、係数が正になっている(所得が高い人は共和党に投票しやすい)。
なぜこうなるのか、というのはここでの関心ではない。 問題は、こういう結果を一般人にどうやって説明するかだ。
相関だ、回帰係数だ、なんていわれても素人にはわからない。単純な要約統計量ならわかってもらえるけど(各週の共和党の得票率を色で表すとかね)、上記のような2変量間関係を表すのは難しい。散布図をみせるのはいいけど、関係の強さの変化を時系列でみせるためには、やっぱりなんらかの要約が必要だ。
以下では、回帰モデル $y_i = \alpha + \beta x_i + e_i$を真とする。誤差項は正規分布、等分散、$x$から独立だとする。回帰係数の最小二乗推定値を$\hat{\beta}^{ls}$とする。
話はそれるけど、この回帰係数ってやつも、結局は比較なのである。なぜなら
$\displaystyle \hat{\beta}^{ls} = \frac{ \sum_i (y_i - \bar{y})(x_i - \bar{x}) }{ \sum_i (x_i - \bar{x}) }$
$\displaystyle = \frac{ \sum_{i,j} (y_i-y_j)(x_i-x_j) }{ \sum_{i,j} (x_i - x_j)^2 }$
$\displaystyle = \frac{ \sum_{i,j} \frac{y_i-y_j}{x_i-x_j} (x_i - x_j)^2 }{ \sum_{i,j} (x_i - x_j)^2 }$
つまり、回帰係数とは、2つのケースの差の比$\displaystyle \frac{y_i-y_j}{x_i-x_j} $を、すべてのペアを通じて$(x_i - x_j)^2$で加重平均した値なのだ。
[うおおおおお... そんな風に考えたことはなかった!恥ずかしながら目からうろこが]
この$\hat{\beta}^{ls}$を近似できる、もっとわかりやすい指標について考えましょう。
閾値$x^{lower}, x^{upper}$を定め、これでデータを高中低の3群に分ける。高群と低群の割合はともに$f$とし、$0 \lt f \leq 0.5$とする。変数$z$をつくり、高群を$z=0.5$, 中群を$z=0$, 低群を$z=-0.5$とする。
で、$\bar{y}_{z=0.5} - \bar{y}_{z=-0.5}$を求める、というのでもよろしいのだが、$\hat{\beta}$と比較できないので、次の指標を考えよう:
$\displaystyle \hat{\beta}^{simple} = \frac{ \bar{y}_{z=0.5} - \bar{y}_{z=-0.5} }{ \bar{x}_{z=0.5} - \bar{x}_{z=-0.5} } $
では、分散を比べてみよう。
$\displaystyle var(\hat{\beta}^{ls}) = \frac{\sigma}{n} \frac{1}{var(x)}$
いっぽう [...途中省略...]
$\displaystyle var(\hat{\beta}^{simple} ) = \frac{\sigma}{n} \frac{2}{( E(x|x \geq x^{upper}) - E(x| x \leq x^{lower}) )^2f}$
である。
これを最小化する$f$は [...途中省略...] 結局、以下の方法で数値的に求めることができる。[以下、原文を離れてレシピ風に]
- 十分に大きい偶数$m$を決めましょう。たとえば10000。
- $x$の分布$p(x)$から$m$回ランダムドローし、小さい順に並べましょう。これを$x_{(1)}, x_{(2)}, \ldots, x_{(m)}$とします。
- $f = 1/m, 2/m, \ldots, 1/2$と、少しずつ$f$を増やしながら、次の作業をしましょう。
- 低群と高群がそれぞれ割合$f$になるように閾値を決めなさい。その閾値を$x_{(lower)}, x_{(upper)}$とします。
- 高群の$x$の平均 $(1/fm) \sum_{i=upper}^{m} x(i)$を求めなさい。
- 低群の$x$の平均 $(1/fm) \sum_{i=1}^{lower} x(i)$を求めなさい。
- 閾値の差 $x_{(upper)} - x_{(lower)}$を求めなさい。
- 2.と3.の差を4.の2倍で割りなさい。
- 上で求めた値が1にもっとも近くなる$f$を探しなさい。それが最適な$f$です。
さて。最適な$f$は$p(x)$次第なのだが、一様分布とか正規分布とか、いろんな実データとかで試してみると、だいたい最適な$f$は0.25とか、0.33とか、まあそのくらいの値になる。つまり、高低の2群に折半して比べるよりも、高中低の3群に分け、中を捨てて高と低を比べるほうが、気が利いているわけだ。
[以下、話はちょっと駆け足になって...]
説明変数が離散的な場合でも同様。高い方の1/4~1/3くらいと、低い方の1/4~1/3くらいを取ってきて比べるのがお勧め。
目的変数が二値の場合でも同様。群間で割合を比較すればよろしい。ただし、ロジスティック回帰係数の分散と群間の割合差の分散を単純に比較するのは難しい。云々。
順序ロジットの場合はどうか。関係が単調じゃないかもしれないので、順序ロジットを群間比較に置き換えちゃうのはお勧めできない。云々。
重回帰の場合はどうか。もし説明変数が二つなら、3x3=9群に分けて、片方を固定してもう片方の高群と低群を比較しよう。もっと多かったら、各変数を高中低の3群に分け、0.5, 0, -0.5とコード化して重回帰なさい。
最後に数値例。冒頭の例を、回帰じゃなくて群間比較で調べ、似たような結果が得られることを示したりしている[略]。
結論。長い人生、ほんとは回帰のほうがいいんだけど、周りの素人たちのためには群間比較のほうがいい、ってこともあるだろう[←こんな書き方ではないけど、まあそういう意味のことが書いてある]。そのときは、Xで二等分するんじゃなくて、三等分か四等分して両端の群を比較なさい。云々。
いやー、面白かった!
この話、どこでどう役立てるかは、ちょっと慎重に考えたほうがいいと思う。実際のデータ解析では、変数間関係の要約のために量的変数を離散化するとき、分布じゃなくて実質的知識に基づいて区切ったほうが良い場合が、非常に多いと思うからだ。卑近な例でいえば、「製品パッケージへの好意度(5件法)と購入意向の関係を知りたい、好意度Top2Boxの対象者とBottom3Boxの対象者のあいだの購入意向の差を調べるのと、好意度TopBoxの対象者とBottom4Boxの対象者のあいだの購入意向の差を調べるのと、どっちがいいでしょうか」と尋ねられたらどうするか。ここで最初の返事は、「Top2Boxの対象者に注目するということのビジネス上の意義は? TopBoxの対象者に注目することの意義は?」でなければいけないと思う。「分布が等分になるようにわけるのがいいんじゃないですか」などと答える人を、私はあまり信用しない。
でも、いざ分布に基づいて分けるときには、これはもうエイヤッと分けるしかないだろうと思っていた。まさか、群間の差の分散という観点から「High/LowじゃなくてHigh/Middle/Lowにわけましょう」というような示唆が出てくるとは思わなかった。頭がちょっぴり良くなったような気分だ。
読了:Gelman & Park (2009) Xで高群と低群に分けてYを比べているあなた、どうせなら高中低の3群に分けなさい
2015年11月16日 (月)
国会前に安保法制反対デモの人々が詰めかけていたとき、参加者は主催者発表で×万人だ、いやそんなに多いわけがない捏造するな... 云々と、なにかと喧しい様子であった。それはまあ置いとくとして、なにかのメディアに、こうした場合の人数の数え方に関する専門家なる方のコメントが載っていて、いわく、香港の研究者でデモの人数を統計的に推測するモデルを作った人もいます、とのこと。ああ、そりゃきっといるよね、と膝を打った。北海道の熊や太平洋のマグロの個体数についてもなんらか推測している人がいるんだから、人間の頭数くらい推測できそうなもんじゃないですか。
というわけで、数か月前に純粋な好奇心で目を通した論文なのだけど、せっかくなので記録しておく。
Yip, P.S.F., et al. (2010) Estimation of the number of people in a demonstration. Australian & New Zealand Journal of Statistics. 52(1), 17-26.
著者いわく、群衆のサイズ推定という問題は古くからあり、すでにたくさんのアプローチがあるんだけど、デモのように移動している場合は難しい。本論文は、"double count and spot-check"法を提案します。
デモを一方向の行進とみなし、そのルートを$[0,1]$とする。デモは地点1の近くにある焦点ポイント$f$に向かって進むものとする。たいてい$f$のそばには広場があって、群衆がそこで広がることができる。
ある個人は、ルート上の任意の点$u$でデモに参加し、任意の点$v$で離脱するものとする。$0 \leq u \lt 1$, $0 \lt v \leq 1$, ある人について$u \lt v$である。$u \leq u_0$, $v_0 \leq u$を満たす人をデモ参加者とする。
推定の対象は、指定された時間内にデモに参加した人数$N$である。距離を置いて同行した人は含めない。
まず従来の方法として、香港大学世論プログラム(HKUPOP)が用いている"count and follow-up"法について説明しよう。
$f$の手前に調査ポイント$P$を置く。ここを通過した人数を$N_p$とする。観察者がずっとカウントしていたとしよう。このときのカウントを$Y_P$とする。実際にはなんらかの時間間隔をサンプリングして$Y_P$を推定する。この推定値を$\hat{Y}_P$とする。
ところで、そもそも$N_P$は$N$でない。$P$より手前で離脱した人が入ってないからだ。そこで、あとでランダム電話調査でデモ参加者を探す。みつかった人数を$l$とする。この人たちに$P$を通過したかどうか尋ねる。
参加者に占める地点$P$通過率$p$の推定値$\hat{p}$が手に入ったとしよう。そのSEは$\sqrt{\hat{p}(1-\hat{p})/l}$である。さて、参加者の推定値は$\hat{N}_1 = \hat{Y}_P / \hat{p}$だ。そのSEは下式となる:
$se (\hat{N}_1 ) = \sqrt{\frac{var(\hat{Y}_p)}{\hat{p}^2} + \frac{\hat{Y}_P^2 (1-\hat{p})}{l\hat{p}^3}} $
[恥ずかしながら、この式の導出はよくわからないんだけど、ま、信じることにしましょう]
このやり方にはいろいろと問題点がある。どんなに巨大なデモであろうが、人口に占めるデモ参加者の割合は小さいので、電話調査で捕まえるのはすごく大変だ。無回答のバイアスもあるし、地点$P$通過の有無を正直に答えてくれてるかどうかもわからない。
さて、提案手法。電話調査はやらない。その代わり、$f$のすぐ手前だけじゃなくて、もっと手前のほうにももうひとつ調査ポイントを置く。手前から順に$A$, $B$としよう。
$A$と$B$のあいだで参加し、かつあいだで離脱した人は除外して考えよう[←つまり、$A$,$B$がデモ参加者を定義する2地点になるわけね]。$B$通過者における$A$通過率を$\phi$として、
$\hat{N} = \hat{Y}_A + (1-\hat{\phi}) \hat{Y}_B$
といえる。$\hat{\phi}$は、$B$通過者$m$人をその場で抽出して「あなた$A$を通りましたか」と訊けばかんたんにわかる。そのSEは$\sqrt{\hat{\phi}(1-\hat{\phi})/m}$であり、
$se (\hat{N}) = \sqrt{\hat{var}(\hat{Y}_A) + (1-\hat{\phi})^2 \hat{var}(\hat{Y}_B) + \hat{Y}^2_B \frac{\hat{\phi}(1-\hat{\phi})}{m}}$
[恥ずかしながら、この式もよう導出せんわ...]
$se (\hat{N}_1)$と$se (\hat{N})$を比べてみると [....中略...] 前者のほうが大きい。
そんじゃあ観察地点を3つ以上にすればもっといいんじゃないか、という意見もあるだろうが、それは金もかかるし大変だ。それよか、よい2地点を選んで正確にカウントするほうがよいでしょう。
後半は、2006年7月1日(香港の返還記念日)のデモへの適用例。ルートは約3.6km。
地点$A$, $B$におけるカウントは、5分に一回、1分間、複数の観察者が通過人数を数える、というやり方。突き合せてみると結構当たっていた。平均するとおよそ220人/分。 なお、提案手法で一番大事なのは地点$A$で正確に数えることである[なるほど]。地点$B$におけるインタビューの結果は$\hat{p} = 0.91$であった。
[以下、$\hat{Y}_A, \hat{Y}_B$とそのSEの算出方法が丁寧に書いてあるけど、省略]
まあそんなこんなで、デモ参加者の人数の推定値は26300名、95%信頼区間は(25300, 27400)となった。
他の推定値と比べてみよう。日刊紙「明報」はデモの最後の人が出発地点を離れた時点での衛星写真から、参加者を22141名と推定している(これは途中参加者抜き)。HKUPOPは地点$B$の近くでのカウントに基づく"count and follow-up"法で、36000人から43000人と推定している。主催者発表は58000人、警察発表は28000人。完璧な正解はないけれど、このデモに関する限り、主催者発表よりは警察発表があたってんじゃないですかね。云々。
なるほどね、おもしろいな。でも(←ごろ合わせではない)、一方向に進むデモ行進じゃなくて、国会かなにかを取り囲む人々が三々五々入れ替わる、というような群衆の数え方も知りたいところだ。
読了: Yip et al.(2010) デモ行進の人数をどうやって推定するか
2015年11月10日 (火)
市場メカニズムがどうとかこうとか、最近すっかり消耗しちゃったので、気分転換に読んだ。計量心理系の話って、こうしてみると胸和みますね。お金とか出てこないし。
Asparouhov, T., Muthen, B. (2015) IRT in Mplus. Mplus Technical Notes.
MplusのIRTモデルを定義するテクニカル・ノート。今週発表されたMplus 7.4のリリースノートで、IRT系新機能の参考文献として挙げられていたので、勉強のために目を通した次第。
項目特性曲線(ICC)。
Mplusは以下の4種類に対応する。以下、潜在クラス$C=k$、共変量$X=x$の下での潜在因子$f$のカテゴリカル指標を$U_i$とする。
その1、ロジット・リンク、ML/MLR/MLF推定量。カテゴリ $j$が最初のカテゴリだったら
$P_{ijk} (f) = P(U_i = j | f, C=k, X=x)$
$= 1 / ( 1 + \exp(-\tau_{ijk} + \lambda_{ik} f +\beta_{ik} x ) )$
もし最後のカテゴリだったら、右辺が
$1 - 1 / (1 + \exp(\tau_{i,j-1,k} + \lambda_{ik} f + \beta_{ik} x))$
にかわる。じゃあ真ん中のカテゴリだったら? さあ深呼吸!
$1 / (1 + \exp(-\tau_{ijk} + \lambda_{ik} f + \beta_{ik} x ) - 1 / (1 + \exp(-\tau_{i,j-1,k} + \lambda_{ik} f + \beta_{ik} x ) )$
ですね。
その2、プロビット・リンク、ML/MLR/MLF推定量。$\psi$を標準正規累積分布関数とします。最初のカテゴリは
$P_{ijk}(f) = P(U_i = j | f, C=k, X=x)$
$= \psi (\tau_{ijk} - \lambda_{ik} f - \beta_{ik} x)$
最後のカテゴリだったら右辺が
$1 - \psi (\tau_{i,j-1,k} - \lambda_{ik} f - \beta_{ik} x)$
にかわり、真ん中のカテゴリだったら
$\psi (\tau_{ijk} - \lambda_{ik} f - \beta_{ik} x) - \psi (\tau_{i,j-1,k} - \lambda_{ik} f - \beta_{ik} x) $
にかわる。
その3、プロビット・リンク、WLS/WLSM/WLSMV/ULS推定量。潜在クラスじゃなくて群$G$を導入します。残差$\theta_{ik}$が登場する。カテゴリ$j$を最初のカテゴリとしよう。ICCは、
$P_{ijk}(f) = P(U_i = j | f, G=k, X=x)$
$ = \psi ( (\tau_{ijk} - \lambda_{ik} f - \beta_{ik} x) / \sqrt{\theta_{ik}})$
となる。最後のカテゴリだったら、真ん中のカテゴリだったら ... というのは上記と同じなので省略。
このやりかたはさらに2つに分かれる。
(1)theta パラメータ化。残差$\theta_{ik}$をパラメータとみる(どこかの群を1にする)。
(2)delta パラメータ化。$\theta_{ik}$そのものじゃなくて
$\theta_{ik} = \Delta^{-2}_{ik} - Var(\lambda_{ik} f)$
とおいた$\Delta_{ik}$をパラメータとみる(どこかの群を1にする)。
ま、どっちにしろ、Mplusは$\theta_{ik}$を出力する。
項目情報曲線(IIC)。
IICの定義は下式のとおり。
$I_{ik} (f) = \sum_{r=1}^{l} \frac{({\partial P_{irk}} / {\partial f})^2}{P_{irk}}$
以下、話を簡単にするために、$Q_{i0k}=0, Q_{ilk} = 1$、それ以外の$j$について$Q_{ijk} = \sum_{r=1}^j P_{irk}$とします。
MplusにおけるIIC $I_{ik} (f) $は、推定量を問わず、
$\sum_{r=1}^{l} ( (Q_{irk}(1-Q_{irk}) - Q_{i,r-k,l} (1-Q_{i,r-k,l}))^2 ) / P_{irk}$
になにかを掛けた奴になる。
ロジット・リンクなら素直に$\lambda_{ik}^2$を掛ける。
プロビット・リンクのML/MNL/MLR推定量の場合でも、ロジットで近似して、$3.29 \lambda_{ik}^2$を掛ける。$3.29$ってのは$\pi^2/3$から来ている[これ、昔納得した覚えがあるんだけど、全然おもいだせないや]。
WLS/WLSM/WLSMV/ULS推定量の場合は $3.29 \frac{\lambda_{ik}^2}{\theta_{ik}}$ を掛ける。
全情報関数は、$f$の分散を$\psi$として
$I_k (f) = 1/\psi + \sum_i I_{ik} (f)$
となる。そのSEはどうやって出すかというと...[略]。
IRTパラメータ化。
1因子・2値項目の場合、Mplusは伝統的なIRTの形でもパラメータを出力する。因子の平均を$\alpha$, 分散を$\psi$とする。因子$f$と、IRTでいう$\theta$(平均0, 分散1)との間には $f = \alpha + \sqrt{\psi} \theta$という関係がある。IRTでいう弁別力と困難度は
$a_{ik} = \lambda_{ik} \sqrt{\psi}$
$b_{ik} = (\tau_{ik} - \lambda_{ik} \alpha) / (\lambda_{ik} \sqrt{\psi})$
となる。ただし、WLS/WSLM/WLSMV/ULS推定量の場合は、thetaパラメータ化なら
$a_{ik} = (\lambda_{ik} \sqrt{\psi}) / \sqrt{\theta_{ik}}$
deltaパラメータ化だと
$a_{ik} = 1 / \sqrt{\Delta_{ik}^{-2} \lambda_{ik}^{-2} \psi^{-1} - 1}$
となる。[あれ?なんでだろう... ま、よっぽどヒマになったら考えよう]
この辺から新機能の話だと思う。
Partial Credit Model。
$U$がカテゴリ数$m$の順序カテゴリカル変数、$X$がその予測子のベクトルだとしよう(潜在・観察は問わない)。Partial Credit Modelとは、
$P (U = k | X) = \exp (\sum_{i=0}^{k} (\beta X - \tau_i)) / hogehoge$
というモデルで、めんどくさくなってhogehogeと書いたが、分母は全カテゴリを通した分子の合計である。識別のために最初の閾値は$\tau_0 = 0$とする。
なにこれ多項回帰じゃん、と思った人[→はいはい!俺思った思った!]、あなたは正しい。ここまでに出てきたモデルとこのPCMモデルとの違いは、PCMでは対数オッズが$X$の線形関数になるという点である。ロジットがいいか、プロビットがいいか、PCMがいいか、決めたいときはBICを使いなさい。
1因子のときには伝統的なIRTパラメータも出力する。[... 関心がなくなってきたのでこの項省略]
Guessingモデル(3PL), 上界漸近線ありのGuessingモデル(4PL)
[うわー、3PLや4PLも推定できるんだ。すげー。でもたぶん一生使わないので省略]
... というわけで、よくよく考えてみたらMplus 7.4のIRT系新機能は私とはちょっと縁がなさそうなので、後半から飛ばし読みになってしまった。でも、まあ、なけなしの知識の再活性化ということで。
それにしても、なぜIRTをもっときちんと勉強しておかなかったかなあ。短い間ではあったが、世界にも類を見ない巨大テスト・サービス機関(ほんとう)で、データ解析をやらせていただいてたのに。もったいないことをした、と悔やまれる。
読了:Asparouhov & Muthen (2015) Mplusで項目反応モデル
2015年9月24日 (木)
ずっと前に買って積んでおいた、ニューラルネットワークによるビジネス予測についての論文集を本棚から引っ張り出してきた。手早く見通しをつけたくて。
この本、買ったきりなんだか安心しちゃって(よくない癖だ)、目次もちゃんと見てなかったのだが、この本の内容は以下の通り。最初の4章はレビューで、
- Zhang: ニューラルネットワーク(NN)によるビジネス予測全般についてのレビュー。
- Parsons & Dixit: NNによる市場反応予測のレビュー。
- Thawornwong & Enke: NNによる株式リターン予測のレビュー。
- Walczak: NNによる新興市場インデクス予測のレビュー。
残りは事例。ええい、めんどくさいので著者は省略だ。
- NN時系列モデルによるWastewater BOD Levelの予測。
- NNによるツーリズム需要予測。
- 自己組織化マップ(SOM)による市場セグメント・メンバーシップの予測。
- バックプロパゲーションとSOMによる倒産予測。
- NNによる消費者選択の予測。
- 再帰NNによる短期為替レートの予測。
- ARIMAモデルとNNを組みわせた時系列予測。
- NNによるmulti-step 時系列の予測。[二期先より先を予測するときにどうすんべ、一気にやんのか一期先予測を繰り返すんか、という話らしい。NNなら当然一気だべ、と思い込んでいたよ...]
- NN時系列予測におけるweighted windowアプローチ [どういう話だろう?]
- クレジットカードの与信のための予測・分類手法の評価
さて、編者様おん自らによります第一章は...
Zhang, G.P. (2004) Business Forcasting with Artificial Neural Networks: An Overview. Zhang, G.P. (ed.) "Neural Networks in Business Forecasting," IRM Press.
人工ニューラルネットワーク(ANN)の主な応用分野のひとつは予測である。長い間、予測は線形手法によって支配されてきたが、ANNはその有力な対抗馬となった。 非線形的関係をはじめ複雑な関係を近似できるし、データ生成プロセスについての想定がいらず誤指定に強い。
[3層フィードフォワード・ネットワークについて説明があって...] 入力変数の設計が重要。学習の主流はバックプロパゲーション・アルゴリズムによる誤差平方和の最小化。
そのほかのタイプのNNとして再帰NNもよく使われる。時系列モデリングでARよりARMAのほうがリッチなのと同様、フィードフォワード型より再帰型のほうがリッチ。でも設計と学習がちょっと難しい。
1995-2003年の、ANNによる予測事例を表で示す。このように応用分野は幅広い。
モデリング・予測における諸問題。それはアートと科学の結合である。
- まず大事なのは、学習におけるバイアスと、モデル分散(すなわち一般化可能性)のちがいについて理解すること。ANNのようなデータ駆動モデルは、誤指定によるバイアスは小さい反面、データに依存するぶんモデル分散が大きい。
- データ準備。ふつうサンプルは大きい方が助かるわね。学習サンプルと妥当化サンプルにわける。前者を7割から9割くらいにするのが普通。Grangerは最大でも8割だといっている。
- 前処理。Azoffは入力データの規準化方法を4つ挙げている:along-channel, across-channel, mixed-channel, external. そもそも規準化せんでよいという意見もある。
- ネットワークのデザインとアーキテクチャの選択。これも難しい。とりあえずは多層フィードフォワードがおすすめ。隣接層とのコネクションはとりあえず全部張る。
- 出力層。二期より先の時系列予測の場合、マルチステップで予測するより、とりあえず出力ノードを増やすか、期ごとに別のネットワークをつくるのがおすすめ。
- 入力層。なによりもここが大事。がんばれ。
- 隠れ層の数とノード数は... まあそれもいろいろ変えられるけど、とりあえず一層にしとくのが吉、ノードは少なめに。
- 伝達関数は、隠れ層ではロジスティック関数か双曲線関数、出力層では線形関数か同一関数を使うことが多い。ま、結果にはそんなに影響しない。
- 学習。基本的なバックプロパゲーションのほかにもいろいろいいのがあるから試してみるように。
- モデル選択は交差妥当化でやるのが基本。in-sampleでAICとかBICとか使う手も、またpruning法などの方法でやる手もあるけど、限界がある。
- 評価。もっと伝統的なモデルと比べる、out-of-sampleで調べる、十分なサンプルサイズ(分類な40、時系列なら75は欲しい)、が三大鉄則。
というわけで、諸君、本書の以降の章で勉強したまえ。云々。
読了:Zhang (2004) ニューラル・ネットワークによるビジネス予測レビュー
2015年9月23日 (水)
Gunther, F. & Fritsch, S. (2010) neuralnet: Training of Neural Networks. The R Journal, 2(1), 30-38.
Rのneuralnetパッケージの紹介。実戦投入の際にはなにか公式文書を読むことにしているので(気分の問題である)、いちおうメモ。R Journalの記事だけど。
ええと、ご存知nnetやAMOREパッケージと同じく、ニューラル・ネットワークによる教師つき学習を提供する。nnetと違い多層パーセプトロンがつくれる。アルゴリズムは伝統的なバックプロパゲーションのほかに、より高速なレジリエント・バックプロパゲーションと、ええともうひとつはなんだっけ、忘れちゃったけどなんかもう一つくらい提供している。なにかと柔軟だよ。お絵かき機能もあるよ。信頼区間も出るよ。とのことでありました。
読了:Gunther, Fritsch (2010) Rのneuralnetパッケージ
2015年8月13日 (木)
早川和彦(2014) 高次元時系列データ分析の最近の展開. 日本統計学会誌, 43(2), 275-292.
本数がすっごく多い多変量時系列データの分析手法について、経済時系列分析の観点からのレビュー。
細かいところ難しくてよくわかんないんだけど、自分なりに勉強になりましたです。
初歩的な疑問なのだけど、著者のおっしゃる「ファクターモデル」って、発達心理学だとかマーケティングだとかでたまに出てくる「動的因子分析」とどういう関係にあるのだろう。
えーと、わたくしの拙い理解によれば、世間で動的因子分析と呼ばれるものには次の2種類の定式化がある。
- ホワイトノイズ因子得点モデル(WNFSモデル)。ショック・モデルともいう。測定ベクトル $x_t$について
$x_t = \sum_{s=0}^S \Lambda_s f_{t-s} + e_t$ - 直接自己回帰因子得点モデル(DAFSモデル)。プロセスモデルともいう。ごくふつうの因子分析モデル
$x_t = \Lambda_0 f_t + e_t$
を考え、さらに$f_t$についての時系列モデルを考えるやつ。
さて、著者によれば、ファクターモデルには2種類ある。
- 静学的ファクターモデル。時点$t$における変数$i$の測定値について
$x_{it} = \lambda'_i F_t + e_{it}$
$\lambda_i, F_t$はサイズ$r \times 1$。$F_t$は静学的でもいいし、$A(L)F_t = u_t$というように動学的でもよい。ただし$A(L)$はラグ多項式で$u_t$はiid。$e_{it}$と$e_{jt}$のあいだに相関を設けない場合をstrict factor model, 弱い相関を許す場合をapproximate factor modelという。 - 動学的ファクターモデル。
$x_{it} = \lambda'_i(L) f_t + e_{it}$
$\lambda_i(L)$は$\lambda_{i0}, \lambda_{i1}, \ldots, \lambda_{is}$(それぞれサイズ$q \times 1$)からなるラグ多項式。$f_t$はサイズ$q \times 1$で、$f_t = C(L) \epsilon_t$という動学構造を持つ。ただし$C(L)$はラグ多項式で$\epsilon_t$はiid。
... うーむ。
著者のいう静学的ファクターモデルって、因子負荷$\lambda_i$にラグがはいっていないから、きっとDAFSモデルに近いんだろうな。しかしDAFSモデルは因子得点について自己回帰構造を考えるけど、静学的ファクターモデルはそうでない場合を含むのであろう。
著者のいう動学的ファクターモデルはWNFSモデルに近いのかな、と思ったけど、WNFSモデルは因子得点がホワイトノイズ過程だと考えるのに対し、動学的ファクターモデルはたとえば因子得点が自己回帰するようなのも含むのだろう。
要するに、分類のしかたがちょっとちがうんだろうな。
読了:早川 (2014) 高次元時系列データ分析手法レビュー
Brandt, P.T., Freeman, J.R. (2006) Advances in Bayesian time series modeling and the study of politics: Theory testing, forecasting, and policy analysis. Political Analysis, 14 (1): 1-36.
第一著者はRのMSBVARパッケージの開発者。政治学におけるベイジアン時系列モデリングの進展にそれほど関心があるわけじゃないんだけど(すいません)、パッケージを使う前の儀式のようなものである。
第一部、レビュー。多変量時系列モデルによる政治学理論の検証と政策分析を、3つの領域について概観する。そもそも多変量時系列モデルについてよく知らない人は、この論文を読む前に勉強するように。[って、ほんとにそう書いてある。つれないなあ]
その一、innovation accounting。ある時系列におけるあるショックがほかの時系列に及ぼす影響を特定すること[←へええ。「イノベーション会計」と訳すらしい]。そのためにはインパルス応答を調べるわけだけど、理論検証という観点からは信頼区間が重要になる。しかし、残念ながら政治学ではあまり信頼区間を用いないし、求めるのも大変[いろいろ細かい議論があるけどパス]。最近ではSims & Zha (1999 Econometrica) が良い方法を提案している。
その二、予測による理論検証。VARモデルは過適合しちゃうことが少なくない。80年代にこれに対処するためにいろいろな信念をいれたベイジアンVARモデルが構築され、いわゆるミネソタ事前分布として知られている[←はああ?と思ったが、ミネソタ大関係者によるベイジアンVARモデル構築の有名な手法があるらしい。知らんがな]。しかしマクロ経済についての実質的信念とは整合しない点があって、Sims-Zha事前分布というのが提案されてて、どうのこうの。
ベイジアン時系列モデルは非定常性に強い。Sims-Zha事前分布はこの点でも優れていて、どうのこうの。
なお、以下の点に注意。(1)予測の正確さの評価方法はいろいろある。(2)Sims-Zha事前分布のハイパーパラメータがマクロ経済現象に基づき用意されており、「参照事前分布」として知られている。こういうのを政治学でも作りたいものだ。(3)ベイジアンでも理論的な構造を取り入れることが大事。
その三、反事実分析による理論検証。条件つき予測によって、ある変数が生じるためにはどんな条件が必要かを調べるのだ、とかなんとか。こういう分析が現実的かという点については議論がある[←ルーカス批判みたいなもの?]。でも反論もあって、云々、云々。
第二部、ベイジアンVARモデルの技術的詳細。正直、推定量の導出から難しくなって全くわけわかんなくなり、断念。
第三部、事例。読めばわかりそうだけど、力尽きたのでパス。
というわけで、全体の数分の一しか読めてないけど、記録の都合上、読了にしておく。まあいいさ、儀式だしね!
残念だけど、私にはちょっと難しすぎる論文であった。政治学だと思って舐めてました。というか、ベイジアンVARだけじゃなくて、政治学の研究について知っていないとわからん論文であった。
読了:Brandt & Freeman (2006) ベイジアンVARモデリング in 政治学
Barnett, L., & Seth, A.K. (2015) Granger causality for state space model. Physical Review. E, Statistical, Nonlinear, and Soft Matter Physics. 91(4).
みなさん、グレンジャー因果性はVARモデルの専売特許だと思っていませんか(はい、そう思ってます)。ブブーッ、そうではありません(へー、そうなんですか)。状態空間モデルからグレンジャー因果性を求めるやりかたを示しましょう(はあ、そうですか)。という論文。なにかの気の迷いで読んだ。
以下の状態空間モデルを考える。
状態方程式 $x_{t+1} = A x_t + u_t$
測定方程式 $y_t = C x_t + v_t$
$u_t, v_t$は平均0のホワイトノイズ過程で、共分散行列はそれぞれ$Q$と$R$、$u_t$と$v_t$の共分散行列は$S$とする。$x_t, y_t$は弱定常とする。そのとき$A$の固有値の絶対値の最大値は1より小さくなる。$R$は正定値行列だと仮定する[あれ?ホワイトノイズなんだから$Q$と$R$は当然正定値行列なのでは?]。この$y_t$は定常なARMAモデルで表せるし、定常なARMAモデルはこの状態空間モデルで表せる。
以下、$y^{-}_{t-1} \equiv [ y^T_{t-1} \ \ y^T_{t-2} \ \ \ldots ]^T$と略記します[時点$t$からみた過去データってことっすね]。また、イノベーションを$\epsilon_t \equiv y_t - E (y_t | y^{-}_{t-1})$と表します。イノベーションの共分散行列を$\Sigma$と書きます。
グレンジャー因果性について。
$y_t$を次の3つの下位過程に分解できるとする。
$y_t = [ y^T_{1t} \ \ y^T_{2t} \ \ y^T_{3t} ]^T$
$y_t$から$y_{2t}$を削ったやつを$y^R_t$、そのイノベーションを$\epsilon^R_t$と書こう。
$y_{3t}$の下での$y_{2t}$から$y_{1t}$へのグレンジャー因果性とは、$E(y_{1t} | y^{-}_{t-1})$と$E(y_{1t} | y^{R-}_{t-1})$のちがいだ、といえる。グレンジャー因果性は$y_{2t}$を削ったことによって$\Sigma_{11}$が大きくなった程度、すなわち
$F_{y_2 \to y_1 | y_3} \equiv \ln \frac{|\Sigma^R_{11}|}{|\Sigma_{11}|} $
と定義できる。
さて... この論文では、この$F_{y_2 \to y_1 | y_3}$を状態空間モデルのパラメータから求める式が導出されるんだけど、そのプロセスと導出された式については省略。だって時間領域じゃなくて周波数領域の話になるんだもん。難しくてわかんないんだもん。読む気なくしたんだもん。
後半はシミュレーション。2変量AR(1)過程のデータを生成し、ARMAモデルと状態空間モデルをあてはめ、それぞれからグレンジャー因果性を求める。状態空間モデルから求めたほうが、バイアスが小さくなり検定力が上がるんだってさ。
... ふうん。
生まれながらの文科系、宿命的なパッケージユーザとしては、状態空間モデルのパッケージにグレンジャー因果性を求める機能がついてたらいいな、と思うのが関の山である。ついてたらいいな。
こういう話はさらに拡張できて、共和分過程でも、誤差分散に不等性があるモデルでも、パラメータが時変するモデルでも、非線形な状態空間モデルでも、グレンジャー因果について推論することができるでしょう、とのこと。ふうん。
読了;Barnett & Seth (2015) 状態空間モデルにだってグレンジャー因果性はあります
2015年8月10日 (月)
Willet, J.B., & Singer, J.D. (1988) Another cautionary note about R^2: Its use in weighted least-squrares regression analysis. The American Statistician, 42(3), 236-238.
著者があのWillet & Singerなので(縦断データ分析の名教科書の著者である)、資料整理のついでに目を通した。
えーと、かつてこの雑誌に Kvalseth (1985) "Cautionary Note about R2"というのが載った。OLS回帰におけるR二乗の定義にはいろいろあるんだよ、という話。Kvalsethさんいわく、切片項を抜いたり非線形だったりするような回帰モデルでは、R二乗は 全変動における残差平方和以外の変動の割合だということにしたほうがいいよ、とのこと。 [←式を見てパッとメモっているので誤解しているかも]
この論文はその話をOLSからWLSに拡張する。
WLS回帰では、
$Y = X \beta + \epsilon, \ \ \epsilon \sim (0, \sigma^2 W)$
というモデルを考える。Wは事前のOLSかなんかで得ることが多い。両辺に $W^{-1/2}$を掛けて
$W^{-1/2} Y = W^{-1/2} X \beta + W^{-1/2} \epsilon$
とすれば、$W^{-1/2} \epsilon$の分散は$\sigma^2 I$となり、OLSで推定できる。これを
$Y_* = X_* \beta + \epsilon_*$
と書くことにしよう。
さて、OLSの場合、Kvalsethさんお勧めのR二乗は
$R^2_{OLS} = 1 - \left[ \frac{(Y-X \hat\beta)' (Y-X \hat\beta)}{Y'Y - n\bar{Y}^2} \right]$
である。これをWLSにすると、パラメータのWLS推定値を$\hat\beta_*$として
$R^2_{WLS} = 1 - \left[ \frac{(Y_*-X_* \hat\beta_*)' (Y_*-X_* \hat\beta_*)}{Y'_* Y_* - n\bar{Y}_*^2} \right]$
ソフトが出力するR^2は普通これだ。往々にして$R^2_{OLS}$より高くなる。
でもこれは、$Y$そのものについての分散説明率ではなく、$Y$を変換した変数$Y_*$についての分散説明率である。そんなのヘンじゃないですか。ユーザにとっての残差はあくまで$Y - X \hat\beta_*$でしょ。
というわけで、WLSにおけるあるべき決定係数はこれだ:
$pseudo R^2_{WLS} = 1 - \left[ \frac{(Y-X \hat\beta_*)' (Y-X \hat\beta_*)}{Y' Y - n\bar{Y}^2} \right]$
これは$R^2_{OLS}$とそんなに変わらない。じゃどっちでもいいじゃん? とお考えの皆さん。わたくし云いたいのはですね、ソフトが出す$R^2_{WLS}$は高くなりすぎちゃって、素人はぬか喜びしちゃうんだ、ということです。云々。
WLSなんてあんまり使わないもんで、はぁさいですか、としかいえないんだけど...
先生方は、個々のデータ点がどんなウェイトを持っていようが、一旦出来上がったモデルの評価においてはそのことを無視して、すべてのデータ点を平等に扱うべきだ、と考えておられるのでしょうね。それはそれでひとつの見方だが、結局、それはウェイトがなにに由来しているかによって見方が変わってくるんじゃないかと思う。
たとえば、ウェイトが個々のデータ点の不均一分散性を表しているようなWLS回帰もあるだろう。そのときは先生方仰せのとおりかと。いっぽう、ウェイトがSAS的な分析ウェイト(「このデータ点は何人分のデータの集約値か」)を表しているようなWLS回帰もあるだろう。このとき、ウェイトが大きいデータ点とは、(単に分散が小さいというだけではなく)人数の多いデータ点なんだから、「ウェイトが小さいデータ点はうまく説明できなくてもいいや」的な発想に立った決定係数がほしいという立場もありうるのではないか。その立場からは$R^2_{WLS}$でオッケーなんじゃないかしらん?
読了:Willet & Singer (1988) 決定係数かくあれかし:WLSの巻
2015年8月 4日 (火)
Krider, R.E., Li, T., Liu, Y, Weinberg, C.B. (2005) The lead-lag puzzle of demand and distribution: A graphical method applied to movies. Marketing Science, 24(4), 635-645.
一見したところ私とは関係ない話だけど、ひょっとしてこれ、仕事で使えるんじゃないか? と気になって目を通した。Google Scholar様的には、メジャー誌にも関わらず、被引用件数46。ううう。選球眼が問われるところですね。
需要が配荷を生んでいるのか、配荷が需要を生んでいるのか。これをlead-lag問題という。映画でいうと、需要(興収)が上映館数を決める面と上映館数が需要を決める面がある。このダイナミクスについての研究は少ないけど、映画会社にとっては大問題である(消費者にプロモーションすべきか、映画館主にプロモーションすべきか)。また、映画以外でもlead-lag問題は重要だ。
lead-lag問題の探求は難しい。実験ができれば素晴らしいが、なかなか難しい。最近ではグレンジャー因果性とか外生変数つきベクトル自己回帰(VARX)とかによる研究が出てきているが(Horvath et al. 2002 MktgLetters; Nijs et al. 2001 MktgSci, Pauwels et al. 2002 JMktgRes, Pauwels & Srinivasan 2004 MktgSci, Srinivasan et al., 2004 MgmtSci.)、あいにく映画の時系列は短いし非定常なので、グレンジャー因果性検定がうまくいかない。
そこで、時系列データをつかってlead-lagパターンを視覚化する方法をご提案します。
二本の時系列 $X_t$, $Y_t$について考えよう。たとえば広告と売上とか。
($X_t$, $Y_t$)を二次元にマップしてみよう(時点を布置して線でつなぐ)。仮にラグなしで完全に正相関してたら、軌跡は正の傾きを持つ直線になる。ラグがあると曲線になって、(正の相関だとして) 反時計回りに回る曲線になる。逆に$Y_t$が$X_t$をリードしているときは時計回りに回る。
この性質はいつでも成り立つ。
[著者らはまず単純な正弦波の例を示し、次にフーリエ変換で一般化しているが、どうやら理屈は話のポイントじゃなさそうなので省略。なお、脚注によれば、こういう図のことを物理とか電気工学とかではリサジュー図(Lissajous figures)というのだそうだ。Wikipediaによれば調布の電通大の校章になっている由。知らんがな。googleで引くと岩手県奥州市にリサージュ四季の抄という結婚式場があるらしい。知らんがな]
実験してみよう。
一様 iid 乱数系列を三角フィルタでスムージングする。それにリードなりラグなりをつけて第二の系列をつくる。スムーズネス(5点フィルタ, 9点フィルタ)、リードかラグか、リード/ラグのサイズ(1,2,4,6)、時系列の長さ(11点,6点)を操作。各セルで8回試行、計256組の2変量時系列ができる。で、それぞれについて図を作り、協力者に軌跡が時計回りか反時計回りかどちらでもないかを判断してもらった。リードのときに時計回り、ラグのときに反時計回りと判断された割合を正解率と呼ぶ。
正解率は93%~23%(11時点、5点フィルタ、ラグ4ないし6、というのが一番難しい)。ラグが大きいとき、スムーズネスが低いときに難しくなるが、時系列の長さはそんなに効かない。
これを2変量時系列のグレンジャー因果性検定と比較してみると、正解率は63%~0%。どの条件でも人間の目にぼろ負けする。[←いやー、それはそうでしょうね、この短さでは...]
ほかに、映画の上映館数と興収を模した非定常な5点時系列でもシミュレーション。グレンジャー検定よりすぐれている由。
最後に実データ分析。231本の映画の上映館数と興収の二変量時系列(週次)を使う。長さは平均12週。
それぞれの映画について、ラグ3までいれたVARXモデルでグレンジャー因果性を検定し、(上映館数←興収が有意か)x(興収←上映館数が有意か)で4通りの分類。前者は180本で有意、後者は106本で有意であった由。なんで全部まとめたランダム係数モデルを組まないかねえと思ったのだが、脚注によれば「どっちもあり」で終わっちゃう由。
次に、横軸を上映館数、縦軸を興収にとってそれぞれの映画の軌跡を描き、人の目で判断させると、(評定者によるが)180~190本が「時計回り」にみえる。つまり、視覚的には上映館数←興収であると示唆される。
。。。ううむ。。。これ、どうなのかしらん。。。
論文のロジックとしてそうせざるを得ないことはよくわかるんだけど、提案手法のベンチマークをグレンジャー因果性検定にするのはちょっと変な感じがする。よくわかんないけど、6時点かそこらの時系列でグレンジャー因果性を検討しようだなんて、ハナから無謀な感じがするんだけど。むしろ、「何も知らない人が図を見たときに、どっちがどっちに先行していると判断できるか」をベンチマークにするのが現実的ではないか。
で、提案手法は結局こういうことだ。横軸に配荷、縦軸に需要をとると、右が高い単調な曲線状の軌跡になる。それが時計回りだったら需要→配荷、反時計回りだったら配荷→需要と判断しましょう。
こういうとマジカルに聞こえるけど、もっと具体的に考えると、これは案外あたりまえの話なんじゃないかという気がする。たとえば、映画のようなライフサイクルの短い製品では、軌跡は右上から左下に滑り降りていく。それが下に凸な曲線だったら(時計回りだから)需要→配荷、上に凸な曲線だったら(反時計回りだから)配荷→需要だ、ということになる。でも、そのくらいの推論だったら、なにも知らない人だって思いつくんじゃないですかね? だって、「まず縦軸が落ち、遅れて横軸が落ちる」曲線じゃないですか。チャートを眺めれば、「ううむ、まず配荷が落ちて、すこし遅れて需要が落ちましたね。ということは配荷→需要なんじゃないですか」ぐらいのことは、誰だって思いつくんじゃない?
さらにいえば、シミュレーション実験での提案手法の正解率は、グランジャー因果性検定よりはましだけど、絶対値として優れているとは言いがたい。結局、現実的なベンチマーク(素人判断)と比べても、はたまた絶対値としてみても、提案手法の優位性は特にない、という切ない話になっちゃいそうだ。
ま、それはともかくとして、意外な視点の面白い論文ではあった。2変量時系列を散布図上の軌跡として描いて、「ふむ...左回りだ... 横軸が縦軸の原因になってませんかね」なんて呟いたら、ちょっとかっこいいかも。
読了:Krider, Li, Liu, Weinberg (2005) 需要が先か配荷が先か(ないし、左回りか右回りか)
Asparouhov, T., Muthen, B., Morin, A.J.S. (2015) Bayesian Structural Equation Modeling with Cross-Loadings and Residual Covariances: Comments on Stromeyer et al. Journal of Management, 41, 1561-1577.
Muthen & Asparouhov (2012)が提唱したベイジアンSEM(BSEM)に対するStromeyerらの批判論文に、Muthen一家がさっそく反論。Stromeyerらの主張である「確認的因子分析で小さな交差負荷を推定するのは避けろ」「独自因子の共分散を片っ端から推定するのはやめろ」に猛攻撃を加える。さあ歯を食いしばれ!
交差負荷について。
まず、彼らの「小さな交差負荷はモデル化するな」という主張はBSEMそのものへの批判にはなってない点に注意。[←そうそう、そうですよね]
さて、我々はこの主張に賛成しない。どの項目も有意味な情報とノイズの両方を含む。小さな交差負荷の項目だって有意味な情報を持っている。モデルはそれを明示すべきだ。サーストンのいう単純構造とは構成概念の評価を明確にするための原則であって、解が有意味かどうかを決めるガイドラインではない。
交差負荷をゼロに固定すると共通因子の共分散がインフレを起こす。そんなのたいしたことないはずじゃんと仰るが、いいえ、たいしたことあるんです。彼らが示しているのはただの意見、我々が示しているのはシミュレーションに基づく事実だ。
残差共分散について。
これも小さな交差負荷の話と同じだ。小さな情報事前分布を与えることで、モデルを保ちつつデータを調べるべし。まず残差共分散なしのCFAモデルを推定し、その結果を使った事前分布を与えよ。
残差共分散を自由推定するとどんなモデルでも適合してしまう、と彼らはいうが、これは誤り。理由:
- 事前分布を自由度が大きな逆ウィシャート分布にすれば、CFAが棄却されるときにはBSEMも棄却される。
- Muthen & Asparouhov(2012)で提案した事前分布の感度分析をやれ。[事前分布として与える逆ウィシャート分布の自由度を動かしても結果が動かないかどうか、という話ね]
- BSEMの目的はCFAモデルの確認ではなく。仮定されたCFAモデルとデータのあいだのずれの評価だ。
事前分布として与える逆ウィシャート分布の自由度をだんだん下げていけば、BSEMモデルは次第に無制約な共分散行列の推定に近づいていき、PPPは高くなり、モデルは棄却されなくなるだろう。これは制約を緩めたからであって、BSEMの欠点じゃない。
彼らはガイドラインがないとかいっているから、ここでガイドラインを示そう。[自由度を変えて様子を見る手順の紹介。略]
残差共分散推定の活用事例紹介。[どれも概要だけ。コードを公開しているんだと思う]
- 特定の項目の残差相関のせいで適合度が下がっているCFAモデルについて、そのことをみつける。
- 真のモデルは2因子なのに1因子にしちゃったとき、そのことをみつける。
- 真のモデルは1因子なのに2因子にしちゃったとき、そのことをみつける。
- 因子の数を減らし、かわりに少数の残差相関をいれたほうがいいという示唆を得る。
- ごく小さな残差相関を無視したせいでCFAモデルが適合しないという例。
まとめると、
- もし残差相関が実質的にも統計的にも有意だったら、CFAに含めるべし。
- 実質的にも統計的にも有意でなかったら、ゼロに固定すべし。
- 実質的には有意だが統計的には有意でなかったら、たぶん識別がプアでSEがでかくなってんだから、BSEMで事前分布の自由度を上げて制約すべし。
- 統計的には有意だが実質的には有意でなかったら、悩むところだが、ゼロだとみなし、まあこのCFAモデルは近似だよねと割り切るというのがひとつの方法。
なお、残差相関パラメータの推定は因子モデルの推定と絡み合っている。たとえば、CFAで残差相関をひとつだけモデル化し損ねているとして、BSEMではそのせいで複数の残差相関が出現する(問題の項目を中心に、他の項目も巻き添えを食う)。一番でかい残差相関だけを解放して様子を見るのが吉。
DICの話。彼らはDICよりBICを使えと主張しているが、むしろDICのほうがよい。[ふうん。いま関心ないのでパス]
最後に、Stromeyerらの分析例を再分析。[パス。いやー性格悪いなあ]
いやー、勉強になりました、導師... (平伏)
私もですね、Stromeyerさんたちの批判を読んだとき、交差負荷に関する論点は言いがかりに近いなと思いましたです。測定モデル構築というより尺度開発の俺セオリーを語っているんじゃなかろうかと。いっぽう、残差共分散に関する批判には危うく説得されちゃうところでした。残差共分散行列をまるごと推定したらいったいなにをモデル化しているんだかわかんなくなると思ったからですが、そうじゃないんですね導師、あくまでゼロの代わりに分散の小さな事前分布を与えて様子をみようって話なんですね。誠に申し訳ございません、不信心をお許しください。ついていきます導師... お背中流します導師...
読了:Asparouhov, Muthen, Morin. (2015) おまえら全然わかってないな、ベイジアンSEMってのはこうやって使うんだよ
2015年8月 3日 (月)
Pfaff, B. (2008) VAR, SVAR, and SVEC Models: Implementation within R package vars. Journal of Statistical Software.
Rのvarsパッケージのvignette。ベクトル自己回帰モデル(VAR)、構造ベクトル自己回帰モデル(SVAR)、ベクトル誤差修正モデル(VECM)、構造ベクトル誤差修正モデル(SVEC)をご提供いたします。
パッケージを使う前の儀式ということで目を通した。いちおう読了にしておくけど、難しくて分からない箇所が多い。。。悲しい。。。
なお、ARIMA, VARIMAならbase, dse, fArmaパッケージで可能、ベイジアンVARならMSBVARパッケージで可能、とのこと。
2015年8月 1日 (土)
Stromeyer, W.R., Miller, J.W., Sriramachandramurthy, R., DeMartino, R. (2014) The prowess and pitfalls of bayesian structural equation modeling: Important considerations for management research. Journal of Management, 41(2), 491-520.
SEM-NETで紹介されていて、あわてて入手した。この雑誌のこの号は"Bayesian Probability and Statistics in Management Research"という特集号。この論文はかのMuthen導師が提唱するベイジアンSEM(BSEM)への批判論文である。仕事で頻繁に使っている手法であるから、他人事じゃないっす。
ここでいうベイジアンSEMとは、単にSEMをMCMCで推定することではなくて、Muthen & Asparouhov (2012, Psychological Methods)が提案した方法のこと。通常のCFAでは因子パターン行列にある程度ゼロを埋めるが、そのかわりに事前分布を与えまくり、常識的には到底識別できないモデルもMCMCで推定してしまう。EFAとCFAのあいだくらいの使い方ができる。
著者いわく...
BSEMのどこが優れているのか。Muthen & Asparouhov (2012), そしてその支持者である Fong & Ho (2013, Quality of Life Research), Golay et al. (2013, Psych.Assessment) の言い分はこうだ。CFAでは、小さな交差負荷 [cross-loading. 因子1を測定しているはずの項目が因子2に対して持っている因子負荷、という意味だろう]をゼロに固定する。これは不必要に強い仮定である。なぜなら、
- (主張1) 測定の道具というのはたいていそんなに正確ではないのであって、交差負荷をゼロに固定してよいという保証はない。
- (主張2) 理論との整合性という観点からいえば、交差負荷がゼロであろうが小さな値であろうがかわりはない。
- (主張3) 交差負荷をゼロに固定すると共通因子の共分散がインフレを起こす。
これらの議論はどれも論理的に欠陥がある。
(主張1)の問題点:
- 交差負荷は尺度開発が下手だったせいで生じているのかもしれない(ダブル・バーレル設問とか)。交差負荷をわざわざ推定することは、その下手さを誤魔化す(dust under the rug)結果になりかねない。[←この論点はよくわからないなあ。ある項目が因子2に対して負荷を持たないという誤った仮説を持っていたとして、BSEMなら交差負荷の推定値をみてその誤りに気づくことができる。通常のCFAならオムニバスな適合度なり個々の修正指標なりをみるところだが、果たしてその誤りに気づき得るか?]
- 測定の道具が不正確なせいで交差負荷が生まれているのならばその交差負荷は理論的重要性が低いわけで、なんだってそんなノイズをモデル化しないといけないのか。
- 測定が不正確かもしれないという理由で交差負荷の推定を許容すると、それはプアな測定を正当化するための脱出口になってしまいかねない。
(主張2)の問題点。そもそも因子分析ってのは、解釈容易な単純構造をみつけるためにやるものだ。だから、いくつかの項目が小さな負荷を持つような尺度を注意深くデザインする、なんてことは実際にはありそうにない。
[ううむ... ここまでのどの論点も、モデリングと尺度開発をごっちゃにした言いがかりのような気がするんですが... まあ先を読んでみよう]
(主張3)の問題点:
- たしかに、共通因子間の多重共線性は弁別的妥当性への脅威である。しかし、交差負荷のパラメータを推定しないと誤ったモデルになる、というのは本当か。それがただのノイズなら、たいした問題じゃないはずじゃん。むしろ弁別的妥当性が低いということが隠れてしまうことのほうが怖い。
- 共通因子に多重共線性が起きるのは、たいてい指標の信頼性が低いからだよね。指標をどうにかすうるのが先決じゃん。
- ほんとに因子間相関が高いんだったらbifactorモデルを組んだほうがよい。
話変わって...
- 情報的事前分布の正当化について。通常のCFAならパラメータは自由推定するか固定するかだが、ベイジアンSEMでは情報事前分布を与えるという選択肢も登場する。事前分布の特定はベイズ推論の肝なので、Gregory(2005 書籍), Kruschke et al.(2012 ORMの"The time has come"論文), Yuan & MacKinnon(2009 Psych.Methods), Zyphru & Oswald (この特集号) あたりをよく読め。
- 独自因子の共分散推定について。BSEMだと片っ端から推定できちゃうわけだが、そんなモデルは理論的な意味づけが難しいんじゃないかという批判もある(Rindskopf, 2012 Psych.Methods)。また、そんなモデルは絶対データに適合しちゃうわけで、モデルが根本的に間違っててもそれに気づけないわけだ(MacCallum et al., 2012 Psych.Methods)。
- 一般化可能性の喪失。BSEMはパラメータ数がすごく多いせいで標本抽出ノイズまで拾ってしまう。
とはいえ、BSEMが完全に有罪だというわけではなく、要は使い方に気をつけようねという話である。
実データ解析例。自己効力感についての尺度、5因子19項目のデータ。CFAとBSEMを比べる。ちゃんと読んでないのでメモは省略するけど、BSEMを何度か走らせてモデルを改善していくという話であった。
考察。BSEMの利用にあたっては以下の点に注意せよ。
- BSEMはプアな尺度開発の特効薬ではない。
- 単純構造を見失うな。まず、どの負荷が統計的に有意かを示せ[←この主張には批判がありそうだなあ...]。McDonaldに従って、標準化した負荷が0.30の奴に注目せよ。要するにだ、交差負荷に平均ゼロ, 分散小な事前分布を与えたBSEMをやってはい終わり、じゃなくて、なんとかして単純構造に持ちこめ。
- 多次元的指標(複数の因子に負荷を持つ指標)が本当に必要かどうか真剣に考えろ。次の順序で考えるとよい。
- (1)交差負荷は統計的に重要? Noなら推定するな。
- (2)交差負荷は実務的に重要? Noなら推定するな。
- (3)実務的に重要な交差負荷は理論的に正当化される? Noなら項目を削れ。[←ええええ] なお、理論的に正当化できる場合とはたぶん次の2つだ。(a)構成概念自体が多次元的で、下位次元もまた広範かつ相互に相関している場合。(b)指標が複雑な構造を持っている場合。たとえば、ある時間的ステージにおいて別の指標と共変し、意味内容においてはまた別の指標と共変する、というような場合は、意味内容の因子と時間の因子ができることになるわけで、多次元的指標を認めざるを得ない。
- (4)共通因子は独立したcluster basis(「俺にしか負荷を持っていない項目」)を持ってるか?Noなら項目を削れ。
- (5)項目はその概念をユニークな形で捉えているか? Noなら項目を削れ。
- (6)その項目の共通性は高いか? Noなら削れ。
- (7)"Do conditions make capitalization on chance more likely?" つまり、標本サイズが小さいとか、共通性が低い指標を使っているといった理由で交差負荷が生じているのではないか? Noなら交差負荷を認めるしかないし、Yesでも要検討。
- モデル構築にあたっては交差妥当化の原則を忘れるな。
- モデル選択にあたってははっきりした原則に従え。
- (1)PPCの信頼区間がゼロを含むか、という点に頼るのはやめろ。そんなの非現実的だ。
- (2)近似のdiscrepancyの指標として、PPC信頼区間とpSRMRを調べよ。
- (3)全体的なdiscrepancyの指標としてBICを調べよ(BIC_SSA, DICよりもおススメ)。
- (4)Burnham & Anderson (2004, Sociological Methods & Res.)に従ってモデルの事後確率を求めよ[←なんだそれは...]。
- reflectiveな多次元的構成概念のモデルでは、独自因子の共分散を推定するのはやめておけ。理由:(1)因子分析の目標は主要な共通因子の発見だから。(2)モデルの指定の誤りが吸収されちゃうから。(3)適合度が上がっちゃうから。
- BSEM支持者のいう正当化は信じるな。[←ははは。このくだり、いろいろ書いてあるけど疲れたので省略]
結論。要するにBSEMはデータの記述の方向に寄っている。この論文では検証可能なモデルの構築という観点からBSEMの柔軟性をどう生かすかという点について考えた。
... いやー。ざっと読んだだけだから理解できてないのかもしれないけど、全体を通して、尺度構成の話をしているのかデータ分析の話をしているのかが区別されていない感じで、読むのがちょっとつらかった。組織研究ってこういう雰囲気なのかしらん。
いっぽう、独自因子の共分散を片っ端から推定しちゃうのはやめとけ、というのはその通りだと思った。Muthenさんたちの論文にはそういうのが出てくるけど、あれは手法のデモンストレーションなんじゃないかと思う。
ベイジアンSEMについてはすでに2011年のPsychological Methodsでも議論の応酬があった模様。知らなかった。この論文にもMuthen一家からの反論論文が出ているらしい。
読了:Stromeyer et al. (2014) ベイジアンSEM、その剛勇とアキレス腱
2015年7月11日 (土)
Girolami, M., Kaban, A. (2003) On an equivalence between PLSI and LDA. SIGIR 2003.
pLSI (pLSA, 確率的潜在意味解析)が実はLDA(潜在ディリクレ配分)の特殊ケースだ、という2pの短い論文。ちょっと用事があって読んだ。数学が苦手な私にはハードルが高い... 高すぎる...。
情報検索(IR)のアプローチのひとつである言語モデリング(LM)では、クエリ$q$, 文書$d$について$P(q|d)$を求めて関連性ランキングに使おうとする。そのひとつがPLSIで、LSAよりはうまくいくんだけど、そのgenerative semanticsが完全にconsistentではないため[←よくわかんないけど、生成モデルじゃないってことかしらん]、新文書に確率を付与する際に問題が生じる。もうひとつはLDAで、こっちはconsistent generative semanticsを持っている。
ではPLSIとLDAはどういう関係にあるのか。
まずPLSIのほう。単語$w$と文書$d$の同時確率を、潜在変数$k$のもとで$w \bot d | k$と考える。つまり
$P(w, d) = \sum_k P(w | k) P(k | d)$
と分解できると考えるわけである。
いっぽうLDAのほうは...
コーパス$D$において$K$次元パラメータ$\alpha$が固定されていると考える[潜在変数の分布パラメータのことかな]。文書生成において、$K$次元変数$\theta$がディリクレ分布$D(\theta | \alpha)$から生成される。$\theta$の$k$番目の要素$\theta_k$の下での語$w$の確率$P(w | \theta_k)$を、$k$を通して線形結合し、多項分布$P(w | \theta)$が生成される。
パラメータ$P(w | \theta_k)$を$K$列の行列に並べて$P$とする。また、文書$d$における語$w$の頻度を$c_{d,w}$とする。
文書の条件付き確率は
$P(d | \alpha, P) = \int d \theta D(\theta|\alpha) \prod_{w} \left\{ \sum_k P(w, \theta_k) \theta_k \right\} ^{c_{d,w}}$
[落ち着け、そんなに難しいことは云ってないはずだ。ええと、あるトピック$k$の下である単語$w$が出現する確率は$P(w | \theta_k)$。全トピックを通じて単語$w$が出現する確率は$\sum_k P(w, \theta_k) \theta_k$。$c_{d,w}$回出現する確率はその$c_{d,w}$乗。すべての単語についてその観察出現回数が出現する確率は$\prod$の右側。これを$\alpha$の下ですべての$\theta$を通して積分しようというわけだ。大丈夫、大丈夫]
さて。LDAのモデルで、文書$d$の$\theta$をMAP推定すると考えてみよう。
$\theta_d^{MAP}=\mathop{\rm argmax}\limits_\theta \log \{ P(\theta | d, P, \alpha) \}$
すべての文書について$\theta_d^{MAP}$が推定できたら、そこから$P$と$\alpha$がML推定できる。
いま、ディリクレ分布が一様である、つまり$\alpha = 1$と仮定して、この2段階の推定を試してみよう。$\theta$の推定は、MAP推定量とML推定量が同一になり
$\theta_d^{MAP}$
$= \theta_d^{ML}$
$= \mathop{\rm argmax}\limits_\theta \log\{ P(\theta | d, P) \}$
$= \mathop{\rm argmax}\limits_\theta \sum_w c_{d,w} \left( \sum_k P(w|k) \theta_k \right)$
[落ち着け落ち着け。$\prod_{w} \left\{ \sum_k P(w, \theta_k) \theta_k \right\}^{c_{d,w}}$の対数を最大化する$\theta$ですと云っているだけだ]
ここから$P$をML推定すると、
$P^{ML}$
$= \mathop{\rm argmax}\limits_P \sum_d \log \{ P(d | \theta_d^{ML}, P) \}$
$= \mathop{\rm argmax}\limits_P \sum_d \sum_w c_{d,w} \log \left( P(w|k) \theta_{d,k}^{ML} \right)$
最後に出てくる$\theta_{d,k}^{ML}$について考えよう。$\theta$はディリクレ変数だから、すべての$k$について正だ、かつ合計は1だ。ってことは、$\theta_{d,k}^{ML}$って$P(k | d)$のML推定量じゃん。ってことは、これPLSIのML推定量じゃん。
後半はクエリで検索する場合についてのPLSIとLDAの比較。力尽きたのでメモは略。
いやー、よくわかんないけど、つまりLDAのディリクレ分布のパラメータを全部1に固定するとpLSAになる、ってことでしょうか。pLSAはLDAに比べて過学習が起きやすいと聞いたことがあるけど、それってトピックの事前分布を無情報にしたが故の悲劇ってことなのかなあ。だとすると、実際にトピックについてなんら事前知識がないとき、LDAを使うよりも(過学習を覚悟した上で)pLSAをつかうほうが望ましいような場面があるということだろうか。うううううむ。
読了:Girolami & Kaban (2003) pLSAはLDAの特殊ケースだ
2015年6月16日 (火)
Gabler, S., Haeder, S., Lahiri, P. (1999) A model based justification of Kish's formula for design effects for weighting and clustering. Survey Methodology, 25(1), 105-106.
なにかの事情で調査のデザインが複雑になり、集計する際に確率ウェイティングしなければならないとき、ウェイティングによって推定量の標準誤差が拡大する。その拡大の大きさを知る方法として、Kishのデザイン効果の公式が有名だけど、Kish先生はなにしろ謙虚な方なので「この扱いは不完全で不十分なものかもしれない」とおっしゃっている。Kishの公式が正しいことを示します。というたった2頁の論文。
多段抽出の状況で、それぞれの観察があるウェイティングのクラスに属している場合を考える。たとえば一次抽出単位が地域、二次抽出単位が世帯で、世帯の世帯人数の逆数をウェイトにする場合、各地域がクラスタで、たとえば「二人世帯」がクラスである。
クラスタを$c=1,\ldots,C$、そのクラスタのサイズを$b_c$、クラスタサイズの平均を$\bar{b}$、級内相関係数を$\rho$とする。クラスを $i=1,\ldots,I$, クラスタ$c$のクラス$i$ [原文では$I$だがミスだろう] に属する観察数を$m_{ic}$、クラスタを通した観察数の合計を$m_i$、クラスとクラスタを通した観察数の合計を$m$とする。Kishのデザイン効果は
${\rm deff}_{Kish} = m \frac{\sum_i^I w_i^2 m_i}{(\sum_i^I w_i m_i)^2} [1+(\bar{b}-1)\rho]$
である。
クラスタ$c$における抽出単位$j$の観察値を$y_{cj}$、ウェイトを$w_{cj}$とする。母平均のデザインベースの推定量は
$\bar{y}_w = \frac{\sum_c \sum_j w_{cj} y_{cj}}{\sum_c \sum_j w_{cj}}$
ですわね。
- $y$の分散と共分散は、クラスと抽出単位を問わず${\rm Var}(y_{cj}) = \sigma^2$, $c=c', j \neq j'$のときに${\rm Cov}(y_{cj}, y_{c'j'}) = \rho \sigma^2$, そうでないときには${\rm Cov}(y_{cj}, y_{c'j'}) =0$であるというモデルを仮定しよう。クラスタ抽出の場面での無理のない仮定である。これをモデル1と呼ぶ。
- もっと強気に、${\rm Var}(y_{cj}) = \sigma^2$、$(c, j) \neq (c', j')$なら常に${\rm Cov}(y_{cj}, y_{c'j'}) =0$、というモデルも仮定しよう。単純無作為抽出の場面でのモデルである。これをモデル2と呼ぶ。
デザイン効果を${\rm deff} = {\rm Var}_1 (\bar{y}_w) / {\rm Var}_2 (\bar{y})$と定義しよう。分散記号の添え字はモデルの番号である。
準備はできた。さて! このデザイン効果の定義をどんどん展開していく。分母はかんたん、$\sigma^2/m$だ。分子${\rm Var}_1 (\bar{y}_w)$をごりごり整理していくと、結局Kishの公式まであともう一歩、
${\rm deff} = m \frac{\sum_i w_i^2 m_i}{(\sum_i w_i m_i)^2} [1+(b^*-1)\rho]$
$b^* = \sum_c (\sum_i w_i m_{ic})^2 / \sum_i w_i^2 m_i$
というところまで持っていける。面倒ではあるが、まあ理解可能な変形であった。
ここでコーシー・シュワルツの不等式を持ちだす。ええと、長さが同じ2本のベクトルについて(二乗和の積)≧(積和の二乗)だ。$b^*$の分母のサメ―ションの内側$(\sum_i w_i m_{ic})^2$が積和の二乗になっていることにご注目。ちょっと工夫して書き換えてからコーシー・シュワルツの不等式を適用すると、$b^* \leq \bar{b}_w$と書ける。ここで$\bar{b}_w$とはクラスタサイズのウェイティングした平均である。クラスタサイズがみな同じなら$\bar{b}$である。つまり、Kishの式はクラスタサイズが等しい場合のdeffの上界を示しているのだ。
... あれれ? Kishのdeffは$w$と$y$が独立だという仮定の下での指標だと思ってたんだけど、その仮定がなくても、Kishのdeffが真のデザイン効果の上界だというところまではいえるってこと?
それともひょっとして、式の展開の途中にこの仮定がこっそり忍び込んでいるのかしらん。いやいや、専門家のなさることだから、そんなズルはないだろうけど。いずれ時間ができたら読み直そう。
読了:Gabler, Haeder, & Lahiri (1999) 「ウェイトバック集計」におけるKish先生のデザイン効果の公式が正しいことを示そう
2015年6月 8日 (月)
仕事の都合で、左側切断と右側打ち切りがある生存時間データについて考えていた。恥ずかしながら、両方ある奴を扱うのははじめてだ。わかりやすく書いてしまうといろいろ差し障りがあるので書けないけど、マーケティング・データ解析ではそんなに珍しい問題状況じゃないかもしれない、と反省。
意外なことに、この状況についてきちんと説明した参考書がなかなか見当たらない。社会科学の文脈で生存分析を扱った名著Singer & Willett(2003, 最近訳書が出た)には切断の話が出てこないように思う。Rのsurvivalパッケージの中の人Therneauさんによる教科書Therneau & Grambsch (2010) にもほとんど出てこない(これはラッキーともいえる。私にはこの本はかなりわかりにくい)。いまのところ見つけたのはクライン&メシュベルガー(原著2003)なんだけど、先生、文系の私にはこれでさえハードルが高いんです...
Cain, K.C., Harlow, S.D., Little, R.J., Nan, B., Yosef, M., Taffe, J.R., & Elliott, J.R. (2011) Bias Due to Left Truncation and Left Censoring in Longitudinal Studies of Developmental and Disease Processes. American Journal of Epidemiology, 173(9), 1078-1084.
というわけで、出張の新幹線でメモを取りながら読んだ。
ええと...
縦断研究で、関心がある最初のマイルストーン(発症とか)から最後のマイルストーン(死亡とか)までを観察しているのをインシデント・コホート・デザインという。これに対して、なんらかのマイルストーンを観察できなかった人を除外しちゃうのをプリバレント・コホート・デザインという。後者のデザインにはバイアス源が3つあることになる:
- 右側打ち切り。つまり、観察期間中に関心あるマイルストーンが生じなかった人がいること。
- 左側打ち切り。関心あるマイルストーンが観察期間前に生じたことはわかるけど、その時点がわからない人がいること。
- 左側切断。関心あるマイルストーンが観察期間前に生じた人が研究から除外されていること。
生存分析による右側打ち切りの対処は広く活用されているが、左側打ち切り・左側切断はそうでもない。
左側切断によるバイアスは、切断に関わっているマイルストーンがひとつならまだわかりやすい。ややこしいのは複数のマイルストーンと関連しているときだ。たとえば、女性の更年期についての3つのコホート研究を比較すると、後期更年期の開始時点の分布が全然違う。これは研究によっては参加時にもう後期更年期が始まっている人がいたり(左側打ち切り)、更年期が終わっちゃった人が研究に参加できなかったり(その後のマイルストーンによる左側切断)するからだ。[←ああ、そうか。この例ならすぐ気が付くだろうけど、こうやって対象者条件が複雑になればなるほど、思わぬ落とし穴も増えるなあ...]
終末イベント時の年齢をY、中間イベント時の年齢をXとする(たとえば、更年期の終了と後期更年期の開始)。D=Y-Xとする。Y, X, Dの分布を推定するというのが目標である。
研究参加時の年齢をA, 退出時の年齢をBとする[←ここではすべてをカレンダー時間ではなく年齢で定義している点に注意。いやあ、途中で混乱したぜ。Figure 1をぼーっと見ていると誤解するぞ]。可能な順序は6つある: AXYB、AXBY、ABXY、XABY、XAYB, AYAB。
ここでは次のデザインに焦点を当てる。
- デザインI. Xで左側切断されているデザイン。つまり、XABY, XAYB, XYABが除外されているデザイン。
- デザインII. Yで左側切断されているデザイン。つまり、XYABが除外されているデザイン。XABYとXAYBは含まれている、つまりXは左側切断はされてないけど左側打ち切りは生じているわけだ。
デザインIについて。[←混乱するので自分のために例を挙げておくと、分析対象期間前に退会した会員はデータから抜け落ちているけど、現会員についての入会日はわかる、会員の在籍期間(入会日を原点にとってX)の平均を推定せよ、といわれているような状況だ。ありそうありそう]
Xの左側切断を無視してYなりXなりDなりの分布を推定したとして、仮にAが固定されていたなら、その推定は X > Aという条件のもとでの条件付き分布となる。実際にはAはたいてい変動するけど。
このデザインでは、Aを組み込んでXの周辺分布を不偏推定するノンパラなproduct-limit推定量が存在する[←なんのことかと思ったが、カプラン・マイヤー推定量のことをproduct-limit推定量というらしい。へー]。Stata, SAS, Rに載っている。ただし、Aの最小値がXの最小値より早いことが必要。さらに、Aの最小値とXの最小値が近いと不安定になる(リスク集合が小さすぎるから)。こういうときは、Aの最小値の右側にA0という点を定義し、X < A0 の下での条件付き分布を推定するという手もある [←へぇー!]。もちろん周辺分布に対しては不偏でなくなる。
不幸にして、Xの多くがA (ないしA0)より左だったとしよう。Xの周辺分布を不偏推定するためには、もはやXのパラメトリックな分布を知るよりほかに手がない。それがわかれば、尤度を Pr(X < A)で割ればいい[←理解するまで1分ほど固まりました... いやぁ、専門家の奴らは頭がいい]。StataとRのサンプルコードを示すから読むがよい。
ところで、すべての潜在的参加者について、Aの前にXがあったかどうかだけはわかっているとしたらどうか。この場合は、Xで左側切断されているのではなく、Xで左側打ち切りしていることになる。これもコードを示すので読め。
さて、ここまでの話はXが正しくわかる場合の話だ。実際には往々にしてXはあいまいである。更年期の例だと、生理周期が60日を超えた初回を後期更年期の開始と定義するんだけど、ある参加者の生理周期が「はじめて」60日を超えたと参加者が報告したとして、実は観察期間の前にもそれは生じていたかもしれない。以下、参加者の報告を信じる方法をナイーブ法と呼ぶ。
デザインIIについて。おさらいすると、イベントYで切断、Xで打ち切りが生じてます。[←分析対象期間前に退会した会員はデータから抜け落ちており、入会日(カレンダー時間でX)については新規会員についてはわかるが既存会員についてはもうわからん、会員の在籍期間(退会日をカレンダー時間でYとしてY-X)の平均を推定せよ、でも新規会員のみの平均じゃだめよといわれているようなものか。悪夢ではあるがありそうな話でもある]
このときは、まずXとYの同時分布のモデルが必要になる。XとYが独立でないかぎり、Yの切断がXの分布の推定にバイアスをもたらすからだ。二変量正規分布を仮定したモデルのコード例を示すから読め。
なお Jiang et al.(2005 Biometrics)は、XとYの関係についてはパラメトリックに記述しそれぞれの周辺分布についてはノンパラに推定するというモデルを提案している。[←なんでそんな変なことを考えたのかと思ったら、Xは糖尿病性網膜症、Yは糖尿病による死亡だそうだ。なるほど、観察開始前の死亡者はデータから抜け落ちる、網膜症を発症したかどうかはわかるが時期は観察期間でない限りわからない、発症からの平均余命を推定したい、発症年齢の確率分布はわからないけど発症から死亡までの期間についてはなんらかの仮定ができそうだ]
シミュレーション。
TREMINというコホート研究をつかう。参加者は女性で、ずっと生理を記録している。40歳の時点で参加していた人の40歳以降の記録を分析対象とする。後期更年期の開始年齢をX, 閉経年齢をYとする。XとYの周辺分布は正規分布に従っているが、Dは歪んでいる(定義上 X > Yにはならないから当然だ)。でも二変量正規性を仮定して分析するぞ。詳細は付録をみよ。[←すんません、いまちょっとその時間がないっす]
TREMINには左側打ち切りも左側切断もない。このデータで推定したX, Y, Dの分布を、このデータから以下の手順で抜き出したデータで推定した結果と比較する。(1)ある期間(たとえば40歳~50歳)に参加した人のデータだけ切りだす。(2)ブートストラップ抽出。(3)個々の対象者に一様乱数Aを与え、Aから10年分を切り出す。(4)X < Aの対象者を除外(デザインI)。ないし、Y < Aの対象者を除外(デザインII)。
結果[きちんと読んでないけど...]。左側切断・左打ち切りをちゃんとモデル化しないとバイアスを受ける。正しく扱っても切断されている割合が50%あたりを超えると不安定になる。云々。
考察。関心あるイベントが切断を受けるイベントである場合は簡単で、RやSASやStataで扱える。しかし関心があるイベントと切断のあるイベントがずれている場合はややこしくて、なんらかのパラメトリックな仮定が必要になる。
実際の切断はそんなにシャープじゃなくて、むしろ確率的に生じることも多い。その調整方法は今後の課題。[←ヘックマン・モデルみたいな話か...]
研究デザインを変えて切断をやり過ごせることもある。たとえば自然流産までのイベント時間分析だったら、すべての潜在的参加者について最初の評価の際に過去の自然流産の有無を調べておくとよい。このクロスセクショナルなデータがあれば、縦断データのほうがY > Aな対象者だけであっても、左側切断が左側打ち切りに変わる。
正直なところ本文よりappendixのコード例のほうに惹かれて読んだんだけど、いやー、これはホントに勉強になった。ありがたや、ありがたや。
読了:Cain, et al. (2011) 左側打ち切りと左側切断が生存分析に与えるバイアス
2015年6月 3日 (水)
紺田広明・清水和秋 (2015) 動的因子分析による個人内変動のモデル化:心理時系列への同時分析の適用. 行動計量学, 42(1), 69-80。
届いたばかりの行動計量学の最新号に載っていたので、ごはん食べながら読んだ。ありがたや、ありがたや。動的因子分析についての日本語の資料はあまり多くないし、心理系の方の書いたものはなおさらだ。
動的因子分析の定式化はいろいろあって、大きく分けて、因子時系列と指標時系列の間にラグつきのパスを引くタイプの定式化と(心理だとMolenaarさんとか)、因子時系列に自己回帰とかをいれる定式化(NesselroadeさんたちいうところのDAFSモデル)がある。この論文、最初の概観ではMolenaarさんが出てきたので前者かと思ったのだが、本編はDAFSのほうであった。
ええと、提案モデルは以下のとおり。
観測変数ベクトルを$y_t$、因子ベクトルを$f_t$とする。測定モデルは素直に
$y_t = \mu+ \Lambda f_t + u_t $
と組む。切片も負荷も時間不変。
で、因子時系列をARMA(p, q)と捉える。
$f_t = \sum_i^p A_i f_{t-i} + z_t + \sum_j^q B_j z_{t-j}$
あああ、めんどくさい... なんでMAなんていれるの... と神を呪ったが(すいません、単に私の頭が悪いだけです)、ブロック・トープリッツ行列を起こすやり方でAmosでできる由。Mplusでもできますわね。
被験者6人に、98日から163日にわたり、毎日調査に回答してもらう。項目はBig Fiveの情動性と外向性(←考察を読むと、別に気分の代理変数として適当に使っているわけじゃなくて、パーソナリティが変動すると真面目に考えておられる模様)。各6項目、7件法評定。調査票の冊子をつくって郵送で回収。(←うわあ、スマホにアプリ入れて経験サンプリング、とかじゃないんだ。大変だな...)
予備分析としてキャッテルのP-テクニック因子分析をやっているけど、そこはあまり関心ないので、申し訳ないけどスキップ。
提案モデルをあてはめます。
ARMAの次数は決め打ちするんだけど、結局 AR(p) にした由 (←ありがとう先生! そうですよ、MAなんて入れたらわけわかんなくなりますよ...)。ブロック・トープリッツ行列を作ってAmosでモデルを組んだ。因子数は2、各因子につき3項目に絞った。因子パターンは時間不変かつ個人間不変に制約するが、因子の共分散と因子間のラグつきパスは自由推定。ああそうか、被験者を群と見立てて、因子共分散と因子の自己回帰構造を群間異質にするわけか。
結果は省略するけど、情動性は自己回帰が強い、おとついの影響を強く受ける人がいた(気の長い人なのかな)、外向性と情動性のラグつきパスが人によって違っていて、これは機制の個人差を捉えているのだろう... というような内容であった。
なぜ因子共分散や因子間ラグつきパスの被験者間等質性を調べないのかしらん? SEMの枠組みでやってんだから簡単に適合度を比較できるだろうに。きっとそういう問題意識の研究じゃなくて、はなっから個体記述志向の研究なんだろうな。
ともあれ、勉強になりましたです。こういうのが日本語で読めるのは嬉しいです。感謝、感謝。
いくつかメモ:
- ブロック・トープリッツ行列の起こし方について、第一著者がRでの方法を日本語で紹介しておられる由。関西大の心理の紀要。
- 調査票の回答スタイルの研究に、田崎・二ノ宮(2013, 社会心理学研究)というのがあるらしい。あっちゃー... 2013年の雑誌原稿のために自分なりに頑張って徹底的にレビューしたはずだったのに、全然!気が付かなかった。残念。その時点では未刊だったのかもしれないが、日本語の論文ってgoogleスカラーとかではなかなか引っかからないので、見落としていた可能性も否定できない。
読了:紺田・清水 (2015) 動的因子分析でパーソナリティの時間変動をモデル化する
2015年5月 7日 (木)
Gromping, U. (2009) Variable importance assessment in regression: Linear regression versus random forest. The American Statistician, 63(4), 308-318.
「重要性についての論文をしみじみ読む会」、本年度第3弾(おいおい... 予定ではとっくに第50弾のはずだったのに)。回帰における重要性と、ランダム・フォレスト(RF)における重要性を比較する。
1. イントロ。先行研究:
- 回帰において、説明変数に重要性を与えるというアイデア自体に対する批判: Ehrenberg(1990 AS) [←一橋大の暗い書庫でこのごく短いコメントに出会ったのが、重要性の問題に関心を持ったきっかけであった...思えば長い時間が経ってしまった]; Christensen(1992 AS); Stufken(1992 AS)
- Gromping(2007 AS): 線形回帰における分散分解ベースの重要性についてレビュー
- Chevan & Sutherland (1991 AS): 階層パーティショニング
- Theil & Chung (1988 AS): 情報量ベースのアプローチ
さて、ご存じのように最近ではRFが広く使われている。RFベースの重要性については:
- van der Laan (2006 Int.J.Biostat.): 因果的効果に基づく重要性概念[←ぎゃー、これ読まなきゃ]
- Ishwaran(2007 ElectronicJ.Stat.): MSEの縮減を、BreimanらのCARTのRFにおいて理論的に扱う。ちょっと修正すると閉形式で解ける、云々[←えええ?]
- Strobl et al.(2007 BMC Bioinfo.): 説明変数が無相関のとき、RF-CARTの変数重要性が不偏でないことを示し、代替案を提出
- Strobl et al.(2008 BMC Bioinfo.): 説明変数が無相関でないとき、上記の代替案がうまくいかないことを示し、「条件つき重要性」を提案[←たぶんこれのことだろう]
なお、RFは分類や生存モデルにも使えるけど、以下では回帰の文脈に絞る。またデータサイズが変数の数よりも十分大きい状況に絞る(そうしないと回帰と比較できないから)。
2.データセット説明。swiss fertility データ。Rについているswissというデータセットの元になったデータだそうである。
3.線形回帰と重要性。説明変数が無相関でない限り、R二乗を説明変数に分配しようとすると、説明変数の投入の順序によって変わってしまう。そこで...
- Lindeman, Meranda, & Gold (1980 書籍), Kruskal(1987 AS): 変数の数を$p$として、$p!$通りの順序すべてについてR二乗を分配し平均。以下LMGと呼ぶ。Budescuのdominance analysisも、Lipovetsky & Conklin のシャープリー値も、みんなこれと同じだ。[←そ、そうなんですか? ちょっとは違うじゃない? うーん、でも他ならぬGrompingさんの仰ることだからなあ...]
- Feldman(2005)のPMVD。[←数年前にFeldmanさんにお問い合わせしたことがあるのだが、査読論文にはしてない由であった]
というわけで、以下ではLMGとPMVDを比較する。
4.回帰のためのRF。まず回帰木について。ここでは二分木についてのみ扱う。アルゴリズムとして、
- BreimanらのCART。ノード中心からの偏差平方和が最小化されるように大きく育ててから枝を刈る。変数の型とかカテゴリ数とかでバイアスがかかっちゃう。
- Hothorn, Hornik, & Zeileis (2006 J.Comp.GraphicalStat.) のmultiplicity-adjusted conditional tests。各ノードについてまず育てていいかどうかの大域的検定をやって、それにパスしたらはじめて変数選択する。
でもって、RFについて。
- 一番有名なのはBreimanによるCARTのRF化(以下RF-CART)。RだとrandomForestパッケージ。
- Hothornらのconditional treeのRF化もある(Strobl et al., 2007 BMC Bioinfo., 以下RF-CI)。Rだとpartyパッケージのcforest関数。
ふつうはRF-CIのほうが個々の木が小さくなるんだけど、まあパラメータ次第である。
さて、重要性をどうやって測るか。まず、分類木ならばジニ係数、回帰木ならこれに類したaverge impurity reductionという手がある[←式が書いてないよ... どこかで読んだような気もするけど]。でもこれはバイアスがかかる。で、ある変数をpermuteしたときのMSE減少を使おうという路線が出てくる。これはもともとBreimanが出したアイデアで[←へー]、彼は結局使わなかったけど、現在ではこれが主流になっている。えーと、それぞれの木$t$について下式のOOB MSEを求め
$OOBMSE_t = \frac{1}{n_{OOB, t}} \sum_{i \in OOB_t}^n (y_i - \hat{y}_{i,t})^2$
$X_j$をpermuteしたときの上式の値との差を求めて、木を通じて平均する。単に$X_j$を用いたときのMSEと用いなかった時のMSEの差ではないことに注意。また、R二乗を分解してるわけじゃない点に注意。
5.swiss fertilityデータにすべての指標を適応。説明変数は5個。線形モデル(二次効果をふたついれる)のPMVDとLMG, {RF-CART, RF-CI}x{mtryを1,2}の4通り、計7通りについて重要性を求めた。mtryってのは枝分割のためにランダムに選ぶ候補変数の数のことね。
結果。LMGとPMVDはだいたい同じ。一か所、すごく違うところがあるんだけど(他と相関が高い変数の重要性)、そこのPMVDの信頼区間はやたらに広い。4種類のRFはLMG-PMVDともお互いとも違っている。RF-CIはmtryに強く影響される[←おー、なるほどー]。
... なんだかんだいっても実データでは何が起きてるかわからんわけで、本命は次節である。
6. シミュレーション。説明変数は4つ。期待値0, 分散1の多変量正規分布に従う。で、2変数$j, k$間の相関を$\rho^{|j-k|}$とし、$\rho$を-0.9から+0.9まで0.1刻みで動かす[←たとえば$\rho=-0.9$ならば、$X_1$と$X_2$の相関は$-0.90$, $X_1$と$X_3$の相関は$+0.81$, $X_1$と$X_4$の相関は$-0.73$ということであろうか。不思議な相関行列だ]。で、目的変数はこいつらの線形和に正規誤差が乗ったものとし、真の係数ベクトルを7つ用意する。たとえば$(4,1,1,0.3)'$とか。$R^2=0.5$となるように正規誤差を乗せる。こうしてサイズ1000のデータをつくり、重要性の算出を100回試行し平均する。手法はさきほどと同じく7通り。
結果。まずLMGは、真の係数が大きい説明変数の重要性が、相関の増大とともに低下する。いっぽうPMVDと相関との関係は複雑で、あんまり変動しないこともあればすごく変動することもある。
RF-CARTはLMGに近い。RF-CIはmtry=1のときはLMGにやや近いが、mtry=2になるとPMVDに接近する。とかなんとか。
RFのmtry依存性について。Breimanはmtryを$\sqrt{p}$にすることを薦めている。しかし回帰木ではもうちょい多めに$p/3$としたほうがよいとも言われておるし、$p$にしちゃえという説もある。本研究によれば、OOB-MSEを最小化するmtryは、モデルと相関構造によって変わるようだ。
重要性の指標もmtry次第で変わる。その事情は部分的には説明できるけど[略]、全容はいまだ不明。RF-CARTの結果がmtryによってあんまり変わらなかったのは木の数が多かったからであろう。云々。まあとにかく、RFベース重要性の挙動にはまだいろいろわからんことが多い。
7.変数重要性という概念について。そもそも変数重要性という概念自体がきちんと定義されていない。これまでの提案はアドホックなもので、重要性指標が目指すべきだとされる特性もいろいろである。たとえば、R二乗を非負に分配すべし、とか。昔は単相関の二乗とか(marginal路線)、標準化回帰係数の二乗とか(conditional路線)が用いられていた。Johnson&Lebreton(2004 ORM)がおおまかに定義した変数重要性概念に沿っているのがLMGとPMVD。LMGはのちにシャープリー値として正当化された。PMVDは開発者Feldmanさんいうところのexclusion特性を持っていて(真の係数が0だったら重要性も0だという特性)、conditional寄りである。
marginal路線とconditional路線はどっちが良いとも決めがたい。たとえば$X_2$→$X_1$→$Y$という因果関係がある場合も、$X_2$←$X_1$→$Y$という因果関係がある場合も、線形モデルで$X_2$の係数は0, つまりconditionalには重要性ゼロである。予測的観点からはそうだろう。ところが説明や因果の観点からは、前者の因果関係における$X_2$の重要性がゼロだということに同意できない人も多かろう。
RFの変数重要性は変数選択に用いられることが多い。変数選択も、説明・因果的観点からなされる場合と予測的観点からなされる場合とがある。説明・因果的観点に立つ人が「$X_2$→$X_1$→$Y$のときに$X_2$を選択したい」というならば、どのみち矢印の向きはデータからはわかんないんだから、$X_2$←$X_1$→$Y$のときに$X_2$を選んじゃうことも覚悟しないといけない。
説明・因果的観点からの変数選択という課題のために生まれたのがelastic netである。強く相関している変数のグループがあったとき、lassoではそのなかの代表選手だけが選ばれるが、elastic netではグループ全体が選ばれる。
話を戻すと、conditional極(LMGはこちら)とmarginal極があるとして、RFはmtryが小さいときにはconditional極の近く、mtryが大きくなるとちょっとmarginal側に動くわけである。Strobl et al.(2008)はconditional極に立って考えているので、RF-CIベースのパーミュテーション重要性を推す。でもmtryがpより小さい限り、重要性は完全にはconditionalにはなれないんですよ? [←なるほどねえ...]
RFとLMG, PMVDはいずれも、Achen(1982)いうところのdisperson重要性であって、反応のdispersionに基いている。説明変数によって引き起こされた分散は係数と説明変数間相関の両方に依存するから、dispersionに基づく重要性指標は説明変数間の相関に依存してしまう。つまり、相関している説明変数の重要性は高くなることを覚悟しないといけない。もしそれが嫌なら、相関の影響を取り除くという長い旅路に出る羽目になる。PMVDのようにデータに依存する込み入ったウェイトを導入するとか、Strobl et al.(2008)のようにconditional permutation という枠組みを導入するとか。あるいは全然異なる基盤を見つけるようとすることになるかもしれない。たとえば線型モデルの標準化係数とか。残念ながら、変数の数がデータサイズより多いときにはそういうのを見つけるのは無理だけどね。云々。
... 最後の考察が大変勉強になった。重要性の話を読んでいて一番イライラするのは、なぜ説明係数の分配というような特徴にこだわり、「こんな因果構造があったらこの重要性指標はこうなる」という話にならないのだろう、という点であった。なぜDAGから出発しないのか、と。その点、この著者の書いていることはいちいち腑に落ちる。
テクニカルな教訓としては、RFの重要性指標がなかなか安定しないという点。木の数が十分かどうか、気をつけないといけない。cforestの重要性がmtryにすごく影響されちゃうという点も全然気がつかなかった。
読了:Gromping (2009) 変数の重要性の評価: 線形回帰 vs. ランダム・フォレスト
2015年4月28日 (火)
Kuhn, M. (2008) Building predictive models in R using the caret package. Journal of Statistical Software, 28(5).
Rのcaretパッケージについての開発者による紹介。頭が古いのかもしれないけど、実戦投入するパッケージについては、なにかこういうオフィシャルな文書に目を通しておかないと落ち着かないのである。
2008年発表の論文だから現在とは機能がずいぶんちがうかもしれないけど、一時的に2008年に戻ったつもりで... 調べてみると、福田さんが「あなたとは違うんです」と言い残して辞めた年、オバマさんが大統領になった年、「蟹工船」の文庫本が売れた年である。なんだ、つい最近じゃんか。ついでにいえば、70年代末のTVアニメ「未来少年コナン」で、超磁力兵器による地殻変動で世界中が海に沈んだ年でもある由。私は数年前にはじめて観たんですが、あれ、ホントに面白いですね。モンスリーさんが実に素敵である。
ええと、パッケージ名はclassification and regression trainingの頭文字。紹介されている関数は次のとおり。
- データ準備:
- createDataPartition(): データを分割する
- nearZweroVar(): 分散が0に近い変数をみつける
- findCorrelation(): 相関している変数をみつける
- preProcess(): 変数の変換
- モデル構築:
- train(): caratパッケージの主役。この論文の段階では、method引数で38個の方法を選べることになっている(現時点ではたしか90個以上になっているんじゃないかな)。
- 予測:
- predict.train(): train()の返し値やそのリストに対するpredict()
- extractPrediction(), extractProb(): train()の返し値のリストから予測や予測確率を抽出する
- 分類成績
- sensitivity(), specificity(), posPredValue(), negPredValue()
- confusionMatrix(): sensitivityやspecificityなどを含め、いろいろ要約してくれる
- roc(), aucRoc() [...という関数があることになっているが、現在はない模様]
- その他のモデリング用関数
- kkn3(): k近隣法
- bagEarth(): 多変量適応型回帰スプライン(MARS)のバギング版
- bagFDA(): 柔軟判別分析のバギング版
- plsda(): PLS回帰で判別分析
- 予測変数の重要性
- varImp(): 重要性を吐く。なにをもって重要性とするかはモデルによる。たとえば線形モデルなら t 値の絶対値。[←最新版できちんと調べておこう...]
webをみると、最新版の機能はこれどころでは済まない模様。ありがたいけど、参るね、どうも...
読了:Kuhn (2008) R の caret パッケージ
2015年4月27日 (月)
Kohavi, R. (1995) A study of cross-validation and bootstrap for accuracy estimation and model selection. IJCAI'95 Proceedings of the 14th international joint conference on Artificial intelligence. 1137-1143.
勤務先の仕事で予測モデルの正確性の評価についてお話していて、自分でもちょっぴり混乱するというか、一瞬言葉に詰まる場面があった。ちゃんと勉強しとかなきゃな、と思って目を通した。学会のproceedingsなんだけど、google scholar上の引用回数が4000を超えている。
原文は工学者っぽくきちんと書いてあるんだけど、簡略にメモ。
データから分類器を構築いたしました。その分類器の正確性 accuracy を評価したいです。どうやって評価するか。
えーと、ある事例$v_i$が持つラベルを$y_i$とする。データセット$D$(サイズ$n$)から構築した分類器が事例$v$に与えたラベルを $I(D, v)$と表す。関数$\delta(i,j)$を、値$i$と$j$が一致しているときに1, そうでないときに0である関数とする。話を簡単にするために、コストは正分類で0, 誤分類で1とする。
ひとつめ、ホールドアウト法。test sample estimationともいう。
データを相互排他な2つのサブセットに分ける。ひとつは訓練セットで、サイズは2/3とすることが多い。残りはテストセット(ホールドアウトセットともいう)。で、訓練セット$D_t$から分類器を構築し、ホールドアウトセット$D_h$(サイズ$h$)における正分類率を正確性の推定量とする。ふむふむ。せっかくなので式もメモしておくと
$acc_h = (1/h) \sum_{\langle v_i, y_i \rangle \in D_h} \delta(I(D_t, v_i), y_i)$
分類器構築は事例が多いほうが正確だとみなすなら、これはテストセットが大きいほど悲観的バイアスがかかる推定量である。しかしテストセットを小さくすると信頼区間が広くなる。要するに、ホールドアウト法はあんまし上手いやりかたじゃない。
なお、ホールドアウト法を $k$ 回繰り返して$acc_h$を平均するという手もある(ランダム・サブサンプリング)。しかし、有限なデータセットを相互排反に分割している限り、ある訓練セットでたまたま多かったラベルはそのときのテストセットでは少ないわけで、$acc_h$は過小評価されてしまう[←あっ、そうか...!]。
ふたつめ、cross-validation。[交差検証、交差確認、交差妥当化、いろんな訳語がありそうだ。どれが一番メジャーなのかなあ。以下ではCVと略記する]
まずは k-fold CV。$D$を$k$個のだいたい同じサイズの相互排他なサブセットに分割する。で、1個目, 2個目, ... を取り除きながら、残りのすべてを用いて分類器を構築し、取り除いたサブセットを分類する。で、$k$回を通じた正分類数をデータサイズで割る。ふむふむ。
えーと、事例 $\langle v_i, y_i \rangle$が属しているサブセット以外のすべてからなるデータセットを$D \backslash D_{(i)}$と書くことにして、
$acc_{CV} = (1/n) \sum_{\langle v_i, y_i \rangle \in D} \delta(I(D \backslash D_{(i)}, v_i), y_i)$
CVには他にもいろんなバージョンがある。分割の仕方を変えながら繰り返すとか、分割するときに層別するとか。各事例についてそれだけを取り出すという分割を行うのがご存知 leave-one-outである [原文にはleave-one-oneと書いてあるけど... なに、その犬みたいな名前...]。
データを一部取り除くことでデータは揺れるわけだけど、この揺れの下で分類器が安定しているのであれば、CV推定値は不偏だし、その分散は$acc_{CV} \times (1-acc_{CV})/n$となる。実際には、複雑な分類器生成手法は学習能力の上限に達しておらず、揺れに弱いかもしれない。foldの数が多いほうが安定性は高いと期待できる。さらにいえば、foldの数を動かしても分類器が安定しているならば、推定値の分散も変わらないといえる。
CVには次のような問題点がある。たとえばFisherのアヤメデータは3クラス, 各50ケース。当たるも八卦的な分類器構築メカニズムがあるとして、いま分類器の正確性をleave-one-outで推定すると、leaveされた一事例は常に少数派となり、どの分類器でも常にleaveされた事例以外の2クラスを予測値とする分類器となり、よってleaveされた事例は常に誤分類され、正確性は0, その分散は0となる。しかし分類器が安定しているわけではない。[←なるほどね...]
みっつめ、ブートストラップ。データから同サイズのデータを復元抽出する。
ある個体がある抽出で選ばれない確率は$(1-1/n)^n$, これは約0.368である。つまり選ばれる個体数の期待値は0.632nとなる。抽出された奴らを訓練セット、されなかった奴らをテストセットとする。で、訓練セットでの正確性を$acc_s$, テストセットでの正確性を$\epsilon 0_i$として
$acc_{boot} = (1/b) \sum_{i=1}^b (0.632 \epsilon 0_i + 0.368 acc_s)$
[あれれ? ここ、誤解しているかも... きちんと勉強しないと...]
ブートストラップにも問題点がある。分類器が完全なmemorizerで(枝刈りなしの決定木みたいなの)、データセットが完全にランダムで、2クラスだとしよう。どのブートストラップ標本でも、$acc_s$は1, $\epsilon 0$は0.5だ。ってことは$acc_{boot}$は0.68になる。ほんとは0.5なのに。このように、memorizer搭載の分類器生成メカニズムでは正確さの推定にバイアスが生じる。
後半は実験。データセットは7つ。決定木(C4.5)とナイーブ・ベイズ分類器を使う。hold-outでの正分類率を正として比較する。
結果。まずバイアスをみると、k-fold CVによる正確性推定値は k が小さいときに悲観的。ブートストラップはデータセットによって楽観的になることがある。
分散もあわせてみると、結局 kを10くらいにした k-hold CVがオススメである由。また分割の際に層別すると成績が良く成る由。へぇー。
実験結果も面白いけど、それより前半の概観が頭の整理になった。そうか、分類器生成メカニズム(この論文でいう Inducer)の性能と分類器の性能をきちんとわけて考えないと混乱するわけだ。勉強になりました。
読了:Kohavi(1995) 分類器の正確性の指標を比較する (ホールドアウト, CV, ブートストラップ)
2015年4月21日 (火)
Carbone, R., & Gorr, W.L. (1985) Accuracy of judgmental forecasting of time series. Decision Science, 16, 153-160.
「必ず読むこと」というタグがついているので、仕方なく読んだけど、なぜこれを読まなきゃと思ったんだろう... 全く思い出せない...
時系列の予測の際に、過去の時系列のチャートを見ながら主観で(フリーハンドで)予測するのと、まじめに統計的手法を使って予測するのとどっちがいいか、という実験。なんというか、風情があるというか、風情がありすぎるというか、風情しかないというか...
10本の時系列を用意。いずれも60時点以上あるそうだ。季節効果はあったりなかったりする。で、それぞれの右端をちょっと削る。
実験手続きは省略するが(「うちの大学のカリキュラムはこうなっているので」という話から始まる。超面倒)、要するに、学生の班に10本の時系列を渡し、削った右端を予測させるのである。手法は、Box-Jenkins法, Holt-Winters法, Carbone-Longini AEP filtering (なんだそれは)、そして主観。
結果。やっぱり統計的手法を使ったほうがよかったです。ただし統計的予測を主観でちょっと直すと良くなった場合もありました。
...そんなの、時系列次第なんじゃないの?!
まあいいや! 次に行きましょう次に!
読了: Carbone & Gorr (1985) 時系列予測ってフリーハンドでいいんじゃね?→よくなかった
2015年4月20日 (月)
たとえば調査票に5件法尺度項目が並んでいるとき、ばんばん両端にマルをつける人もいれば、真ん中のあたりにしかマルをつけない人もいる。これにはどうやら文化差もあるようで、「中国の人って両端につけやすいね」なんていう話も時々耳にする。
このような、項目内容とは無関係に生じる回答の傾向のことを、英語ではresponse styleというのだけれど、日本語ではなんというのだろうか。探しているのだけれど、なかなか出てこない。しばらく前にこの話題について紹介する記事を書いた際には「回答スタイル」と訳したのだが、「回答スタイル」で検索すると私の記事が上位に挙がってしまう。response styleに関して発見できた数少ない日本語文献のひとつは山岸・小杉・山岸 (1996, 社会心理学研究)で、この著者らは「応答傾向」と呼んでいるのだが、これもまた一般的な呼び方とはいいにくそうだ。ううむ...
Johnson, T.R. (2003) On the use of heterogeneous thresholds ordinal regression models to account for individual differences in response style. Psychometrika, 68(4), 563-583.
調査データにおける回答スタイルを統計的にモデル化するという論文。
回答スタイルの問題は個人的な関心事のひとつとしてフォローしているので、仕方なく目を通す次第だが、Psychometrikaの20頁の論文を読もうだなんて、ちょっとマゾヒスティックだなあ...
著者いわく、回答スタイル研究でもっとも注目されているのは順序カテゴリカル項目におけるextreme response style (k件法項目で両端につけやすい傾向, ERS) なので、それについてモデル化します、とのこと。ま、焦点をなにかに絞らないといけないのはわかるし、研究が多いのはERSとARS(acquiescence response style)だと思うので、この選択は自然であるように思う。それに、東アジアに住む身の上として最も気になるのはmidpoint responding (MPR) なので、その逆に相当する ERSのモデル化はありがたい。
なお、これまで提案されてきたERS対処策として以下がある由。
- カテゴリを潰す (Backman & O'Malley, 1984 POQ)
- カテゴリを増やす (Clarke, 2000 J.Soc.Behav.Personality; Hui & Triandis, 1989 J.CrossCulturalPsych. )
- モデル化する (Greenleaf, 1992JMR; Rossi, Gulula, & Allenby, 2001 JASA)
提案モデルは以下の通り。
対象者を$i=1,\ldots,n$とする。項目を$j = 1,\ldots,m_i$とする。各項目は$K$カテゴリの順序カテゴリカル項目である。回答を表す確率変数を$Y_{ij}=1,\ldots,K$、その実現値を$y_{ij}$とする。
回答の背後に連続潜在変数$Y^*_{ij}$を想定する。まずは固定的な閾値$\gamma = (\gamma_1, \ldots, \gamma_{K-1})'$でマッピングしよう。$\gamma_{k-1} < Y^*_{ij} < \gamma_{k}$のとき、そのときに限り$Y_{ij}=k$となると考える。
$Y^*_{ij}$が、全体レベルのパラメータ・ベクトル$\theta$と個人レベルのパラメータ・ベクトル$\zeta_i$の下で互いに独立であると仮定する。$\zeta_i$は$\theta$に依存するものとする。パラメータの事前分布を$h(\theta, \gamma)$, $\zeta_i$の密度関数を$g(\zeta_i | \theta)$として、確率モデルは
$h(\theta, \gamma) \prod_{i=1}^n g(\zeta_i | \theta) \prod_{j=1}^{m_i} P(\gamma_{y_{ij}-1} < Y^*_{ij} < \gamma_{y_ij} | \theta, \zeta_i, \gamma)$
ここまでは、まあ、わかりますわね。階層順序回帰モデルだ。
さて。回答スタイルの個人差を閾値の異質性として定式化する。
対象者$i$の閾値を$\gamma_i = (\gamma_{i1}, \ldots, \gamma_{i,K-1})'$とする。で、$\gamma_i$も$\theta$に依存するものとする。さあ、俄然ややこしくなってまいります。
まず、閾値はシンメトリカルだと想定する。つまり、たとえば「反対」「やや反対」「どちらでもない」「やや賛成」「賛成」の5件法だとして、「やや」が表す強さは反対でも賛成でも同じだと考えるわけである。順序カテゴリカル項目のすべてにおいて現実的な想定とはいえないが、中央が中立である両極尺度項目なら、まあ現実的な制約であろう。このように制約する理由はふたつ。(1)倹約性。(2)$Y_{ij}$のロケーション・パラメータへの共変量の効果を回答スタイルの個人差から分離できる。
以下、原文では一般化して書いてあるが、私が話についていけなくなってしまうので、以下では$K=5$に決め打ちして書き直します。えーと、カテゴリ$1,2,3,4$の右閾値が$\gamma_{i1}, \gamma_{i2}, \gamma_{i3}, \gamma_{i4}$である。ここで$\gamma_{i4}=-\gamma_{i1}>\gamma_{i3}=-\gamma_{i2}>0$と制約する。
これを閾値間の幅でシンプルに書き直す。このくだり、たぶん原文に誤植があると思うので、勝手に書き直しちゃうぞ。著者は
$\gamma_{i1} = - \delta_{i1} - \delta_{i2}$
$\gamma_{i2} = - \delta_{i1}$
$\gamma_{i3} = \delta_{i1}$
$\gamma_{i4} = \delta_{i1} + \delta_{i2}$
といいたいのだと思う。以下では$\delta_i = (\delta_{i1}, \delta_{i2})'$とする。
次に、個人レベルパラメータ$\zeta_i, \delta_i$のモデル化。
$(\zeta'_i, ln(\delta'_i))'$が多変量正規分布に iid に従うと考える[なぜ閾値の幅だけ対数に変換するのか、特に説明はない]。行列になっちゃうので式は省略するが、$\zeta_i$は平均$0$, 共分散行列$\Sigma_{11}$, $ln(\delta_i)$は平均ベクトル$\mu$, 共分散行列$\Sigma_{22}$, $ln(\delta_i)$を行、$\zeta_i$を列にとった共分散行列を$\Sigma_{21}$とする。こいつらをみんな$\theta$に叩き込むわけです。
というわけで、確率モデルは、
$h(\theta) \prod_{i=1}^n g(\zeta_i, \delta_i| \theta) \prod_{j=1}^{m_i} P(\gamma_{y_{ij}-1} < Y^*_{ij} < \gamma_{y_{ij}} | \theta, \zeta_i, \gamma)$
やれやれ、お疲れさまでした。
このモデルをどうやって推定するかという話が延々続くんだけど (もちろんMCMC)、そこはいまあまり関心がないので省略。
対抗モデルとしては:
- 回答スタイルがないモデル、すなわち$\Sigma_{22}=0$。
- Rossi et al.(2001)のモデル。閾値の比例性を仮定する(順序ロジットモデルとかでいえば、スケールパラメータだけが個人パラメータになる)。本モデルの特殊ケースとして捉えられる由
- 閾値に無情報事前分布を与えるモデル(でもシンメトリ性は想定する)。Johnson(1996 JASA, 1997 Stat.Sci.), Lenk, Wedel, & Bockenholt (2002 unpub.)というのが挙げられている。
- 本モデルと同じように$\delta_i$の周辺分布を対数正規分布とするんだけど、シンメトリ性を仮定しないモデル。Tutz & Hennevogl (1996, Comp.Stat.DataAnalysis) というのが挙げられている。
例を3つ。
例1, 簡単なシミュレーション。
データ生成モデルは、
$Y^*_{ij} = \beta_0 + \zeta_i + \beta_1 x_{ij} + \epsilon_{ij}$
ひとり9項目、$x_i = (-2, -1.5, -1, -0.5, 0, 0.5, 1, 1.5, 2)'$, $\beta_0=0$, $\beta_1=1$, $\zeta_i$と$\epsilon_{ij}$はiidに$N(0,1)$に従う。これを7件法に変換し、閾値を変動させる。閾値の分散を$\Sigma_{22}=cI$とし、$c$を$0$(つまり変動無し)、$\sqrt{0.5}, 1$の3通りを試す。$n=1000$。
分析側のモデルは、閾値に異質性を考える奴と考えない奴でそれぞれ推定。$\beta_0$, $\beta_1$, ランダム効果の分散$\sigma_{11}$がどうなるかを調べる。
結果。データ生成側で閾値を変動させたとき、分析モデルで閾値の異質性を考えておかないと、$\beta_1, \sigma_{11}$が過小評価される。(ここ、原文では$\beta_0$が過小評価されると書いてあるけど、表をみるとそうでもない。誤植ではなかろうか。)
例2はもっと複雑なシミュレーション、例3は実データの因子分析における適用。いずれも、やっぱ閾値の異質性を考えなきゃ駄目だよ、という主旨。疲れちゃったので読み飛ばした。
... ちゃんと読んでないけど、とりあえず読了にしておこう。このモデルって、Mplusで推定できないかなあ...
読了:Johnson (2003) 回答スタイルを階層回帰でモデル化
2015年4月 1日 (水)
消費者調査関連の仕事をしていると、調査データの確率ウェイティング (いわゆる「ウェイトバック集計」)に関する話題が出ることがある。なぜか周期的に巡ってくるような気がする。ものすごく大事なわけではないけどそこそこ大事な話題であり、一般的な話題の割にはきちんとした知識を持つ人が少なく、お金にならない割にはものすごく面倒くさい話題である。
別に専門家になるつもりはないのだけれど(つもりがあっても能力的に無理だ)、それなりの理論武装はしておきたいので、なにか機会があるたびに、適当な関連資料に目を通すことにしている。まとめて読むのはつらい話題だし。
Kalton, G., & Flores-Cervantes, I. (2003) Weighting Methods. Journal of Official Statistics, 19(2), 81-97.
というわけで、誰かがお勧めしていた、ウェイト値の作り方についてのレビュー論文。
ウェイティングには一般に次の3つのステージがある。
- 抽出フレームに照らしたウェイト値の決定。これは単純で、抽出確率の逆数に比例した値であればなんでもよい。この論文のテーマではない。
- 無回答の調整。なんらかの補助情報をつかって、回答者・無回答者を通じて似た人をまとめ、無回答者の分だけ回答者のウェイトを増やす。
- 事後層別。たとえば、性別x年代の既知の分布に調査結果をあわせる、というような。
ステージ2, 3の主目的は非回答・非カヴァレッジによるバイアスの除去である。しかしウェイトの分散が増し推定値の精度が下がってしまう。無回答の場合には、個体$i$のウェイト値を$w_i$として$F=1 + CV(w_i)$を評価することが多い(以下、分散インフレーション・ファクターと呼ぶ)。
さて、無回答の調整や事後層別のためのウェイト値をどうやって作るか。
例として、補助変数A(4水準)とB(3水準)があって、標本の同時分布(AxBのクロス表のことね)と母集団の同時分布がわかっているとしよう。さあいくぞ!歯を食いしばれ!!
- セル・ウェイティング。3x4=12個のセルそれぞれについて、標本と母集団の比を求める。たとえばあるセルのサイズが標本で20, 母集団で80だとしたら、そのセルのウェイトは4.0。
無回答の調整の場合でいえば、この方法の背後には、あるセルの無回答者の値はそのセルの回答者の値で表現されている、という発想がある。回答の生起確率は同一セル内では同じだと思っているわけで、欠損値の分析でいうところのMARを仮定しているわけである。セル・ウェイティングはMARしか仮定していないのが特徴。各セルを通じた無回答の発生確率についてはなんの想定も置いていない点に注目せよ。
この方法の欠点は、いうまでもなく、ウェイト値の分散が大きくなっちゃうという点である。 - レイキング。反復比例フィッティングで周辺分布だけを合わせる。まず標本側の行和を母集団側の行和に合わせ、次に標本側の列和を母集団側の列和に合わせ... というのを収束するまで繰り返すわけである。
無回答の調整の場合でいえば、この方法の背後には、(1)回答確率はセル内では等しい、(2)あるセルの回答確率はその行の効果とその列の効果の積だ、という発想がある。
この手法の良い点は、ウェイト値の分散が小さいという点だが、その代償に(2)の仮定を受け入れているわけで、それがよいことかどうかは良く考える必要がある。[←なるほどー]
なお、ここで述べたのはraking法のひとつであるraking ratio法である。より一般的な定式化についてはDeville et al.(1993 JASA)をみよ。 - 線形ウェイティング。これも補助変数の周辺分布だけを合わせる方法だが、合わせ方がちょっとちがう[詳細は書いてない。上のDeville et al.を読むといいらしい]。負のウェイトが生じてしまうことがあるのが欠点。
- GREGウェイティング(GREGとは一般化回帰推定量の略)。補助変数の分布を合わせるんじゃなくて、なにかの量的変数のウェイティングした標本推定値を母集団に合わせる。たとえば、Aの4水準(A1, A2, A3, A4)の代わりに1,2,3,4という値を持つ量的変数A、Bの3水準(B1,B2,B3)の代わりに1,2,3という値を持つ量的変数Bがあるとしよう。で、標本におけるAのウェイティングしていない平均が2.5, Bのウェイティングしていない平均が2.27となり、いっぽう母集団ではAの平均が2.63, Bの平均が2.24になったとしよう。ウェイティングした平均が2.63, 2.24になるようなウェイトを考えましょう、という発想である。
- ロジスティック回帰ウェイティング。これは無回答調整から生まれた発想で、無回答の確率をA, Bでモデル化し、そのモデルで予測された回答確率の逆数をウェイト値にする。A, Bが両方カテゴリカルだったらレイキングに近いウェイト値になる。でも量的変数も扱えるし、交互作用項をいれるのもレイキングより簡単である。ただし、周辺分布が母集団と一致するとは限らない。
- セル・ウェイティングと他の手法の混合。たとえば、サイズがある閾値より大きなセルについてはセル・ウェイティングし、残ったセルについては大きなセルを取り除いた上でレイキングする、とか。
さて、ウェイト値をつくった結果、分散インフレーションファクター$F$が大きくなっちゃったときはどうすればよいか。
一般には、極端なウェイト値をトリミングしたり(ウェイト値の上限を定め、それを超えたらそれに切り詰める)、セルを併合したりするわけだが、どちらも副作用がある。つくったウェイト値のなかで極端な奴を修正するより、最初から極端な奴がでないようにウェイト値をつくったほうが良い。そういう方法を提案した人がいて(ロジット法とトランケーテッド線形法)、CALMARというSASマクロがある。
補助変数がいっぱいあって、選択したいときにはどうすればいいか。
無回答調整の場合で考えると、要するに、セル間で回答確率が異なりかつ集計対象変数の分布も異なるようなセルがほしいわけである。集計対象の変数はふつう一杯あるから、結局は回答有無を説明するロジスティック回帰なり決定木なりをつくるときにどんな変数を選ぶか、という話に帰着する。
いっぽう事後層別の場合では、そもそも補助変数を選ぼうという話にならない(なんらかの補助変数についての外的な目標分布があって、それに合わせようとするわけだから)。むしろ、集計対象の変数とその補助変数との関係が強いかどうかが問題になる。
後半は事例紹介: 米農業省のNational Food Consumption Surveyと米センサス局のThe Survey of Income and Program Participation. 略。
まとめ。
ウェイティング手法はいろいろ発展しているが、いずれにせよ、非カバレッジが大きい状況で「ウェイティングで目標分布に合わせよう」なんてことをやっていると精度が下がっちゃう。ウェイト値の分散を大きくしないこと。
ウェイト値の作り方はいろいろあるけど、まあどれも似たようなものである。それよか補足変数の選び方のほうが大事だ。さらに、ウェイト値の作り方の背後にある統計モデルに注意しなさい。
推定値の分散について考える際には、ウェイティングの効果を定数だと思わないこと[←おおっと、これはつまりSPSS Data Collection的なやり方に喧嘩を売っているわけね...]。ジャックナイフ推定とかでいちいち検討するように。
勉強になりましたですが... GREGウェイティングっていまいちピンとこないなあ。よっぽど暇になったら勉強しよう。
読了:Kalton & Flores-Cervantes (2003) 「ウェイトバック集計」のためのウェイト値のつくりかた
2015年3月27日 (金)
Rao, C.V., Swarupshand, U. (2009) Multiple Comparison Procedures - a Note and a Bibliography. Journal of Statistics, 16, 66-109.
多重比較法の論文573本を集めた文献リスト。掲載誌はパキスタンの大学の紀要誌みたいなものらしい。
ついかっとなって表にしてしまいました。ついでにこんな図をつくっちゃったりして... なにをやっているんだか...
読了:Rao&Swarupshand (2009) 多重比較法文献リスト
梅谷俊治(2014) 組合せ最適化入門:線形計画から整数計画まで. 自然言語処理, 21(5), 1059-1090.
なぜに自然言語処理で整数計画? と思ったのだが、使い道があるんですね。知らなかった。
Smithson, M. (2010). A review of six introductory texts on Bayesian methods. Journal of Educational and Behavioral Statistics, 35(3), 371-374.
たまたま見つけた奴。ベイズ統計学の教科書6冊を比較して紹介。ええと、ここで扱っているのはBDAなどに進む前に読むべき入門者向け教科書のことで、6冊というのは、Bolstad, Gill, Lee, Lynch, Martin&Robert, Ntzoufrasである。
数学できる人ならGillかNtzoufrasがお勧め。政治・社会学の院生ならGillかLynch。心理とかならBolstadなりLeeを終えてからNtzoufrasに進むという手もあるね、とのこと。
日本語だったらさしずめ、渡部, 松原, 繁桝、というところだろうか。私はいずれも手にとっては挫折しているのだが、ある意味で一番面白かったのは、培風館のほうの松原本であった。ところどころに載っている歴史的逸話が楽しい。サヴェジって結構嫌われてたんだそうですよ。
追記: なぜかわかんないけど「6冊」を「5冊」と書き間違えていたので直しました。ぼんやりしているにも程がある...
読了:Smithson(2010) ベイズ統計学教科書レビュー
2015年3月26日 (木)
Tonidandel, S., LeBreton, J.M. (2011) Relative importance analysis: A useful supplement to regression analysis. Journal of Business and Psychology, 26, 1-9.
「重要性についての論文をがんばって読む会」(会員数1名)、本年度第1回。当該分野の大物LeBretonさんらによる啓蒙論文。Journal of Business and Psychology なんてジャーナル、はじめて聞いたけど、シュプリンガーだしIFは1.5 だし、泡沫誌ってわけじゃなさそうだ。
著者らがここでいう重要性(importance) とは、”the contribution a variable makes to the prediction of a criterion variable by itself and in combination with other predictor variables”。具体的には、予測の分散を説明変数に配分して相対的に評価するという枠組みで考えている。たとえばR^2=0.8の回帰式があるとして、0.4はX1のせい、0.3はX2のせい、0.1はX3のせい... なんて配分するわけである。
それがどう有用なのかというと... いわく:たとえば、指導者の効果性を予測する際に、ある個人差変数が他の変数よりもより問題になるか (matter)、知りたいでしょ? その個人差変数が有意味な予測子になるか、知りたいでしょ? 相対的重要性なんて非理論的だという批判もあるけど、とんでもない、理論構築ってのは探索と検証の繰り返しであり、相対的重要性は探索をお手伝いするのです。云々。
では、予測の分散をどうやって分割するか。伝統的にはYとの単相関とか、標準化偏回帰係数の二乗とか、標準化偏回帰係数と相関係数の積とか、変数投入によるR^2の変化とかを使うことが多いが、これはよろしくない(...簡単な数値例...)。Budescuのgeneral dominanceを使いなさい。ないしJohnsonのrelative weightを使いなさい(...それぞれについて簡単な説明...)。前者の長所はほかにcomplete dominanceやconditional dominanceが出せること。後者の長所は変数の数が多くても計算できること。
相対的重要性の限界。
- 測定誤差の影響を受ける。
- 正しい回帰モデルが同定できているのが前提。
- 説明変数間の相関が高すぎるとき。これは統計的な話というより理論的な話で、共線性が異なる概念間の類似性を表しているのなら相関が高くても問題ないけど、同じ概念の指標が複数含まれているせいで共線性が生じている場合は、それらの指標に予測の分散を分割しちゃうとミスリーディングな結果になる。
- 予測のウェイトでもなければ因果的な指標でもない。あくまで分散の分割という観点からの補足情報に過ぎない。
推奨事項。
- 相対的重要性を調べる目的を決めよう。いくつかのパターンの重要性について調べたいならdominance analysisがお勧め。単に分散を説明変数に配分したいだけならrelative weightでよい。
- その場で最も適切な相対的重要性を求めよう。単なる重回帰か、ロジスティック回帰か、多変量重回帰か、多項回帰か。
- まずは生のウェイトをみて解釈しよう。
- なんなら統計的有意性も調べよう。(←偏回帰係数の有意性検定とは別に、相対的重要性の有意性検定ができる由)
- なんなら信頼区間も求めよう。(←なんと、その方法がある由)
- 仮説を検証しよう。ここでいう仮説とは、たとえば「X1よりX2のほうが重要性が高い」とか、「X1の重要性は群Aより群Bで高い」とか。
最後に、ユーザのみなさんからのよくあるご質問をご紹介します。
- 必要なサンプルサイズは?→相対的重要性の検定における検定力は、単回帰の検定における検定力よりもやや弱いが、偏回帰係数の検定における検定力よりは強い。
- 有意じゃなかったら解釈できないの?→んなこたあない。(説明略)
- 相対的重要性の強さは、効果量についてのCohenの基準で解釈できる?→そもそもCohenの基準を振りかざすのはお勧めできない。相対的重要性であれ、効果量であれ、その解釈は状況による。
- 偏回帰係数は有意なのに相対的重要性は有意じゃなかったら?→そんなことはまずない。
- 理論的に重要な変数は、有意じゃなくても入れるべき?→イエス。
いやぁ... この著者らのチームには、以前問い合わせに親切にご対応いただいたこともあり、多大なる敬意を抱いておりますですが...
この分野の議論で一番肝になるはずの論点は、(a)なぜ重回帰の文脈で変数の"重要性"を定量化したいのか、(b)定量化したいとしてR^2を配分する必要があるのか、という二点だと思う。
Yに対するX1の"重要性"なるものを、もし因果的な概念として捉えるならば、それは要するにX1の総合効果であり、X2, X3, ... との因果関係次第で決まるものであって、つまりは重回帰の枠組みから離れ、DAGを描くのが先決であろう(aへの反論)。もし因果的なニュアンス抜きで、単に回帰式でYを予測する際の有用性として捉えるならば、X1を出し入れしたときのR^2の変化をみればいいのであって、R^2をきれいに配分する必要はないのではないか(bへの反論)。いやいや、これはモデル構築の手前の変数スクリーニング手法なのですと一歩引き下がるんなら、それはそれで納得するけど、著者らの主張はそうではなくて、変数選択が終わって回帰モデルが完成してから、そのモデルのなかの変数の"重要性"を評価しましょう、という話なのである。
どちらかというと、こういうソモソモ論に関心があるのだけれど、きちんとした議論がなかなか見つからない。
引用文献についてのメモ:
- この話の手前に位置する、回帰モデルの同定の話については、Hocking(1976,Biometrics), Miller(1990,書籍), Thall et al.(1997,J.Comp.GraphicalStat.)を見よ、とのこと。いずれも変数選択の話らしい。
- Fabbris(1980, Quality&Quantity): Johnsonのrelative weightの先行研究。
- Krasikova, LeBreton, & Tonidandel(2011,Chap.): 相対的重要性の使い方。
- O'Boyle,Humphrey,Pollack,&Hawver(2010,J.Org.Beh.): 潜在変数の相対的重要性。メタ分析で使ったらしい。
読了:Tonidandel & LeBreton (2011) 重回帰やったら変数重要性を調べましょう
2015年3月18日 (水)
Ishwaran, H., Kogalur, U.B., Blackstone, E.H., Lauer, M.S. (2008) Random survival forest. The Annalys of Applied Statistics. 2(3), 841-860.
生存時間の予測手法としてランダム・サバイバル・フォレストをご提案します、という論文。RのrandomForestSRCパッケージ (旧randomSurvivalForestパッケージ)の開発チームによるもの。パッケージを本格的に使う前になにか論文を読まないと不安なので、ざっと目を通した。
ランダム・サバイバル・フォレストというと... もちろんサバイバル・データのランダム・フォレストということなんだけど... 日本語に訳すと、偶然的生存の森、だろうか。ホラー映画みたいだなあ。
提案アルゴリズムは以下の通り。
- オリジナルのデータからB個のブートストラップ標本をとってくる。抽出に際して、平均して37%のデータには手をつけない(out-of-bagデータ, またの名をOOBデータ)。
- それぞれの標本に関して生存木を成長させる。それぞれの節ノードにおいてp個の候補変数をランダムに選択、娘ノードの生存の差を最大化する変数を使って二分する。[←ちゃんと読んでないからだろうけど、生存の差をどうやって測るのかよくわからなかった。ログランク検定みたいなものだと思えばいいのだろうか?]
- ノードが持つユニークな死者の数が $d_0$ (>0) 個より大であるという制約のもとで、最大の木へと成長させる。
- それぞれの木において累積ハザード関数(CHF)を求め、木を通して平均する。これをアンサンブルCHFと呼ぶ。
- OOBデータをつかって、アンサンブルCHFの予測誤差を算出する。
記号の準備。本文よりちょっと簡略に書く。
ある飽和した木のある末端ノード$h$について、ケース$i$の観察された生存時間を$T_{ih}$, 打ち切り有無を表す変数を$\delta_{ih}$とする(死亡が観察されたときに1, 打ち切りのときに0とする)。そのノードが持っている離散的時点を過去から順に$t_{1h}, t_{2h}, ..., t_{N(h) h}$とする [←なぜノードによって時点の数を買えてるんだろう...?]。時点$t_{lh}$における死亡数を$d_{lh}$, リスク集合のサイズを$Y_{lh}$とする。CHFの推定値はネルソン-アーラン推定量でもって
$\hat{H}_h (t) = \sum_{t_{lh} \leq t} (d_{lh})/(Y_{lh})$
とする。
ケース$i$は長さ$d$の共変量ベクトル$x_i$を持つとしよう。さて、ケースのCHFはノードのCHFの推定量だということにする。つまり、ケース$i$のCHFを$H(t|x_i)$と書くとして、彼が落ちたノードが$h$だったら
$H(t | x_i) = \hat{H}_h (t)$
とするわけである。
ここまではいいっすね。
さて、アンサンブルCHFをどうやって求めるか。
ひとつのアイデアは、ブートストラップ試行のうち、そのケースがOOBに含まれていた試行だけに注目してCHFを平均するやりかた。これをOOBアンサンブルCHFという。$i$がブートストラップ標本$b$でのOOBに含まれていることを$I_{ib}=1$、いないことを$I_{ib}=0$と書く。この標本で作った木から得られる、任意の共変量$x$を持つケースのCHFを$H^*_b(t | x)$と書く。OOBアンサンブルCHFは
$H^{**}_e(t|x_i) = \sum_{b=1}^B I_{ib} H^*_b(t|x_i)/ \sum^B_{b=1} I_{ib}$
一見恐ろしげだけど、よくみると単純なことしかしていない。そうなのか、単純にハザードを平均しちゃっていいのか...意外...
もうひとつのアイデアはブートストラップ・アンサンブルCHF。委細構わずに
$H^*_e(t|x_i) = (1/B) \sum_{b=1}^B I_{ib} H^*_b (t|x_i)$
としちゃう。
同じロジックで、2種類のmortality(ある期間中の期待死亡率)を定義することもできる由。
なお、予測誤差の評価はOOBで予測したときのC指標を使うと良い(いわゆるAUCのことだと思う)。
他の手法と比較する実験もやっているけど、パス。
変数重要性(VIMP)も出せるけど、解釈には気を付けるように。たとえば2つの変数がどちらも予測に効き、かつ相関があるとしよう。かたっぽ抜いても分類エラーは増えないから、VIMPは低くなる。云々。
後半では、欠損の扱いについて新しい手法を提案しているけど(adaptive tree imputationというそうだ)、パス。最後に実データの解析例、これも読み飛ばした。
読了:Ishwaran, Kogalur, Blackstone, Lauer (2008) 偶然的生存の森
2015年2月21日 (土)
黒木学 (2014) 統計的因果推論による原因の確率とその評価. 統計数理, 62(1), 45-58.
疫学系データ解析特集号のなかの一本。Pearlが定義した「原因の確率」の3つの概念を、疫学の文脈で紹介する論文。おお、なんだか寄与危険度と関係ありそうだ、と思って手に取った。あまり知られていないけど、寄与危険度というのはマーケティング・リサーチの文脈でも重要な概念であります。
せっかくなので、勉強のために、原文の「曝露」を「ミニスカートのお姉さんに新製品のサンプルをもらった」、発症を「その後の一定期間内にその製品を購入した」に読み替えてメモを取ってみた。さらに、添字のネストが深くなるのが辛いので、勉強を兼ねて、原文の数式の表記をちょっと簡略化してみた。
サンプル受領を表す変数を$X$とし、もらった場合を$X=1$, もらってない場合を$X=0$とする。製品購入を表す変数を$Y$とし、購入した場合を$Y=1$, しなかった場合を$Y=0$とする。$X=1$となる確率を$pr(x_1)$というふうに略記する。
対象者$i$が「もしサンプルを受けとっていたら購入していたか」を表す変数を$Y_1(i)$, 「もしサンプルを受け取っていなかったら購入していたか」を表す変数を$Y_0(i)$とする。これらを確率変数$Y_1, Y_0$とみなし、$Y_j=k$である確率を「因果リスク」causal risk と呼ぶことにし、$pr(y_{jk})$と書く(添字が購入有無$j$, 受領有無$k$の順になっている点に注意!)。
$pr(y_{11}) - pr(y_{10})$を「因果リスク差」と呼ぶことにする。無作為割付していれば、$X$と$(Y_1, Y_2)$が独立だから、因果リスク差はリスク差$pr(y_1|x_1) - pr(y_1|x_0)$で推定できる。ただの観察でも、たとえば変数集合$S$の下で強い無視可能性であれば(=「$S$がSITA条件(strongly ignorable treatment assignment条件)を満たせば」=「バックドア基準を満たせば」)、$pr(y_1|x_1, S) - pr(y1|x_0, S)$の$S$の下での期待値でもって推定できる。
さて。Pearlは3つの「原因の確率」を提案している。
- 必要性の確率(Probability of necessity): $PN=pr(y_{00}| x_1, y_1)$。すなわち、「受領かつ購入」者が、仮に受領していなかったとして、購入していなかった確率。いいかえれば、受領が購入の必要条件になっている程度。
- 十分性の確率(Probability of sufficiency): $PS = pr(y_{11} | x_0, y_0)$。すなわち、「非受領かつ非購入」者が、仮に受領していたとして、購入していた確率。いいかえれば、受領が購入の十分条件になっている程度。
- 必要十分性の確率(Probability of necessity and sufficency): $PNS = pr(y_{11}, y_{00})$。すなわち、「仮に受領していなかったら購入していなかった」と「仮に受領していたら購入していた」の同時確率。これは、受領が購入に対する「実際の原因」actual causeとなっている程度を表している。
さらに、たとえば無能化の確率(Probability of Disablement): $PD = pr(y_{00}|y_1)$といった確率も定義できる由。
PNSの性質について考えてみよう。Xで場合分けしてみる。
$PNS=pr(y_{11}, y_{00}) = pr(y_{11}, y_{00}, x_1) + pr(y_{11}, y_{00}, x_0)$
第一項に注目すると、「$Y_1=1$である確率」とは「$X=1$であるときに$Y=1$である確率」だから、それと「$X=1$である確率」との同時確率はすなわち「$Y=1$である確率」だ(禅問答みたいですね)。よって$pr(y_{11}, y_{00}, x_1) = pr(y_1, y_{00}, x_1) = pr(y_{00} | x_1, y_1) pr(x_1, y_1) = PN \times pr(x_1, y_1)$。第二項も同様で、結局
$PNS=PN \times pr(x_1, y_1) + PS \times pr(x_0, y_0)$
つまり必要十分性の確率とは、必要性の確率に「受領かつ購入」確率を掛け、十分性の確率に「非受領かつ非購入」確率を掛け、足したものである。
このPN, PS, PNSは、(...途中に一か所、理解できない箇所があるんだけど...まぁとにかく)、因果リスク差が推定できれば、その存在範囲を求めることができる。
ランダム化試験の状況であれば、PNSの下限は$pr(y_1|x_1) - pr(y_1|x_0)$(それが負だったら0), 上限は$pr(y_1|x_1)$と$pr(y_0|x_0)$のうち小さい方、となるのだそうだ。えーと、PNSはリスク差よりも小さいことはないし、「受領者の購入確率」や「非受領者の非購入確率」よりも大きいことはない、ってわけね。
ではPNはどうなるかというと、その下限は$\{ pr(y_1|x_1) - pr(y_1|x_0) \} / pr(y_1 | x_1)$(もしそれが負だったら0)となるのだそうだ。この式をよく見ると... リスク差を「受領者における購入確率」で割ったもの。疫学でいうところの曝露群寄与危険度割合ではありませんか。
曝露群寄与危険度割合はふつう、「サンプル受領者における購入のうち、サンプル配布に起因する部分の割合」を意味する指標として解釈されている。でもその解釈はむしろ$PN=pr(y_{00}| x_1, y_1)$に対する解釈だ。ってことは、曝露群寄与危険度割合ってのは「受領者における購入のうち、受領に起因する部分の割合」を過小評価しているわけだ。どれだけ過小評価しているのか。図を延々と眺めてようやく得心したのだけど、$pr(y_{10}, y_{01})$だけ、つまり、「仮に受領していなかったら購入していた」と「仮に受領していたら購入していなかった」との同時確率のぶんだけ過小評価されている。これが0であることを単調性というそうだ。なるほどね、「ほっとけば買うがサンプルを渡すと買わない」奴はいないということか...
同じことが人口寄与危険度割合$\{ pr(y_1) - pr(y_1|x_0) \} / pr(y_1)$にもいえて、それが$PD=pr(y_{00}|y_1)$と一致するのは単調性の仮定が成り立っているときなのだそうである。えーと、ふつう人口寄与危険度割合は「購入者のうち、サンプル配布に起因する部分の割合」だと思われているけど、それは「ほっとけば買うがサンプルを渡すと買わない」奴がいなければの話だ、ということかな。なるほどー。
勉強になった、ような気がするが、すぐにわかんなくなっちゃいそうでもある...
2015年2月13日 (金)
研究者の方々は論文をお書きになりますが(原則として)、たとえば実験なり調査なりをやっても、その結果をすべて論文にする(できる)とは限らないわけで、引き出しに仕舞われたままになる結果もある。
いま「魚を食べると頭がよくなる」という説があるとして、その説について調べた研究者のうち、支持する証拠を得た研究者は「やったぜ」とその結果を論文にし、支持する証拠を得られなかった研究者は「やれやれ、ぱっとしないな」と結果を引き出しにしまいこんだとしよう。人々は出版された論文を見渡して「なんということだ、魚を食べると頭がよくなるという証拠ばかりだ」と考えることになる。魚屋さんは嬉しい。でも社会にとって望ましいことかどうかはわからない。これを「引き出し問題」と呼ぶ、と私は前に習ったが、より広義に「出版バイアス」と呼ぶことが多いようだ。
Franco, A., Malhotra, N., Simonovits, G. (2014) Publication bias in the social sciences: Unlocking the file drawer. Science, 345, 1502-1504.
題名を見て気になっていたのだけど、たまたまPDFを拾ったので、お茶のついでに目を通した。
アメリカにTESS(Time-sharing Experiments in the Social Sciences)というプログラムがあって、国レベルの代表性のある調査パネルを確保し、応募してきた研究計画を厳正に審査した上で、合格した研究者に助成金を与え、質問紙調査による実験をやらせている由。へー。
TESSで走った研究249件を分析。うち113件が政治学、60件が心理学、ほかに社会学、経済学、コミュニーケション、公衆衛生、などなど。
で、ググってみたりメールで問い合わせてみたり、四方八方手を尽くし、結局その研究がどうなったかを追跡した由。酔狂というかなんというか...おつかれさまでした。{一流誌に載った、非一流誌に載った、本の章になった、書いたけど載らなかった、書かなかった、不明}に分類。
さらに、実験を分析した結果が統計的に有意であったかどうかを調べた。ここではその分析方法が正しいかどうかではなく、当該の研究者がどう思ったかが大事なので、分析をやり直したりはしない。{仮説を支持、不支持、混在、不明}に分類。
結果。仮説を支持しなかった研究の65%は論文を書かずじまいなのに対し、混在だと12%, 支持だと4%。強烈な出版バイアスである。なお、「書いた」結果だけに注目すると、{載らなかった, 非一流誌, 一流誌}と検定の結果は関連しない由。
「仮説が支持されず論文を書かなかった」人にそうした理由をメールで問い合わせ、返事を分類したところ、「面白いと思ったんだけど有意じゃないのであきらめた」が26人中15人、後回しにしてるだけですいずれ書きますと言い訳するタイプが9人、他のデータで書いちゃったもんねという人が2人、だった由。著者いわく、出版バイアスってのは研究者のモチベーションに起因する面も大きい、とのこと。
話は違うが、このTESSというプログラム、実査はGfKカスタムリサーチさんが一手にやっているんだそうだ。へぇー。面白いなあ。
いま日本のネット調査会社で、研究者向け割引というのを用意しているところが少なくないけど、なんのためにやっておるのか、と不思議に思う。いっそ院生さんにプロポーザルを出させて審査し、良い調査計画を選んで無料でやったげればいいんじゃないですかね。そのへんのスレた先生に割引価格でやらせるより全然いいと思います。きっと泣いて喜んでくれますよ、卓上カレンダーをダンボールで送りつけたら周囲に必死に配ってくれますよ。
読了: Franco, Malhotra, & Simonovits (2014) 社会科学における「引き出し問題」はどのくらい深刻か
2015年2月11日 (水)
Jain, A.K. (2010) Data clustering: 50 years beyond K-means. Pattern Recognition Letters, 31(8), 651-666.
魅力的題名に惹かれて、MCMCが止まるまでの時間つぶしに手に取った。雑誌についてはよく知らないが、工学系でIF 1.06というのはきっとマイナー誌であろう。著者のなにかの会議での受賞記念講演をまとめたものらしい。
いくつかメモ:
- k-means法の話。
- k-means法ではふつうユークリッド距離を使う。マハラノビス距離を使うこともあるけど計算コストがかかる。ほかに、板倉-斎藤距離を使う例(音声処理で), L1距離を使う例、Bregman距離を使う例、がある由。[←知らんがな...]
- k-meansの拡張としては ISODATA, FORGY, ファジーc-meansが有名。ほかに、bisecting k-means, kd-tree, Bradleyらの巨大データへの拡張、x-means, k-medoid, カーネルk-means、がある。[←恥ずかしながら、初耳のが多い...]
- そのほかのクラスタリング手法:
- 密度が高い領域を分離するアプローチ: Jarvis-PatrickアルゴリズムとDBSCAN, 混合分布モデル, ベイジアンアプローチ(LDA, Pachinko Allocation, 無向グラフィカルモデル)。高次元に弱い。
- 下位空間クラスタリング: CLIQUE。
- グラフ理論アプローチ: minimum cut, ratio cut, normalized cut, MNCut, Ngらの方法, Laplacian Eigenmap, 決定論的焼きなましアルゴリズム, dominant sets アプローチ。
- 情報理論によるアプローチ。分割のエントロピーを最小化するアプローチ, information bottleneck法,。[←ほとんど理解できない]
- クラスタリングにおける難題:
- 特徴量をどうやって選ぶか。これはグルーピングの目的はなにかという点と密接に関連している。
- クラスタ数をどう決めるか。最小メッセージ長基準、最小記述長基準、AICやBIC、ギャップ統計量、ディリクレ過程でクラスタ数の事前分布を求める[???]、といった方法があるが、決め手はない。
- クラスタの妥当性をどうやって調べるか(仮に一様分布であっても複数のクラスタが得られちゃうわけだから)。3つの基準が挙げられる: 内的妥当性(クラスタ構造とデータの適合)、相対的妥当性(複数の構造を比べる)、外的妥当性(外的基準と比べる)。内的妥当性の指標のひとつに安定性がある。複数のサブサンプルを通じたクラスタリング解の分散のこと。
- クラスタリング手法の比較。
- アルゴリズムを結果の観点からクラスタリングするという試みもあって、やはりアプローチが近いと結果も似てくる。
- 理論的観点からは「手法」と「アルゴリズム」を分けて考える必要がある。たとえば「二乗誤差を最小化する」というのが手法、k-meansというのがアルゴリズム。ちがう手法が結局は等価、ということもある。
- まあとにかく、最良のアルゴリズムなんてない。
- 最近のトレンド:
- アンサンブル。k-meansをいっぱいやって結果を集約するとか。
- 準教師つきクラスタリング。must-linkとかcannot-linkとかを指定する、一部のデータにラベルをつける、などなど。例としてBoostClusterというのがある。
- 大データのクラスタリング。[いろいろ紹介してるけど省略]
- 多元クラスタリング。行列の行と列を同時にクラスタリングするとか。
- heterogeneousなデータ。グラフとして表現されているデータとか、動的データとか...
先生曰く、「たいていの応用場面では、本当に大事なのは最良のクラスタリング・アルゴリズムを選ぶことではない。むしろ、データの背後にあるクラスタリング構造を同定するための、適切な特徴抽出手法を選ぶことのほうがより重要である」とのこと。へへーっ(平伏)。
2015年2月 5日 (木)
Li, X., Song, Z., & Gray, R.H. (2004) Comparison of the missing-indicator method and conditional logistic regression in 1:m matched case-control studies with missing exposure values. Americal Journal of Epidemiology, 159(6), 603-610.
一対多マッチングしたケース・コントロール・デザインで、曝露変数に欠損があるとき、どうやって分析すればいいかシミュレーションで調べましたという、なんというか、風雅な論文。
仕事とちょっと関係あるかなと勘違いして印刷したのだが、よく考えてみたらまったく、全然、露ほども関係ないことに気が付いた。でも面白そうなので、眠気覚ましのコーヒーをすすりつつ、ついつい全部読んでしまい、さらにメモまでとってしまった。一体なにをやっとるのか。
データの作成。
曝露変数がひとつで二値の場面を考える。もしケースとコントロールが1:1マッチングになっていたら、これはもう、対応のある2水準の割合の比較、つまりMcNemar検定の世界だ。というわけで、ケースの曝露有無とコントロールの曝露有無の2x2クロス表を考える。
以下の3つのシナリオを用意する。
- シナリオ1. ケースの曝露確率(行和の割合)を0.3, 0.5, 0.7と動かす。コントロールの曝露確率(列和の割合)は、オッズ比が2,4,6となるように動かす。たとえばケースの曝露確率を0.5、オッズ比を4とする場合でいえば、コントロールの曝露確率をpとすると (0.5/0.5)/(p/(1-p)) = 4, これを解いてp=1/5である。こうして9通りのデータができる。なお、シナリオ1には交絡がない。
- シナリオ2。シナリオ1のコントロールの曝露確率(行和の割合)を固定し、「マッチングを考慮したオッズ比」も固定したまま、曝露コントロールとマッチしているケースの曝露率(上の行の中の左セルの割合)を、非曝露コントロールとマッチしているケースの曝露率(下の行の中の左セルの割合)の1.5倍にする。上の例だと、コントロール曝露下のケース曝露率を3/11, コントロール非曝露下のケース曝露率を2/11とする。このとき、「マッチングを考慮しないオッズ比」は1に接近するので(上の例では3.4)、これを負の交絡と呼ぶ。
- シナリオ3、正の交絡。シナリオ2の逆向き。「マッチングを考慮しないオッズ比」が1から離れる。
私の知識不足のせいだろうけど、ここで大いに混乱しました。
- ここでいう交絡とは、ケースの曝露とコントロールの曝露との間に連関があることなのである。しばし悩んだんだけど、マッチング変数が交絡変数になっているということ(つまり曝露有無とも罹患有無とも相関しているということ)と、ケースの曝露とコントロールの曝露との間に連関があるということは、等価なのかなあ。等価なんだろうなあ。
- 「マッチングを考慮したオッズ比」を固定する、というくだり。「マッチングを考慮しないオッズ比」とは2x2クロス表の周辺度数から求めたオッズ比であるのに対し、「マッチングを考慮したオッズ比」とは非対角2セルの比である。この点に納得するまでに時間がかかった。
すべてのシナリオで、1ケースに対して1コントロールがマッチしている場合と、1ケースに対して4コントロールがマッチしている場合を用意する。
ええと、データ生成の操作は、ケース曝露確率3 x オッズ比3 x シナリオ3 x マッチング2 = 54セルあるわけね。
で、つくったデータの曝露変数にぽこぽこと欠損を入れていく。つまり、曝露があったかなかったかわかんなくしてしまう。
欠損のタイプは以下の4種類。
- MCAR。全体を「参照群」とみなす。
- ケース依存欠損。ケースはコントロール(=参照群)より欠損率が50%{多い, 少ない}。
- 曝露依存欠損。曝露は非曝露(=参照群)よりも欠損率が50%{多い, 少ない}。
- ケース曝露依存欠損。曝露ケースの欠損率が他のすべて(=参照群)の欠損率より50%{多い, 少ない}。
上で定義した「参照群」の欠損率を、0.1, 0.2, 0.3と動かす。ええと、欠損タイプ2,3,4はそれぞれ「多い」と「少ない」があるから、欠損タイプは全部で7個、つまり欠損の操作は7x3=21セルあるわけね。
こうして用意したデータを条件つきロジスティック回帰で分析し、オッズ比を推定する。他に実データも分析するんだけど、そっちは省略。
従属変数を{ケース, コントロール}を表す2値変数, 独立変数を曝露有無, マッチングしたセットを層とする。欠損の処理の仕方は次の2通り。
- ケースの曝露変数が欠損している場合、ないしコントロールの曝露変数が全滅している場合に、マッチングしたセットごと抜く。これがStataとかSASのphregとかのデフォルトなのだそうだ。
- 欠損指標法。欠損を0で埋め、かわりに「曝露変数が欠損してましたぜ」フラグ Z をモデルに投入する。
全8頁の論文の、ここまでで2.5頁。疲れたのでここからは簡単に。(本文中でオッズ比4は対数オッズ比で1.89だと書いてるけど、1.39でしょう... おかげでしばし悩みましたよ先生)
まず、欠損がMCAR、ケース依存、曝露依存の場合。交絡がなければどっちでもあまり歪まない。負の交絡があると推定値は低めに、正の交絡があると推定値は高めに歪む。このとき欠損指標法のほうがちょっと歪みが大きいが[←へぇー]、検定力はちょっと上がる。著者曰く、欠損指標法を使うときは気をつけろ、とのこと。
なお、コントロールが多いほうが歪みが大きい[←これもちょっと意外。そういうもんなんですか?]。
ケース曝露依存欠損の場合、推定値は欠損率増大につれて歪みまくり、使い物にならない。[←それはそうでしょうね。ケーキを始終食っているデブに限り調査に協力してくれなかったら、調査非協力をモデル化しないかぎり、ケーキと肥満の関連はわからなくなるだろう]
とかなんとか...
読了: Li, Song, & Gray (2004) マッチングのあるケース・コントロール・デザインの条件付きロジスティック回帰で曝露変数に欠損があったら除去すべきか0埋めしてフラグを立てるべきか
2015年2月 4日 (水)
調査だか実験だかの参加者に刺激 P と Q を提示し、それぞれに対してなんらかの反応を得た。反応の分布を比べたとき、PとQのあいだに統計的に意味のある差はあるか。
反応が量的ならば、分布の平均に注目し、いわゆる「対応のある二水準」のあいだの平均の差の検定を行うことが多いだろう。手法としていちばんポピュラーなのは t 検定である。反応が二値ならば、(仮に反応を{0,1}とコード化したとして)各刺激に対する1の割合に注目し、「対応のある二水準」の間の割合の差の検定を行うことが多いだろう。McNemar検定が広く用いられている。
では、刺激が3つ以上あったらどうか。反応が量的ならばANOVAを用いることが多い。反応が二値の場合はCochranのQ検定を行うことが多いだろう。しかしこれらはオムニバス検定、すなわち、K個の水準のあいだの「どこか」に差があるといえるかどうかを調べている検定である。「どこ」に差があるのかを調べるためには別の手法が必要だ。
K個の水準から2つを取り出す全てのペアに関心があるとしよう。反応が量的である場合については、多重比較法と呼ばれる手法がたくさんあり、良い解説もたくさんある。問題は反応が二値の場合だ。いちばん簡単に思いつくのは、McNemar検定をすべてのペアについて繰り返す方法だが、ファミリーワイズの第一種過誤(Type I FWE)が増大する。そこで思いつくのは、Bonferroni法かなんかでp値を調整しちゃう、という手である。ちょっといま手元にないのだけれど、この手法を推奨している参考書が多いんじゃないかと思う。しかし、ちょっと不思議ではありませんか? Bonferroni型の調整手法は汎用的な手法であって、個別の課題においては必ずしも最適でない。反応が量的な場合なら多重比較法はよりどりみどりなのに、反応が二値になると急に品揃えが悪くなっちゃうわけ?
手元の本を探してみたところ、困ったときの助け神、森・吉田本には、McNemar検定とRyan法を併用しろ、と一行だけ書いてある。森・吉田本は他の箇所でもRyan法推しなのである。Ryan法ってなに? わたくし、それってTukey-Welsch法の別名なんじゃないかと疑っているのだが、詳しいことはわからない。SASやSPSSのANOVAの機能には多重比較法としてREGW法というのが搭載されてるけど(REGWQとか)、あれとの違いもよくわからない。
泣く子も黙る権威、AgrestiのCDA本は、章末の注でWestfall, Troendle, & Pennello (2010) を参照せよと書いている。私はこの本のいうことは頭から信じることに決めている。だって高かったんだもん。私費で買ったんだもん。
正直言って、細かい話だと思う。もし私の好き勝手が許されるならば、検定しないで済ませる方法を全力で考える。いかんともしがたい場合は、McNemar検定を繰り返し、Type I FWEが増大してますけどそれがなにか? と開き直る方法を考える (←冗談ではない。これがもっとも正しい態度である場合も少なくない)。それがだめでも、細かいことを考えるのはうんざりなので、反復測定データのロジスティック回帰だかGLMMだかGEEだかに持ち込み、推定したパラメータをTukey法かなにかでツルッと多重比較することを考える。
しかし、娑婆は細かい話であふれておりまして...
Westfall, P.H., Troendle, J.F., & Pennello, G. (2010) Multiple McNemar Tests. Biometrics, 66(4), 1185-1191.
そんなこんなで、仕事の都合で読んだ。Agresti先生ご紹介の、McNemar検定を多水準に拡張して多重比較する手法についての論文。単にBonferroni法やSheffe法で調整するよりも良い方法をご提案します、とのこと。具体的には、検定は正確McNemar検定、多重比較の理屈はHolm法だと思う。
多重比較には疎いので、よくわからない箇所も多いんだけど...
まずは二群のケース。
IIDな二変量ベルヌーイ試行系列$(Y_{i1}, Y_{i2})$について考える。平均ベクトルを$(\theta_1, \theta_2)$とする。帰無仮説 $H: \theta_1 = \theta_2$について正確検定しよう。
$Y_1$と$Y_2$の同時確率分布を$\theta_{00}, \theta_{01}, \theta_{10}, \theta_{11}$とする。以下、$H$の下での非対角セルの確率を$\theta_d = \theta_{01} = \theta_{10}$とする。
$H$の下で、2x2クロス表の非対角セルの観察頻度の和を $N_d = N_{01} + N_{10}$としよう。$N_d=n_d$のときの$N_{01}$の条件分布は、言うまでもなく$B(n_d, .5)$だ。$N_{01}$の実現値が$n_{01}$だったとしよう。$B_{n_d, .5} \sim B(n_d, .5)$として、p値は
$p(n_{01}, n_d; upper) = P(B_{n_d, .5} \gt n_{01})$
$p(n_{01}, n_d; lower) = P(B_{n_d, .5} \lt n_{01})$
$p(n_{01}, n_d; two) = 2 \min \{ p(n_{01}, n_d; upper), p(n_{01}, n_d; lower) \}$
どれでもいいけど、とにかくMcNemar検定において、p値は$n_{01}$と$n_d$の関数として決まるわけである。
多重比較に拡張します。
仮説を$H_1, H_2, \ldots, H_m$とする。仮説$l$に対応するデータを$\{ y_{i1}^{(\ell)}, y_{i2}^{(\ell)} \}, i=1, \ldots, n^{(\ell)}$とする。仮説のあいだでデータが重複しているかどうかは問わない。個々の仮説について正確McNemar検定をしたときの、$m$個を通したFWERを制御したい。
もし$m$個の仮説のなかに真の仮説がなかったら、タイプIエラーもないことになるから、まあひとつは真の仮説があるとしよう。真の仮説の集合を$I$として、
FWER($I$) = sup $P$(Reject $H_l$ for some $\ell \in I$)
ただしsupは上限を表す記号。
実際にはどの仮説が$I$に属しているのかわからないわけだけど、それがどれであってもFWER($I$) $\leq \alpha$ となるようにしたいものである。こういうのをstrong controlという。これに対して、すべての仮説が真であったときにFWER($I$) $\leq \alpha$ となることを weak controlという。以下ではstrong controlについて考える。
仮説の論理積を表す仮説(つまり「どこにも有意差がない」仮説) $H_I = \cap_{\ell \in I} H_\ell$の検定統計量について考える。ある仮説$\ell$のp値を$p(N_{01}^{(\ell)}, N_d^{(\ell)})$として、
$T_I (N^+_I) = \min_{\ell \in I} p_\ell (N_{01}^{(\ell)}, N_d^{(\ell)})$
$N_I = \{N^{(\ell)}_d | \ell \in I\}$が与えられれば、この検定統計量について、Type I Error率が$\alpha$以下になるような臨界値$c^\alpha_I(N_I)$を定めることができる由(詳細略)。
検定統計量の棄却域を決めるより、対応するp値をつくったほうが楽である。すなわち:
$\tilde{p}_I (n^+_I) = \sum_{\ell \in I} P_{H_\ell} \{ p_\ell (N_{01}^{(\ell)}, N_d^{(\ell)}) \leq T_I (n^+_I) | N_d^{(\ell)} = n_d^{(\ell)} \}$
このp値を使ってdiscrete Bonferroni-Holm法を用いる由。知識不足でちょっと理解できないのだが、すべてのp値を大きい順に並べてステップダウン、仮説集合の p 値として上の式を使う... ということだろうか。ほかにブートストラップを使った手法も提案しているが、そちらは力尽きたのでパス。
後半は数値例とシミュレーション。パス。
どうでもいいけど、大文字のアイと小文字のエルを併用するのはやめてくださいな、先生。しょうがないので後者はわざわざ$\ell$と書いた。
読んだはいいけど、実際の計算はなにでどうやればいいかしらん。SASでもRでも、まるごとの実装はみあたらなかった。WestfallさんってSASのMULTTESTプロシジャやRのmultcompパッケージの開発者だと思うんだけど。見落としてるのかな。
読了:Westfall, Troendle, & Pennello (2010) 多重マクニマー検定
2015年1月26日 (月)
Warton, D., & Hui, F.K.C. (2011) The arcsine is asinine: The analysis of proportions in ecology. Ecology, 92(1), 3-10.
勤務先の仕事の都合でざっと目を通した(ほんとはいまそれどころじゃないんだけど...)。タイトルにあるarcsineとは逆正弦変換(角変換)のこと、asinineとはfoolishというような意味だそうで(ロバ ass から来ているそうだ)、語呂合わせになっているわけだが、日本語のうまい語呂合わせが思いつかない。「逆正弦変換はせーへんように」というのを考えたんだけど、「逆」がどこかに消えているし、突然関西弁になる理由があきらかでない。
わたくしが院生のころはですね、なにかの割合$p$を従属変数にした分析の際には、角変換した変数$arcsine(sqrt(p))$を使いなさい、と習ったものである。岩原信九郎の有名な本(1965)にもそう書いてありました。70年安保粉砕に明け暮れた青春時代でした。嘘ですけど。
でも最近は角変換ってあんまり使わないんだそうで、その理由を知りたくて手に取った。
著者曰く。角変換が使われる場面はふたつある。(1)もともと二項変数で、データが「$n$個中$x$個」という形になっている場合。(2)もともと二項変数というわけではないんだけど、なにかの事情でデータが割合の形になっている場合。「窒素78%含有」とか。
まず、もともと二項変数である場合。$y = x / n$の分散は$p(1-p)/n$で、等分散性がないから、線形モデルのためには変換が必要だ、というのは正しい。さて、角変換すると$var(arcsin(sqrt(y))) \approx 1/(4n)$となり、等分散性が得られ、かつ正規性も得られる、といわれてきた。しかし: (1)$p$が0か1に近いとき、この近似はあてはまらない。(2)$n$が違ってたら等分散にならない。(3)線形モデルは分散異質性には弱いが非正規性には頑健なんだから、正規性を変換の目標にするのはおかしい。
むしろロジスティック回帰を使いなさい。なぜなら(1)logitリンク関数は割合を単調にマップしてくれる。(2)係数の解釈が容易だ [←それは先生、オッズというのが直感的に理解できる人ならばそうでしょうけどね]。(3)分散が $p(1-p)/n$ であることを正しくモデル化している。
もっとも過分散 (overdispersion) という問題もある。検出する方法は...[略]。対処のためには正規ランダム切片項を加えた GLMMという手がある。Rのlme4::glmer()を使いなさい。$var(x) = \phi np (1-p)$という手もあるけど、あんまりよくない。
もともと二項変数でない場合。変換しなきゃいけないというのは正しい。でもあんたらに訊きたいんだけど、角変換を選ぶ理由はどこにある? どこにもないじゃない[←あ、そういわれてみれば...]。解釈しやすい変換を使いなさい。かつ、できれば[0,1] を $(-\inf, \inf)$にマップする変換を使いなさい。logit変換$log(y / (1-y))$とかね。yが0ないし1のときに困っちゃうけど($-\inf, \inf$になるから)、分母と分子の両方に小さな値$\epsilon$を足せばよろしい。
まあどんな変換でもいいけど、とにかく回帰診断を忘れないように。残差と予測値のプロットが大事。$n \lt 30$くらいだったら正規確率プロットも大事。
後半は実数値例とシミュレーション。すいません、適当に読み流しました。
ロジスティック回帰は小標本のときに辛いこともあるだろうけど、リサンプリングとかMCMCとか、なんか工夫しなさい。サンプルコードを公開してあげるから参考にしなさい。これから教科書書く奴、角変換の話なんて書くなよ、わかったか。云々。
。。。二項変数の成功割合じゃなくて、もともと割合値を持っている変数の変換方法について知りたかったんだけど、云われてみれば、わざわざ角変換を選ぶ理由はどこにもないわね。その点は勉強になった。ロジット変換のほかにどういう変換がありえるか(変換しないという手もあると思う)、それらの得失は... という話が読みたかったんだけど、それはない物ねだりであろう。