elsur.jpn.org >

メイン > 論文:データ解析(2018-)

2020年4月17日 (金)

Tashman, L.J. (2000) Out-of-sample tests of forecasting accuracy: an anlysis and review. International Journal of Forecasting, 16, 437-450.
 仕事の都合で読んだ奴。時系列予測の交差検証をどうやるかという話。
 2000年の論文というと、結構最近のだなと感じてしまうのだけれど、これは私の感覚が狂っているからで(平成生まれの子ってせいぜいまだ中学生くらいまでだろうという気がしませんか?)、考えてみればこれって20年前の論文なんですね... やれやれ...

1. イントロダクション
[略]

2. in-sample評価 vs. out-of-sample評価
 in-sampleの誤差は予測誤差を過小評価しやすい。一期先予測を繰り返して補外するタイプの予測手法(指数平滑化とか)ならなおさらである。また、in-sample適合で選択した手法はpost-sampleの最良予測でない。
 post-sample予測精度を確かめるひとつの方法は待つことだが、さすがに現実的でないので、ふつうはホールドアウトを使う。つまりfit期間とtest期間をわけるわけである。

3. fixed-origin手続き vs. rolling-origin手続き
 fit期間の最後の期$T$をforecasting originという。そこから予測したい期までの期間をlead timeとかforecasting horizonという。test期間を$N$とする。つまり最長lead timeは$N$期先予測である。
 $T$に立って$T+1$から$T+N$を予測するのをfixed-origin評価という。予測実績を得るためには長いtest期間が必要になるし、originをどこにとったかに影響されるし、lead timeを通じた誤差を平均すると短期予測誤差と長期予測誤差を混ぜちゃうことになる。
 これに対して、originをどんどん更新していくやり方をrolling-origin評価という。たとえば$N=4$だったら、まず$T$に立って4つの予測値を得て、次に$T+1$に立って3つの予測値を得て... 計10個の予測値を得る。[あれ?ちょっと混乱しちゃったのでメモしておくけど、たとえば$T+1$に立つときは時点$T+1$の実現値を参照するってことだよね? つまりホールドアウトしたテスト期間についてもこっそり実現値を使うってことであってるかな?]
 rolling-origin評価の場合、各lead timeごとの正確性を評価できる。さらに、あるlead timeについて予測の経験分布を得ることができる。

4. out-of-sample評価を実装する際の諸問題

5. sliding simulations
 手法の選択と評価にrolling-originデザインを使うというアイデアもある。sliding simulationとかrolling horizonという。
 時系列をまず前半(fit用)と後半(test用, $N$個)にわける。で、前半をさらに、in-sample fit期間の$T$個とpost-sample fit期間の$P$個にわける。
 [この段落よくわかんないので逐語訳] sliding simulationは、検討している手法のそれぞれについての、rolling out-of-sample評価のペアを伴う。第一の評価では、スムージング・ウェイトをpost-sample fit期間へと最適化し、それぞれのlead時間について最良の手法を選ぶ。第二の評価はテスト集合に対する評価で、この手法によって得られた予測の正確性を評価するという伝統的な目的のために行う。[えええ? 予測手法AとBがあるとするじゃないですか。最初の$T$期でそれぞれのパラメータを推定しますわね。次の$P$期でそれぞれの予測性能を評価し、良かったほうを選ぶ。最後の$N$期で選んだほうの予測性能を評価する。次に、最初の$T+1$期で推定、次の$P$期で選択、最後の$N-1$期で評価。という風に繰り返すのだろうか。ってことは、leadごとに手法を変えるってこと?]

 [実証研究の紹介... Makridakis(1990 Mgmt.Sci.), Fildes(1989 Mgmt.Sci.), Weiss & Anderson (1984 JRSS)というのが挙がっている。この話、この論文であれこれ考えてないで、Makridakisの本とかを調べたほうが早そうだな。よってメモは省略]

6. 複数の時系列: 予測コンペティション
 [この節、M-competiton以降の一連の予測コンペティションの話を中心にして書かれているんだけど、いま関心ないのでそれらについてはメモを省略し、面白い部分だけメモする]
 単一時系列でわざわざrolling originsを使うのは、それぞれのlead時間について十分な予測を得るため(adequacy)、そして特定の出来事なりビジネスフェイズなりへの誤差指標の感度を下げるため(deviersity)、である。
 時系列が複数ある場合、adequacyを得るためには、なんらかの特性において等質なcomponent seriesを選ぶ必要がある。またdiversityを得るためには、性質においてもカレンダー時間においても異質な時系列をたくさん集める必要がある。こういう立場では、originは固定し、テスト期間を単一にすることが多い。
 いっぽう、特性のタイプの時系列(例えば産業別の年次売上数量)をうまく補外できること(selectivity)を主目的とすることもある。この場合は、時系列はそんなにたくさん集めず、diversityのためにはrolling originsを使いテスト期間を複数にすることが多い。[...ちょっと飛ばして...]

 複数の時系列を使う場合、長さやカレンダー時間は異なっていてよいが、test期間の長さはふつう揃える。予測誤差統計量は異なる時系列を通じて平均したり、異なるlead時間を通じて平均したり、両方を通じて平均したりする。
 予測誤差統計量の選び方については、Armstrong & Collopy (1992 Int.J.Forecasting), Fildes(1992, Int.J.Forecasting), Ahlburg et al. (1992 Int.J.Forecasting)を参照せよ。
 異なる時系列を通じて平均する場合は、スケール依存な指標(RMSEとかMADとか)は避け、スケール独立な指標(APEとか)を使うべし。ただし、元の値が0に近いことがあるときパーセント誤差はすごく歪む。そういうときはMAPEよりAPEの中央値がおすすめ。symmetric MAPEというのもあるよ。volatalityが変動するときはさらに工夫が必要で...[中略。まあ必要になったら調べよう]
 異なるlead時間を通じて平均する場合、ないし時系列とlead時間の両方を通じて平均する場合、通常は単純に足し上げるが(短いleadに重みがつくことになる)、個々のlead時間ごとにMAPEをとったうえでlead時間を通じて(重みつき)平均を出してもよい。

 ところで、originによって(ないしカレンダー時間によって)モデルも変えるべきだ、変えるべきだという可能性もある[...]。
 手法の予測の正確性についてわかったとして、ではどうやって手法を選ぶか。自動で選ぶという提案もあって[...]。
 最近では時系列の階層構造を考慮するという試みもある。Bunn & Vassilopulis(1993 Int.J.Forecasting)をみよ。今後の課題である。[短い説明なのでわからんが、階層時系列回帰をイメージすればいいのだろうか]

7. 予測ソフトウェアにおけるout-of-sample評価
[略]

8. サマリー
[略]

 ...細かいところに深入りしない広く浅く型のレビューなので、ちょっとストレス貯まったが、ま、勉強になりましたですー。

読了: Tashman (2000) 時系列予測の交差検証戦略

2020年3月19日 (木)

 コロナ騒動で気が休まらない毎日でありますが、感染者数の推移や予測がメディアにさかんに取り上げられていて、ああ、こういう研究ができたら面白かったろうな... などと無責任なことをぼんやり考えていた次第である。
 で、フォルダを整理していたら、「いずれ読む」PDFのフォルダにそっち方面の概説論文がはいっているのをみつけた。全然覚えていないんだけど、仕事の参考になるかと思って深く考えずに保存していたのだと思う。
 せっかくなので、仕事の待ち時間にめくってみた。

西浦博, 稲葉寿 (2006) 感染症流行の予測:感染症数理モデルにおける定量的課題. 統計数理, 54(2), 461-480.

 まずはSIRモデルから。
 感染する可能性のある人を$S$, 感染している人を$I$, 免疫を獲得したか死んだ人を$R$として、
 $\frac{dS(t)}{dt} = -\beta S(t) I(t)$
 $\frac{dI(t)}{dt} = \beta S(t) I(t) - \gamma I(t)$
 $\frac{dR(t)}{dt} = \gamma I(t)$
$\beta$は感染率。$\beta I(t)$を感染力という。$\gamma$は回復率や隔離率で、$\gamma^{-1}$を感染期間が指数分布に従うと仮定した平均値とする。短期的な流行のモデルなので人口動態は無視する。

 総人口を1として、平衡状態$(S(t), I(t), R(t)) = (1,0,0)$において
 $\frac{dI(t)}{dt} = (\beta - \gamma) I(t)$
が成り立つ。感染初期に感染者は$I(t) \approx I(0) \exp{(\beta -\gamma)t}$と指数関数的に増えるわけだ。病気が集団に侵入可能になるのは$\beta - \gamma > 0$のときである。ここから
 $R_0 = \frac{\beta}{\gamma}$
を基本再生産数という。R noughtと発音する。[←完璧な門外漢なので、このくだりを読んだだけでもう元をとったという感じだ。SIRモデルについては読んだことがあったけど、いまメディアでみかける基本再生産数って全然意味がわかってなかった]

 時刻 $t$までに感染を経験した人を $N(t) = S(0) - S(t)$とすると... [残念ながらこの段落は知識不足で理解できなかったので、メモも省略。シグマ代数ってなに?]

 SIRモデルの拡張。
 $I$をさらに、曝露したけどまだ感染性を持たない状態$E$と感染性を持つ状態$I$にわけると
 $\frac{dS(t)}{dt} = -\beta S(t) I(t)$
 $\frac{dE(t)}{dt} = \beta S(t) I(t) - \epsilon E(t)$
 $\frac{dI(t)}{dt} = \epsilon E(t) - \gamma I(t)$
 $\frac{dR(t)}{dt} = \gamma I(t)$
$\epsilon$は「曝露後に感染性を得る率」。これをSEIRモデルという。
 ほかにもモデルが作れる。免疫が獲得できないSIRSモデルとか。

 基本再生産数の意義として、予防接種率の達成目標について考えると...
 効果$\epsilon$のワクチンを接種率$p$で実施したとき、免疫を持たない人の割合は$1-\epsilon p $だから、接触パターンがhomogeneousなら再生産数は$(1-\epsilon p) R_0$。これを1未満にすれば感染症は終息する。$p$について解くと $p > 1 / \epsilon (1-1/R_0)$だ。[←うぉー おもしれええ]
 $R_0$の推定は、さすがに決定論的に考えてると精度とかを考慮できないので、確率論的なモデルを考えて...[めんどくさいからメモは省略するけど、そんなにものすごく難しい話ではなさそう。ふつうはML推定量が閉形式で書き下ろせるらしい。$\beta$の時間変動とか感受性の異質性とかを考慮したモデルをMCMC推定したりするのもあるのだそうだ。ふへえええええ]

 実際には伝播能力は行動の変化とか公衆衛生施策とかで時間変動するので、そういうのを考慮したのを効果的再生産数($R_t$)という。実際の感染ネットワークから求めたり、理論的に求めたりできる。SARSの流行時にWHOが緊急事態のアラートを出した直後に$R_t$が1未満になったという研究があるそうだ[←へえええええ!]

 感染待ち時間・感染性期間の分布を天下りに与えるのではなく、観察に基づき適切な分布を推定するというアプローチもある。
 感染待ち時間は潜伏期間と似ているので(潜伏期間の途中から感染性があることが多いから、ほんとはちょっとちがうんだけど)、調査で調べた潜伏期間の分布で代用したりする(対数正規分布に従うことが多い)。検疫に必要な目安の時間がわかったりする。[途中から難しくなってきたので大幅中略]
 いっぽう感染性期間の分布を知るのは難しい。感染待ち期間と潜伏期間は似ていることが多いけど、感染性期間と症候性期間はちがう。たとえばHIVの場合、感染した直後にウィルスが多く、いったん下がってAIDS発症の前にまた上がる。[...] 実際のウィルス量と疫学的な感染性との評価指標との相関はまだ確実でなく、今後の課題である。[←へえー。個人レベルの機序と集団レベルの現象の関係が意外にはっきりしないってことなのね... ウィルス量の増減も人によっていろいろってことかしらん]

 接触性の異質性を考慮するという方向の拡張もある。[...中略するけど、ひとつのアプローチはそのなかでは接触パターンが均一であるような複数のsubpopulationを考えるという方法で、これをmultitype epidemicモデルというのだそうだ。よくわかんないけど潜在クラスモデルみたいになるのだろうか...]
 最近関心が集まっているのは、接触関数の頻度分布がべき乗分布に従うとき(スケールフリーなとき)で、感染症の制圧は困難を極める。
 接触頻度に関する定量的説明は性感染症から明らかになるだろうと期待されている。接触回数の計数が観察可能だから。[←これ、誰と何回セックスしたかインタビューで正直に答えるだろうから、って意味だろうか...?]

 あれこれ考えているとどんどん複雑になるので、観察データじゃなくて介入研究でパラメータ推定することも多い。[←うぉー面白い!と思ったんだけど、どういう実験になるのか想像がつかなかった...]

 云々、云々。

 ...半分くらいはちんぷんかんぷんだったんだけど、仕事と直接関係しないという気楽さもあって、いやー、面白かった。もっと頭がよくて若かったら、こういうのやりたかったなあ... (← 一時の気の迷い)
 ともあれ、研究者の方々のご奮闘をお祈りいたします。

読了:西浦・稲葉(2006) 感染症流行の予測

2020年2月29日 (土)

 仕事の都合でときどき混合効果モデルを組みたくなることがある。本腰を入れる場合はMplusを使うけど、ほんのちょっとした用事の場合など、ちょっぴり億劫に感じることもある。RStudioのなかでちゃちゃっと済ませちゃいたいな、なあんて... ううむ、Mplus信者としては敬虔さが足りない、すみませんすみません。
 Rでなにかのモデルを組むとき、「どのパッケージを使えばいいんだ...」と困ることがあるけど、混合効果モデルはその典型例だと思う。古株としてはnlme (たしか標準パッケージだ)、lme4があり、さらにはglmmMLだの、glmmだの(あ、2018年で開発が止まったようだ)、かの複雑怪奇なMCMCglmmとか... 参っちゃいますね。

Bates, D., Machler, M., Bolker, B.M., Walker, S.C. Fitting Linear Mixed-Effects Models Using lme4.
 というわけで、緊急事態に対応するため、どれでもいいからちょっと土地勘をつけておきたいと思い、lme4パッケージのビニエットに目を通した。発行年が書いてないんだけど、これの古い版は2015年にJ. Statistical Softwareに載っている模様。
 ほんとはnlmeパッケージについて調べたかったのだけど、適切な文献が見当たらなかったのである。開発者による解説書、ピネイロ&ベイツ「S-PLUSによる混合効果モデル解析」を読めってことでしょうか。うーん、それは勘弁してほしい。あれは滅茶苦茶むずかしい。
 ところが、今回はじめて知ったんだけど、lme4パッケージの筆頭開発者はDouglas Batesさん。ピネイロ&ベイツ本の第二著者、かつてピネイロさんとともにnlmeパッケージを開発した人であった。どうやら、Batesさんは2007年にnlme開発チームを離れ、ライバルとなる新パッケージlme4を作り始めた、ということらしい。へええ。

 いわく。
 lme4はnlmeと比べ...[さまざまな美点が挙げてある]。いっぽうnlmeは、残差に自己相関のような構造があるモデルとか、ランダム効果の共分散行列に構造があるモデルとかを組むときのUIが優れている。
 
 まずは線形混合モデルから。
 線形モデルは、ベクトル値ランダム反応変数$\mathcal{Y}$の分布
 $\mathcal{Y} \sim N(\mathbf{X} \beta + \mathbf{o}, \sigma^2 \mathbf{W}^{-1})$
として記述できる。$\mathbf{W}$は対角行列で既知のウェイト、$\mathbf{o}$は既知のオフセット項。パラメータは$\beta$と$\sigma^2$である。
 同様に、線形混合モデルは$\mathcal{Y}$とランダム効果ベクトル$\mathcal{B}$の分布として記述できる。$\mathcal{B}=\mathbf{b}$の下での条件つき分布は
 $(\mathcal{Y} | \mathcal{B} = \mathbf{b}) = N(\mathbf{X} \beta + \mathbf{Zb} + \mathbf{o}, \sigma^2 \mathbf{W}^{-1})$
 $\mathcal{B}$の分布は
 $\mathcal{B} \sim N(\mathbf{0}, \mathbf{\Sigma})$
ただし$\mathbf{\Sigma}$は半正定値[すべての固有値が非負ってことね]。これは、分散成分パラメータ$\theta$に依存する相対共分散ファクター$\Lambda_\theta$を考えて
 $\Sigma_\theta = \sigma^2 \Lambda_\theta \Lambda_\theta^\top$
と書くと便利である。[こういわれると抽象的で困っちゃいますが... ]

 さて、lme4パッケージがご提供する線形混合モデルの関数は lmer() であります。
 たとえば...[対象者の睡眠を9日間制限し、毎日反応時間課題をやったというデータの紹介...]。この場合、
 lmer(Reaction ~ Days + (Days | Subject), data = sleepstudy)
と書く。

 実は、lmer() は以下の4つのモジュールの組み合わせである。
 その1, Formula.
 parsedFormula <- lFormula(formula = Reaction ~ Days + (Days | Subject), data = sleepstudy)
 その2, 目的関数.
 devianceFunction <- do.call(mkLmerDevfun, parsedFormula)
 その3, 最適化.
 optimizerOutput <- optimizeLmer(devianceFunction)
 その4, 出力. (めんどくさいのでコードは省略するが、mkMerMod()という関数)

 モジュール1, Formulaについて。
 formula引数は
  resp ~ FEexpr + (REexpr1 | factor1) + (REexpr2 | factor2) + ...
という形式をとる。FEexprは固定効果モデル行列$X$を決める表現。問題はその右側、ランダム効果の項である。
 個々のREexprは線形モデルのformulaとして評価される。つまりlm()なんかのformulaと同じである。1と書いたら切片である。factorはRの因子型として評価される。縦棒は、効果とグルーピング因子との交互作用を表すと思えばよい。
 いくつか例を挙げると、

FEexprから$\mathbf{X}$, その右から$\mathbf{Z}$と$\Lambda_\theta$がつくられる。[以下、$\mathbf{Z}$と$\Lambda_\theta$の作り方について詳しい説明があったけど、半分くらいで力尽きた。メモ省略]

 モジュール2, 目的関数モジュールは...[罰則付き最小二乗法によるあてはめの説明とかが12頁にわたって説明されている。読んだところで理解できそうにないのでまるごとパス]

 モジュール3. 非線形最適化モジュールは... [ここもどうせわからんので読んでないけど、混合モデルに限らない汎用的な最適化関数らしい。ふーん]

 モジュール4. 出力モジュールは... [単に出力の話かと思ったら、意外に仕事が多くて驚いた。まあこれは困ったときに読めばいいかな]

 ... 途中から面倒になってぱらぱらめくっただけなんだけど、まあいいや。
 lme4パッケージの全貌についてのユーザ向け紹介を期待していたんだけど、このビニエットはlmer()の仕組みについて詳しーく説明するものであった。しょうがないのでメモしておくけど、lme4の主力関数は次の3つである。ときに、末尾のerってなんの略なんすかね?

 nlmeパッケージでいうところのcorrelation = corAR1()のように、誤差項に自己相関を持たせる方法が知りたかったんだけどな... おそらく、lme4でもできなかないけど、めんどくさいのであろう。

読了:Bates, et al. (2015?) lme4::lmer()でたのしい線形混合モデリング

2020年1月 8日 (水)

Butler, N.A., & Denham, M.C. (2000) The peculiar shrinkage properties of partial least squares regression. J. R. Statist. Soc. B., 62(3), 585-593.

 タイトルの通り、PLS回帰を偏回帰係数の縮小推定量として捉えた時、その挙動はかなり変だぜ、と指摘する論文。

 イントロはとばして...

 $p$個の説明変数$x_1, x_2, \ldots, x_p$に対する、単変量反応変数$y$の線形回帰について考える。
 標本サイズを$n$とする。反応変数のベクトルを$Y$, $n \times p$計画行列を$X$とする。切片項を入れるのが面倒なので、$Y$と$X$は中心化済みとする。よって$X$のランクは$m \leq min(n-1, p)$である。
 線形回帰モデルは
 $Y = X\beta + \epsilon$
と書ける。$\beta$は$p$個の未知パラメータのベクトル。$\epsilon$は$N(0, \sigma^2)$にiidに従うものとする。

 $\beta$の推定方法にはいろいろある。たとえば、OLS, リッジ回帰(RR)、主成分回帰(PCR)、そしてPLS回帰である。
 $n < p$のとき、OLS推定量は一意に定義できないが、minimum length least squares推定量[←なにこれ?! なんて訳すの?]を使えば一意に決まる。
 どんな手法であれ、推定量$\hat{\beta}$は、スペクトル分解を使って以下の一般的形式で表現できるだろう:
 $X'X = \sum_j^m \lambda_j u_j u'_j$
ただし$\lambda_1, \ldots, \lambda_m$は$X'X$の正の固有値を大きい順に並べたもの、$u_j$は対応する固有ベクトルである。で、
 $\hat{\beta} = \sum_j^m f(\lambda_j) \hat{\alpha}_j u_j$
 $\hat{\alpha}_j = (1/\lambda_j) z_j$
 $z_j = u'_j X' Y$
ここで$f(\lambda_j)$は縮小ファクター。$\hat{\alpha}_j$は主成分方向$u_j$におけるOLS推定量の係数で、互いに直交しており独立である。$z_j$は正準共分散である。
 [ぶひー。$X'X$の固有値分解じゃなくて$X$の特異値分解で説明してほしいよ... まあいいや、なんだかよくわからんが、$\hat{\alpha_j} u_j = (1/\lambda_j) u'_j X' Y u_j$が、主成分回帰でいうところの$X$の第$j$主成分得点とそれに対応する偏回帰係数の積になっているのではないかと思う]

 $f(\lambda_j)$を1以外のなにかにするとバイアスが生じる。しかし$f(\lambda_j) < 1$とすることで、$\hat{\beta}$の分散が縮小できるので、結局MSEは小さくできるかもしれない。いっぽう$f(\lambda_j) > 1$だと、バイアスは生じるわ分散は拡大するわで、MSEは大きくなる。
 OLSの場合$f(\lambda) = 1$である。RRではなんらかの定数$k > 0$について$f(\lambda) = \lambda / (\lambda + k)$である。PCRでは採用した固有ベクトルについて$f(\lambda_j)=1$、残りは$f(\lambda_j)=0$である。
 ではPLS回帰はどうか。$|\hat{\beta}_{PLS}| \leq |\hat{\beta}_{OLS}|$という意味では縮小推定量であることが知られている。しかし、ああなんということでしょう、$f(\lambda_j) > 1$となることがあるのだ。その説明をこれからご覧いただきましょう。

 PLS回帰では、まず$k$個の因子$t_1, \ldots, t_k$を決める。$t_i = X c_i$は、$|c_i|=1$かつ$t_i$が互いに直交という制約のもとで、$t'_i Y$が最小になるように決める。[えーと、$c_i$ってのは第$i$因子の因子負荷ベクトルね]
 次に、$Y$を$t_1, \ldots, t_k$に回帰する。つまり、
 $\left( Y - \sum_i^k b_i t_i \right)' \left( Y - \sum_i^k b_i t_i \right)$
を最小にする$b_i$を決める。[$b_i$ってのは第$i$因子の偏回帰係数ね]
 $\beta_{PLS} = \sum_i^k b_i c_i$と書くと、これは
 $( Y - X \beta_{PLS})' ( Y - X \beta_{PLS})$
を最小にしていることになる。

 以上を別の書き方で表現する。
 PLS回帰では、
 $span\{c_1, \ldots, c_k\} = span\{X'Y, (X'Y)X'Y, \ldots, (X'X)^{k-1} X'Y \}$
が成り立つ。[←なんで?! ねえなんでよ?! さっぱりわからない! Helland(1988, Communs Statist. Simuln Computn)というのが引用されているけどさ... 読むわけないじゃんか...せめて手がかりくらい教えてよ...]
 ということは、
 $\hat{\beta}_{PLS} = \sum_i^l \hat{\gamma}_i (X'X)^{i-1} X'Y$
と書ける。$X'X$のスペクトル分解を使うと
 $f(\lambda) = \sum_i^k \hat{\gamma}_i \lambda^i$
となる。[...ついていけないけど... 写経して先に進もう]

 さらにさらに別の書き方で表現する。
 $(Y-X\beta_{PLS})'(Y-X\beta_{PLS})$
 $=(Y-X\beta_{OLS})'(Y-X\beta_{OLS}) + (\hat{\beta}_{OLS}-\beta_{PLS})' X'X (\hat{\beta}_{OLS}-\beta_{PLS})$
ともかけるので、上の式の第二項を最小化しているのだということもできる。$X'X$のスペクトル分解を使うと、上の式は
 $\sum_j^m (z_j^2/\lambda_j) (1-\sum_i^k \gamma_i \lambda_j^i)^2$
ともかける。これを$\gamma_q \ (q = 1, \ldots, k)$で微分すると[...話についていけなくなったので数行飛ばす...]、$k$次以下の任意の多項式$p(\lambda)$について
 $\sum_j^m p(\lambda_j)(1-f(\lambda_j)) = 0$
が成り立つことが必要であることが分かる。

 ここからは、$z_j \neq 0$であり、$\lambda_j$はすべて異なると仮定する。また$k < m$とする(もし$k=m$なら$\hat{\beta}_{PLS} = \hat{\beta}_{OLS}$だから)。
 固有値$\lambda_1, \ldots, \lambda_m$のうち、$f(\lambda_j) < 1$となる奴の集合を$S$、$f(\lambda_j) > 1$となる奴の集合を$E$とする。
 連続する固有値の集合を$R$と書く。つまりなんらかの整数$a \leq b$について$R=\{\lambda_j: a \leq j \leq b \}$である。
 $R_1$の最大の要素が$R_2$の最小の要素より小さい時、$R_1 < R_2$と書く。

 定理1. $k < m$因子のPLS回帰においては以下が成り立つ。連続する固有値の空でないdisjointな集合を$R_1 < R_2 < \ldots R_{k+1}$として、
 $S = \bigcup_{i \ odd}{R_i}, \ \ E = \bigcup_{i \ even}{R_i} $
[かみ砕くとこういうことだろう。固有値$\lambda_1, \ldots, \lambda_m$について、$f(\lambda_j)$が縮小か拡大かに注目し、連続する縮小の並び、連続する拡大の並びをグループと呼ぶ。すると、縮小グループと拡大グループが交互に並ぶことになる。この定理がいっていることは、まず、グループの数が因子数+1になるということ。そして、一番右側のグループは常に縮小だということ。]
 [証明はさっぱりわからんので読み飛ばした]

 定理1から次のことがわかる。
 $\lambda_m$は$S$に入る。因子数$k$が偶数なら$\lambda_1$は$S$に入り、$k$が奇数なら$\lambda_1$は$E$に入る。
 $k=1$の場合、$\lambda_1, \ldots, \lambda_m$は左側が$E$になり右側が$S$になる。

 定理2. $k = m- 1$のとき、$m-j$が偶数である$\lambda_j$は$S$に、奇数である$\lambda_j$は$E$に入る。さらに、なんらかの正の定数を$C$として下式が成り立つ.
 $f(\lambda_j) = 1 - C\{z_j^2 \prod_{i=1,i \neq j}^{k+1} (\lambda_i - \lambda_j)\}^{-1}$
 [証明は読み飛ばした]

 定理3. $R_1$が$m-k$個の要素を持つとき、残りの$R_2, \ldots, R_{k+1}$はそれぞれ1要素となり、下式が成り立つ。
 $f(\lambda_j) = 1 - C_j\{z_j^2 \prod_{i=1,i \neq j}^{k+1} (\lambda_i - \lambda_j)\}^{-1}$
ただし$C_j > 0$は$j$の減少関数, $C_j / (1-\lambda_{k+1}/\lambda_j)$は$j$の増大関数。
 [証明は読み飛ばした]

 この定理が示しているのは、小さい固有値ほど拡大や縮小が派手になるということである。

 事例 [...疲れたので読み飛ばした]

 結論。PLS回帰の縮小特性は奇妙である。PLS回帰を、多重共線性への対処としてオートマティックに使ってはならない。ユーザは最低限でも、PLSの係数をOLSと比べ、著しい拡大が起きていないかどうかを検討すべきである。

 ...途中からほぼ写経になっちゃったけど、PLS回帰から得られる偏回帰係数というのはなんだかよくわからん代物であるということがよくわかった。この論文のおかげで、「PLS回帰を線形回帰モデルの縮小推定量として捉えて偏回帰係数を解釈するのはヤメロヤメロヤメロ」と、かなりの自信をもっていえるようになった...

読了:Butler & Denham (2000) PLS回帰の偏回帰係数は奇妙な縮小特性を示す

2020年1月 7日 (火)

Abdi, H., & Valentin, D. (2007) Multiple Correspondence Analysis. In: Salkind (ed.) Encyclopedia of Measurement and Statistics.
 多重対応分析を一般化特異値分解で捉えた時、各因子(っていうかなんというか)の寄与は特異値の二乗を割合に直したやつでええんのんか? というのがよくわからなくなり、ネットで拾って大急ぎで目を通したもの。いずれきちんと勉強したいが(特にRのパッケージ間での違いについて知りたい)、とりあえず付け焼刃で...

 いわく。
 多重対応分析とは...[メモ省略]。名義変数のセットによって記述されたケース集合について分析するときにつかう。
 事例...[略]

 名義変数の個数を$K$とする。それぞれの変数の水準数を$J_k$、その合計を$J$とする。ケース数を$I$とする。$I \times J$の指標行列を$\mathbf{X}$とする。$\mathbf{X}$の全合計を$N$とする。
 まず、確率行列$\mathbf{Z} = N^{-1} \mathbf{X}$を求める[確率行列というのは違和感があるけれど、$\mathbf{X}$を二元クロス表のように捉えているわけね]。
 $\mathbf{Z}$の行和ベクトル$\mathbf{r}$, 列和ベクトル$\mathbf{c}$を求める。それぞれを対角に持つ対角行列を$\mathbf{D_c}, \mathbf{D_r}$とする。で、次の特異値分解を行う。
 $\mathbf{D_r}^{-1/2} (\mathbf{Z} - \mathbf{rc}^T) \mathbf{D_c}^{-1/2} = \mathbf{P \Delta Q}^T$
 でもって、
 $\mathbf{F} = \mathbf{D_r}^{-1/2} \mathbf{P \Delta}$
 $\mathbf{G} = \mathbf{D_c}^{-1/2} \mathbf{Q \Delta}$
を行スコアと列スコアにする。
 [あれ? これであってんの? これって
 $\mathbf{Z} - \mathbf{rc}^T = \mathbf{N \Delta M}^T$
 $\mathbf{N}^T \mathbf{D_r N} = \mathbf{M}^T \mathbf{D_c M} = \mathbf{I}$
という一般化特異値分解なんじゃない? だったら特異値分解は
 $\mathbf{D_r}^{1/2} (\mathbf{Z} - \mathbf{rc}^T) \mathbf{D_c}^{1/2} = \mathbf{P \Delta Q}^T$
なんじゃない? ... きっと私がなにか勘違いしておるのだろう... ]

 行と列の、それぞれの重心からのカイ二乗距離は
 $\mathbf{d_r} = diag\{\mathbf{FF}^T\}$
 $\mathbf{d_c} = diag\{\mathbf{GG}^T\}$
行$i$と因子$l$、列$j$と因子$l$との平方コサイン距離は、$\mathbf{d_r}$の$i$番目の要素を$d^2_{r,i}$, $\mathbf{d_c}$の$j$番目の要素を$d^2_{c,j}$と書くとして、
 $o_{i,l} = f^2_{i,l} / d^2_{r,i}$
 $o_{j,l} = g^2_{j,l} / d^2_{c,j}$
行$i$の因子$l$に対する、ないし列$j$と因子$l$に対する寄与は、$\mathbf{\Lambda} = \mathbf{\Delta}^2$の$l$番目の要素を$\lambda_l$と書くとして
 $t_{i,l} = f^2_{i,l} / \lambda_l$
 $t_{j,l} = g^2_{j,l} / \lambda_l$

 補足要素を射影するには遷移方程式を使って...[略]

 $\mathbf{B} = \mathbf{X}^T \mathbf{X}$ ($J \times J$) をBurt行列という。これが重要な理由はふたつ。(1)Burt行列を対応分析に掛けると$\mathbf{X}$を多重対応分析にかけるのと同じ結果が得られ、かつ計算が簡単。(2)因子のイナーシャは、$\mathbf{X}$の固有値[特異値の二乗のことだろう]よりも$\mathbf{B}$の固有値によってよりよく近似できる。

 さて。[このメモにとってはここからが本題である]
 指標行列ではある名義変数が複数の列を持つので、人工的な次元が生まれ、実は、固有値が$1/K$以下である因子は人工的次元であることが示されている。
 そのため、得られた空間のイナーシャ(つまり分散)はインフレを起こし、第1次元で説明されるイナーシャの割合はすごく過小評価される。これを修正したい。
 そこで、まず固有値$\lambda_l$を修正した$c\lambda_l$を求める。もし$\lambda_l \leq 1/K$なら$c\lambda_l=0$, そうでない場合は$\displaystyle c\lambda_l= \left[ \left( \frac{K}{K-1} \right) \left( \lambda_l - \frac{1}{K} \right) \right]^2$とする。
 でもって、固有値を固有値の和$\sum_l c\lambda_l$で割る... というのが伝統的な方法なんだけど、こんどはイナーシャの割合が過大評価されてしまう。そこでGreenacre(1993)はこう提案した。固有値の合計で割るのではなく、Burt行列の非対角ブロックの平均イナーシャ
 $\displaystyle \bar{\mathscr{i}} = \frac{K}{K-1} \left( \sum_l \lambda^2_l - \frac{J-K}{K^2} \right)$
で割る。[へー]

 事例...[略]

読了:Abdi & Valentin (2007) 多重対応分析における寄与をどのように求めるか

2019年12月30日 (月)

Burnhan, A.J., MacGregor, J.F., Viveros, R. (2001) Interpretation of regression coefficients under a latent variable regression model. Journal of Chemometrics, 15, 265-284.
 仕事の都合で、PLS回帰の係数の解釈について説明する必要が生じ、あれこれ探し回って見つけた論文。
 PLS回帰係数の解釈についての論文は珍しく、やったぜついに見つけたぜと喜んだんだけど、いざ読んでみると、疑問がいっぱい浮かんできて...

 いわく。
 主成分回帰(PCR)、PLS回帰といった潜在変数重回帰(LVMR)モデルでは、
 $y = t Q + f$
 $x = t P + e$
と考える。目的変数$y$は$m$次元, 説明変数$x$は$k$次元、潜在変数$t$は$a \leq k$次元とする。
 PCR, PLSでは
 $\hat{t} = x W$
とする。[$\hat{y} = \hat{t} \hat{Q}$に代入して$\hat{y} = x W \hat{Q}$だから] $\hat{B} = W \hat{Q}$と書けば
 $\hat{y} = x \hat{B}$
と、標準的な回帰モデルと同じ形になる。つまり$B$は"回帰係数"である。
 しかし、もともとのLVMRモデルに$B$が明示的に出ているわけではないので、これをどう定義し、どう解釈するかがはっきりしない。
 予測子のランクを減らしている回帰モデルにおいて回帰係数をどう解釈するかという問題は、我々の知る限り、これまで検討されてこなかった。本論文ではLVMRモデルの回帰係数の解釈について考える。

 まずはフルランクの回帰モデルについて考える。3つのモデルについて考えます。
 モデル1、標準的な回帰モデル。
 $y = xB_1 + f$
 モデル2、予測子を確率変数とした標準的回帰モデル。
 $E(y|x) = xB_2, \ \ V(y|x) = \Sigma_f$
 モデル3、予測子が誤差を含む回帰モデル。
 $E(y|u) = E(x|u) B_3, \ \ V(y|u) = \Sigma_f, \ \ x = u + e$

 以下では次のように定義します。
 $E(y|x) = x B^\circ$
 $E(y|u) = E(x|u) B^*$
モデル2の下では$B_2 = B^\circ = B^*$である。モデル3の下では$B_3 = B^*$で、$u, e, f$が互いに独立に平均0, 共分散$\Sigma_u, \Sigma_e, \Sigma_f$のMVNに従うとすれば、
 $\Sigma_u (\Sigma_u + \Sigma_e)^{-1} B_3 = B^\circ$
である。
 [恥ずかしながらなぜこうなるのか、考えたんだけどわからない。モデル3は
 $y = u B_3 + f$
だという理解で合っているだろうか? すると
 $V(y) = \Sigma_u B_3 + \Sigma_f$
だよね? いっぽう$B^\circ$についていえば
 $V(y) = V(y|x) + V(x)B^\circ = V(y|x) + (\Sigma_e + \Sigma_u) B^\circ$
だと思うんですよね。だから
 $(\Sigma_e + \Sigma_u)^{-1} (\Sigma_u B_3 + \Sigma_f - V(y|x)) = B^\circ$
じゃないかなと。この左辺が$\Sigma_u (\Sigma_u + \Sigma_e)^{-1} B_3$に化ける理由がわからない。嗚呼...]

 さあ、いよいよLVMRモデル
 $y = t Q + f$
 $x = t P + e$
について考えよう。以下では$e, f, t$がそれぞれ平均0のMVNに従い互いに独立だとする。

 まず$B^\circ$について。$x$と$y$の同時分布は
 $\displaystyle \Sigma_{xy} = \left[ \begin{array}{cc} \Sigma_e + P^T \Sigma_t P & P^T \Sigma_t Q \\ Q^T \Sigma_t P & \Sigma_f + Q^T \Sigma_t Q \end{array} \right]$
 これより
 $E(y|x) = x (\Sigma_e + P^T \Sigma_t P)^{-1} P^T \Sigma_t Q$
つまり$B^\circ = (\Sigma_e + P^T \Sigma_t P)^{-1} P^T \Sigma_t Q$となるわけである。

 次に$B^*$について。もともと$E(y|u) = E(x|u) B^*$と定義してたわけだけど、ここでは$u = tP$だから、$E(y|t) = E(x|t) B^*$である。ってことは$t Q = tPB^*$である。これが任意の$t$について成り立つんだから$Q = PB^*$である。これを解くと[...本文に説明が載ってないし考えてもよくわかんないんだけど...]
 $B^* = GQ + (GP-I) Z$
ただし$G$は一般化逆行列で$PGP =P$であり、$Z$は任意の[←えっ?] $k \times m$実数行列である。このように、LVMRモデルでは$B^*$は一意に決まらない。
 [一生懸命説明してくれてんのにすまんけど、いまいちぴんとこない...]

 わかりにくいんで具体例で示そう[←おう、そうしてくれ]。
 $a=1, m=1, k=2$とし$\Sigma_e$は対角とする。
 $P$はいまや列ベクトル、その要素を$p_1, p_2$とする。$Q$はいまやスカラー$q$。$B$はいまや列ベクトル、その要素を$b_1, b_2$とする。潜在変数は$t \sim N(0, \sigma^2_t)$。$e_1, e_2, f$はiid正規で、平均は0, SDはそれぞれ$\sigma_1, \sigma_2, \sigma_f$。もはや$t, p, q$はスケーリングしているだけなので、$\sigma_t = 1$とする。
 [はいはい。要するに
 $y = t q + f, \ \ f \sim N(0, \sigma_f^2)$
 $x_1 = t p_1 + e_1, \ \ e_1 \sim N(0, \sigma_1^2)$
 $x_2 = t p_2 + e_2, \ \ e_2 \sim N(0, \sigma_2^2)$
 $t \sim N(0, 1)$
であるとき、$x$と$E(y|x)$の比$b^\circ$はどうなるの、潜在変数$u$の下で条件付けた$E(y|u)$と$E(x|u)$の比$b^*$はどうなるの、ってことね]
 このとき、
 $\displaystyle b^\circ_j = \frac{qp_j}{\sigma^2_j(p^2_1/\sigma^2_1 + p^2_2/\sigma^2_2 + 1)}$
であり、$b^*$は
 $b^*_1 p_1 + b^*_2 p_2 = q$
を満たす任意のベクトルである。[←ああ、なるほど...]

 では本題。PLS回帰の$\hat{b}$の分布について考えよう。さきほどと同様、$a=1, m=1, k=2$とする。
 1因子PLSでは$w = X^T y$なので、
 $\hat{b}^{PLS} = X^T y (y^T XX^T y)(y^T XX^T XX^T y)^{-1}$
となる[ついていけないけど、信じます...]。
 上の式は、ベクトル$X^T y (y^T XX^T y)$をスカラー$(y^T XX^T XX^T y)^{-1}$で割っている。比の期待値を期待値の比で近似するとして、$E(\hat{b}^{PLS})$は [...$p,q,n,\sigma_t,\sigma_f,\sigma_1,\sigma_2$を使った近似式が示されている。複雑な式ではないけれど、5行くらいの長い式なのでメモ省略]
 この式をよくみると、$\hat{b}^{PLS}$の要素の相対的サイズは、負荷$p_j$の相対的サイズだけでほぼ決まる。つまり
 $E(\hat{b}^{PLS}_1 / \hat{b}^{PLS}_2) \approx p_1/p_2$
 また、$\sigma_t$が大きいときには
 $E(\hat{b}^{PLS}) \approx p^T (q / pp^T)$
となり、$b^*$の性質$b^*_1 p_1 + b^*_2 p_2 = q$を満たす。つまり、$b^*$の特定の事例を近似的に不偏推定している。
 $n$が大きいときには、
 $\displaystyle E(\hat{b}^{PLS}) \approx p^T \frac{q (pp^T) \sigma^2_t}{(pp^T)^2 \sigma^2_t + p \Sigma_e p^T}$
となる($\Sigma_e$ってのは$\sigma_1, \sigma_2$を持つ対角行列)。分母に$p\Sigma_e p^T = p^2_1 \sigma^2_1 + p^2_2 \sigma^2_2$がある。つまり、誤差が大きいほど、$E(\hat{b}^{PLS}) $は$b^*$の線を滑るようにして小さくなっていく。

 これをOLS回帰と比較してみると [...面食らったんだけど、上と同じデータ生成メカニズムを仮定して、ということだと思う]
 $E(\hat{b}^{OLS}) = b^\circ$
 $E(\hat{b}^{OLS}_1 / \hat{b}^{PLS}_2) = (p_1 \sigma^2_2) / (p_2 \sigma^2_1)$
であることが示せる。

 ここからはシミュレーション。
 その1。$p_1 = p_2 = 2, q=1, \sigma_2 = 2, \sigma_f = 0.15, \sigma_t =1$に固定し, $\sigma_1$のみを4水準に動かす。つまり$x_1$のSN比だけを動かすわけである。$b^*$は$2b^*_1 + 2b^*_2 = 1$のままだが$b^\circ$は動く。[$n$が書いてない... 見落としたのだろうか...]
 $\hat{b}^{PLS}$と $\hat{b}^{OLS}$は$\sigma_1$が2から離れるにつれて離れる。$OLS$では、$\sigma_1$が小さいときに$\hat{b}^{OLS}_1$が大きくなるわけだが、PLSではそうならない。OLSは常に$b^\circ$を不偏推定しているがPLSはそうでない。$b^*$という観点から見るとどちらにもバイアスがある[それは$\sigma_t$がそんなに大きくないからだよね...]。
 $y$の予測性能を比べると、$\sigma_1$が$\sigma_2$から離れるにつれてPLSの性能が落ちる。誤差分散が違うのに回帰係数を調整しないからである。

 その2。$p_1 = 1, q=1, \sigma_1 = 0.5, \sigma_f = 0.15, \sigma_t = 1$に固定し、$p_2$と$\sigma_2$をSN比が変わらないようにして引き上げる[つまり$p_2$を4倍したら$\sigma_2$は2倍する]。$b^\circ$は動かないが$b^*$の線は動く。
 $\hat{b}^{PLS}$と $\hat{b}^{OLS}$は$p_2$が大きくなるにつれて離れる。こんどはOLSが$\hat{b}_1 = \hat{b}_2$の線上から動かず[SN比が同じだからね]、PLSがアンバランスになっていく[そりゃそうだ、$p_2$が大きいんだから]。予測性能はほとんど変わらない。[ああ、そりゃそうだな... 結局$X$のSN比は変わってないわけだから...]

 考察。
 結局、LVMRモデルの$\hat{B}$が推定しているのはなんだろうか。その答えは研究の目的によって異なる。
 Myers(1986, 回帰分析の教科書らしい)いわく、回帰分析の目的は4つある。順にみていこう。
 目的1、予測。分析者はデータ生成システムに関心を持たず、ただ$X$のなかの誤差分散のサイズに関心を持つ。この場合、回帰係数の定義には$B^\circ$がふさわしい。$B^\circ$は$X$の誤差分散を含んでいるから。
 目的2、モデルの特定、つまりシステムの説明。この場合は$B^*$がふさわしい。ある変数の誤差分散が大きいからといってその変数をディスカウントするのはおかしいから。
 目的3、変数選択。この場合はなぜ変数を選択したいかが問題になる。予測のためなら$B^\circ$が、以後の研究のためなら$B^*$がふさわしい。
 目的4、パラメータ推定。この場合、そもそもLVMRモデルには$B$なんてないということに注意。$B^\circ$の立場からみればそれは$e, f$の分布に影響されるし、$B^*$の立場からみればそれは一意に決まらない。

 Brownという人いわく、「多くの場合、$Y$の変動の一部はなんらかの予測子と連関している可能性がある。極端な例として$X_2 = cX_1$としよう。この場合、$b_1 + b_2c$だけが問題であって、$b_1$それ自体には意味がない」。
 Cramerいわく、「$x_1$と$x_2$に高い相関があるときにはどちらかだけ使え、というアドバイスは、予測の状況では正しいが、理解という目的のためには正しくない」。
 Hultquistという人いわく、「回帰係数$b_i$は単独では無意味だ。それは$Y$の予測において、collectivelyに役割を果たす」。
 こういう引用において「無意味」と呼ばれている事態は、データがreduced-rankな構造を持っていることを直接にモデリングしなかったことの結果である。LVMRモデルは回帰係数を$B^*$として定義できる。それは$x,y,t$の線形関係という観点から有意味である。[←でも先生、それって一意には決まんないんでしょ....]
 云々。

 。。。いやー、自分なりに真剣に読んでみたんだけど、やはり学力が追い付かない内容であった。ケモメトリクスについて知らないから問題設定がわからないんだよな、と自分を慰めつつ...

 恥を恐れず、この論文のメッセージを要約すると、こういうことなんじゃないかと思う。
 PLS回帰を使おうとしているそこのあなた。あなたは、$X$には誤差があり、真の予測子は少数の潜在変数だと考えているわけだよね。あなたが推定したいのがなんなのかを考えるべきだ。$X$と$E(Y|X)$の関係 $B^\circ$を推定したいのか、それとも潜在変数$T$を固定したときの$E(X|T)$と$E(Y|T)$の関係 $B^*$を推定したいのか。あなたがやりたいことが予測なら、推定したいのは$B^\circ$であり、$X$の誤差分散に応じて回帰係数を割り引いてくれるOLS回帰がお勧め。あなたがやりたいことが説明なら、推定したいのは$B^*$であり、$X$の誤差分散がどうであれ回帰係数を泰然と維持してくれるPLS回帰がお勧め。

 ううううむ。わからん。
 回帰分析を説明という目的で行っているユーザが、きっとデータ生成構造は
 $y = t Q + f$
 $x = t P + e$
だ、よおしPLS回帰を使うぞ、と思うことがあるんだろうか? 仮にそうであれば、たとえばPLS因子数は実質科学的観点から決めるべきで、(通常行われているように)CVで決めるのは筋が通らないと思う。それに、もしそういうユーザがいたら、その人は負荷行列$P,Q$にのみ関心を持ち、$B^*$になんて関心を持たないのではないだろうか?
 むしろ、回帰分析を説明という目的で行っているユーザがわざわざPLS回帰を使う、もっとメジャーな理由はこうじゃなかろうか。「私ですか? いえ、別にreduced-rankなデータ生成構造とか$x$の誤差とか考えてません。単に$E(y|x) = xB$だと考えてます。私は$B=B^\circ = B^*$を推定したいんです。でもほら、OLSだとたしかに$\hat{B}$は$B$の一致推定量だけど、手元のデータはサイズが小さいので(or 説明変数間の相関が高いので)、$MSE(\hat{B})$が大きくなりそうなんですよね。ですからPLSを選びました」。
 こういう無節操なユーザに対して、いや流石にお目が高い、PLSの$\hat{B}$は($B^\circ$ではなく)$B^*$の特定の事例を近似的に不偏推定する推定量であり、つまり$X$の誤差分散の影響を受けませんからね...などと説明しても、ぽかーんとされるのではなかろうか。むしろ、分析者の推定対象は$B^\circ = B^*$であると考えて、

という2点を教えてあげるほうが大事なのではなかろうか...
 というか、私はそういう話を聞きたかったのだと気持ちが整理できたので、読んでよかった、ということにしよう。逆にいうと、PLS回帰モデルをデータ生成メカニズムのモデルとしてまじに捉える人がやっぱしいるんだな(その割には$\hat{B}$なんかをみちゃうんだな)、という点が勉強になった。

読了:Burnham et al. (2001) PLS回帰モデルの「回帰係数」をどう解釈するか

2019年12月26日 (木)

Szepannek, G. (2018) clustMixType: User-Friendly Clustering of Mixed-Type Data in R. The R Journal, 10(2), 200-208.

 数値変数とカテゴリカル変数が混じったデータを一発でクラスタリングするRパッケージclustMixTypeの紹介。実戦投入前の儀式として目を通した。ただのR Journalの記事だけど、読んだものはなんでも記録しておくのだ...

 いわく。
 Rで量質混合データをクラスタリングする方法としては以下がある。

 最近ではHuangのk-prototypeクラスタリングに基づく提案がたくさん出てきている。
 というわけで、お待たせしました、clustMixTypeパッケージのご紹介です。

 k-prototypesアルゴリズムというのは、次のような目的関数をとる分割クラスタリングである。$x_i$を個体$i$のベクトル, $mu_j$をプロトタイプ$j$のベクトルとして
 $E = \sum_i^n \sum_j^k u_{ij} d(x_i, \mu_j)$
$u_{ij}$は分割を表す二値変数で、任意の$i$について$\sum_j^k u_{ij} = 1$となる。
 さて、問題は距離の定義である。変数の数は$p$個、うち最初の$q$個の変数は数値で残りはカテゴリカルだとして、[以下、原文の表記がわかりにくいので、ベクトル$x_i$の$m$番目の要素を$x_{im}$と書く]
 $d(x_i, \mu_j) = \sum_m^q (x_{im} - \mu_{jm})^2 + \lambda \sum_{m=q+1}^p \delta(x_{im}, \mu_{jm})$
ただし、$\delta(a,b)$は$a=b$のときに1, そうでないときに0となる関数。
 $d()$はユークリッド距離と単純一致距離の重みづけ和となる。
 あとはk-meansアルゴリズムと似ていて、(1)プロトタイプをランダムに選び (2)それぞれの個体について、それを$d()$が一番小さいプロトタイプに割り当て、プロトタイプを更新、(3)動かなくなるか反復数が最大に達するまで(2)を繰り返す。
 プロトタイプとは、数値変数については平均、カテゴリカル変数についてはモードである。

 というわけで、clustMixTypeパッケージではkproto()関数をご用意している。
 この関数は重み$\lambda$をいい感じに決める。どうやるのかというと...
 もともとHuangは$(1/3)\sigma \leq \lambda \leq (2/3)\sigma$がいいんじゃないかと云っていた($\sigma$は数値変数のSDの平均)。
 いっぽうこの関数では、$\sigma$ないし$\sigma^2$と、カテゴリカル変数の集中度を測る$h_{cat}$の両方を考える。
 $h_{cat}$の決め方はふたつある。その1, $h_m = 1-\sum_c p^2_{mc}$の平均とする[つまり、各変数について水準の割合の平方和を1から引いて、平均をとるわけね]。その2, $h_m = 1-max_c p_{mc}$の平均とする[各変数について最大の水準の割合を1から引いて、平均をとるわけね]。デフォルトではその1。
 で、$\lambda$は$\sigma/h_{cat}$か$\sigma^2/h_{cat}$のどちらかにする。デフォルトでは前者。
 [えーと、分子は数値変数の分散が大きいときに大きくなり、分母はカテゴリカル変数の分布が分散しているときに大きくなる。要は分散のバランスをみているわけだ]

 [欠損はどう扱うかとか、アルゴリズムの高速化とか。メモ略]
 [事例。省略]

 ...うーむ。読めば読むほど、そんなことでいいんすか?という疑念がわくぞ。要するに、全部カテゴリカル変数だったら、個体間の距離は単純なハミング距離ってことですよね。それってどうなの。

読了: Szepannek (2018) RのclustMixTypeパッケージ

Gower, J.C. (1971) A general coefficent of similarity and some of its properties. Biometrics, 27, 857-874.
 量的変数と質的変数が混在しているデータで個体間の類似性を求めるとき、Gower距離というのを使うことがあるけど、これはその元論文。この時間がないときに、1971年の論文を読んでいるというモノ好きさときたら...

 要するにこういう話であった。2つの個体$i$と$j$の間の類似性$S_{ij}$を求めるためには、まず各変数$k$について以下を求める。

で、全変数を通じて平均して
 $S_{ij} = \sum_k s_{ijk} / \sum_k \delta_{ijk}$
とする。
 こうしてつくった個体の類似性行列(個体数$n$なら$n \times n$)は、欠損がない限り半正定値なのだそうだ(証明は読んでないけど)。
 単に変数を通じて平均するんじゃなくて、なんらか変数に重み$w_k$を振って
 $S_{ij} = \sum_k s_{ijk} w_k / \sum_k \delta_{ijk} w_k$
もよい($w_k \geq 0$なら類似性行列はやはり半正定)。
 いっそ$w_k$を個体ペアごとに変え、2つの個体のその変数の値によって決めるという手もある。さすがにこの場合は半正定はならないかもしれない由。 

 ... 後半は変数に階層性があるときの話らしいんだけど、いま関心ないのでパス。そういう場合の類似性の係数についてさんざん説明しておいて、「しかし私はこの係数の利用を勧めるのにかなりためらいを感じる。というのは、私自身は使ったことがないし使いたいと思ったこともないからだ」だそうです。はっはっは。

読了: Gower (1971) 質と量が混じっているときの類似性係数(人呼んでGower距離)

 データの中に量的変数もあればカテゴリカル変数もある、そいつらをひっくるめて多変量解析にかけたい(たとえば個体をクラスタリングしたい)、というような状況をmixed dataの分析と呼ぶことがある。データ解析手法の話題としては比較的マイナーかもしれないけれど、日々の仕事のなかでは全然珍しくない、それどころか、むしろそういうのが通常営業である。
 mixed dataのクラスタリング手法としてぱっと思いつくのは、(1)縮約してクラスタリングする(MCAからk-meansとか、Rのclusterdパッケージとか)、(2)距離行列を出してクラスタリングする(Gower距離からk-medoidsとか)、(3)四の五の言わずに潜在クラスモデルを組む、の3つだが、私はMplus信者なので、他の手法も試すとしても、とにかく(3)は絶対にやる。やらいでか。
 しかし、こんど仕事の都合で出てきそうな奴は結構大きなデータなので、うっかりMplusなんかに食わせちゃったら、生きている間に終わらない...

Ahmad, A., Khan, S. (2019) Survey of state-of-the-art mixed data clustering algorithms. IEEE Access, 7.
 というわけで、mixed dataのクラスタリングについてのサーヴェイ論文。本番では悩んでいる時間がとれなさそうなので、事前の予習のつもりで目を通した。

先行研究レビュー
 5つの領域に分けて整理する。

A. 分割型クラスタリング。
 k-means法のように、データ点$d_i$について(1)それが属するクラスタの中心$C_i$を定義し、(2)距離$\xi(d_i, C_i)$を定義し、(3)コスト関数$\sum_i^n \xi(d_i, C_i)$を反復で最小化する、というタイプの手法。データ点の数に対して線形だし、並列化可能である。
 特徴の型が混合している場合の提案としては以下がある。

 いったん数値特徴データに変換してからk-meansとかやればいいじゃん、というアプローチもある。

 その他の提案として、

 さて、partitional clusteringに共通の難題がふたつある。
 その1. クラスタ中心の初期値をどうするか...[メモ省略]
 その2. クラスタ数をどう決めるか...[メモ省略]

B. 階層クラスタリング。
 個体間の距離行列がありリンケージ基準があります、という手法。トップダウンかボトムアップかは問わない。たいていの場合、時間は$O(n^3)$、メモリは$O(n^2)$必要。
 特徴の型が混合している場合の提案としては...

C. モデル・ベースのクラスタリング。
 データ点がなんらかのモデルに一致しているとみる手法。

D. ニューラル・ネットワーク・ベースのクラスタリング。
大きく分けて自己組織化マップ(SOM)と適応共鳴理論(ART)がある。どちらもカテゴリカル変数には工夫が必要。

E. その他。

サーヴェイした結果の分析
 結局、一番実用的なのは分割型クラスタリングだろう。単純だしスケールするから。[おいおい、身も蓋もねえな]
 混合データのクラスタリング研究の多くは、教師ラベルつきのデータを教師ラベル抜きでクラスタリングして、結果を教師ラベルと比べている。[その比べ方がしょぼいよね、という批判が最後のほうに出てきた]
 同じデータでアルゴリズムを比較している研究は見当たらない。みんなそれぞれ好きなデータを使っている。[それではいかんよねという話が最後のほうに出てきた]

ソフトウェアとアプリケーション
Rでは...

 MATLABでは...[略]。
 主要な応用分野としては...[めんどくさいのでスキップ]

影響を与える領域と今後の課題
 これから影響を与えるであろう領域としては...[略]
 今後の課題は:

オープン・クエスチョンとしては... [箇条書きで13個くらい書いてあったけど省略。従来のconstrained clusteringに限らず、もっと領域知識をうまく使う方法を考えたほうがいいんじゃないの、なんて書いてあって、そりゃそうだなあと思った]

 ... やれやれ、疲れた。
 とりあえず概観できたのでありがたいけど、手元に抱えている問題に対してはなんの解決にもなってない... さあどうしよう...

読了:Ahmad & Khan (2019) 量質混在データのクラスタリング手法レビュー

2019年11月28日 (木)

 しばらく前に、$n$個の二値変数の同時分布を少数のパラメータでうまく表現しなければならない、という用事があり、さんざっぱら悩む羽目になった。地べたを這いずり回るような仕事をしているもので、時々そういう変な用事が出現するのである。なんかさあ!AIがどうとかさあ!ディープラーニングがどうとかさあ!そういう華やかな仕事をしたいもんだよね! (嘘です。仕事せず寝ているのが理想だ)
 この話題、専門の方には簡単なんだろうけど、私にはかなり難しくて、途中でかなりの混乱に陥った。恥ずかしながら当初は、多変量正規分布と同じパラメータ数があれば十分だろう、つまり、周辺割合が$n$個、2変数間の連関を表すパラメータが$n(n-1)/2$個あれば十分だろう、と思い込んでいたのである。なんとなく多次元IRTやカテゴリカル因子分析モデルが頭にあって、個々の二値変数の背後に正規潜在変数があるというのを自明視していたような気がする。いやー、おかげでずいぶん回り道をした。
 冷静に考えると、必要なパラメータ数は$2^n-1$個である。なぜ多変量正規分布よりもパラメータ数が増える??とまたまた混乱したのだが、お世話になっている先生に意外な角度からのアドバイスを頂いたりして(さすがプロの研究者はちがう...)、数日かけて頭を冷やし、素人ながらもなんとなく腑に落ちてきた。普段あまり意識していなかったけど、多変量正規性というのは結構きつい制約なんですね。反省。
 というわけで、個人的には学ぶところ多かったが、これを考える事情をもたらした案件のほうは中止になってしまい、私の苦闘は丸ごと無駄に終わった。どうもそういう人生みたいだ。

Teugels, J.L. (1990) Some representation of the multivariate bernoulli and binomial distributions. Journal of Multivariate Analysis. 32(2), 256-268.
 上記の都合により、勉強のつもりで読んだ論文。

 多変量ベルヌーイ分布、つまり複数のベルヌーイ変数の分布について考える。

 まずは2変数の場合について考えよう。以下、$p_{00}=P(X_1 = 0, X_2 = 0)$という風に書くことにする。
 2変数の場合のパラメータは3つである。その3つは、$p_{00}, p_{10}, p_{01}, p_{11}$のうちどれか3つだと考えてもいいし(当然ながら4つの和は1だから)、ふたつの周辺分布$p_1 = E(X_1) = P(X_1 = 1), p_2$と、$\sigma_{12} = E(X_1-p_1)(X_2-p_2)$の計3個だ、と考えてもいい。
 [ちょっとわかりにくいけど、$p_{00}$の添字は値を示し、$p_1$や$\sigma_{12}$の添字は変数番号を示している]

 $q_1 = 1-p_1$という風に書くとして、
 $p_{00} = q_1 q_2 + \sigma_{12}$
 $p_{10} = p_1 q_2 - \sigma_{12}$
 $p_{01} = q_1 p_2 - \sigma_{12}$
 $p_{11} = p_1 p_2 + \sigma_{12}$
と書ける。行列だと、$\mathbf{p}^{(2)} = [p_{00}, p_{10}, p_{01}, p_{11}]^T$として、
 $\displaystyle \mathbf{p}^{(2)} = \left[\begin{array}{cc} q_2 & -1 \\ p_2 & 1 \end{array} \right] \otimes \left[\begin{array}{cc} q_1 & -1 \\ p_1 & 1 \end{array} \right] \left[\begin{array}{c} 1 \\ 0 \\ 0 \\ \sigma_{12} \end{array}\right]$
と書ける。
 [ええええ? という感じだけど... $\otimes$はクロネッカー積を表していて、この例だと、右側の行列に$q_2$を掛けたのを左上、$-1$を掛けたのを右上、$p_2$を掛けたのを左下、$1$を掛けたのを右下においた4x4の行列ができる。その右から掛けている縦ベクトルは2行目と3行目が0だから、この行列の2列目と3列目は無視するとして、1列目は上から$q_1 q_2, p_1 q_2, q_1 p_2, p_1 p_2$になるし、4列目は上から$1, -1, -1, 1$になるから、なるほど、行列にする前と比べてつじつまが合っている]

 あるいは、$\sigma_{12}$のかわりに$\mu_{12} = E X_1 X_2 = \sigma_{12}+p_1 p_2 = p_{11}$を使ってもよい。このとき、
 $p_{00} = 1-p_1-p_2+\mu_{12}$
 $p_{10} = p_1 -\mu_{12}$
 $p_{01} = p_2 - \mu_{12}$
 $p_{11} = \mu_{12}$
と書ける。[こっちのほうがなんとなく親しみがわきますね]
 行列だと
 $\displaystyle \mathbf{p}^{(2)} = \left[\begin{array}{cc} 1 & -1 \\ 0 & 1 \end{array} \right] \otimes \left[\begin{array}{cc} 1 & -1 \\ 0 & 1 \end{array} \right] \left[\begin{array}{c} 1 \\ p_1 \\ p_2 \\ \mu_{12} \end{array}\right]$
となる。[ああ... クロネッカー積というのを持ち出してきた理由がやっとわかった]

 3変数に拡張してみよう。
 新たに$\theta = E(X_1 - p_1)(X_2 - p_2)(X_3 - p_3)$を導入する。パラメータは$p_1,p_2,p_3,\sigma_{12},\sigma_{13},\sigma_{23},\theta$の7つになり、行列で書くと
 $\mathbf{p}^{(3)} = \left[\begin{array}{cc} q_3 & -1 \\ p_3 & 1 \end{array} \right] \otimes \left[\begin{array}{cc} q_2 & -1 \\ p_2 & 1 \end{array} \right] \otimes \left[\begin{array}{cc} q_1 & -1 \\ p_1 & 1 \end{array} \right] \left[ \begin{array}{c} 1 \\ 0 \\ 0 \\ \sigma_{12} \\ 0 \\ \sigma_{13} \\ \sigma_{23} \\ \theta \end{array} \right]$
となる。
 [なんだか騙されたような気分だ... なんでこういう風になるのか、いまいち腑に落ちないんだけど、とにかく先に進もう]

 $\mathbf{p}^{(n)}$へと一般化しよう。
 $\mathbf{p}^{(n)}$は長さ$2^n$のベクトルである。いま、$k_i \in \{0,1\}$として、$(k_1, k_2, \ldots, k_n)$と一対一に対応するbinary expansion形式の変数
 $k = 1 + \sum_{i=1}^{n} k_i 2^{i-1}$
を考えよう。$p_{k_1,k_2,\ldots,k_n}$ は$p_k^{(n)}$と書きかえられる。
 [なにをほざいておるのかというと、$(k_1, k_2, \ldots, k_n)$に順に$1, 2, 4, 8, \ldots$という重みを振った加重和に1を足して$k$と呼びましょうということである。要するに、$\mathbf{p}^{(n)}$の要素番号を$k$としましょうってことね]
 以下では$Y_i = 1-X_i$と書く。[原文では$\bar{X}_i$なんだけど、わかりにくいので勝手に書き換えた]
 以下のように書ける。
 $p_k^{(n)} = P(\cap_{i=1}^n [X_i = k_i]) = E(\prod_{i=1}^n X_i^{k_i} Y_i^{1-k_i})$

 さて、一般に$2 \times 1$ベクトルのクロネッカー積は次の性質を持つ:
 $\left[ \left[ \begin{array}{c} a_n \\ b_n \end{array} \right] \otimes \left[ \begin{array}{c} a_{n-1} \\ b_{n-1} \end{array} \right] \otimes \cdots \otimes \left[ \begin{array}{c} a_1 \\ b_1 \end{array} \right] \right]_{k} = \prod_{i=1}^n a_i^{1-k_i} b_i^{k_i}, \ \ 1 < k < 2^n$
 [なにをぬかしておるのかというと、たとえば$n=2$のとき、
 $\left[ \begin{array}{c} a_2 \\ b_2 \end{array} \right] \otimes \left[ \begin{array}{c} a_1 \\ b_1 \end{array} \right] = \left[ \begin{array}{c} a_2 a_1 \\ a_2 b_1 \\ b_2 a_1 \\ b_2 b_2 \end{array} \right]$
だよね? で、たとえば$k=2$(つまり$k_1=1, k_2=0$)番目の要素をみると、これは$a_1^{1-k_1} b_1^{k_1} \times a_2^{1-k_2} b_2^{k_2}=a_1^0 b_1^1 \times a_2^1 b_2^0$だよね? つまり、クロネッカー積の$k$番目の値がほしかったら、その$k$を$(k_1, k_2, \ldots, k_n)$に戻し、$i=1, \ldots, n$について、$k_i$が0だったら$a_i$, $1$だったら$b_i$を拾ってきて掛ければいいんだよ、ということであろう。そういわれればそうなんだけど、よくもまあ、こんな難しい書き方を...]
 $a_i = Y_i, b_i = X_i$とすると、
 $\mathbf{p}^{(n)} = E \left( \left[ \begin{array}{c} Y_n \\ X_n \end{array} \right] \otimes \left[ \begin{array}{c} Y_{n-1} \\ X_{n-1} \end{array} \right] \otimes \cdots \otimes \left[ \begin{array}{c} Y_1 \\ X_1 \end{array} \right] \right)$
となる。

 さて。$\mathbf{\mu}^{(n)}$, $\mathbf{\sigma}^{n}$を次のように定義する。それぞれの$k$番目の要素について、
 $\mu_k^{(n)} = E \left( \prod_{i=1}^{n} X_i^{k_i} \right) = E \left( \left[ \begin{array}{c} 1 \\ X_n \end{array} \right] \otimes \left[ \begin{array}{c} 1 \\ X_{n-1} \end{array} \right] \otimes \cdots \otimes \left[ \begin{array}{c} 1 \\ X_1 \end{array} \right] \right)_k$
 $\sigma_k^{(n)} = E \left( \prod_{i=1}^{n} (X_i-p_i)^{k_i} \right) = E \left( \left[ \begin{array}{c} 1 \\ Y_n \end{array} \right] \otimes \left[ \begin{array}{c} 1 \\ Y_{n-1} \end{array} \right] \otimes \cdots \otimes \left[ \begin{array}{c} 1 \\ Y_1 \end{array} \right] \right)_k$
 [ぴんとこないので$n=2, k=4$(つまり$k_1 = 1, k_2=1$)について考えると、
 $\mu_4^{(2)} = E( X_1^{k_1} X_2^{k_2} ) = E( X_1 X_2 ) $
つまりこれは最初の練習に出てきた$\mu_{12}$である。
 $\sigma_4^{(2)} = E ( (X_1-p_1)^{k_1} (X_2-p_2)^{k_2} ) = E (X_1-p_1)(X_2-p_2)$
つまりこれは最初の練習に出てきた$\sigma_{12}$である。はいはい]

 以下の定理を得ることができます。[証明は省略する。すいません、私ただのしがない労働者ですもんで]

 定理1-1.
 $\mathbf{p}^{(n)} = \left[ \begin{array}{cc} 1 & -1 \\ 0 & 1 \end{array} \right]^{\otimes n} \mathbf{\mu}^{(n)}$
 かつ
 $\mathbf{\mu}^{(n)} = \left[ \begin{array}{cc} 1 & 1 \\ 0 & 1 \end{array} \right]^{\otimes n} \mathbf{p}^{(n)}$

 パラメータ数は$2^n-1$個となる。$\mathbf{\mu}^{(n)}$の長さは$2^n$だが、$\mu_1^{(n)}=1$だから。

 定理1-2.
 $\mathbf{p}^{(n)} = \left[ \begin{array}{cc} q_n & -1 \\ p_n & 1 \end{array} \right] \otimes \left[ \begin{array}{cc} q_{n-1} & -1 \\ p_{n-1} & 1 \end{array} \right] \otimes \cdots \otimes \left[ \begin{array}{cc} q_1 & -1 \\ p_1 & 1 \end{array} \right] \mathbf{\sigma}^{(n)}$
 かつ
 $\mathbf{\sigma}^{(n)} = \left[ \begin{array}{cc} 1 & 1 \\ -p_n & q_n \end{array} \right] \otimes \left[ \begin{array}{cc} 1 & 1 \\ -p_{n-1} & q_{n-1} \end{array} \right] \otimes \cdots \otimes \left[ \begin{array}{cc} 1 & 1 \\ -p_1 & q_1 \end{array} \right] \mathbf{p}^{(n)}$

 パラメータ数はどうなるか。$\mathbf{\sigma}^{(n)}$の長さは$2^n$だが、$k_1 + k_2 + \cdots + k_n = 1$の箇所は0になるから、$2^n -n - 1$個。これが依存性を表しているわけだ。これに加えて$p_i$が$n$個あるから、結局パラメータ数は$2^n-1$である。[あー!なるほどねえ!]

 [ここからは、多変量ベルヌーイ分布の確率母関数の導出。メモは省略]

 なお、分割表の分析には対数線型モデルが使われることも多い。たとえば$n=3$の飽和モデルは、クロネッカー積を使えば次のように書ける。$v_{ijk} = \log p_{ijk}$のベクトルを$\mathbf{v}^{(3)}$として、
 $\mathbf{v}^{(3)} = \left[ \begin{array}{cc} 1 & 1 \\ 1 & -1 \end{array} \right]^{\otimes 3} \mathbf{\lambda}^{(3)}$
ただし$\mathbf{\lambda}^{(3)} = (\mu, \lambda_1, \lambda_2, \lambda_{12}, \lambda_3, \lambda_{13}, 0, \phi)^T$。
 [ほんまかいな? というわけで、展開してみると...
 $\left[\begin{array}{c} v_{000} \\ v_{100} \\ v_{010} \\ v_{110} \\ v_{001} \\ v_{101} \\ v_{011} \\ v_{111} \end{array} \right] = \left[ \begin{array}{cccccccc} +1 & +1 & +1 & +1 & +1 & +1 & +1 & +1 \\ +1 & -1 & +1 & -1 & +1 & -1 & +1 & -1 \\ +1 & +1 & -1 & -1 & +1 & +1 & -1 & -1 \\ +1 & -1 & -1 & +1 & +1 & -1 & -1 & +1 \\ +1 & +1 & +1 & +1 & -1 & -1 & -1 & -1 \\ +1 & -1 & +1 & -1 & -1 & +1 & -1 & +1 \\ +1 & +1 & -1 & -1 & -1 & -1 & +1 & +1 \\ +1 & -1 & -1 & +1 & -1 & +1 & +1 & -1 \end{array} \right] \left[ \begin{array}{c} \mu \\ \lambda_1 \\ \lambda_2 \\ \lambda_{12} \\ \lambda_3 \\ \lambda_{13} \\ 0 \\ \phi \end{array} \right]$
 右辺左側の正方行列は、1列目から順に、全平均、要因$i$の主効果、$j$の主効果, $i \times j$の交互作用効果、$k$の効果、$i \times k$の交互作用効果、$j \times k$の交互作用効果、$i \times j \times k$の二次交互作用効果になっている(というか、L8直交表の左に1の列を付け加えた形になっている)]

 これを最初で示した例と見比べると、パラメータ数はどちらも7だけど、解釈が異なる。
 我々の$\mathbf{p}^{(n)} = A_n \mathbf{\sigma}^{(n)}$という書き方だと、$\theta=0$とすることなく$\sigma_{12} = \sigma_{13} = \sigma_{23} = 0$とおける。つまり、対数線型モデルのように階層的構造を考える必要がない。
 さらに、我々の定式化だと、ひとつ以上の$p_{ijk}$が0であってもなんの問題もない。対数線型モデルでは結構難しくなる。
 云々...

 ... ここまでが論文の前半。後半は多変量二項分布の話になり、いま関心ないのでパス。
 習わぬお経を無理矢理読むようなつもりでメモをとったが、それなりに勉強になった。クロネッカー積を使うとこんなに綺麗に書ける、っていうところに感心した。世の中には頭のいい奴がいるものだ。

読了:Teugels (1990) 多変量ベルヌーイ分布をどうやって表現するか

2019年11月15日 (金)

 ふつうのデータ分析のなかで個体のクラスタリングをやるように、ネットワーク・データの分析の際にもノードのクラスタリングをやりたくなることがある。この分野ではクラスタじゃなくてコミュニティと呼ぶことが多いと思うけど。
 個体のクラスタリングと同様、コミュニティ検出の方法もいろいろありすぎて、私のような素人は困惑してしまうのだが、中にはやたら時間とメモリを食う奴もあれば、逆に法外に早くできちゃう奴もある。時間がかかる分にはあきらめがつくが、あまりにパッと答えが出ちゃうのは、ありがたいけどなんだか気持ち悪い...という気がする。好き勝手云ってすいません。

Clauset, A., Newman, M.E.J., Moore, C. (2004) Findng community structure in very large networks. arXiv:cond-mat/0408187v2. 
 というわけで、igraph の cluster_fast_greedy() のドキュメントで引用されていた資料を読んでみた。
 Rのigraphパッケージには, コミュニティ検出の手法としてedge betweenness, fast greedy, label prop, leading eigen, louvain, optimal, spinglass, walktrapの8つが載っているが、このうちfast greedyというのは100万ノードくらいあるグラフであっても数分でコミュニティを返してくるので、なんだか気味が悪いのである。お前真面目にやっとんのかといいたくなる。

 ノードの隣接行列を$A$とする。ノード$v$と$x$がつながっているかどうかを$A_{vw}$とする。$i=v$のときに1、そうでないときに0になる関数を$\delta(i,j)$とする。グラフのエッジ数を$m=(1/2) \sum_{vw} A_{vw}$とする。
 ノード$v$が属するコミュニティを$c_v$とする。エッジのうち、両端が同じコミュニティに落ちている割合は、
 $\displaystyle \frac{\sum_{vw} A_{vw} \delta(c_v, c_w)}{\sum_{vw} A_{vw}} = \frac{1}{2m} \sum_{vw}A_{vw} \delta(c_v, v_w)$
 となる。この量はネットワークをうまく分割できているときに大きくなるけれど、これ自体はコミュニティ構造の指標にはなれない。すべてのノードが同じコミュニティに属していれば1になるから。
 そこで、この量からランダムグラフにおけるこの量の期待値を引く。ノードの次数を$k_v = \sum_w A_{vw}$として、ランダムグラフにおいて$v$と$w$の間にノードがある確率は$k_v k_w/2m$だから、
 $\displaystyle Q = \frac{1}{2m} \sum_{vw} \left( A_{vw} - \frac{k_v k_v}{2m} \right) \delta(c_v, c_w)$
 これがみなさまご存知の modularity。経験的には、Qが0.3以上のときネットワークには顕著なコミュニティ構造がある。[←へー]

 ネットワークのコミュニティへの分割がうまくいっているときmodularityが高いなら、modularityが高くなるような分け方を探せばいいことになる。しかし、すべての分割を通じて大域的に最大のmodularityを探すのは大変なので、なんらか近似的な最適化手法を考えたい。
 というわけでですね、かつて我々はNewman(2004)でこういう手法を提案いたしました。まだコミュニティに属していないひとりきりのノードたちからはじめて、Qがもっとも大きくなるような併合を探す。これを$n-1$回繰り返すとついに全員が単一のコミュニティに入ることになる。こうして、ノードを葉としたデンドログラムができる。[←要はあれですかね、F比を評価関数にして凝集型階層クラスタリングをやるようなもんですかね]

 さて、この提案の折には、隣接行列を整数の行列として持っておいて毎回行と列をマージしていけばいいや、と思っていた。しかし巨大な疎行列の場合、ほとんどの要素が0なので、この作業は無駄である。
 そこで本日はもっと効率的な方法を御提案します。[←ええええ? そういう論文なの?]

 ... というわけで、いちおう最後までめくったけど、論文の主旨は計算を速くするための工夫の話だったので、メモは省略。よくわからんが、ネットワークの隣接行列を更新するんじゃなくて、ネットワークのコミュニティの隣接行列を更新すればよくね? というような話らしい。
 要するに... やっていることは階層的クラスタリングなんだけど、ネットワーク・データの場合は元の距離行列が疎なので、計算をめっちゃ速くするテクニックがあります、ということらしい。ふうん。

読了:Clauset, Newman, Moore (2004) すごく大きなネットワークにおけるコミュニティ検出

2019年10月23日 (水)

 たとえば、いまサイズ4の標本があり、ある変数の値が小さい順に100, 200, 300, 300であったとする。標本中央値は250ですわね。では40パーセンタイルは?
 これは意外にややこしい話で、以前気が付いたんだけど、ソフトによって出力が異なるのである。
 こんな細かいことに気を揉んでも一銭の得にもならん、くわばらくわばら...と思っていたが、このたび勤務先のお仕事の関係で関連するお問い合わせを受け、まあこれも機会であろうと思い、ちょっと調べてみた。

Hyndman, R.J. & Fan, Y. (1996) Sample Quantiles in Statistical Packages. American Statistician, 50, 361-365.
 この話になるとよく引用される論文はこれだという印象だけがあったのだが、実際に手に入れてみたら、4pの短いコラムのような記事であった。

 いわく。
 分布関数を$F(x)$として、分位数とは
 $Q(p) = F^{-1}(p) = inf \{x: F(x) \geq p \}, \ \ 0 < p < 1$
だが、これを標本においてどう定義するか。

 以下、$i$番目の定義を$\hat{Q}_i(p)$とする。標本を$\{X_1, \ldots, X_n\}$とし、その順序統計量を$\{X_{(1)}, \ldots, X_{(n)}\}$とする[小さい順に並べて$3$番目の値を$X_{(3)}$と書きますってことでしょうね]。
 $u$を超えない最大の整数を$L(u)$, $u$を下回らない最小の整数を$U(u)$と書く[←原文ではあまり見たことない記号を使っているので、このメモではこのように略記する。以下、$u$に負値が来ることはなさそうだから、要は$u$の端数を切り捨てたら$L(u)$, 切り上げたら$U(u)$ね]

 標本分位数の定義はソフトによってさまざまである。一般化して書くと、

 $\hat{Q}_i(p) = (1-\gamma) X_{(j)} + \gamma X_{(j+1)}$
ただし $\frac{j-m}{n} \leq p \leq \frac{j-m+1}{n}$、$m$は実数、$0 \leq \gamma \leq 1$。
 $\gamma$は $j = L(pn + m)$と$g = pn + m - j$の関数である。

 [著者らは頭が良すぎるせいか抽象化しすぎているので、具体例を使って、私にもわかるように書き換えよう。
 標本$\{100, 200, 300, 300\}$(サイズ$n=4$と書く)の40パーセンタイル($p=0.4$と書く)とは、$j$番目の値と$j+1$番目の値の間の区間のどこかにある点である。その点からその区間の左端までの長さが区間の幅の$(1-\gamma)$倍であり、その点からその区間の右端までの長さが区間の幅の$\gamma$倍であるとしよう。ソフトによるちがいは、結局は$j$と$\gamma$の決め方の問題にすぎない。
 $j$の決め方のひとつは、$np = 4 \times 0.4 = 1.6$ の端数を切り捨てた値とする、というものである。このデータ例だと$j=1$、つまり100と200の間ということになる。ソフトによっては端数を切り捨てる前に$m$を足すものもある。たとえば$m=0.5$なら$j=2$、つまり200と300の間ということになる。
 $\gamma$の決め方にはいろいろあるんだけど、どの決め方にせよ、それは$j$と、切り捨てた端数$g$のふたつによって決まる。]

 さて、標本分位数$\hat{Q}_i(p)$に期待される特性として次の6つを挙げることができる。

 大変ながらくお待たせしました。それでは!選手の入場です!

 定義1.

$m=0$とする。$g > 0$のとき$\gamma = 1$, $g = 0$ のとき$\gamma = 0$とする。

 この定義は以下の性質を持つ。
 $Freq(X_k \leq \hat{Q}_1(p)) = U(pn)$
 $Freq(X_k \geq \hat{Q}_1(1-p)) = L(pn+1)$
 P2を満たす。また$n$が奇数の時P6を満たす。他の特性は満たさない。
 [上の具体例でいうと、$j$は$0.4 \times 4 = 1.6$の端数を切り捨てた値, すなわち$1$。切り捨てが起きているので$\gamma = 1$、よって答えは$j+1$番目の値200となる。それ以下の値の個数は2、これは$1.6$の端数を切り上げた値に等しい。なお、60パーセンタイルは300、それ以上の値の個数は2となり、これは$1.6+1$の端数を切り捨てた値に等しい]

 定義2.

$m=0$とする。$g > 0$のとき$\gamma = 1$, $g = 0$ のとき$\gamma = 0.5$とする。

 この定義は以下の性質を持つ。
 $Freq(X_k \leq \hat{Q}_2(p)) = Freq(X_k \geq \hat{Q}_2(1-p)) = U(pn)$
 P2, P3のみを満たす。
 [定義1とほぼ同じなのだが、$pn$が端数を持たなかったときの扱いが異なる。たとえば上の具体例での25パーセンタイルは、定義1では100となるが、定義2では100と200の中点すなわち150となる。なんだか奇妙な定義だが、たとえば20パーセンタイル以下の値の個数と80パーセンタイル以上の値の個数が常に一致し$U(0.2n)$となる、つまりP3の特性を持つというメリットがあるわけだ]

 定義3.

$m=-0.5$とする。$g > 0$のとき$\gamma=1$とする。$g=0$の場合、jが偶数ならやはり$\gamma=0$, 奇数の場合は$\gamma=1$とする。

 この定義はP2のみを満たす。
 [上の具体例でいうと、40パーセンタイルを求めるとして、$j$は$np - m = 1.6-0.5= 1.1$の端数を切り捨てた値1となる。切り捨てが起きたので2番目の値200を採用する。切り捨てが起きなかったときがなんだかややこしいが、まあその値だかその次の値だかを使うわけだ]

 以上の定義では、分位数は$j$番目の値か$j+1$番目の値かその中点であり、つまり非連続的である(P1を満たさない)。
 ここからは区間ごとに線形関数を考えて内挿するタイプの定義で、すべてP1を満たす。
 以下、$\hat{Q}_i (p_k) = X_{(k)}$と書く。
 [つまりですね、横軸に$X_{(k)}$、縦軸に$\hat{Q}_i (p_k) = X_{(k)}$となる$p_k$をとり、点$k=1, \ldots, n$が布置する散布図を書いて、点と点を直線でつなぐ。で、たとえば水平線$Y=0.4$との交点を求めてこれを40パーセンタイルとしようという算段である。問題は$p_k$をどう定義するかだ]

 定義4.

$p_k = k/n$として線形に内挿する。

 この定義はP1, P2を満たす。
 [上の具体例でいうと、40パーセンタイルを求めるなら、点$(100,1/4)$と点$(200,1/4)$を結ぶ線分と、水平戦$Y=0.4$との交点をもとめるわけね。40パーセンタイルは160となる。素直な発想だが、このやり方だと50パーセンタイルは200になり、通常の標本中央値と合致しなくなる、つまりP6は満たされない]

 定義5.

$p_k = (k-0.5)/n$として線形に内挿する。

 P1からP6のすべてを満たす。
 [上の具体例でいうと、40パーセンタイルを求めるなら、点$(200,1.5/4)$と点$(300,2.5/4)$を結ぶ線分と、水平線$Y=0.4$との交点をもとめるわけだ。40パーセンタイルは 210。50パーセンタイルは250となり、通常の標本中央値と合致する]

 定義4-5には分布の分位数を推定するという視点が欠けている。いっぽう定義6-8は、$F(X_{(k)})$のなんらかの特性値を$p_k$にするというもの。いま$F(X_k)$が一様分布とすれば、$F(X_{(k)})$はベータ分布$Beta(k, n-k+1)$になるので、そのなんらかの特性値を使う。[←この理屈がいまいちぴんとこないんだけど... $F(X_k)$は実際には一様分布じゃないっすよね...]

 定義6.

$p_k = k / (n+1)$として線形に内挿する。

 これは$F(X_{(k)})$の期待値である。P3以外の5つの特性を満たす。
 [上の具体例でいうと、40パーセンタイルを求めるなら、点$(200,2/5)$と点$(300,3/5)$を結ぶ線分と$Y=0.4$との交点を求めるわけだ。40パーセンタイルは200, 45パーセンタイルだったら225]

 定義7.

$p_k = (k-1) / (n-1)$として線形に内挿する。

 これは$F(X_{(k)})$の最頻値である。P1,P2,P4,P6を満たす。
 [上の具体例でいうと、40パーセンタイルを求めるなら、点$(200,1/3)$と点$(300,2/3)$を結ぶ線分と$Y=0.4$との交点を求めるわけだ。答えは220]

 定義8.

$p_k = (k-1/3)/(n+1/3)$として線形に内挿する。

 これは$F(X_{(k)})$の中央値の近似である。P3以外の5つの特性を満たす。
 [上の具体例でいうと、40パーセンタイルを求めるなら、点$(200,1.666/4.333)$と点$( 300,2.666/4.333)$を結ぶ線分と、$Y=0.4$との交点を求めるわけってことか...答えは206.66]

 定義9は視点が違って、$F$が正規分布だと仮定し、$F(E(X_{(k)}))$を求めるというもの。定義6では$F(X_{(k)})$の期待値を考えたが、ここでは$X_{(k)}$の期待値を考える。次の定義で近似できる由。

$p_k = (k-3/8)/(n+1/4)$として線形に内挿する。

 P3以外の5つの特性を満たす。
 [上の具体例でいうと...めんどくさいので省略するが、40パーセンタイルは207.5となる模様]

 特性だけでいえば優れているのは定義5である。いっぽう推定という観点からは、定義8は$F$の形状を問わず$Q(p)$のmedian-unbiasedな推定値であり、これがもっとも優れている。
 思えば、標本分散の定義もいろいろありうるが(直観的にはnで割るのが分かりやすいし、正規分布ならn+1で割ればMSE最小になる)、不偏性を重んじてn-1で割るというのが標準になっている。いっぽう標本分位数の定義は標準化されていない。由々しいことだ。ソフトメーカーのみなさん、定義8に統一しませんか。

 ... 細かいところはよくわかんないんですけど、勉強になりましたです。
 ところで、第1著者Hyndman先生は2016年のブログ記事でこの論文について振り返っている。いわく、この論文はある時期からすごく引用されるようになった(そのきっかけのひとつはWikipediaに論文へのリンクが載ったからだが、実は先生がご自分で載せたのだそうだ。ここ笑っちゃった)。しかし思いの丈は果たされなかった。各ソフトウェアは標本分位数のデフォルトを定義8に統一するのではなく、むしろこれまで実装していなかった定義も実装するようになってしまった... とぼやいておられる。面白いなあ。

 現時点での各種ソフトはどうなっているだろうか。
 Rの場合。そもそもRのstats::quantile()を書いた人のひとりがHyndman先生その人であるからして、この論文の定義の番号に合わせ、たとえば quantile(x, type = 8) という風に書けばよい。ただしデフォルトは先生の意に反し、S言語での定義に合わせた定義7となっている。

 私は使っていないけど、時々お問い合わせを受けるのがSPSSの挙動である。どうなっているのか。
 手元にあるIBM SPSS 24のStatistic AlgorithmsというPDFによると(ここからダウンロードできる)、単変量の記述統計量を求めるEXAMINEコマンドは、分位数として5つの定義を実装している。FAQページにいわせるとデフォルトはHAVERAGEという定義だ。
 PDFによればHAVERAGEの定義は次の通り。

標本サイズを$W$, $p$パーセンタイルを$x$, 重複を取り除いた$i$番目の値を$y_i$, その度数を$c_i$, 累積度数を$cc_i$と表記する。$tc_2 = (W+1)p$とし、$cc_i$で区切られる区間のうち$tc_2$が落ちる区間の下限を$cc_{k_2}$とする。$g^{*}_2 = tc_2 - cc_{k_2}$, $g_2 = g^{*}_2 / c_{k_2+1}$として、

  • $g^{*}_2 \geq 1$のとき $x = y_{k_2+1}$
  • $g^{*}_2 < 1$ かつ $c_{k_2+1} \geq 1$のとき$x = (1-g^{*}_2)y_{k_2} + g^{*}_2 y_{k_2+1}$
  • $g^{*}_2 < 1$ かつ $c_{k_2+1} < 1$のとき$x = (1-g_2)y_{k_2} + g_2 y_{k_2+1}$

うむむ、ややこしい。
 話がややこしくなっているのは、SPSSではローデータの個々の行に対して整数でない頻度ウェイトを与えることができるからである。
 話を簡単にするために、頻度ウェイトは1以上の整数としよう(頻度ウェイトとは標本におけるその行の頻度であるから、本来は1以上の整数になるはずである)。このとき$y_i$の度数$c_i$は1以上の整数になるので、3本目の式は無視できる。
 1本目、$tc_2$が区間下限$cc_{k_2}$より1以上離れていたら区間の上限を採用するというのは、たとえば$\{100, 200, 300, 300\}$の65パーセンタイルを求めるとき、$tc_2 = 0.65 * (4+1) = 3.25$が落ちる区間は累積度数2と累積度数4の間だけど、下から3人目以降はあきらかに300なんだから、$tc_2$が3以上だったら四の五の言わずに300だ、ということだと思う。SPSSでいう$y_i$はHyndmanさんのいう$X_{(i)}$とちがって、データの重複を取り除いたうえで小さい順に並べたときの$i$番目の値だから、こういう但し書きが必要になるわけだ。
 話のポイントは2本目の式である。最初に挙げた具体例$\{100, 200, 300, 300\}$で考えると、その40パーセンタイルは、$tc_2 = 0.4 * (4+1) = 2$, これが落ちる区間の下限は2だから$g^{*}_2 = 0$で、2番目の式より200となる。45パーセンタイルなら$tc_2 = 0.45 * (4+1) = 2.25$, $g^{*}_2 = 0.25$となり、0.75*200 + 0.25 * 300 = 225。どちらの例でもHyndmanさんのいう定義6に一致する。
 それもそのはずで、Hyndmanさんの説明は「点$(200,2/5)$と点$(300,3/5)$を結ぶ線分と水平線$Y=0.45$との交点を求める」であり、SPSSの説明は「点$(200,2)$と点$(300,3)$を結ぶ線分と水平線$Y=0.45 \times 5=2.25$との交点を求める」である。データ点の縦座標を5で割るか、欲しい$p$に5を掛けるかの違いで、結局同じ事をいっている。
 このように、頻度ウェイトが正の整数であれば、SPSSの出力は定義6だと思う。

 Excelはどうなっているんだろう... 上の具体例で求めてみたところ、セル関数PERCENTILE.INCは40パーセンタイルとして220を返し、PERCENTILE.EXCは200を返した。調べる気力が尽きたが、これ、なにやってんですかねえ。

読了:Hyndman & Fan (1996) 標本分位数の出力はソフトによってちがう

2019年10月18日 (金)

Ferrari, P.A., Barbiero, A. (2012) Simulating Ordinal Data. Multivariate Behavioral Research, 47, 566-589.

 いま、$m$個の順序変数があって、各変数の周辺分布はわかっている。さらに、任意の2個の変数について、(カテゴリに1,2,...と数字を振って得た)相関係数もわかっている。この周辺分布と相関行列にあわせてデータを生成するにはどうすればいいか、という論文。
 なんでそんなの読んでるの?という感じだが、仕事の都合でそういうのが急遽必要になったのである。ああ流されていく人生。

 著者らはRのGenOrdパッケージの中の人。
 イントロは端折るけど、一般に、欲しい特徴を持つデータ行列をシミュレーションする方法は二つあるそうだ。

 この論文は前者のアプローチ。

 いま、ターゲットである相関行列$\mathbf{R}^{O*}$をつかって、連続変数のデータ行列 $\mathbf{Z} \sim N(\mathbf{0}, \mathbf{R}^{O*})$を生成したとしよう。で、$\mathbf{Z}$の各列について、ターゲットである周辺分布に一致するように離散化したとしよう。ここまでは、まあ、思いつきますね。
 ところが、このデータ行列から相関行列$\mathbf{R}^O$を得ると、それはターゲットの$\mathbf{R}^{O*}$からずれてしまう。そりゃまあそうだ。

 そこで著者らが提案する手順は以下の通り。

 後半は応用例。この方法でなにかの信頼区間を出すとか、PCAと非線形PCAの性質のちがいをシミュレーションするとか。眠くて読み飛ばした。

 ...意外に単純な話で拍子抜け。要はほしい相関行列を共分散としてもつMVNからサンプリングして離散化し、その相関行列をみて共分散を修正してまたサンプリングして離散化して、というのを繰り返すわけだ。

読了: Ferrari & Barbiero (2012) 指定された周辺分布と相関行列を持つ多変量順序データを生成する方法

2019年10月 3日 (木)

Hyndman, R.J., Athanasopoulos, G, Shang, H.L. (2013) hts: An R Package for Forecasting Hierarchical or Grouped Time Series.

 階層時系列データを分析するためのRパッケージhtsのvignette。中の人は誰あろう、forecastパッケージで知られるHyndmanさんである。
 ここで階層的時系列というのは、たとえば国レベルの死亡者数時系列があり、これを地域別の時系列とか性別の時系列とに分けることができる、というようなことを指している。

 説明例として2レベルの階層を考える。全体(レベル0)の時系列を$y_t$、レベル1にAとBがあって、その時系列を$y_{A,t}, y_{B,t}$とする。Aはレベル2に子AA, AB, ACを持ち、Bは子BA, BBを持ち、それらの時系列を$y_{AA,t}, \ldots, y_{BB, t}$とする。
 時系列変数のベクトルを考えよう。$\mathbf{y}_t$をこの8本の時系列変数のベクトルとする。$\mathbf{y}_{K,t}$をレベル2の5本の時系列変数のベクトルとする。すると、
 $\mathbf{y}_t = \mathbf{S} \mathbf{y}_{K,t}$
と書ける。ここで$\mathbf{S}$は$8 \times 5$のダミー行列で、1行目($y_t$に対応)はすべて1となり, 2行目($y_{A,t}$)は左から順に1, 1, 1, 0, 0となり、下部の5行だけ取り出すと単位行列になる。なるほどね?

 で、ここでの問題は、8本の時系列すべてに対して関心を持っているという点である。
 以下では、なんらかの方法によって得た、$j(=1,\ldots,8$)本目の時系列の$h$期先予測を$\hat{y}_{j,h}$と書く(ほんとは$h$じゃなくて$T+h|T$という気持ちだが略記する)。これをベース予測と呼ぼう。
 ベース予測は、階層構造に照らしてつじつまが合うとは限らない。つじつまがあうように修正した予測を$\tilde{y}_{j,h}$と書き、これを修正予測と呼ぼう。

 さて、階層的時系列の予測には、ボトムアップ法、トップダウン法、ミドルアウト法がある。さらに我々の考えた最適予測結合法も紹介しよう。

 まずはボトムアップ法。
 上の例でいうと、まずレベル2で$\hat{y}_{AA,h}, \ldots, \hat{y}_{BB,h}$を得る。これがベース予測。つまり、レベル0-1の3本についてはまだ手に入らない。
 で、これを積み上げてレベル1の$\tilde{y}_{A,h}, \tilde{y}_{B,h}$を得て、さらにこれを合計してレベル0の$\tilde{y}_{h}$とする。これが修正予測。つまり、レベル2の5本については修正しない。
 良い点は、累積において情報が失われないという点。悪い点は、レベル2のデータはノイズが多いことが多いので、モデリングが大変だという点。

 お次はトップダウン法。
 最初にレベル0で$\hat{y}_h$を得る。で、これらを割合$p_1, \ldots, p_{m_2}$によってレベル2に配分する。最後にレベル2の時系列を積み上げてレベル1の時系列を得る。
 この方法がうまくいくかどうかは次の3つの要因で決まる。(1)レベル1の予測の正確性。(2)配分割合の正確性。(3)ベース予測の正確性。[← ??? (1)と(3)は同じことじゃないの?]
 配分割合の決め方にはいろいろある。紹介しよう。
 その1, 過去の割合の平均
 $p_j = \frac{1}{T} \sum_t^T \frac{y_{j,t}}{y_t}$
を使う。
 その2, 過去の平均の割合
 $p_j = \sum_t^T \frac{y_{j,t}}{T} / \sum_t^T \frac{y_t}{T}$
を使う。
 その3、割合を予測する。まず、すべての時系列についての$h$期先予測を手に入れる。で、レベル1から順に、$h$期先予測に占めるそのノードの割合を求める。これを一番下のレベルまで繰り返す。[数式はめんどくさいので略]
 配分割合をどうやって決めるかはともかくとして、トップダウン法の弱点は、仮にベース予測が不偏であったとしても、修正予測は不偏じゃない、という点。

 ミドルアウト法。どこかのレベルに注目し、そのレベルより上に向かってはボトムアップ法、そのレベルより下に向かってはトップダウン法を使う。

 お待たせしました、我々が考えた最適予測結合法です。
 この方法では、まずは全レベルで個別に$h$期先予測値を得る。そのベクトルを$\mathbf{\hat{y}}_h$としよう。で、
 $\mathbf{\hat{y}}_h = \mathbf{S} \mathbf{\beta}_h + \mathbf{\epsilon}_h$
というモデルを考える。$\mathbf{\epsilon}_h$は$h$期先予測誤差ではなくて、単にこの回帰式における誤差である。その共分散行列を$\mathbf{\Sigma}_h$としよう。
 一番下のレベルの$h$期先予測誤差を$\mathbf{\epsilon}_{K,h}$としよう。$\mathbf{\epsilon}_h \approx \mathbf{S} \mathbf{\epsilon}_{K,h}$と仮定すれば、$\mathbf{\beta}_h$の線形不偏推定量は
 $\mathbf{\tilde{\beta}}_h = \mathbf{S (S' S)^{-1} S' \hat{y}_h}$
となるので、これを求めて、上のモデルに放り込めば、修正予測$\mathbf{\tilde{y}}_h$が手に入る。[なるほどー]

 ここからはhtsパッケージの紹介。
 関数hts()は、階層構造の指定と、一番下のレベルの時系列データを食って、全レベルの時系列を持つオブジェクトを返す。階層がなくて単にグループがあるだけならばgts()でもよい。
 関数forecast()はこのオブジェクトを食って$h$期先予測を返す。予測モデルとしてはarima, ets, ランダムウォークをご用意している。で、ボトムアップ予測とか、トップダウン予測とか、いろいろできるらしい。
 
 forecastパッケージのforecast()とは異なり、どうやら説明変数は使えないようだ。自分の仕事のなかでは、利用場面がかなり限られてくる...がっくり...

読了:Hyndman et al. (2013) 階層時系列データ分析のためのパッケージ hts

2019年8月24日 (土)

読んだものはなんでも記録しておこうということで...

阿部誠(2014) 近年のマーケティング・サイエンスのトレンド-構造モデリング. マーケティングサイエンス, 22(1), 1-4.
 掲載誌の巻頭言みたいな感じの短い記事なんだけど、実証IO(っていうんでしたっけ? あのすごく難しい奴)で言うところの構造モデリングについての、わたしみたいなど素人向けの解説。とても勉強になりました。

 いわく、経済学では現象をエージェントの最適化の結果にして均衡状態と捉えるのに対して、マーケティングではエージェントの行動はいまは最適じゃないからどうやって最適化するかという風に考えるし、そもそも企業は均衡を崩すことで競争優位を勝ち取るともいわれている。このちがいに注意、とのこと。なるほどー。

 えーと、最近あっち方面の話を読んでると、よく「構造推定」ってのが出てきますけど、同じ話でしょうか?
 まあいいや。次はChintagunta, Erdem, Rossi, Wedel (2006, Mktg.Sci.)というのを読むといいらしい。...って、おいちょっとまて、Chintaguntaって比例ハザードモデルのChitagunta? ErdemってシグナリングのErdem? RossiってAllenby-Rossi本のRossi? それにWedelってWedel&KamakuraのあのWedelだよね? あいつら、実はみんな友達であったか...

読了:阿部(2014) (最近の経済学でいうところの)構造モデリングとはなにか

2019年7月19日 (金)

Jin, Y., Wang, Sun, Y., Chan, D., Koehler, J. (2017) Bayesian Methods for Media Mix Modeling with Carryover and Shape Effects. Working Paper, Google.

 仕事の都合で読んだ奴。
 泣く子も黙る超巨大最先端企業Google様におかれましては、Google AIというサイトでマーケティング・ミックス・モデリングについてのいくつかのWorking Paperをご発表になられ遊ばされていらっしゃる。目を通してみたんだけど、その内容は意外にもオーソドックスな感じだ。AIとは...。

 タイトルそのまま、繰越効果と形状効果を組み込んだMMMモデルをベイズ推定しますという論文である。形状効果(shape effect)というのは、広告-売上関係が曲線的だということ(Tellis(2006)が引用されている)。

1. イントロダクション
 [たいしたこと書いてないので省略]

2. モデル
 まず繰越効果の表現から。週$t$におけるメディア$m$の支出を$x[t,m]$とする[原文では$x_{t,m}$だが読みにくいので表記を変える]。$w_m$を非負の重み関数として
 $\displaystyle adstock(x[t-L+1,m],\ldots,x[t,m];w_m, L) = \frac{\sum_{l=0}^{L-1} w_m(l) x[t-l,m]}{\sum_{l=l}^{L-1} w_m(l)}$
 [単なる$L$次直接ラグモデルである。係数を表す関数$w_m(l)$は、いまのところなにも制約してないけど、実際の係数は$L$個の合計が1になるようにするわけね。つまり売上への効果を表す係数は別に設けるわけだ]
 簡便のため$L$は全メディアで13とする。[これは実データを見て決めた由。とはいえ、特定のデータのためのモデルってわけでもないわけで、これはつまり、このモデルは3ヶ月を超える長期繰越は考慮しませんという宣言であるといえよう]
 $w_m$としてはいろんな関数が使える。

 次に形状効果の表現。薬学で使われているHill関数というのを使う。
 $\displaystyle Hill(x[t,m]; K_m, S_m) = \frac{1}{1+\left( \frac{x[t,m]}{K_m} \right)^{-S_m}}$
 $S_m > 0$を傾きと呼ぶ。$K_m > 0$は半飽和点、つまり$Hill(K_m) = 1/2$となる点である。
 メディアごとの係数$b_m$を掛けて
 $\beta_m Hill_m(x[t,m]) = \beta_m - \frac{K^{S_m}_m \beta_m}{x[t,m]^{S_m} + K^{S_m}_m}$
 [ちょっと待て!待ちなさい!あんたたち話が早すぎ!添字を端折ると
 $\frac{1}{1+\left( \frac{X}{K} \right)^{-S}} =\frac{1}{1+\left( \frac{K}{X} \right)^{S}} = \frac{X^S}{X^S + K^S} =\frac{(X^S + K^S) - K^S}{X^S + K^S} =1 - \frac{K^S}{X^S + K^S}$
ということですね?]
 識別が難しいので$S=1$と固定してもよい。
 他のアイデアとしては、ロジスティック関数とか、正規累積関数とか、単調回帰スプラインとかがありうる。

 繰越効果と形状効果を同時に表す方法は2つある。

 ここでは前者をとる。
 簡便のため、シナジーは考えない。

 というわけで、モデルは以下の通り。時点$t$における売上(ないし売上の対数)を$y[t]$, $c$番目の制御変数を$z[t,c]$として、
 $x^{*}[t,m] = adstock(x[t+L+1, m] \ldots x[t,m]; w_m, L)$
 $y[t] = \tau + \sum_{m=1}^M \beta_m Hill(x^{*}[t,m]; K_m, S_m) + \sum_c^C \gamma_c z[t,c] + \epsilon[t]$
 $\epsilon[t]$はホワイトノイズ。

3. 推定
 ベイズ推定です。
 モデルのパラメータのベクトルを$\Phi$, 全てのメディア変数を$X$, すべての制御変数を$Z$、反応ベクトルを$y$とする[原文ではみな太字]。もしも最尤推定だったら、対数尤度$L(y|X, \Phi)$を最大にする$\Phi$を$\hat{\Phi}$にするところだが、ベイズ推定だから、事前分布$\pi(\Phi)$を考えて
 $p(\Phi | y, X) \propto L(y | X, Z, \Phi) \pi(\Phi)$
とし、この事後分布の中央値だかなんだかを使う。事後分布は、共役分布を使うか、ないしGibbsサンプリングとかHMCとかで推定できる。
 この研究では自前でGibbsサンプリングのコードを書いた。ついでにStanでも試したが、そっちのほうがすごく時間がかかった。
 各パラメータの事前分布は ... [概要説明。面倒くさいので省略]

4. アトリビューション・メトリクスと最適メディアミックス
 MMMモデルってのは、パラメータを推定できれば終わりってものでもない。ユーザは各チャネルの広告支出あたりリターン(ROAS)や周辺ROAS(mROAS)を知りたい。[線形モデルなら偏回帰係数がreturn/spendになるけど、ここでは非線形な関数をかましているから別途求める必要があるという話だろう]
 以下では各チャネルの支出を独立に操作できると仮定する。
 まず売上予測値の時系列を求める(対数変換してたら戻す)。次に、change periodを決めて(たとえば3か月前までの1年間とか)。その期間のあるチャネルの広告支出を0にしたときの売上予測値の時系列を求める。ふたつの時系列の差の合計を求め(change period以降についても合計する点に注意。だって繰越があるからね)、change periodの広告支出の合計で割る。これがROAS。
 いっぽうmROASとは、現支出レベルに1を足した時の売上の増大。change periodの支出を(たとえば)1%増やして売上予測値の時系列を求め、売上予測値の時系列から引き、支出合計の1%で割る。[この1%という増分をどうするかで、結果が変わってくると思うんだけどな...]
 予測値の時系列を求めかた。頻度主義的には、$\Phi$の最尤推定値をプラグインする。いっぽうベイジアン的には、$\Phi$の事後分布をプラグインしてROAS/mROASの事後分布を出す。$\Phi$の事後分布の統計量(中央値とか)をプラグインするのはお勧めしない。$\Phi$のなかにも相関があるからね。[細かいことだけど、ここもちょっとわからん。$\Phi$のなかの相関を問題にするなら、頻度主義のほうでもちょっと工夫するのが筋だろう。ベイジアン以前のKingらのアプローチだったら、ここは$\Phi$の最尤推定値とその共分散行列を推定し、多変量正規性を仮定してモンテカルロシミュレーションをやるところだと思う]

 MMMモデルによるメディアミックス最適化について。
 change period $(t_0, t_1)$の全メディア支出の予算を$C$とし、最適支出を$X^o = \{x_o[t,m], t_0 \leq t \leq t_1, 1 \leq m \leq M\}$とすると、問題は以下のように書ける。

 maximize
 $\sum_{t_0 \leq t \leq t_1+L+1} \hat{Y}[t](x[t-L+1,m], \ldots, x[t,m]; \Phi)$
 subject to
 $\sum_{t_0 \leq t \leq t_1} \sum_{1 \leq m \leq M} x[t,m] = C$

 change periodが長かったりメディアの種類が多かったりする場合、数値的に解けなくなるので、フライトパターンを固定する。たとえば毎月均等に支出するとか、過去の支出時系列に比例させるとか。
 ベイジアン的には、細かく言うと次の2つのアプローチがある。

 最適ミックスの推定が安定するのは前者なのだが、後者は最適ミックスの推定の分散がわかる、つまり予算配分のモデルをどのくらい信頼してよいのかがわかる。

5. シミュレートされたデータへの適用
 架空データの分析例。2年間の週次データ。メディア支出3つと価格、計4本の時系列を生成し、ここからモデルに従って売上時系列を生成した [読み落としたのでなければ、たぶん撹乱項としてホワイトノイズを使っている。実際の市場反応分析では残差項はたいてい自己相関を持つわけで、ちょっとオプティミスティックなデータ生成である]。
 で、モデルをあてはめてパラメータを推定。最後の12週を置いておいて、その前の1年をchange periodとする。
 $\Phi$の事後分布からサンプルを取ってきて売上予測時系列、ROAS、mROASを求める。これを繰り返してROASとmROASの事後分布を求める。あらかじめ設定したHills曲線の形状によっては、かなりバイアスが出る。
 最後にchange periodのなかの8週間に焦点をあて、2つのメディアについて最適配分を求める。各週の支出は一定とする[そうだろうな、やっぱしこのくらい制約しないと、最適配分問題は解けないだろうな]。2通りの予算について、最適支出の事後分布、ならびに支出-売上期待値の関数を図示する。

 [ここのくだり、ベイジアン的なアプローチによるメディア支出最適化って難しいなあ、と考え込んだ。
 図6a2には全予算0.5の下でのメディア1の最適支出の事後分布が示されているが、3つの峰を持っている。まず横軸0.2のあたりに峰があり(実はこれが真の最適解に近い)、横軸0のあたりにもっと高い峰がある。つまり、パラメータ推定値によっては、メディア1は捨ててメディア2に全てを投じるのが最適解となるわけだ。
 なお、図6b2で示された売上期待値の関数をみたとき、支出0のあたりで売上期待値の事後分布の裾が上に伸びているかというと、これがそうでもない。おそらく「メディア2に全振りしろ」というのは、パラメータ推定値として(売上予測という観点から見て)悲観的な値がサンプリングされたときの最適解なのだと思う。
 著者ら曰く、ここでは最適化解の事後分布の分散が大きい、こういうときには最適化解を信じてはいけない、とのこと]

6. 推定の正確性に対する標本サイズのインパクト
 [前節と同じ生成モデルから生成したデータでシミュレーション。2年間データと60年間データを繰り返し生成し、パラメータの事後分布中央値の分布、ならびにHills曲線の形状の分布を調べる。実務的には2年間の週次データがあればまあ御の字だと思うんだけど(仮にもっとデータがあっても市場の変化が怖い)、シミュレーションの結果によれば、もう笑っちゃうくらいのバイアスがある。モデルや推定の細部について真剣に考えるのが馬鹿馬鹿しくなるくらい。切ないのう、切ないのう]

7. 事前分布の選択
 2年間データでシミュレーション。
 $\beta$の事前分布について。half normal(0,1), normal(0,1), uniform(0,3)を比べる。uniformは他の2つの間で大きく異なりバイアスが大きい[そりゃそうだろうな。なお、生成モデルにおける$\beta_m$の真値は順に0.8, 0.6, 0.3]。
 Hills曲線のパラメータ$K$の事前分布は...[話がややこしそうなので読み飛ばした]

8. 実データへの適用とモデル選択
 あるシャンプーのデータ、週次、2.5年間。変数は、{TV、雑誌、平面、youtube、検索}広告支出、容量あたり平均価格、ACVで重みづけた{配荷、プロモーション}、売上数量の対数。adstockを遅延つきにするかただの幾何減衰にするか、形状を$\beta Hills$にするか$S=1$と制約するか、で計4つのモデルを推定。制御変数は相関が強すぎるので、いったん配荷とプロモーションをそれぞれ価格に回帰させ、残差を使った。Stanで推定、$\hat{R}$で収束判定。BICは幾何減衰・制約ありで最小になった。
 ROAS, mROASをみると... [省略するけど、4つのモデルの間で事後分布がかなり違う。辛いのう辛いのう]
 BIC最小のモデルでTV支出割合の最適解の事後分布を得ると、支出割合0のあたりと1のあたりの2峰になった。支出割合を変えながら売上期待値の事後分布をみると、とにかく事後分布の分散が大きくて、支出割合をどうしようがたいして変わらない。こういうときは推定結果をあまり信じてはいけない。[おいおい]
 形状パラメータについてみると...[読み飛ばした]
 残差の自己相関について。パラメータのドローごとに計算して平均する[まじ? 面倒くさいなあ]。自己相関があんまり消えていない。モデルの誤指定の可能性がある。[おいおいおい]

9. 結論
 フレキシブルなMMMモデルを紹介したが、ふつうのサンプルサイズだとバイアスが大きいわけで、でかいデータを持ってくるか適切な情報事前分布を使う必要がある。後者についていうと、同一カテゴリの複数ブランドのデータをつかて階層ベイズモデルを組むとか、地域別のデータを持ってきて階層ベイズモデルを組むとか。
 云々。

 ... なんでWhite Paperなんだろうか、論文にするにはちょっと足りないのかな、などと思いながら読んでいたんだが、途中で腑に落ちた。これ、新規性を訴求する研究というより、むしろベイジアンMMMの丁寧な技術解説といった趣の文書でありました。
 HPS本の範囲外に出るようなアイデアはなかったけど、Stanコードもついていて、実務的な意味で勉強になりましたです。

 いくつか疑問点をメモしておく。

読了: Jin, Wang, Sun, Chan, Koehler (2017) これが俺らのマーケティング・ミックス・モデル (lyric by Google AI)

2019年7月16日 (火)

赤池弘次(1980) 統計的推論のパラダイムの変遷について. 統計数理研究所彙報, 27(1), p.5-12.
 勉強のつもりで読んだ奴。

 いわく、
 統計理論における客観主義と主観主義のふたつの立場が、統計理論の発展にどう影響するかを概観する。

 フィッシャーの枠組みは3段階からなる。

 この図式は「すぐれた研究者の心理の動きにひとつの客観的な表現を与えようとしたものといえる」。研究者ににとって最も重要な仕事は$f(\cdot|\theta)$の範囲の決定で、ここに主観的要素がはいってくる。
 フィッシャーは、先験確率(事前確率)を使って推論することによって生まれる恣意性を避けるために、尤度概念を基礎とした理論を展開した。たしかに、尤度は客観的に理解可能な確率概念(相対頻度の極限)に基づいている。しかし、$f(\cdot|\theta)$の想定には主観が入る。つまり、フィッシャーの理論だって主観を排しているわけではない。フィッシャー自身もこの点について慎重な立場を保っていた。

 [対数尤度と熱力学的エントロピーの対応について...カイ二乗検定とは統計モデルのエントロピーの意味での適合度が想定する仮説の制約によってどれだけ下がるかを測っている... フィッシャーは情報量とエントロピーとの対応には気が付いていたが、平均対数尤度とエントロピー(の確率論的表現)との同一性に気が付いていなかった... それが奴の限界だった...云々。中略]

 フィッシャーの枠組みでは、入力はデータ$x$で出力は$f(\cdot|\theta(x))$である。分布型は(3)において決まっている。つまり、(3)でやっている検定は、実は分布型の推定を含むより一般的な推定の実現に利用されている。検定はエントロピーの意味で最適な分布型を推定しようとしていると解釈できる。
 このように、検定というのは本質的には推定である。フィッシャーはエントロピー概念を欠いていたので、検定と推定を併置してしまい、以後数十年間にわたる統計理論研究の停滞を引き起こすことになった。

 さて。
 たとえば、多くのパラメータをもつ複雑なモデルを実用化しようとすると、そのぶん標本サイズが足りなくなるので、最尤推定値を使うだけじゃなくて、尤度関数の形全体を推論のために使おうという話になる。
 $\theta$が固定されてたらモデルの尤度は$f(x|\theta)$だけど、$\theta$について先験確率$p(\theta)$が与えられてたらその事後分布は
 $p(\theta|x) = f(x|\theta) p(\theta) / p(x)$
ただし
 $p(x) = \int f(x|\theta) p(\theta) d\theta$
である。ベイジアンの立場とは、「関心のある事象を表現するに必要な$\theta$を考え、その先験分布$p(\theta)$がデータ$x$によって事後分布$p(\theta|x)$に変換されるという形でデータ$x$の与える情報は利用されるべきだというにつきる」。

 $\theta$に依存する量$h(\theta)$について、$x$の下での$h(\theta)$の期待値は
 $E_x h(\theta) = \int h(\theta) p(\theta|x) d\theta$
だが、これは尤度関数$f(x|\theta)$の全体によって決まるわけで、最尤推定値$\theta(x)$しか使わないというのは尤度関数の局所的な情報しか使ってないことになる。つまり、もし適切な先験分布$p(\theta)$が手に入るんなら(ここが難しいわけだけど)、最尤法よりベイズ法のほうが優れているわけである。
 [具体例... 中略]

 問題は先験分布の決定である。
 よくある説明は、先験分布$p(\theta)$は主観確率で$f(\cdot|\theta)$は客観確率だというものだ。で、このふたつの確率概念を客観確率に統一しようとするのが客観主義者、主観確率に統一しようとするのが主観主義者である。
 [ここで主観主義者サベジを批判、ならびに客観主義者も批判。面白いんだけど中略。イアン・ハッキング「確率の出現」を引用している。まだ読んでないけど、あれ、結構古い本だったんだなあ...]
 [先験分布は別にimproperでも構わないんだという話。これも中略]

 というわけで、主観主義も客観主義もまちがっておる。フィッシャーのいう尤度は実は結構主観的だった。サベジは$f(\cdot|\theta)$の主観性を見落としている。
 ベイズ統計の技術的な寄与は、「先験分布という極めて自然な、我々の心理的期待を良く表現する要素を統計的モデル構成の分野に積極的に導入したことである」。$f(\cdot|\theta)$と$p(\theta)$によって与えられるモデルの良さが、モデルの尤度$p(x)$によって客観的に評価される。「こうしてフィッシャー流の方法を、いくつかの$p(\theta)$の集まりによって表現されるモデルの族に対して展開していくことが容易に実現される」。
 云々。

読了:赤池(1980) 統計的推論のパラダイムの変遷について

2019年7月12日 (金)

 わたくし平凡なサラリーマンだもんで...時として、もう正しいことなんてどうでもいい!みんながどうやってんのか知りたい!と思うことがあるのです...(本音ダダ漏れ)

Talbot, D., Massamba, V.K. (2019) A descriptive review of variable selection methods in four epidemiologic journals: There is still room for improvement. European Journal of Epidemiology, 34(8), 725–730.

 というわけで、面白そうなので目を通したやつ。ページ数も少ないし。
 疫学の論文だけど、マーケティングのデータ解析というのは、時々びっくりするくらいに疫学に似ていることがあるように思うのです。ほら、マーケティングアクションの効果を観察データから推定するとかって、似てませんかね?

 疫学の論文において共変量の選択がどのように行われているかを調べる。
 先行研究(Walter & Tiemeier, 2009 同誌)を紹介して...
 疫学における共変量の選択手法を簡単に概観して... (因果グラフ, disjunctive cause基準, 単相関とかで選択, ステップワイズ選択, モデル投入による推定値の変化, lasso, adaptive lasso, ベイジアンモデル平均)

 Am.J.Epidemiology, Epidemiology, Euro.J.Epidemiorogy, Int.J.Epidemiologyの4誌に注目。2015年に載った論文は975本、ここから観察研究の論文292本を選んだ。追試とかRCTとかは除外。また予測を目的とする研究も除外。
 共変量選択の方法を分類すると(排他的分類ではないので合計は100%にならない)、

 考察。
 先行研究と比べると単相関による選択とステップワイズ選択が減っている。こういう手法は曝露効果を過大評価しちゃうので、喜ばしいことである。
 新しい手法を使っている論文が見当たらない。Bayesian Adjustment for Confounding (Rのbacrパッケージ)とか、Bayesian Causal Effect Estimation(BCEEパッケージ)とか、モデルフリーなアルゴリズム(CovSELパッケージ)とか。

 本研究はsystematic reviewとはいえない。また、個別の研究についてのcriticalな評価ではない(たとえば、ステップワイズ変数選択は効果を過大評価しちゃうけど、仮説生成の段階ならまあ許せるかもしれない)。

 本研究からの示唆:

読了:Talbot & Massamba (2019) 疫学者はどうやって変数を選択しているか

2019年7月 9日 (火)

Amrhein, V., Greenland, S., McShane, B. (2019) Retire statistical significance. Nature, 567, 305-307.
 最近のNatureに載った仮説検定批判のコメンタリー。話題になっているし、たった3pだし、著者にGreenlandさんがいるので、パラパラめくってみた。

 いわく...
 有意差がないことをもって差がないと解釈する誤りが世に溢れておる。嘆かわしい。5つのジャーナルから集めた791本の論文のうち、有意差がないことを正しく解しておる論文は49%であった。けしからん。
 2016年にはASAの声明がありAmerican Statisticianの特集号があった。Hurlbert, Levine, & Utts (2019, J.Am.Stat.)も「統計的に有意」という表現を廃止しようと主張して署名を集めた。
 我々もまた主張する。統計的有意性という概念そのものを捨てるべきだ。というわけで、南極大陸を除く全大陸から署名を集めたぞ。[854人の署名を集めたそうだ]
 P値を禁止しようというわけではない。たとえば生産プロセスがなんらかの品質基準に合致しているかどうかを決めるというような、その場面に特化した意思決定基準を使うということに反対しているわけでもない。弱い証拠も信頼すべきだと主張しているわけでもない。我々はですね、ある科学的仮説を支持するかどうかを決めるために、二値的なやり方でP値を使うことをやめようと云うとるんです。

 問題は統計学というよりも人間の認知の側にある。二分法的な統計手法であれば、頻度主義だろうがベイジアンだろうがなんだろうが同じ問題が起きる。
 事前の登録と出版へのコミットによって事態は少しはましになるだろうけど、事前登録研究だって、分析計画で決められていなかった決定によってバイアスを受けうる。悪気があろうがなかろうが。[ああそうか、事前登録すりゃいいってもんでもないわけね。Gelman & Loken (2014 Am.Sci.)というのが挙げられている]

 「二分法マニア」を避けるべき理由の一つは、P値であれ信頼区間であれ、研究によってびっくりするぐらい変動するのが自然だからだ。[簡単な例が挙げられている]

 我々は不確実性を抱きしめる(embrace)することを学ばなければならない。そのひとつの方法は、信頼区間を「compatibility区間」と呼び換えることだ。著者の皆さんには、区間の内側にあるすべての値について、その実務的示唆を述べていただきたい。さすれば、どの値もデータとcompatibleであることを否応なしに思い起こすことになろう。大事なのは、区間に0が入っているかどうかじゃなくて、すべての値が実務的にみて重要でないといえるかどうかなのだ。
 この「compatibility区間」について語る際の注意点が4つある。
 (1)区間の外側の値がimcompatibleだとはいえない。単にless compatibleなのだ。
 (2)区間の内側が等しくcompatibleなわけじゃない。点推定値の解釈が大事。
 (3)95%というレベルにも意味がない。他のレベルでもよい。
 (4)謙虚であれ。compatibilityの評価は背後にある統計的仮説の正しさに依存しており、それらの仮説にもまた不確実性がある。仮説を明示し、可能な限り検証せよ。

 想像してみよう、統計的有意性が退場した世界を。論文の「手法」の章とデータの表はもっと詳細になる。著者は自分の推定値の不確実性をより強調するようになる。P値はP<.05じゃなくてP=0.13という風に書かれる。もはやホシはつかない。人々は統計ソフトとともに過ごす時間を減らし、その分もっとよく考えるようになるだろう。[←このあたり、ジョン・レノンのイマジンが頭をよぎりますね...]
 云々。

読了:Amrhein, Greenland, McShane (2019) 仮説検定よ退場せよ in 2019

2019年4月28日 (日)

Franses, P.H. (1991) Primary Demand for Beer in The Netherlands: An Application of ARMAX Model Specification. Journal of Marketing Research, 240-245.

 セミナーの都合で読んだ奴。マーケティング・ミックス・モデリングにおけるARMAXモデルの意義について知りたかったので。

 いわく。
 時系列データで市場反応モデルをつくっていて、説明変数が複数あり、ラグもわかんないとき、どうするか。
 Hanssens, Parsons & Schultz(1990)にいわせれば、ラグを突き止めるにはダブル・プレホワイトニングを行う[$x_t$にARMAモデルをあてはめて残差をとり、それと同じARMAモデルを$y_t$にもあてはめて残差を取り、残差同士のCCFを調べるという話だと思う]。
 ところがこのやり方だと、説明変数が複数あるときには困る。Liu & Hanssens(1982)の提案もあるけど、最初の回帰式の残差項が自己相関を持つ可能性がある[読んでないからわかんないけど、たぶん、プレホワイトニングなしでいきなりでっかい分散ラグモデルをOLS推定し、徐々に削っていけという話なのではないかと思う]。また、欠損変数があるとき、ダブル・プレホワイトニングは見せかけの従属性や独立性を引き起こす。
 みなさん、そういうときはARMAXモデルを使いましょう。

 ARMAXモデルとは、一般的に書くと
 $\displaystyle (1 - \sum_{i=1}^p \alpha_i L^i) y_t = \mu + \sum_{i=1}^r \beta_i^{'} L^i x_{t+1} + \left(1+\sum_{i=1}^q \gamma_i L^i \right) \epsilon_t$
 [なるほど、ここでのARMAXモデルという呼称はHyndmanさんの説明にも一致している。$x_{t+1}$というところに面食らったが、よく見ると$L^i x_{t+1}$は$i=1$のときに$Lx_{t+1} = x_t$になるのでこれでよい]
 もし$1+\sum_i^q \gamma_i L^i$が反転可能なら、これはARX($\infty$)に書き換えられる。
 手順は次の通り。(1)$y_t$を適切に変換して定常にし、ARMAモデルを組む。(2)$x$をみな適切に変換し定常にする。(3)ARMAモデルに投入してラグを決める。
 ARMAXモデルの推定は、ARXに変換して非線形最小二乗法でやる。[んんん? 非線形って? ARXに反転できればOLSは一致性を持つんじゃない? BLUEじゃないからFGLSでやるべしってんならわかるけど]
 まずとにかく推定し、パラメータに制約を掛けたりして経済学的な仮説を検定すべし。で、モデルをシンプルにして再推定すべし。
 モデルの診断は、(1)残差のSEと修正したR^2を調べ、(2)残差の正規性を調べ、(3)自己相関がないか調べ、(4)ARCH(k)がないか調べ、(5)ホールドアウトで予測性能を調べる。[←いろいろ書いてあるけど中略した。こ、こまかいね...]

 実例。
 オランダにおけるビールの一次需要(成人人口当たりリットル)、1978-84年の隔月時系列について分析する。対数系列$logQ_t$を目的変数にする。説明変数は、平均気温$TEMP_t$、価格インデクス$PB_t$、総広告支出(成人人口当たり)$AT_t$、そして消費者支出指数$CE_t$。
 82年に酒類の増税があって、需要はその直前に増大し、直後はすごく下がった。そこで、価格インデクスを完全に先読みした$PBEXP_t = PB_{t+1}$という変数もいれた。
 季節効果は、季節ダミーを6個入れるという手と$\Delta_6 logQ_t$を使うという手を考えた。前者の残差$RlogQ_t$と後者$\Delta_6 logQ_t$についてACFを調べたら、$RlogQ_t$が自己相関を持たなかったので、こっちを採用した。$\mu$のかわりに6個の季節ダミーをいれて、(季節ダミーを抜くだけで自己相関が消えたわけだから)$p=6$とするけど$\alpha_i$は1から5まで0とし、$q$は1にした。[ってことは、誤差項はSARIMA(0, 0, 1)(1, 0, 0)ってことだろうか。へぇー、次数はこういう風に決めるのかー。この思い切りの良さ、勉強になる]
 時系列を観察すると84年に落ちているようなので、84年だけ1になるダミー変数$DMEAN$もいれた。
 $TEMP_t$は季節ダミーを入れれば自己相関が消え定常となったので、そのまま入れた。
 $PB_t$は非定常にみえるので、単位根を調べたら...単位根があった[ここ、前後の文脈からいえば単位根検定をやっているはずなのだが、なんだかよくわからん手順が説明されている。なにこれ??? えーと、Hylleberg & Mizon (1989)による方法なのだそうだ]。$PB_t$と$PBEXP_t$は差分をとっていれた。
 $AT_t$は季節効果がありそうなので季節ダミーをいれて残差をとり$RAT_t$とした。単位根はなかった。ラグがあると思うので$AT_{t-1}$もいれた。$CE_t$は単位根がありそうなので差分をとっていれた。
 というわけで、モデルは以下の通り:
 $logQ_t $
 $= \alpha logQ_{t-6}$
 $+ \delta_0 DMEAN_t$
 $+ \sum_i^6 \delta_i D_{it}$
 $+ \beta_1 TEMP_t$
 $+ \beta_2 \Delta_1 PB_t + \beta_3 \Delta_1 PBEXP_t$
 $+ \beta_4 AT_t + \beta_5 AT_{t-1}$
 $+ \beta_6 \Delta_1 CE_t$
 $+ \epsilon_t + \gamma \epsilon_{t-1}$
有意でない項があったりしたので削ったりした[...すごく細かく書いてある。面倒なので中略するけど、参考になります...]。他の期間のデータを使って検証したところ...[略]

 考察。
 ARMAXモデルの限界:変数が多すぎるときに推定に困る。モデルの単純化の段階でしくじることもある。
 モデルの限界:[こんな変数も欲しかったなあ的な話。省略]

 なるほど... いやー、これは大変勉強になりました...
 対数変換とか差分とかのことを全部忘れてしまえば、このモデルは結局
 $Y_t = c + b_1 X_t + b_2 X_{t-1} + \alpha Y_{t-6} + \epsilon_t + \gamma \epsilon_{t-1}$
であろう。書き換えると
 $(1-\alpha L^6) Y_t = \mu + (1- \phi L) b X_t + (1-\gamma L) \epsilon$
伝達関数モデルっぽく書くと
 $\displaystyle Y_t = \mu^{'} + \frac{b(1-\phi L)}{1-\alpha L^6} X_t + \frac{1-\gamma L}{1-\alpha L^6} \epsilon$
なるほどね、説明変数系列にARMA(6,1)フィルタを掛け、撹乱項系列に別のARMA(6,1)フィルタを掛けているが、2つのフィルタのAR部分は同じ、というわけだ。ラグの効果は広告と未知要因の間で異なるからMA部分は説明変数と撹乱項の間で異なる、しかしそれとは別に、あらゆる効果が同じように繰り越されていくのでAR部分は共通...と考えると、実に自然なモデルである。

 疑問点がみっつ。
 その1、パラメータの解釈はどうなんだ。説明変数の効果は、やっぱし分散ラグだけで表現されているほうが解釈しやすいんじゃないか? ...ううむ。
 その2、このモデルだって結局、いきなり分散ラグモデルを組んでいるわけですよね。Hanssenたちの提案のちがいはたぶん、Hanssenたちは最初は撹乱項の自己相関を無視してOLS推定するけど、ここではちゃんと撹乱項の自己相関を考慮する、ということだと思う。では、最初っからARMA誤差つき分散ラグモデルを考える、つまり最初から
 $\displaystyle Y_t = \mu^{'} + \frac{b(1-\phi L)}{1} X_t + \frac{1-\gamma L}{1-\alpha L} \epsilon$
というようなのを最尤推定する、っていう手はどうなんだろう?
 その3、こういうわかりやすい論文を書いておきながら、先日読んだ奴では、著者の先生はこういうモデルじゃなくて
 $(1-\gamma L) Y_t = \mu + (1-\phi L)\beta X_t + (1-\gamma L) \epsilon$
といういまいちよくわからんモデルをお勧めしておられるわけである。先生、それってどういうことすか。

読了:Franses (1991) ARMAXモデルで市場反応をモデリングしよう

Franses, P. H., van Oest, R. (2004) On the econometrics of the Koyck model. Econometric Institute Report 2004-07, Econometric Institute, Erasmus University Rotterdam.
 セミナー準備で読んだやつ。いわゆるマーケティング・ミックス・モデリングの分野で有名なKoyckモデルについての、6頁のメモみたいなもの。全然わかんないけど、第一著者はこの分野の研究者だと思うので(JMRにファーストの論文があった)、いい加減な内容ではないだろうと思って。

 いわく。いわゆるKoyckモデルにはいろいろややこしい問題が多い。解説しよう。

 売上を$S_t$, 広告を$A_t$として、次のリンクを想定する。
 $S_t = \mu + \beta (A_t + \lambda A_{t-1} + \lambda^2 A_{t-2} + \ldots) + \epsilon_t$
$\epsilon_t$は自己相関を持たないとする。
 $\lambda$はふつうリテンション率と呼ばれる。当期効果は$\beta$, キャリーオーバー効果は$\beta/(1-\lambda)$である。
 説明変数の数が多いときはKoyck変換をかけることが多い。
 $S_t = \mu + \beta A_t + \lambda S_{t-1} + \epsilon_t - \lambda \epsilon_{t-1}$
時系列分析でいうところのARMAXモデルである。

 Koyckモデルの推定について。
 当然ながら最尤法が用いられる。対数尤度関数は
 $LL(\mu, \beta, \lambda, \sigma^2) = - \frac{T-1}{2}(ln(2\pi) + ln(\sigma^2)) - \sum_{t=2}^T \frac{\epsilon_t^2}{2 \sigma^2} $
 なお、より一般化したARMAXモデル
 $S_t = \mu + \beta A_t + \lambda_1 S_{t-1} + \epsilon_t - \lambda_2 \epsilon_{t-1}$
を推定することもできる。しかし実務的には、2つの推定値のうちどちらを採用するかという問題が生じるし、
 $S_t = \mu + \beta (A_t + \lambda A_{t-1} + \lambda^2 A_{t-2} + \ldots) + \epsilon_t$
という形式に戻せなくなるので、理論的な観点から見るとあまり関心が持てない。二つの$\lambda$は等値にしておいたほうがよろしい。

 Koyckモデルのパラメータの検定について。
 ここで難しいのは、もし$\beta = 0$だったら$\lambda$も消えて
 $S_t = \mu + \epsilon_t$
となるという点だ。普通のt統計量は$\lambda$に依存する。それがわからないので最尤推定値を使うとすると、統計量がデータに依存し、漸近分布が正規でなくなる。こういうのをDavies問題という。
 Davies問題に対する最近の解法は、未知パラメータ$\lambda$の範囲を考え(今回は[0,1) である)、その範囲を通じた統計量の最大値、ないし平均値を使うというものである。前者をsup検定統計量, 後者をave検定統計量という。シミュレーションしてみると[...中略...]、aveの検定力のほうが高い。
 
 実例。Lydia Pinkhamデータというのを使う。[あ、これ、前にも見たことあるな]
 モデルによっても検定方法によっても結果がかなり変わるという話。

 ... あんまし真剣に読んでないのであれなんだけど、あれこれ考えさせられました。
 検定の話にはあまり関心がないので置いておいて、モデルの話を整理しておこう。本文中で言及されているのは次の3つのモデルだ。
A. $S_t = \mu + \beta A_t + \lambda S_{t-1} + \epsilon_t - \lambda \epsilon_{t-1}$
B. $S_t = \mu + \beta A_t + \lambda_1 S_{t-1} + \epsilon_t - \lambda_2 \epsilon_{t-1}$
C. $S_t = \mu + \beta A_t + \lambda_1 S_{t-1} + \epsilon_t$
 著者は、AをKoyckモデルないしARMAXモデル、Bを非制約ARMAXモデル、Cを「MA部分を無視したKoyckモデル」と呼んでいる。
 ラグ演算子を使って書きなおすと
A. $S_t = \frac{1}{1-\lambda} \mu + \frac{1}{1-\lambda L} \beta A_t + \epsilon_{t}$
B. $S_t = \frac{1}{1-\lambda_1} \mu + \frac{1}{1-\lambda_1 L} \beta A_t + \frac{1-\lambda_2 L}{1-\lambda_1 L} \epsilon_{t}$
C. $S_t = \frac{1}{1-\lambda} \mu + \frac{1}{1-\lambda L} (\beta A_t + \epsilon_{t})$

 A.は、切片項、広告のAR系列、ホワイトノイズの和になっている。著者は$-\lambda \epsilon_{t-1}$のことをMA部分と呼んでいるが、それは見た目の話であって、A.では撹乱項はMAになっていないと思うんだけど、あっているだろうか。

 ARMAXモデルという言葉について... forecastパッケージの中の人Hyndman先生は、(Aではなくて)BやC.のように撹乱項と説明変数に同じARがかかるのをARMAXモデルと呼んでいたと思う。モデルの呼び方が人によって違うので混乱する。気を付けないといけない。

 著者はB.について「関心が持てない」といっているけれど、うーん、その点は良く理解できなかった。そもそもA.のように、売上の撹乱項がホワイトノイズだと仮定するのは無理があるのではないか。その点、B.はARMA(1,1)撹乱項を考えているので自己相関が許される。C.もAR(1)撹乱項を考えていることになるけど、説明変数と撹乱項のリテンション率が同じだという点で不自然だ。
 むしろB.が一番自然なモデルなんじゃないかしらん? それとも、撹乱項が自己相関を持たないという実質的信念があるということだろうか...?

読了:Franses & van Oest (2004) Koyckモデルの注意点

2019年4月12日 (金)

Barhoumi, K., Darne, O., Ferrara, L. (2017) Dynamic Factor Models: A Review of the Literature. in "Handbook on Rapid Estimates", Eurostat.
 事情があって読んだ奴。分厚い本の1章だが、元はOECDが出している雑誌に載った論文らしい。
 ユーロスタット(EUの統計局)というところはこういう統計手法のハンドブックも出しているようで、眺めてみたところ他にもいろいろ面白そうなのがあった。空間統計ハンドブックとか、季節調整ハンドブックとか。いずれもすべて無料という太っ腹である。
 タイトルの通り、動的因子モデルについてのレビューだが、これまで読んできたのとは全然毛色がちがっていて、公式見解としては、不勉強を痛感した。非公式見解としては、いろいろ研究しやがってやってらんないぜ畜生と思った。

イントロダクション
 時系列データがすごくたくさんあるときの分析手法がいろいろ提案されている。たとえば:

 動的因子分析モデルもそのひとつだ。$x_{it}$を分解して
 $x_{it} = \chi_{it} + \xi_{it}$
$\chi_{it}$は少数の共通因子$F_{1t}, \ldots, F_{rt}$からなると考え
 $x_{it} = \lambda_{i1}F_{1t} + \cdots + \lambda_{ir} F_{rt} + \xi_{it}$
とするわけね。ベクトルで書くと
 $X_t = \Lambda F_t + \xi_{t}$
行列で書くと
 $X = F \Lambda^{'} + \xi$
以下、$X$はサイズ$T \times N$, $F$は$T \times r$とする。

$N$が小さいときの因子モデル
 ここでは6~7変数程度までの因子モデルについて考える。
 
 静的因子モデル(SFM)
 以下の仮定をおく。

 これが静的因子モデル(SFM)。推定には、変数がIIDだと仮定するか(SH4)、ないし変数においてなんらかの時間ダイナミクスがあると仮定する(SH4の破棄)。
 共分散行列$\Sigma_X = E(X_t X_t^{'})$は
 $\Sigma_X = \Lambda \Sigma_F \Lambda^{'} + \Sigma_\xi$
これは識別・推定できる。最小二乗解はデータに自己相関があってとしても一致推定量である。

 厳密な動的因子モデル(DFM)
 $x_{it} = \chi_{it} + \xi_{it}$
として、$\chi_{it}$は共通ショックの累積だと考える。
 共通ショックのベクトル(長さ$q$)を$u_t = (u_{1t}, \ldots, u_{qt})'$とする。ラグ$s$まで考えて
 $\chi_{it}$
 $= b_{i1}^0 u_{1t} + \ldots + b_{i1}^s u_{1,t-s}$
 $+ b_{i2}^0 u_{2t} + \ldots + b_{i2}^s u_{2,t-s}$
 $+ \ldots$
 $+ b_{iq}^0 u_{qt} + \ldots + b_{iq}^s u_{q,t-s}$
$s$が有限である場合を「制約つきDFM」、$s$が無限である場合を「一般化DFM」という。[←へー]

 ラグ演算子$L$を使うと、$b_{il}(z)$を$s$次多項式
 $b_{il}(z) = b^0_{il} + b^1_{il} z + \ldots + b^s_{il} z^s$
として、
 $\chi_{it} = \sum_l^q b_{il}(L) u_{lt}$
[混乱してきたのでメモしておくと、$l = 1, \ldots, q$は共通ショックの添え字]

多項式を横ベクトル$B_i(z)$で表現して行列で書くと
 $\chi_{it} = B_i(L) u_t$

 [何言ってんだかわかんなくなってくるのでメモすると、$B_i(L)$は、左から順に
 $b_{i1}^0 L^0 \ldots + b_{i1}^s L^s$
 $b_{i2}^0 L^0 \ldots + b_{i2}^s L^s$
 $\ldots$
 $b_{iq}^0 L^0 \ldots + b_{iq}^s L^s$
というのが詰まっている、長さ$q$のベクトルね]

さて、ここで
 $B_i(L) = \lambda^*_i(L) C(L)$
と仮定しよう。$\lambda^*_i(L)$は$s$次多項式のベクトルで長さ$r$ (a $r$ vector of polynomials with degree $s$)。$C(L)$は$r \times q$行列。すると
 $\chi_{it} = \lambda^*_i(L) F^*_t$
となり、$F^*_t = C(L) u_t$は静的因子、共通ショック$u_t$は動的因子と呼べる。つまり動的因子が$q$個あるモデルは、静的因子が$r=q(s+1)$個あるモデルだと考えられる。

 [うぎゃー。さっぱりわからん。
 $u_t$は共通ショックの縦ベクトルで長さ$q$。これを動的因子と呼んでいる。で、その左から$r \times q$行列$C(L)$を掛けると長さ$r$の縦ベクトルになるわね。これを静的因子$F^*_t $と呼んでいる。これに左から長さ$r$の横ベクトル$\lambda^*_i(L)$を掛ける、という話である。
 それはわかる、わかるんだけど... ええと、$\lambda^*_i(L)$ってのは$s$次ラグ多項式のベクトルなわけですよね? つまり、さきほどの$B_i(L)$が長さ$q$のラグ多項式ベクトルだったのを、もう少し長い、長さ$r$のラグ多項式ベクトルに変えましたってことですよね? そのかわり、元の共通ショックベクトル$u_t$(長さ$q$)に左から変換行列$C(L)$を掛けて長さ$r$のベクトルにしましたってことですよね? そしてその変換行列$C(L)$のなかに入ってるのもやっぱりラグ多項式ってことでOK? ... なんでそんなことすんの?
 $\lambda^*_i(L)$がラグ多項式のベクトルじゃなくてただのスタティックな因子負荷ベクトルだってんならわかるよ? その場合は、$F^*_t = C(L) u_t$ってのは$u_t$にいわばベクトル版のMA(s)フィルタを掛けて得た$r$変量時系列であり、あなたこれからは$u_t$じゃなくてこの$F^*_t$をお使いなさい、もうラグとか気にしなくていいのよ、ってことですよね?
 いやまて...??? ひょっとすると、$C(L)$ってのは「共通ショック$u_t$の$s$期過去分までを含む$q \times (s+1)$行列を縦一列のベクトルに並び替える」という行列なのだろうか。つまり、列1は$(1, L, L^2, \ldots, L^s)'$であるような行列なのか。その場合は$\lambda^*_i(L)$は「ラグ多項式のベクトル」ではなくて、「$q$本のラグ多項式のなかに出てくる係数をすべて縦一列にならべたベクトル」、ってことになる... ああ、それなら確かに静的因子の数は$r = q(s+1)$になるね... そんならそれで納得するけど、その場合でも、$\lambda^*_i(L)$という風にわざわざ$L$と書くのは変だ... ううううううう]

 このモデル、ふつう最尤法で推定できる。以下の仮定を置くことが多い。

[ああ... 前に読んだ論文でいえば、この論文の$\chi_{it} = B_i(L) u_t$ってのはwhite noise factor score (WNFS)モデルであり、$\chi_{it} = \lambda^*_i(L) F^*_t$ってのはdirect autoregressive factor score (DAFS)モデルではなかろうか。いや、その場合でも、やっぱり$\lambda^*_i(L)$とわざわざ$L$を追記している理由がわからない... それに静的因子数が$r = q(s+1)$だという理由もわからなくなってくる...]

 さて、DFMを状態空間形式で書きなおしてみよう。
 共通因子についてVAR(p)を仮定する。すなわちラグ多項式 $\phi(L) = I - \phi_1 L - \ldots - \phi_p Lp$として、
 $\Phi(L) = \epsilon_t$
は次式と同値であるとする:
 $F_t = \sum_\tau^p \Phi_\tau F_{t-\tau} + \epsilon_t$
同様に、個体過程についてはAR(p')を仮定する。$\psi_i(L) = I - \psi_{i1} L - \ldots - \psi_{ip'} L^{p'}$として
 $\psi_i (L) \xi_{it} = \eta_{ij}$

 $\xi_{it} = \sum_\tau^{p'} \psi_{i\tau} \xi_{i,t-\tau} + \eta_{it}$
と同値であるとする。 なお、次数$p, p'$はAICとかBICとか、Doz & Lenglart検定とかで決めるのだが[←なにそれ...]、実際には$p=2, p'=1$で十分なことが多い。[そうか、共通因子はVAR(2), 独自因子はAR(1)ってことか... ううむ、DAFSモデルともちょっと違うのか。DAFSモデルの場合、独自因子に自己相関は許さないと思うので]

 状態空間表現で書きなおす。観察方程式は
 $X_t = c_t \beta_t + m_t Z_t + w_t$
$X_t$は説明変数ベクトルだが、$X_t$のラグがはいっていてもよい。$\beta_t$は長さ$r$の状態ベクトルで、$(F_t, \ldots, F_{t-p+1}, \xi_t, \ldots, \xi_{t-q+1})'$である。[←ええええ? 記号の使い方がへん... $q$は観察時系列の本数でしょう? $q$じゃなくて$p'$じゃないの?]
 状態方程式は
 $\beta_t = \alpha_t \beta_{t-1} + v_t$
ふつう$a_t, c_t, m_t$は時間不変とし、$E(v_t w^{'}_t)=0$とする。

 この場合も、最尤法とカルマン・フィルタで推定できる。最尤法にはふつうEMアルゴリズムを使う。

 Markov regime-switchingモデル: マルコフ連鎖に2つのregimeがあると考え、$S_t \in \{1,2\}$で表す。たとえば、ビジネスサイクルの低いフェイズと高いフェイズとか。
 たとえば、因子数$r=1$として、
 $x_it = \lambda^{'}_i F_t + \xi_{it}$
 $\phi(L)F_t = \mu(S_t) + \varepsilon_t$
で、$\xi_{it}$は分散$\sigma^2_i$の正規AR(1)に従い、$\varepsilon_t$は分散1の正規WNに従う。$S_t$の遷移確率については...[めんどくさくなってきたので以下略]

 Mixed frequency モデル
 月次時系列と四半期時系列が混じっちゃっているようなときの分析手法。[←へー。面白そうなだけどいま関心ないのでパス。Mariano & Murasawa, 2003 J.App.Econom.)というのをみるといいらしい]

$N$が大きい時の近似的因子モデル

上述の伝統的方法には以下の限界がある。

というわけで、近似的因子構造というのが提案されている。

 近似的SFM
 近似的因子構造という概念を最初に提案したのはChamberlain & Rothschild (1983 Econometrica)。この考え方では、個人撹乱項$\xi_t$は弱く相関することが許容される。彼らは、$N$が無限大に近づいたとき、因子分析はPCAと等価だということを示した。[←えええええ???]
 この研究では$\Sigma_X$が既知だった。Connor & Korajczyk (1986 J.Financial Econ., 1988同誌, 1993 J.Finance)はこれを$\Sigma_X$が未知の場合に拡張し、$N$が$T$より大きい時、$T \times T$の共分散行列をPCAしても因子モデルを推定できるということを示した。
 Stock & Watson (1999 J.Monetary Econ.), Bai & Ng (2002, Econometrica), Bai(2003)はTとNの両方が大きい時の収束率を求めている。
 [なんだか聞いたこともないような話が書いてあって泣きそうだ... Bai(2003)って引用文献リストにない。おそらくBai(2004, J.Econom.)であろう。参ったな、しかし]

 近似的DFM
 Forni & Lippi (1997 書籍), Forni & Reichlin (1998 Rev.Econ.Studies), Forni et al(2000 Rev.Econ.Studies, 2004 J.Econom.)がある。これはBrillinger(1981)の動的PCAの拡張で...[以下、周波数領域による説明になる。全くついていけないのでパス]

 FMVARモデル
 factor-augmented VARモデル。これはもともと、VARモデルや構造VARモデルで欠損値を扱おうというので提案された。
 $X_t = \Lambda F_t + B X_{t-1} + \xi_t$
ただし$B$は対角行列で、対角にはラグ多項式$\delta_i(L)$がはいっている。
 推定方法は...[省略。なるほどね、VARモデルに因子時系列をいれるわけね]

 時変パラメータモデル
 FMVARモデルのパラメータを時変させようという提案がある。
 $X_t = \Lambda_t F_t + B_t X_{t-1} + \xi_t$
とするとか、イノベーションの分散を時変させるとか。推定は...[省略]

 Mixed frequency モデル
 GhyselsらのMIDASアプローチというのがあって...[いま関心ないので丸ごと省略するけど、Rでいうとmidasrパッケージね]

$N$が大きい時の因子モデルの推定

 SFMの推定: Stock&Watson(2002 J.Business&Econ.Stat.)のアプローチ このアプローチでは、因子$F_t$をデータの線形結合
 $\hat{F}_{jt} = \hat{W}^{'}_j X_t$
で近似しようとする。そこでPCAを使って、因子の分散$\hat{W}^{'}_j \hat{\Sigma}_x \hat{W}^{'}$を最大化する$\hat{W}^{'}$を求める。$\hat{\Sigma}_x$ってのは、(標準化された)データの標本共分散行列ね。[なるほど... PCAを使うという意味がわかった]
 このアプローチでは変数間のダイナミクスが無視されている。ダイナミクスをいれるという提案には、時間領域で表現するのと周波数領域で表現するのがある。

 時間領域アプローチ
 Doz, Giannone & Reichlin (2011 J.Econom.; 2012 Rev.Econ.Stat.) が提案している。推定方法は2つある。
 その1, 二段階推定。まずPCAで$\hat{F}_t$を推定する。で、
 $x_{it} = \lambda^*_i(L) F^*_t + \xi_{it}$
を推定して、$\lambda^*_i(L)$の推定と$\Sigma_\xi$の推定を得る。そして... [面倒になったので以下略とするが、まあ雰囲気はわかりますわね]。カルマンフィルタで推定する。
 その2, 擬似最尤法... [面倒なので省略。いずれにせよこれは原論文にあたるべきだな]

 周波数領域アプローチ
 Forni, Hallin, Lippi, & Reichlin によるアプローチで... [途中から周波数領域の話になるのでパス。たぶん一生理解できないと思う]

 この章のまとめ:この分野は研究の蓄積が浅い。予測についていえばStock & Watsonのアプローチでも十分かも。上記のほかにベイジアンのアプローチもある、Kose, Otrok & Whiteman(2003 Am.Econ.Rev.; 2008 J.Int.Econ.), Lopes & West(2004 Statistica Sinica)をみよ。云々。

因子数の選択

 SFMの因子数選択
 Bai & Ng(2002)はこう考えた。因子数を$j$とする。分散を
 $V(j, F)= (NT)^{-1} \sum_t^T (X_t - \hat{\Lambda}\hat{F}_t)^2$
とする。$j$が増えればこの分散は増える。そこで$ln(V(j,F))$に$j$でペナルティをつけたのを基準として因子数を決める。
 なお、ペナルティのつけ方としてBai & Ngは3種類提案し、さらにAlessi et al.(2010)が2種類提案した。云々。

 DFMの因子選択
 [Bai & Ng(2007), Stock & Watson(2005), Breitung & Pigorsch(2013), Hallin & Liska(2007), というのが紹介されている。死ぬ... 真面目に読んでたら死ぬ... 申し訳ないけど丸ごとバス]

近年の実証研究
[動的因子モデルを使った研究を、短期経済監視, マクロ経済予測、金融政策と国際経済, の3つにわけて概観している。経済の話なのでメモは省略するけど、いろんな研究があるもんだなぁと無責任に感心した]

結論 [略]

読了:Barhoumi, Darne, Ferrara (2017) 動的因子モデルレビュー

2019年4月 1日 (月)

ほんとはいまそれどころじゃないんだけど、最近読んだ資料を記録しておく。いずれも、仕事の都合で泣きながら読んだ時系列分析の資料。

藤井光昭ほか (1993) 統計的時系列分析の現状と展望. 日本統計学会誌, 22(3), 375-411.
 前半は時系列分析の理論のレビュー。後半は、経済学、工学、海洋研究での時系列分析のレビュー。どれも難しくて、ちゃんと読んだとは言い難いけれど...

黒住英司(2008) 経済時系列分析と単位根検定:これまでの発展と今後の展望. 日本統計学会誌, 38(1), 39-57.
 これも読んだというよりめくったというのが正しい。世の中にはいろんな話題があるもんだなあと無責任に感心した。
 手元の数冊の教科書をみると、単位根検定の手法として紹介されているのはDF検定, ADF検定, PP検定, KPSS検定だが、この論文によればADFよりも優れたADF-GLS検定というのがあるんだそうな。理屈は難しくてよくわからんが、へー、そうですか。Rのurcaパッケージで言うとur.ers()という奴らしい。へー。

山本拓 (1992) 時系列分析とその経済分析への応用. 大蔵省財政金融研究所フィナンシャル・レビュー, June, 1992.

Patterson, K. (2011) Why distinguish between trend stationary and difference stationary processes? "Unit Root Tests in Time Series", Chapter 2.
 難しくてほとんど理解できていないが、単位根過程にうっかり直線をあてはめたら残差はどうなるか、トレンドつき定常過程についてうっかり差分をとったら何が起きるか、という点がそれぞれきちんと説明されていて、へえそうなんだと思った。
 このPDFはたまたま手に入れたんだけど、著者の単著の第二章。なんと2巻本らしい。単位根検定だけについての2巻本?それも単著で? それって自費出版的ななにか? と疑ったが、CiNiiによれば国内大学図書館における所蔵館10館、変な本ではなさそう。おそるべし計量経済学... 単位根検定だけでそんなに書くことがあるんすか...

読了:藤井ほか(1993), 黒住(2008), 山本(1992), Patterson(2011): 経済時系列分析と単位根検定

2019年1月21日 (月)

 統計的因果推論の分野における神々のひとりJudea Pearlの主著 Causality は、そのとてつもない難解さで有名である... 少なくとも私のなかでは有名である。訳書でさえ限りなくギリシャ語に近い(訳者の先生すいません)。もっとも、最近の著書"The Book of Why"はもう少し親しみやすそうなんだけど、あいにく、オフィスの机の脇に聳える必読書たちの山の、二合目あたりに埋もれている。

 Pearlさんが打ち出した重要な概念のひとつにdo(x)オペレータというのがある。説明は端折るけど、まあとにかく、そういうのがあるんです。その意味するところは、なかなか難しい。少なくとも私にとっては、わりかしギリシャ語っぽい。
 このたびPearlさんご本人が、do(x)オペレータの解釈についての短い文章をご発表になった。で、みずから「書いたから読んでね」とメールでアナウンスなさっていた(こういうところ、Pearl先生は実にマメである)。
 えーと、そのメールによれば、RubinとかRobinsとかHeckmanとかHermanとか(←Pearlさんに並ぶ神々たち)の「操作できない変数に因果的特性を帰属させることはできない」という主張は、もはや過去の遺物である、とのこと。
 ご覧ください、相変わらずのこの戦闘性を。ここだけの話、畏れながら私は、Pearlさんを心中ひそかにマッド・ドッグ先生とお呼びしている(これはインドネシアのアクション・スター、ヤヤン・ルヒアンさんの通り名であり、ファンたちの心からの畏敬の念を表しているのです)。

 というわけで、飯のついでに読んでみた。
 そんなに真剣なわけじゃないけど、ちょっと個人的な関心もあって... 以前なにかで、「Aさんが肺がんになった原因のひとつはAさんが喫煙者だったからだ」というのは理解できるけど、「Aさんが前立腺がんになった原因のひとつはAさんが男性であることだ」というのは「原因」という言葉の使い方としておかしい、というような議論を読んで、そうかなあ、とずっと心にひっかかっていた。

Pearl, J. (2019) On the interpretation of do(x). Technical Report R-486, UCLA Cognitive Systems Laboratory.

 いわく。
 この論文では、次の2つの問いに答える。

 問1について。
 モデル$M$に基づき観察研究をやって$Q$を識別できたとしよう。$Q$の使い方には次の3つがある。

 その1, $Q$は、将来利用可能であろう操作可能な介入がもたらす因果効果の理論的限界を表現している。
 $I = \{I_1, \ldots, I_n\}$を操作可能な介入の集合とする。アウトカム$Y$にもたらすそれらの効果を比べたい。これらの介入は、それ自体に直接介入することはできない$X$に効果を与え、それを通じて$Y$に影響するのだとしよう。
 さて、観察研究において$Q = E[Y|do(X=x)]$を識別し推定できたとしよう。このとき、$Q$はいずれかの介入が$Y$にもたらしうる究極的な効果である。つまり、個別の介入$I_i$についてその効果を評価したいという人にとっては、$Q$はすぐに使えるものではないかもしれない。しかし、$X$をより強く制御するために新しい介入方法を開発すべきかどうか決めたいという人にとっては、$Q$は価値を持つ。
 なお、$Q$は$X$を通じた$I_i$の影響の天井なのであって、$I_i$の影響そのものの天井ではないということに注意。$X$を経由しない効果もあるかもしれない。

 その2, $Q$は、現在操作可能な変数の因果的効果に対する制約として働く。
 $I$ → $X$ → $Y$というシンプルな線形モデルを考える。構造係数をそれぞれ$a$, $b$とする。交絡変数はなく、$I$から$Y$へのパスもないものとする。$X$は操作不能とする。
 人々はいう、$X$は操作可能じゃないから、$b$を因果効果と呼ぶのは変だと。そんなこたあない。介入$I$の$Y$に対する平均因果効果$ACE(I)$は、適切な正規化の下で
 $ACE(I) = E[Y|do(I+1)] - E[Y|do(I)] = a \times b$
である。$b$は実現可能で操作可能な介入$I$が持っている理論的特性である。
 非線形システムでもそうだ。$X=f(I, \varepsilon_x), Y = g(X, \varepsilon_y)$とすると
 $E(Y | do(I)) = \sum_x P(x|do(I)) E[Y|do(x)]$
である。$Y$への$X$の理論的効果$E(Y|do(x))$がゼロならば、介入$I$の因果的効果もゼロだ。
 線形システムに戻って、$X$→$Y$に媒介変数とか交絡変数とかがあるとしよう。そのときでも
 $c = E[Y|do(x+1)] - E[Y|do(x)]$
とすれば$ACE(I)=a \times c$である。要するに、$Q = E[Y|do(X=x)]$を識別し推定できれば、$I$の因果的効果も同定できる。
 いや、もちろん$ACE(I)$そのものが推定できるんなら話は別で、その際には$b$や$c$には意味なかろう。でも$I$の開発中には、まだ$I'$しか開発できてないなんてこともあるわけだ。そのとき、$b$や$c$がわかったら大いに役に立つ。もしそれが小さかったら、もう開発なんてやめちゃおうかという話になるじゃないですか。

 その3, $Q$は、操作可能な変数群の因果効果を導出するための補足的な数学的構成物として働く。
 かつてDawid(2000 JASA)はこう述べた。我々は「反事実的な量」なるものを観察したことがない、「反事実的な量」についての我々のモデリング上の想定について、その妥当性を実証的評価できたこともない。反事実という概念に頼ることは哲学的にいって間違っておる、と。
 実証的妥当性についてはそのとおりだ。しかし、実用主義的な実証主義と教条主義的な実証主義を区別する必要がある。前者は、問いが実証的に検証できることを求めるが、その検証の際にどんなツールを使うかについては、便利さと想像力の問題と捉える。後者は、分析に登場するすべての補足的シンボル、すべての中間段階が、実証的な厳密さを持つ用語だけを含むことを求める。極端にいえば、負の値での割り算も認めないってことになるだろう。
 因果推論の文脈で言うと、実用主義者は、個々の測定単位の観察されない反事実(たとえば$Y_x(u)$)を喜んでみとめるだろう。それが集団効果についての実証的に検証可能な推定に役立つならば。Rosenbaum & Rubin(1983)の「潜在的アウトカム」というフレームワークでも、こうやって反事実が使われている。
 話を$Q$に戻そう。人々はいう、$X$が操作不能なとき、$Q$は実証性がないと。百歩譲って、$Q$は因果的効果でもなければ因果的効果の限界でもないとしよう。でも、少なくとも純粋に数学的な構成物ではある。それはそれ自体に経験的内容はないけれど、実証的に意味のある結果を導き出すことを可能にしてくれる構成物である。そういうのって、科学においては決して珍しくない。「複素数」とかね。

 問2について。
 $X$を直接操作することはできなくても、$Q(x) = q(x)$という主張を反証できるような研究計画を組み、データが主張と矛盾しないことを確かめることはできる。つまり、$Q(x) = q(x)$という主張をもたらしたモデリング上の想定から得られる、検証可能な含意を確認すればよい。
 たとえば、$Q(x)$がバックドア基準を通じて識別可能であり、バックドア基準を満たす共変量セットが手に入るから、それらの共変量を調整しよう、とか。
 $I$ → $X$ → $Y$であり、かつ$I$と$Y$に刺さる未知の共変量$U$があるので、あいにく観察研究で検証可能な含意はないが、RCTで$I$をランダム化して$P(y|do(I))$を推定しよう、とか。

 このように、操作不能な変数も因果的効果を持つことができる。それを検証することもできる。その変数が操作可能かどうかなんて、(実験計画はともかく)分析のフェーズでは、気にせんでよろしい。

読了: Pearl (2019) わがdo(x)オペレータの正しい解釈

2019年1月14日 (月)

Chow, S., Ho, M.R., Hamaker, E., Dolan, C.V. (2010) Equivalence and Differences Between Structural Equation Modeling and State-Space Modeling Techniques. Structural Equation Modeling, 17, 303-332.

 仕事の都合で泣く泣く読んだ奴。いま気がついたのだが、著者に動的因子分析のHamakerさん, 状態空間モデルのDolanさんがはいっている。先に著者名をちゃんとみておこうよ、俺...

 SEM(構造方程式モデリング)と状態空間モデリングのどこが同じでどこがちがうか説明しましょう、という論文。
 壮大な問題設定なのでびびってしまうが、あとでみるように、この論文がSEMと呼んでいるのはいわゆるSEMよりちょっと狭くて、測定変数間にパスがなく、因子に外生的な説明変数がないようなやつのことである(つまり、CFAの因子間にパス引いた奴)。SEM関連の本は全部オフィスの本棚に並べておるのでいまわからんが、普通そういうモデルはなんて呼ぶんですかね。多重指標モデル?

 イントロは省略して...

 まずSEMについて説明しよう。[原文の添字を簡略化してメモする]
 $y_i = \tau + \Lambda \eta_i + \epsilon_i$
 $\eta_i = \alpha + B \eta_i + \zeta_i$
ただし$y_i$, $\tau$, $\epsilon_i$は長さ$p$のベクトル, $\eta_i$, $\alpha$, $\zeta_i$は長さ$w$のベクトル。$\epsilon_i$の共分散行列を$\Theta$, $\zeta_i$の共分散行列を$\Psi$とする。
 母共分散行列と母平均は
 $\Sigma = \Lambda(I-B)^{-1} \Psi (I-B)^{-1'} \Lambda_{'} + \Theta$
 $\mu = \tau + \Lambda (I-B)^{-1} \alpha$
 SEMの場合、複数時点で測定しているデータについては、ふつうは$y_i$を二次元にするのではなくて長さを伸ばす。$T$時点の縦断データだったら、$T$時点がすべて$y_i$, $\eta_i$に叩き込まれるわけである。
 パラメータ推定にあたっては、ふつはMVNを仮定して尤度を求める。この場合は標本共分散行列$S$と標本平均ベクトル$m$があればよい。でもローデータから尤度を求めることもできる(以下RMLと呼ぶ。FIMLともいう)。時点数が個人数を超えている反復測定データなんかの場合はRMLを使わざるを得ない。
 RMLでは、個々の個人のデータベクトルの対数尤度を足し上げた
 $LL(\theta) = (1/2)\sum_i [-p \log(2\pi) - \log|\Sigma| - (y_i - \mu)^{'} \Sigma^{-1} (y_i - \mu)]$
を最大化する。MVNを仮定すると、この式はこう書き換えられる。
 $F(\theta) = (1/2)[\log|\Sigma|+tr(S\Sigma^{-1}) - \log|S| - p] + (1/2)[(m-\mu)^{'} \Sigma^{-1} (m-\mu)]$
 第1項はモデルの対数尤度、第1項は完全に飽和したモデル(つまり$\Sigma = S, \mu=m$であるモデル)の対数尤度である。これに$-2 (N-1)$を掛けるとカイ二乗統計量になる。[途中から写経モードに... まあ信じますよ先生]

 今度は状態空間モデルについて。
 $y_{it} = \tau + \Lambda \eta_{it} + \epsilon_{it}$
 $\eta_{it} = \alpha + B \eta_{i,t-1} + \zeta_{it}$
標準的な状態空間表記ではすべてのパラメータを時変とみるのだが、ここでは不変とみる。また外生変数もないことにする。
 パラメータ推定はふつうカルマン・フィルタ(KF)でやる。
 まず$t=0$における状態ベクトル$\eta_{i,0|0}$とその共分散行列$P_{0|0}$を決める。たとえば前者は0のベクトル、後者は$\kappa I$($\kappa$は十分に大きな数)とか。さらに、$\epsilon_{it} \sim N(0, \Theta)$, $\zeta_{it} \sim N(0, \Psi)$と仮定する。
 次に、各時点における$i$の状態ベクトルとその共分散行列を、それまでの観察によって予測する。
 $\eta_{i,t|t-1} = \alpha + B \eta_{i,t-1|t-1}$
 $P_{t|t-1} = B P_{t-1|t-1}B^{'} + \Psi$
以下では
 $e_{i,t|t} = y_{it}-(\tau + \Lambda \eta_{i,t|t-1})$
をイノベーションと呼ぶ(one-step-ahead予測誤差ともいう)。期待値は0である。
 さて、この2つの推定値を、その時点の観察を使って更新する。
 $\eta_{i,t|t} = \eta_{i,t|t-1} + K_{t|t} e_{i,t|t}$
 $P_{t|t} = [I-K_{t|t}\Lambda] P_{t|t-1}$
ただし
 $K_{t|t} = P_{t|t-1} \Lambda^{'} [\Lambda P_{t|t-1} \Lambda^{'} + \Theta]^{-1}$
これをカルマン・ゲインという。
 さて、全員について$T$時点の推定を行った暁には、イノベーション$e_{i,t|t-1}$とその共分散行列
 $G_t = E[e_{i,t|t-1}e_{i,t|t-1}^{'}]$
が手に入る。後者はすべての$i$について$\Lambda P_{t|t-1}\Lambda^{'}+\Theta$である。
 ここから対数尤度関数が手に入る。
 $LL(\theta) = (1/2)\sum_i \sum_t [-p \log(2\pi) - \log|G_t| -(e_{i,t|t-1}^{'})G_t^{-1} (e_{i,t|t-1}) ]$
これを予測誤差分解(PED)関数という。これを最大化すればいい。
 要約しよう。まずパラメータに初期値を与える。つぎにカルマンフィルタで個々人の各時点での状態を推定する(このときパラメータは定数とみなす)。次に状態推定を既知と見なしてパラメータをPED関数で推定する。このパラメータを定数とみなして新しい状態を推定する。これを繰り返す。

 いよいよ本題。SEMと状態空間モデリングは、どこが同じでどこがちがうか。
 ひとことでいうと次の通りである。どちらも「プールされた個人内ダイナミクス」を表現している。SEMは潜在変数間の同時的な構造的関係と、その関係の個人間の差を捉えるのに適している。状態空間モデルは、もっと複雑な個人内ダイナミクスを表現するのに適している。

 もっと細かくいうと次のとおり。以下、SEMのパラメータに添字$S$, 状態空間モデルのパラメータに添字$K$をつける。
 状態推定について。$B_K=0$とすれば、カルマンフィルタは回帰法による因子得点推定と同じである。また$B_K=0$で$\Psi_K$が無限大に近いとき(つまり事前情報がないとき)、カルマンフィルタはバートレット法による因子得点推定に近づく。[...中略...]
 パラメータ推定について。$T=1$の場合、$B_S = B_K = 0$となり、2つのモデルは等しい。$T > 1$の場合、$p_S = T \times p_K$ならば、対数尤度関数が同じになる。さらに$B_S = B_K = 0$なら、パラメータ推定値は同じになる。
 問題は$B_S, B_K$が0でない場合。特別な制約を付けない限りパラメータは変わってくる。その制約がどんなものかは、実例をみたほうが早かろう。

 実例1, 横断共通因子モデル。ここでみなさんに、「状態空間モデルはある個人の反復測定データを扱う手法である」というよくある思い込みから脱して頂きます。

 SEMの場合。$B$が0になるので、
 $y_i = \tau + \Lambda \eta_i + \epsilon_i$
 $\eta_i = \alpha + \zeta_i$
共分散行列を$\Theta = E(\epsilon_i \epsilon_i^{'}), \ \Psi = E(\zeta_i^2)$として、
 $\Sigma = \Lambda \Psi \Lambda^{'} + \Theta$
 $\mu = \tau + \Lambda \alpha$
 $LL = (1/2) \sum_i [-p \log(2\pi) - \log |\Sigma| - (y_i - \mu)^{'} \Sigma^{-1} (y_i - \mu)]$
対数尤度関数は状態空間モデルと同一になる。

 [ほんとなの? 試してみよう。
 $y_{it} = \tau + \Lambda \eta_{it} + \epsilon_{it}$
 $\eta_{it} = \alpha + \zeta_{it}$
イノベーションは本来は$e_{i,t|t-1} = y_{it}-(\tau + \Lambda \eta_{i,t|t-1})$だけど、$\eta_{i,t|t-1} = \alpha$だから
 $e_{i,t|t-1} = y_{it}-(\tau + \Lambda \alpha)$
 $G_t = \Lambda \Psi \Lambda^{'}+\Theta$
 $LL = (1/2) \sum_i \sum_t [-p \log(2\pi) - \log|G_t| -(e_{i,t|t-1}^{'})G_t^{-1} (e_{i,t|t-1}) ]$
なるほど、同じだわ]

 シミュレーション。$N=200, T=1, p=4$のデータについて$w=1$の共通因子モデルを組みます。パラメータの真値を適当に決めて架空データをつくり、LISRELとmkfm6(という状態空間モデルのプログラムがある由)で分析してみる。結果はほぼおなじ。

 実例その2, 単変量LDSモデル(Nが大きくてTが小さい場合)。
 McArdle & Hamagamiのlatent difference scoreモデルについて考える。(ああ、読んでおいて良かった... なにがいつ役に立つかわからんねぇ...)
 LDSモデルでは、観察の後ろに潜在変数$\eta_{it}$を考え、さらに「潜在変数の前期からの差」という潜在変数$\Delta \eta_{it}$を考える。
 $y_{it} = \eta_{it} + e_{it}$
 $\eta_{i, t+1} = \eta_{it} + \Delta \eta_{i,t+1}$
でもって、
 $\Delta \eta_{it} = \eta_{si} + \beta \eta_{i,t-1}$
と考える。$\eta_{si}$は$i$さんの定数項で変化の強さを表す。$\beta$は全員共通の定数項で、自己フィードバックを表す。以上をまとめると
 $\eta_{i,t+1} = \eta_{si} + (1+\beta) \eta_{it}$
$i$さんの時点0における切片項と変化の強さを、平均と偏差に分解して
 $\eta_{0i} = \mu_{\eta 0} + \zeta_{\eta 0 i}$
 $\eta_{si} = \mu_{\eta s} + \zeta_{\eta s i}$
$E(\zeta_{\eta 0 i}^2) = \sigma^2_{\eta 0}$, $E(\zeta_{\eta s i}^2) = \sigma^2_{\eta s}$とする。
 LDSモデルは要するに成長曲線モデルだと考えてよい。ちがいは、潜在傾きをさらにモデル化しているという点。

 SEMで表現してみましょう。
 長さ$T$のベクトル$y_i$を考える。測定モデル
 $y_i = \Lambda \eta_i + \epsilon_i$
で、潜在変数$\eta_i$を、長さ$T+1$のベクトル$[\eta_{i1}, \ldots, \eta_{iT}, \eta_{si}]'$とする。$\Lambda$は$T \times T$の単位行列の右に、すべて0の列をくっつけた奴にする。要するに、$\eta_{si}$は測定モデルには出てこないんだけど、話の都合上、潜在変数ベクトルにいれておくわけである。トリックですね。
 構造モデル
 $eta_i = \alpha + B \eta_i + \zeta_i$
では、$\alpha$は先頭が$\mu_{\eta 0}$、末尾が$\mu_{\eta s}$、ほかはすべて0のベクトルにする。$\zeta_i$も同様で、先頭が$\zeta_{0i}$、末尾が$\zeta_{si}$、ほかはすべて0である。
 $B$はどうなるか。時点1については(つまり$B$の1行目)、すべて0でよい。時点$2,\ldots,T$については(つまり$B$の2行目から$T$行目)、対角に$1-\beta$をいれた$(T-1) \times (T-1)$の対角行列の右に、すべて0の列($\eta_{iT}$にかかる係数)、すべて1の列($\eta_{si}$にかかる列)をくっつければ良い。最後の行は$\eta_{si}$をつくるための係数だから、すべて0。ね? 実は$\Delta \eta_{it}$なんていらないのだ。[←なるほど...]

 状態空間で表現してみましょう。[原文とはちがうが、話がややこしくなるので、状態空間モデルでの潜在変数はアスタリスクをつけて$\eta^{*}$とする]
 観察方程式
 $y_{it} = \Lambda \eta_{it}^{*} + \epsilon_{it}$
で、潜在変数$\eta_{it}^{*}$をベクトル$[\eta_{it}, \eta_{si}]'$にする。$\eta_{si}$は時間不変だし、そもそも観察変数には出てこない奴なので、変な感じだが、これもトリックですね。$\Lambda = [1,0]'$である。
 遷移方程式
 $\eta_{it}^{*} = B \eta_{i,t-1}^{*} + \zeta_{it}$
はどうなるか[ここ、原文に誤植があると思うので勝手に直した]。$\zeta_{it}$はすべて0。$B$は$2 \times 2$行列で、1行目($\eta_{it}$をつくる係数)は$[1-\beta, 1]'$。2行目は、時間不変だから$[0,1]'$。
 最後に、初期値$\eta^{*}_{i1|1}$を$\mu_{\eta 0}, \mu_{\eta 1}$, その共分散行列$P_{i1|1}$の対角要素を$\sigma^2_{\eta 0}, \sigma^2{\eta s}$とする。

 シミュレーション。$N=400, T=10$のデータについてLDSモデルを組む。パラメータの真値を適当に決めて架空データをつくり、LISRELとOx(という状態空間モデルのプログラムがある由)で分析してみる。結果はほぼおなじ。
 というわけで、LDSモデルはSEMとしても状態空間モデルとしても推定できるんだけど、後者のほうが便利。なぜなら、SEMだと(1)$T>N$のときに困るし、(2)$T$が大きいだけでえらいことになる。

 実例その3,自己回帰動的因子モデル($T$が大きくて$N=1$)。
 長さ$p$の観察ベクトル$y_{it}$について
 $y_{it} = \Lambda \eta_{it} + u_{it}$
 $\eta_{it} = A_1 \eta_{i,t-1} + A_2 \eta_{i,t-2} + \ldots + \zeta_{it}$
というのがこのモデル[原文に誤植があると思うので勝手に直した]。以下、2因子、6指標、ラグ1までのモデルを考えます。

 状態空間表現の場合。観察方程式
 $y_{it} = \Lambda \eta_{it} + \epsilon_{it}$
の$\eta$は長さ2のベクトル。$\Lambda$は$6 \times 2$の行列で、1列目を$[1, \lambda_{21}, \lambda_{31}, 0, 0, 0]'$, 2列目を$[0,0,0,1, \lambda_{52}, \lambda_{62}]'$とする(識別のためにひとつ1をいれている)。
 遷移方程式
 $\eta_{it}^{*} = B \eta_{i,t-1} + \zeta_{it}$
の$B$は$2 \times 2$の行列で、ラグ1の自己回帰係数。$\zeta_{it}$はこのVAR(1)プロセスで説明できない因子得点である。

 SEMの場合。データ行列は$N \times T p$となるわけで、共分散行列をつかった最尤推定はできない。ひとつの路線はRMLを使うことだが、計算が大変である。もうひとつはブロック・トープリッツ行列を使うという路線。こっちで考えます。
 [あれ、ほかにも方法があるのではなかろうか。まあいいけどさ]

 $N=10, T=200$でモンテカルロシミュレーションしてみよう。[...メモ中略...] とこのように、ブロック・トープリッツ行列路線はパラメータ推定値がけっこう歪む。それに個人レベルの因子得点も推定できない。お勧めできない。

 考察。
 心理学のみなさんは状態空間モデルをあまり使わない。もったいない。SEMにも状態空間モデルにもそれぞれ美点があるので、使い分けましょう。
 云々、云々。

読了:Chow, Ho, Hamaker, Dolan (2010) SEMと状態空間モデルのどこが同じでどこが違うか

2019年1月12日 (土)

 目の前の仕事に日々追い立てられる毎日であるが、副業というか研究開発的な案件のほうもそれはそれで追い詰められていて、年末、階層モデルについて考えていて頭が混乱してしまい、ちょっとしたパニックに陥った。とりあえず、抱えている問題と関係ありそうなPDFを拾って印刷し、年末年始でだだだーっと読んでみた。そのなかの一本。要は測定不変性に関する話で、とっつきやすい。

Im, M.H., Kim, E.S., Kwok, O.M., Yoon, M., Willson, V.L. (2016) Impact of Not Addressing Partially Cross-Classified Multilevel Structure in Testing Measurement Invariance: A Monte Carlo Study. Frontiers in Psychology, 7, 328.

 いわく。
 教育や社会科学においてはマルチレベルデータを扱うことが多いけど、たいていの場合階層線形モデルが用いられている。そこでは、下のレベルの事例は上のレベルのあるひとつのクラスタに属する。たとえば、ある生徒はある教室に属し、ある教室はある学校に属する。
 しかし現実はそうでない。生徒はふたつの学校に通っていたりするし、学校と地域のように、一方が他方の下にあるわけではないこともある。こういう非階層的なマルチレベルデータをcross-classifiedマルチレベルデータという。
 近年ではcross-classifiedマルチレベルデータを正しく分析することが大事だという理解が広まっている。Goldstein(1986 Biometrika, 1995書籍), Rasbash & Goldstein (1994 J.Educ.Behav.Statist.), Raudenbush & Bryk(2002書籍) をみよ。教科書への記載も増えておるぞ。実証研究も増えておるぞ。Fielding (2002 Sch.Eff.Sch.Improv.), Jayasinghe et al.(2003 JRSS), Marsh et al.(2008 J.Edu.Psy.)をみよ。
 しかるに、一部の者どもはcross-classifiedデータをいまだ階層線形モデルで分析しておる。実に嘆かわしいことである。
 cross-classifiedデータを階層データとして扱うとどうなるか。研究は少ないんだけど、分散成分の推定にバイアスがかかると指摘されている。

 さて。近年の社会科学においては、異なる集団間なり時点間なりでの測定不変性(MI)の検証が一般的になっている。階層的マルチレベルデータでにおけるMIの検証にはマルチレベル確認的因子分析(MCFA)が広く用いられている。それはいいんだけど、実際のマルチレベルデータは必ずしも階層になっていないのに、それでもふつうのMCFAが使われているのである。一般的なSEMのソフトではcross-classifiedマルチレベルデータのMCFAができないからである。[←これを読んで慌てて調べたが、これはちょっと吹かし気味のご発言で、Mplusには2012年秋リリースのVer.7の時点でがTYPE=CROSSCLASSIFIEDが搭載されている。現在もっとも一般的なSEMソフトといえばMplusだと思うんですが。ま、要するにMplus買いましょうってことっすね]

 というわけで、本研究は、cross-classifiedマルチレベルデータが測定不変性を持っているかどうかを検討するとき、cross-classifiedであることを正しく扱わなかったらどうなるかを調べる。

 まずは、ふつうのMCFAとcross-classified MCFAのちがいについて説明しよう[←ありがとうありがとう。それが読みたかったのよー]。

 2レベル, 1因子, 4指標の場合を考える。
 ふつうのMCFAの場合、ある生徒 $i$ はある学校 $j$ にのみ属する。観察ベクトルを$X[i,j]$と呼ぼう。いっぽうcross-classified MCFAでは、$i$は学校$j_1$と地域$j_2$に属する。観察ベクトルを$X[i, (j_1, j_2)]$と書こう。[原文では$X_{ij}$, $X_{i(j_1, j_2)}$なのだが、添字が深くなりすぎるので表記を変える。以下同様]

 ふつうのMCFAでは、Withinレベルで$x_1, x_2, x_3, x_4$に因子FWからパスが刺さり、さらにBetweenレベルで、$x_1, x_2, x_3, x_4$に因子FBからパスが刺さる。いっぽうcross-classified MCFAでは、Betweenレベルが学校のパートと地域のパートに分かれる。学校のパートでは$x_1, x_2, x_3, x_4$に因子FB1からパスが刺さり、地域のバートでは$x_1, x_2, x_3, x_4$に因子FB2からパスが刺さる。

 式で書こう。まず単純に、潜在変数を$\eta$として、普通のMCFAでは
 $X[i,j] = \tau + \Lambda \eta[i,j] + \varepsilon[i,j]$
cross-classified MCFAでは
 $X[i,(j_1,j_2)] = \tau + \Lambda \eta[i,(j_1,j_2)] + \varepsilon[i,(j_1,j_2)]$
観察値はMVNに従うものとする。(IID正規である必要はない。階層データだから)

 クラスタ間で変動するランダム効果をいれよう。ふつうのMCFAの場合、$\eta[i,j]$が2つに分かれる。
 $\eta[i,j] = \alpha + \eta_w[i,j] + \eta_b[j]$
$\alpha$は$\eta[i,j]$の期待値というか全体平均である。
 いっぽうcross-classified MCFAの場合、$\eta[i,(j_1,j_2)]$は3つに分かれる。
 $\eta[i,(j_1, j_2)] = \alpha[j_1] + \alpha[j_2] + \eta_w[i,j] + \eta_b[j_1] + \eta_b[j_2]$
$\alpha[j_1], \alpha[j_2]$はFB1, FB2の期待値である。[FWの期待値は0ってことね]

 元の式のほうも分解してみよう。ふつうのMCFAでは
 $X[i,j] = \tau_b + \Lambda_w \eta_w[i,j] + \Lambda_b \eta_b[j] + \varepsilon_w[i,j] + \varepsilon_b[j]$
 MCFAでは切片はBetweenレベルにしかないという点に注意。
 これがcross-classified MCFAだと
 $X[i,(j_1, j_2)]$
 $= \tau_b[j_1] + \tau_b[j_2]$
 $+ \Lambda_w \eta_w[i,j] + \Lambda_b[j_1] \eta_b[j_1] + \Lambda_b[j_2] \eta_b[j_2]$
 $+ \varepsilon_w[i,j] + \varepsilon_b[j_1] + \varepsilon_b[j_2]$
となる。切片は2つになる。

 因子分散も分解できる。ふつうのMCFAだと
 $V(\eta[i,j]) = \Psi_w + \Psi_b$
で、全分散に占める$\Psi_b$の割合を級内相関(ICC)という。いっぽうcross-classified MCFAだと
 $V(\eta[i,(j_1, j_2)]) = \Psi_w + \Psi_b[j_1] + \Psi_b[j_2]$
となる。ICCが2つできることになる。

 独自分散も分解できる。ふつうのMCFAだと
 $V(\varepsilon[i,j]) = \Theta_w + \Theta_b$
 $V(\varepsilon[i,(j_1,j_2)]) = \Theta_w + \Theta_b[j_1] + \Theta_b[j_2]$

 最後に、共分散行列$\Sigma_T$の分解。ふつうのMCFAの場合、共通因子$\eta$と独自因子$\varepsilon$が独立だという仮定の下で、
 $\Sigma_b = \Lambda_b \Psi_b \Lambda^{'}_b + \Theta _b$
 $\Sigma_w = \Lambda_w \Psi_w \Lambda^{'}_w + \Theta _w$
として$\Sigma_T = \Sigma_b + \Sigma_w$である。同様にcross-classified MCFAでは...[面倒なのでメモは省略するが、$\Sigma_T$が3つに分かれる]

 さて、測定不変性の話。
 測定不変性というのは因子-指標間の非線形的関係を含んだ広い言葉だが、線形因子モデルにおける測定不変性(因子不変性, FI)とは、パラメータが群間で等しいことをいう。その検証のためには、MCFAモデルにパラメータ等値制約を掛けていく。因子パターンが同じ(配置不変)、負荷が同じ(メトリック不変)、潜在変数の切片が同じ(スカラー不変)、独自分散が同じ(厳密不変)、というふうに。[ここで因子パターンといっているのは、いわゆる因子パターン行列のことじゃなくて、因子負荷行列のどこが0でないか、ということであろう]
 cross-classified MCFAの場合だとこうなる。以下、群を$g$で表す。モデルは
 $X_[i,(j_1,j_2),g]$
 $= \tau_b[j_1,g] + \tau_b[j_2,g]$
 $+ \Lambda_w[g] \eta_w[i,j,g] + \Lambda_b[j_1,g] \eta_b[j_1,g] + \Lambda_b[j_2,g] \eta_b[j_2,g]$
 $+ \varepsilon_w[i,j,g] + \varepsilon_b[j_1,g] + \varepsilon_b[j_2,g]$
 共分散行列を分解して
 $\Sigma_b[j_1,g] = \Lambda_b[j_1,g] \Psi_b[j_1,g] \Lambda^{'}_b[j_1,g] + \Theta_b[j_1,g]$
 $\Sigma_b[j_2,g] = \Lambda_b[j_2,g] \Psi_b[j_2,g] \Lambda^{'}_b[j_2,g] + \Theta_b[j_2,g]$
 $\Sigma_w[g] = \Lambda_w[g] \Psi_w[g] \Lambda^{'}_w[g] + \Theta_w[g]$
 まず配置不変性を検討する(因子数と各因子の指標数が群間で等しいといえるかを調べる)。
 次にメトリック不変性を調べる。帰無仮説は
 $\Lambda_b[j_1,1]=\Lambda_b[j_1,2]= \cdots = \Lambda_b[j_1,G]$,
 $\Lambda_b[j_2,1]=\Lambda_b[j_2,2]= \cdots = \Lambda_b[j_2,G]$,
 $\Lambda_w[1]=\Lambda_w[2]= \cdots = \Lambda_w[G]$。
 次にスカラー不変性を調べる。帰無仮説は
 $\tau_b[j_1,1]=\tau_b[j_1,2]= \cdots =\tau_b[j_1,G]$,
 $\tau_b[j_2,1]=\tau_b[j_2,2]= \cdots =\tau_b[j_2,G]$。
 最後に厳密不変性を調べる。帰無仮説は...めんどくさいから省略するけど、$\Theta$が等価だという3つの仮説ね。

 ここからは実験をふたつ。

 実験1。学校が20個、地域が50個あり、一方が決まると他方がある程度まで決まるというデータ(部分的cross-classifiedデータ)をつくる。cross-classified MCFA、1因子4指標で、3つのどのパートでも負荷は0.7から1のあいだであり、とりあえずはレベル間で共通とする(因子不変)。独自分散はwithinレベルで0.25, betweenレベルで0.05。
 動かす要因は2つ。(1)因子不変か。学校を2群にわけ、片方の群についてのみ、学校レベルの因子負荷を変える。大きく変える、小さく変える、変えない、の3水準。(2)ICC。因子分散を動かす。3水準。
 で、地域を無視したふつうのMCFAで測定不変性を調べる。
 結果。カイ二乗検定では、本当は因子不変である場合のType Iエラーには問題がないんだけど、本当は因子不変でない場合でも全然検出できない。学校レベルの因子負荷$\lambda_b[j_1]$の群間差(DIF)は過小評価される。

 実験2ではcross-classified MIMICモデルで測定不変性を調べる(群間で切片が異なるかどうかを、群を因子の共変量にいれることで調べられるかという話であろう)。これもMplus 7.4で実験している。面倒になったのでスキップ。

 考察。
 実験1では、FB2を無視したせいで、$\Psi_b[j_2]$が$\Psi_w$に再配分されてしまい、ICCが低く評価され、DIFが検出できなくなってしまった。[←ああ、そういうことなのか、なるほどね。2要因のANOVAをやるべきところを1要因でやったら、そのぶんセル内の分散が大きくなって、要因の主効果が有意じゃなくなっちゃいました、と云うような話なのであろう]
 このように、cross-classifiedデータで、一方のbetweenレベルの因子負荷が群間で異なるかどうか調べる場合、もう一方の因子を無視したふつうのマルチレベルCFAをやるのはお勧めできない。
 云々。

 ちゃんと読んでないけど、実験1は「注目しているクラスタ変数とクロスしているクラスタ変数を無視して階層多群分析するとクラスタ間での測定変動性を見落とすよ」という話、実験2は「群間で切片が異なることを見つけるだけでよければ多群分析じゃなくて群を共変量にいれたMIMICモデルにするといいよ」という話なのではないかと思う。でもこの実験、Mplus 7.4でやったんでしょ? なんでTYPE=CROSSCLASSIFIEDを使わないの?と不思議に思いながら読んでいたのだが、あー、そうか、CROSSCLASSIFIEDだとGROUPING=オプションが使えないのかも。

 ともあれ、cross-classified SEMというのがどういうものなのかが理解できたので良しとしよう。
 ほんとはさあ... Muthen一家の誰かが解説を書いてくれるといいんだけどさあ... とぶつぶつ不満を漏らすわけだが、別に新しい話題ってわけじゃないのだろうな。いまのホットトピックはきっと強縦断データとかだろうし。すいません、自分で勉強します。とりあえずはRaudenbush & Brykを手に入れるか...

読了: Im, et al.(2016) cross-classifiedマルチレベルデータをただの階層データとみなしたときの弊害 (多群CFAで測定不変性を検証する編)

2019年1月 4日 (金)

 年末に仕事の都合で、大急ぎで読んだ奴。他にやんなきゃいけないことがいっぱいあるこのときに、調査データの標本ウェイティングなどという話を...

DeVell, M., Krosnick, J. (2010) Computing Weights for American National Election Study Survey Data. ANES Technical Report series, no. nes012427.

 複雑な標本設計の調査において標本にウェイトを付与するためにどうするか、という話を調べていると、時々みかけるのがANES(American National Election Studies)である。これはそのテクニカルペーパーで、Rのanesrakeパッケージの元文献でもある。
 今気がついたけど、第二著者は調査法研究のKrosnickだ... スタンフォードの政治学者だったのか。てっきりミシガンの社会調査の人だと思ってた。

 ちょっと意外だったんだけど、このペーパーは「ANESの公開データに付与されている標本ウェイトを我々がどうつくったか説明する」という話というより、「ANESデータを分析するみなさんのために、標本ウェイトの作り方のガイドラインを示す」という感じの内容である。著者らいわく、正しいウェイトというのはひとつではない、ウェイトは分析目的によっても異なる、とのこと。
 (突き詰めていえば仰るとおりなんだけど、でもふつう標本ウェイティングを使うのは、データ分析の目的を問うことなく、標本抽出確率の不均等性をデータ収集デザインの問題として捉えようとしているときだと思う。もし個別具体的なデータ分析目的の下で考えるんなら、標本抽出確率に影響する変数を説明変数にいれたモデルを組むんじゃなかろうかと思うんだけど、そんなことないですかね?)

 業界の人を読み手として想定した愛想のない文章で、たとえばレイキングという概念についての事前説明はない。
 えーと、レイキングとは次のような話である。たとえば、20-60代男女の調査データにおいて、男女の分布が6:4, 年代の分布が2:2:1:1:1となっている。いっぽう母集団における男女の分布は1:1、年代の分布は1:1:1:1:1である、としよう。このまま集計しちゃうと歪んじゃうので、男や若者には小さめのウェイトを与えたい。さて、ウェイトを計算するにはどうするか。通常は、性x年代の10セルについて人数を数え、母集団における分布と比べてウェイトを決める。これがセル・ウェイティング。ところがこのやり方では、母集団における性x年代の分布が必要になるし、変数がこの2つじゃなくて3つ, 4つ...と増えていったときに大変な目に遭う。そこで、まず性に適切なウェイト値を振って、集計後の男女の分布を1:1にする。次に年代に適切なウェイト値を振って、集計後の年代の分布を1:1:1:1:1にする。すると、集計後の男女の分布が1:1ではなくなるので、ウェイト値をちょっと修正して、再び1:1にする。すると集計後の年代の分布が1:1:1:1:1でなくなるので...という作業を繰り返す。これがiterative proportional fitting, 愛称rakingである。
 以前、お取引様のご担当者(実は前職の同僚)とお電話でご相談していて、上記のレイキングについて説明したところ、それって掻き集めるってことですかね?という。「英語でrakeっていうんですよ、落葉とかをこう掻き集めるの」(彼は米国暮らしが長かったのである)。「あー!そういえばホームセンターでクマデ探してたら、店員さんにレーキですねっていわれた!」「あー!」というわけで、電話口でおっさん二名、ジャニーズ並みの美しいユニゾンとなった。後で調べたところ、rakingは熊手で縦に横に掻き集めるというところから由来している呼び方らしい。

 本文では、単一の横断調査、2ウェーブ・パネル、多ウェーブ・パネルの3つについてウェイティングの手順を説明しているんだけど、今関心があるのは横断調査なので、そこだけメモする。面接調査について説明するけど、RDDでも同様、とのこと。
 箇条書きで21項目もある...さあ深呼吸...

  1. まず、層別抽出とかオーバーサンプリングとかに由来する世帯選択確率の不等性に対処するためのウェイトをつくる。各単位がそれぞれの選択段階[←多段抽出のことね]で選択される確率をかけ算し、その逆数をウェイトにする。
  2. 世帯内の対象者選択確率の不等性に対処するウェイトをつくる。対象者を世帯内でランダムに選んでいる場合なら、世帯の人数をweighting factorにする。
  3. 無回答率の不等性に対処するウェイトをつくる。無回答者についてわかるのはふつうクラスタとか地域とかだけなので、そういう変数の水準ごとに回答率をみて、違っていたら、回答率の逆数をweighting factorにする。
  4. ここからは、既知の人口パラメータで事後層別するという話。まずベンチマーク比較をする。測定誤差と項目無回答率が小さいと思われる変数群を決め、その分布(もちろん、1-3で求めたウェイトを使う)を、Current Population Survey(CPS)みたいなベンチマークと比べる。年齢、性、人種、学歴、地域、等々がよろしかろう。選挙後調査なら、得票の分布、投票率も使うべし。投票率のベンチマークはvoting-age人口における投票率じゃなくてvoting-eligible人口における投票率にすべし[ふうん...なんか事情があるんでしょうね]。
  5. 上の結果を解釈する。もしずれが小さかったら気にしない、大きかったらその変数で事後層別する。ずれが5%ポイントを超えたら後者、2%ポイントを下回ったら前者とすることが多い。その間なら...たとえば得票率や投票率のような重要なアウトカムと関連している変数とか、それ自体に関心がある変数とかだったら、ウェイティングした方がいいんじゃないですかね。
  6. とこのようにして、事後層別に用いる変数を選びます。ただし、
    • 測定が正確で、無回答率が低い変数でないとだめ。特に年収は要注意、項目回答率が95%を切ってたらやめたほうがいい。
    • 得票率と投票率をいれる場合は、いれないバージョンといれるバージョンをつくるべし。
    • 事後層別ウェイティングは一元周辺分布、ないし二元周辺分布で行う[つまり、年代の分布や性x年代の分布はベンチマークに揃えようとするけど、性x年代x人種の分布を揃えようとはしない]。二元周辺分布で行うのは、一元周辺分布のレイキング(後述)ではうまく揃わない場合、ないし、下位グループでの分析に最適化したウェイトをつくりたい場合。
    • 欠損値がある場合、もし単純な補完方法がすぐに使えて、それが良い性質を持っていることがわかっているならばそれで補完すればよい。ふつうはそんな方法はないだろうから、レイキングの際には欠損があるケースもそのまま含めておき、最終的には無回答調整のためのベースウェイトを与える。[うーん、確信が持てないけど、たぶんこういうことではないかと思う。たとえば、性x年代の事後層別ウェイトをレイキングで求めたい、しかし年代には欠損がある、としよう。レイキングでは、年代が欠損である行を、年代の分布をベンチマークと揃えるステップでは無視し、性の分布をベンチマークと揃えるステップでは無視しない。このやりかたでもすべての行になんらかのウェイトが付与されることになる。で、年代が欠損だった行からはそのウェイトを取っ払い、ステップ1-3で求めたウェイトに戻す。あれれ? ということは、性についても年代についても、最終的な分布はベンチマークとちょっとずれることになるわけ?]
    • 連続変数、6カテゴリ以上のカテゴリカル変数、5%を切るカテゴリを持つカテゴリカル変数の場合はリコード。5カテゴリまで、いずれも5%以上とする。[あああ...ここはちょっと耳が痛い...]
  7. 事後層別ウェイティングの際には、セルウェイティングじゃなくてレイキングを使うこと。
  8. レイキングのためのコードはスクラッチから書いてもいいが、StataのWESVARとかSURVWGTモジュール、RのSurveyパッケージ, SASのRAKINGマクロを使ってもよい。
  9. レイキングの手順。
    • 無回答調整済ベース・ウェイトに値を掛けて、最初の事後層別ファクターの母集団分布に合致させる。たとえば、標本では女性が60パーセント、母集団では52パーセントだったら、ウェイトは0.52/0.60=0.87。
    • さらに値を掛けて、二番目の事後層別ファクターの母集団分布に合致させる。
    • これを残りのファクターについて繰り返す。
    • それぞれのステップで、極端なウェイトはcapする(truncateする)。ウェイトの平均を1として、5を超える奴を5にする。capした行にはその旨のフラグを振っておく。なお、上はこうしてcapするけど、下はcapしなくてよろしい。
    • 最初のファクターに戻って繰り返す。ベンチマークに一致するか、変化がなくなるまで繰り返す。
  10. 修正してもう一度レイキングする。
    • capのフラグが特定の特性を持つ行に偏っている場合は、capの閾値を上げてやり直す。
    • レイキングが終わったら、つくったウェイトの下でベンチマークと比較する
    • ベンチマークとずれていたら、capの閾値を上げてやりなおす。
    • レイキングのファクターになっていない変数について、レイキングの影響を調べる。ベンチマークとのずれが大きくなっているなら、後述する修正アプローチを試す。
    • ウェイトの変動係数と、新しいウェイトの下でのデザイン効果を調べる。レイキング後のデザイン効果がレイキング前のデザイン効果を(たとえば)0.5以上超えていたら、後述する修正アプローチを試す。[デザイン効果についての説明がないので困ってしまうが、おそらくはKishの定義、「標本の分散の、同じ要素数の単純無作為標本の分散に対する比」でよいのだろう]
    • 何か特定のマイノリティ集団について調べたいのなら、そこでの変動係数も調べておく。
    • 修正アプローチ: レイキングに使うカテゴリを併合する、事後層別するファクターを削るか入れ替える、capを調整する。
  11. 最後に、ウェイトの平均を1にする。
  12. 標本全体をベンチマークと一致させるウェイトが、標本を特定の集団に絞ったときにそれをベンチマークと一致させるウェイトになるとは限らない。もし下位集団の分析が研究目的なら、その下位集団のためのウェイトをつくるべきである。手っ取り早いのは、最初から二元周辺分布に対してレイキングしておくことである(たとえば、あとで男性だけの分析をするときにも年代の分布をベンチマークに合わせたい場合は、あらかじめ性x年代の二元周辺分布に対してレイキングしておく)。
  13. うまくウェイトがつくれたら、ウェイトはふつう正確性を増大させるが、分散は大きくなる。特定のデモグラフィック・ファクターについての正確性を最大化したい場合や、頑張ってウェイトをつくってみたはいいものの結局ベンチマークとのずれが残っているという場合には、デザイン効果が大きくなっても気にしないウェイトをつくり、これをsupplimentary weightとする。つまり、capは高くし、カテゴリは細かくし、なんなら事後層別ファクターを増やしてレイキングする。[この場合、分析報告では2種類のウェイトについての集計を報告することになるのだろう。はっはっは、めんどくせえなあ]
  14. ここからはドキュメンテーションの話。データには、層別・クラスタリングの全水準がわかるように、層とかPUSとか地域とかの変数を含めること。地域は恣意的な番号でよい(その地域が実際にどの地域かがわからない形でよい)。
  15. レイキング前のベースウェイトもデータに入れておくこと。
  16. ウェイトをつくる各段階で何を使ったかを述べること。
  17. 複数種類のウェイトをデータに含める場合には、どのウェイトを使うべきか素人にもわかるように説明すること。
  18. 目標母集団の特性とサイズ、そしてレイキングで使ったすべてのベンチマークについて記述すること。ウェイトの合計を母集団サイズに揃えたい場合にはウェイト値を何倍すれば良いかを述べること。
  19. レイキングに使った変数を列挙し、それらの変数においては標本抽出誤差が意味を持たないということを説明すること。[あ、なるほど...これは当然だけど大事だ]
  20. 関心ある統計量に対するデザイン効果を報告すること。
  21. ウェイトをtruncateした場合はその方法を正確に述べること。

 ...なにか目の覚めるような斬新なアドバイスがあったりしないかと思ったけど、そういうものではなかった。
 まあとにかく、ウェイト値のトリミング(ここでいうcap)に関して明確な基準がないということがわかった。なにかの目的関数を最適化するような閾値を決めるというアプローチがありそうなものだけれど、レイキングとは相性が悪いのかもしれない。

読了:Devell & Krosnick (2010) American National Election Studyにおける標本ウェイティング

2018年10月17日 (水)

 たまたまみかけて、タイトルが気になってざっと目を通した論文。メモを読み返すと、途中で急速に興味を失っている様子がわかり、なんだかおかしい。

Markos, A., Iodice D'Enza, A., van de Velden, M. (2018) Beyond Tandem Analysis: Joint Dimension Reduction and Clustering in R. Journal of Statistical Software.

 ResearchGate(研究者向けSNS)に2018年のJSS誌の論文として公開されているんだけど、JSSのサイトには見当たらない。これから載るってことかしらん。
 知らなかったんだけど、Rにclustrdパッケージというのがあるそうな。その開発者による解説である。

 いわく、
 クラスタ分析するとき変数の数が多いと類似性の算出が難しくなる[次元の呪いのことであろう]。そこでいったん次元縮約してからクラスタ分析することが多い。一般的な方法は別々にやることである(タンデム・アプローチ)。
 次元縮約には主成分分析(PCA)とか対応分析(CA)とか多重対応分析(MCA)とかが使われる。Rのパッケージで言うとstatsのprcomp()やprincomp()とか、ade4, ca, CAvariants, FactoMineR, homalsとかである。
 FactoClassパッケージというのもある。まずPCAかCA/MCAで次元縮約し、次にユークリッド距離のWard法で階層クラスタリングしてクラスタ中心をつくり、それを初期値にしてk-meansする、というのを一気にやってくれる[←まじか...そんな風に手続き化しちゃっていいのかしらん...]。こういうのをLevart et al.(2000, 仏語の書籍)はconsolidationアプローチと呼んでいる。
 FactoMineRパッケージにも関数HCPC()があり、PCAないしCA/MCAの結果を階層クラスタリングしてくれる。
 なお、クラスタの評価にはfactoextraパッケージが便利だよ。

 さて。こういうタンデムアプローチは、前半戦と後半戦で違う基準の最適化をしているという問題点がある。そこで次元縮約とクラスタリングを同時にやる手法が提案されている。本論文ではいくつかの手法を紹介する。
 いずれの手法もあまり知られていない。たぶんソフトがなかったからだろう。clusterdパッケージというのを作ったので使うがいい。
 なお、手法の良し悪しについてはここでは扱わない[←えええええ]。量的データについてはTimmerman et al.(2010 Comp.Stat.&DataAnal.), カテゴリデータについてはvan de Velden et al.(2017 Psychometrika)をみればいいんじゃないすか。

 量的データの手法。
 以下、データ行列(中心化・標準化済み)を$\mathbf{X}$(サイズ$n \times Q$)とする。縮約空間の次元数を$d$とする。列が直交している負荷行列を$\mathbf{B}$(サイズ$Q \times d$)とする(つまり$\mathbf{B}^T \mathbf{B} = \mathbf{I}_d$)。クラス所属を表す二値行列を$\mathbf{Z}_K$(サイズ$n \times K$)とする。クラスタ重心行列を$\mathbf{G}$(サイズ$K \times d$)とする。

 タンデムアプローチの代替案を2つご紹介しよう。

 その1、reduced K-means (RKM) (De Soete & Carroll, 1994 Chap.)。
 これは射影追跡と等価である。クラスタへの分類と次元縮約を同時に行い、縮約空間におけるクラスタ間分散を最大化する。目的関数は
 $min \phi_{RKM}(\mathbf{B}, \mathbf{Z}_K, \mathbf{G}) = || \mathbf{X} - \mathbf{Z}_K \mathbf{GB}^T ||^2$
 ただし$||\cdot||$はフロベニウスノルム。[←ああ、難しい言葉を使いおって...行列の全要素を縦に並べたベクトルのユークリッドノルム、ってことでいいのだろうか]
 [...中略...]

 その2、Factorial K-means (FKM) (Vichi &l Kiers, 2001 unpub.)
 これはK-meansとPCAを同時にやって、縮約空間におけるクラスタ内分散を最小化する。目的関数は
 $min \phi_{FKM}(\mathbf{B}, \mathbf{Z}_K, \mathbf{G}) = || \mathbf{XB} - \mathbf{Z}_K \mathbf{G}||^2$
 [...中略...]

 この二つはどちらも次の手続きで解ける。

  1. $\mathbf{Z}_K$の初期値を決める(対象をランダムに分類する)。
  2. $B = \mathbf{X}^T((1-\alpha)\mathbf{P}-(1-2\alpha)\mathbf{I}) \mathbf{X}$を得る。$\alpha=0.5$だとRKM, $0$だとFKM, $1$だとタンデムになる。
  3. $\mathbf{XB}$をk-means法で分類して$\mathbf{Z}_K$を更新する。
  4. 2に戻り、$\mathbf{Z}_k$が変わらなくなるまで繰り返す。

 というわけで、$\alpha=0.25$とか$0.75$なんていう設定でもいいわけだ。
 実験によると、RKMはデータがデータの下位空間と直交な方向に分散を持っているときがだめで、多くの変数がクラスタ構造を反映しているときにうまくいく。[←よくわからん。上述のTimmmerman et al.(2010)というのを読まんとあかんらしい]

 カテゴリカルデータの手法。
 変数の数を$q$, $j$番目の変数のカテゴリ数を$p_j$とする。データ行列を$\mathbf{X}$のかわりに二値行列$\mathbf{Z} = [\mathbf{Z}_1, \ldots, \mathbf{Z}_q]$(サイズ$n \times Q$)とする。ただし$Q=\sum_j^q p_j$。[ダミー行列にするわけね。メンバーシップ行列$\mathbf{Z}_K$と記号が似ているけど意味が違うので注意]
 $j$番目の変数について、カテゴリをなんらか数量化した行列を$\mathbf{B}_j$(サイズ$p_j \times d$)とする(どのように標準化するかは手法によって異なる)。縦に並べて$\mathbf{B} = [\mathbf{B}_1^T, \ldots, \mathbf{B}_q^T]^T$(サイズ$Q \times d$)とする。
 データ行列$\mathbf{Z}$の列が縮約空間でとる座標を$\mathbf{Y}$(サイズ$n \times d$)とする。
 $\mathbf{Z}_K, \mathbf{G}$はさっきと同じ。
 
 3つの手法をご紹介しよう。

 その1、クラスタ対応分析
 発想としては、クラスタxカテゴリのクロス表$\mathbf{F} = \mathbf{Z}_K^T \mathbf{Z}$の対応分析である。クラスタ間分散を最大化するように、行(クラスタ)と列(カテゴリ)に数量を振る。しかしクラスタのメンバシップがわからないので、次の手順を採る。

  1. $\mathbf{Z}_K$の初期値を決める(対象をランダムに分類する)。
  2. $\mathbf{Z}_K^T \mathbf{Z}$を対応分析して$\mathbf{B}$を得る。
  3. 個人の座標をむりくり求める。$\mathbf{Y}=(1/q)(\mathbf{I} - \mathbf{11}^T/n)\mathbf{ZB}$。
  4. $\mathbf{Y}$をk-means法で分類して$\mathbf{Z}_K$を更新する。
  5. 2に戻り、$\mathbf{Z}_k$が変わらなくなるまで繰り返す。

なお視覚化の際には...[略]

 その2、MCA K-means。(Hwang et al, 2006 Psychometrika)
 最適化関数は...[省略]。手順で言うと、

  1. まず$\mathbf{Z}_K$の初期値を決める(対象をランダムに分類する)で、MCAをやって$\mathbf{Y}$を得てしまう。
  2. カテゴリ数量$\mathbf{B}$とクラスタ重心$\mathbf{G}$を得る。[式は省略]
  3. $\mathbf{Y}$を更新する。[式省略]
  4. $\mathbf{Y}$をk-meansして$\mathbf{Z}$を更新。
  5. 2に戻り、$\mathbf{Z}_k$が変わらなくなるまで繰り返す。

ステップ3で$n \times n$行列の固有値分解をするというのが弱点で、改善提案もある。[...中略]

 その3、i-FCB
 これは非対称CAとK-meansを繰り返すという手法で...[興味が薄れてきたのでスキップ]

 以上を搭載したclustrdパッケージの使い方と使用例をご紹介しよう。[スキップ]
 今後はファジークラスタリングに拡張したいと思ってます。云々。

 ... いやー、正直なところ、知らん手法の連続攻撃でびっくり、であった。いろんな手法があるものねえ。
 タンデム・クラスタリングの代替案といえば、真っ先に挙がるのは潜在クラスモデルでしょ? なぜ一言も言及がないの?と不思議に思うわけだが、そういう主旨の文章ではないのでありましょう。

読了:Markos, et al.(2018) 次元縮約とクラスタリングを同時にやりたいあなたのためのclustrdパッケージ

2018年10月16日 (火)

 仕事の都合で突然訪れた「ヒストグラムから確率分布をノンパラメトリック推定したい」祭り、時間がないのでそろそろ終了したいんだけど、Rizzi et al.(2016)が挙げていたpenalized composite linkモデルが良く理解できず、なんだか気持ち悪いので、大急ぎで目を通した。Rのungroupパッケージの元論文である。

Rizzi, S., Gampe, J., Eilers, P.H. (2015) Efficient Estimation of Smooth Distributions From Coarsely Grouped Data. American J. Epidemiology, 182(2), 138-147.

 イントロ... [省略]

 ヒストグラムの元データに出現しうる値の系列(たとえば年齢だったら, 0歳, 1歳, ...)を$a_1, \ldots, a_J$とし、その頻度の期待値を$\gamma_j$とする。なにを云ってるのかというと、値が$a_j$である確率を$p_j$とし、仮にサイズ$N$の標本があるならば、$\gamma_j = Np_j$である。
 $a_j$の頻度は平均$\gamma_j$のポアソン分布に従う。我々が推定したいのは$\mathbf{\gamma} = (\gamma_1, \ldots, \gamma_J)^T$である。ここまではいいっすね。

 問題は、我々が観察しているのが$a_j$それぞれの頻度ではなく、もっと粗いビンにおける頻度分布だという点である。
 ビンを$I$個、観察された頻度を$Y_1, \ldots, Y_I$とする。これもポアソン分布に従う。各ビンでの平均を$\mu_i$として
 $P(Y_i = y_i) = \mu_i^{y_i} \exp(-\mu_i) / y_i!$
である。
 $\mu_i$は$\gamma_j$をいくつかまとめたものだ、と考えて、$\mathbf{\mu} = (\mu_1, \ldots, \mu_I)^T$について
 $\mathbf{\mu} = C \mathbf{\gamma}$
としよう。$C$は$I \times J$の行列で、要素は1か0。ビン$I$がもとの$J$番目の値を含んでいるときにのみ、行$I$, 列$J$が1になる。
 なお、これを合成行列と呼び、こういうモデルを合成リンクモデルという。提唱者はThompson & Baker (1981)で、一般化線形モデルの拡張になっている。[←そうなの? よくわかんないけど、まあいいや]

 $\mathbf{\gamma}$は非負じゃないと困るので、
 $\mathbf{\gamma} = \exp(\mathbf{X} \mathbf{\beta})$
とし、$\mathbf{\beta}$ を推定する。普通は、$\mathbf{X}$は$J \times J$の単位行列、$\mathbf{\beta}$は長さ$J$のベクトル、でよい。以下でもそう考えるが、$J$がすっごく大きいときはパラメータ数が大きくなりすぎるので、$\mathbf{X}$を次元$p$のBスプライン基底としてもよい。

 さて、こうしてデータ生成プロセスを妄想するのは勝手だが、問題は、$\mathbf{\beta}$をどうやって推定するかである。
 $\mathbf{\gamma}$はスムーズだと考え、$\mathbf{\beta}$の非スムーズさを表す行列$\mathbf{D}_2$を求める[詳細は付録。読んでないんだけど、ちらっとみたところでは、ある$\beta_j$について、その両隣の和からその2倍を引いた値を求める模様]。で、ペナルティ
 $P = (\mathbf{D}_2 \mathbf{\beta})^2$
というのを考える。

 さて、このモデルのポアソン対数尤度は
 $l = \sum_i^I (y_i \log\mu_i -\mu_i)$
である。ここからペナルティを引いた罰則つき対数尤度
 $l^* = l - \frac{\lambda}{2} P$
を最大化する。これはiteratively reweighted least-squaresで解ける。
 パラメータ$\lambda$は、AICが最小となる値をグリッドサーチして決めるがよかろう。
 実データへの適用例... [省略]

 考察。
 本提案は頻度主義アプローチである。前にこれのベイジアン版を提案したが(そのときはオープンエンドのことを考えてなかった)、それだと$\lambda$の決定に伴う不確実性を考慮できる。シミュレーションで比較してみたが(付録)、たいした違いはなかった。
 このモデルの漸近特性は解析的にはわかっておらず、今後の課題。シミュレーションで調べたところ(付録)、一致性など良い性質がみられた。
 今後の課題は...まず2次元への拡張。各ビンにおける平均やSDが分かっているときにそれをうまく使う方法。

 ... なるほどねー。データの背後に平滑な離散分布を考えるわけね。そこでのカテゴリ数($J$)はどのくらいがよいのだろうか? あまり大きくするとなんらかの構造($\mathbf{X}$)を入れないといけなくなるだろうけど、小さすぎても良くないような気がする。

読了: Rizzi, Gampe, & Eilers (2015) ヒストグラムから確率分布をノンパラメトリック推定する罰則つき合成リンクモデル

 ヒストグラムから確率密度曲線をノンパラメトリックに復元し、任意の区間の確率を推定したい... 絶対そういうのがあるはずだ... と、ディスプレイの前で延々と、探し、探し求めてー [←突然「長崎は今日も雨だった」の節になる]、ついに見つけた論文。

Rizzi, S., Thinggraard, M., Engholm, G., Christensen, N., Johannessen, T.B., Vaupel, J.W., Lindahl-Jacobsen, R. (2016) Comparison of non-parametric methods for ungrouping coarsely aggregated data. BMC Medical Research Methodology. 16:59.

 いやー、正直いって、この論文に辿り着くまでに半日かかった。あきらかに探し方が悪かったんだけど、ポジティブにいえば、その半日で少しは賢くなったということだろう。

 著者らの整理によれば、その方法は大きく3つある。

 その1, カーネル密度推定量
 いま、未知の連続分布$f(x)$からの標本$x_1, \ldots, x_n$があるとして、$f(x)$のカーネル密度推定量は
 $\hat{f}(x) = \frac{1}{nh} \sum_i^n K(\frac{x-X_i}{h})$
この推定においてポイントになるのは、カーネル関数$K()$よりもむしろバンド幅$h$である。$h$はプラグイン推定かCVで決めることが多い。
 さて、ヒストグラムのように値がグループ化されてて、もはや$x_1, \ldots, x_n$がわからないときはどうするか。

 その2, スプライン補完
 ヒストグラムを累積分布に直し、データ点の間を2次だか3次だかのスプライン関数でつなぐ。よく用いられている方法なんだけど、オープンエンドの階級のときに困る。うっかりすると曲線が下がっちゃう(つまりある区間の頻度が負になる)から。対策:

 その3, penalized composite linkモデル
 composite linkモデルというのは一般化線型モデルの拡張で、$I$個の階級について頻度$y_i$がわかっているとき、それを期待値$\mu_i$のポアソン分布の実現値とみる。で、実は背後にもっと狭い$J$個の階級があり、それぞれが$\gamma_j$を持っていて、それを$I$個の階級にまとめたら$\mu_i$が得られたのだと考える。この$\gamma_j$の分布を最尤推定するんだけど、その際に曲線のラフさを表す罰則項をいれる(そうしないと解けない)。この方法でポイントになるのは罰則項に掛けるパラメータで、AICで決める。

 さて、文献を検索しまくりまして、この問題に使われてきた方法を探しました。次の5つが見つかった。

 オーケー、じゃシミュレーションしてみましょう。
 架空の年齢別死亡数の分布を考える。あるパラメータ[略]を持つワイブル分布だとする。ここから標本を抽出し、ヒストグラムをつくり、真の分布を推定する。これを500回繰り返す。
 動かす条件は、標本サイズ{200, 1000}, 階級の切り方{5年幅, 5年幅だが85歳より右はオープンエンド}。2x2=4つのシナリオができるわけだ。
 成績の指標は3つ。(1)$IAE = \sum|\hat{f}(x)-f(x)|$。(2)$ISE = \sum(\hat{f}(x)-f(x))^2$。(3)KL距離 $\sum f(x) \log(f(x)/\hat{f}(x))$。
 他にNORDCANデータベースというのから、実際の死亡データを貰ってきて分析してみた[このくだりは略]。

 結果。
 ickdeでバンド幅を決める方法はKernSmooth::dpik()がよかったので、以下そっちを使う。
 オープンエンドなしの場合だと、n=200ではスプライン補完(hermite spline, hyman spline)の成績が悪い。n=1000では大差なし。
 オープンエンドがあると、bootkde, hermite spline, ickdeでは、推定された密度曲線が右の方で変な風に跳ねる[←へぇー]。pclmが最優秀, hyman splineがこれに次ぐ。
 [実データの話。略]

 考察。
 penalized composite linkモデルが最優秀、Hymanフィルタ付きスプライン補完がこれに次ぐ、という結果になりました。

 ... ヒストグラムにオープンエンドの階級があると、カーネル密度推定が上手くいかないって話、面白いなあ。素人ながら想像するに、これはカーネル密度推定の本質的な問題というより、オープンエンドをどう扱うかという問題であって、改善の余地がある話なのかもしれない。
 いま気がついたんだけど、この論文の第一著者のRizziさん、penalized composite linkモデルのコードを公開している人なのね。自分の提案手法を推していたのか、ははは。調べてみたところ、penalized composite linkモデルのRパッケージとしてungroupというのがあって、開発者のひとりがRizziさん。この論文のあとで公開したのだろう。
 検討されている中でいちばんシンプルだなと思うのは、累積分布を単調制約付きでスプライン補完するというアイデアである。標準パッケージstatsにsplinefun()というのがあって、hyman法というのを指定できるんだけど、これじゃだめなんだろうか。

 ところで... ヒストグラムがセンサスに由来している場合、推定された累積密度曲線は、ヒストグラムの階級境界においては、もとの累積分布と交わらないと気持ち悪いような気がする。こういう場合はスプライン補完一択、ってことなのかな?

読了:Rizzi et al. (2016) ヒストグラムから元の確率分布をノンパラメトリックに推定する方法コンテスト

2018年10月15日 (月)

Reyes, M., Francisco-Fernandez, M., Cao, R. (2016) Nonparametric kernel density estimation for general grouped data. J. Nonparametric Statistics. 28(2), 235-249
 仕事の都合で読んだ。
 ヒストグラムから密度関数を推定したい(ヒストグラムの元データから推定するんじゃなくて)、しかもノンパラメトリックに...というのを、誰かが必ずやっているはずだ、と半日かけて探し続け、疲れ切って投げ出す寸前になって、ついに見つけた論文。
 著者らはRのbinnednpパッケージの中の人。どうやらbinned kernel density estimationというキーワードで探すのが正解だったらしい。そうして探してみると、Rのパッケージが山ほどみつかる。なんだかなあ、もう...

 いわく、
 元の値を$(X_1, \ldots, X_n)$とする。間隔$[y_{j-1}, y_j) \ (j=1,\ldots, k)$が定義されていて、この間隔に落ちた個数が$(n_1, \ldots, n_k)$、割合が$(w_1, \ldots, w_k)$だとする。
 仮に$(X_1, \ldots, X_n)$が観察できたら、密度推定には標準的なカーネル密度推定量(sKE)が使えるよね。
 $(n_1, \ldots, n_k)$から密度推定する方法としては[...中略...]、ビンのサイズが均等なときについて、Scott & Sheather (1985)の binned kernel density estimator (BKE)というのがある。
 本論文は、ビンのサイズが不均等の場合にも一般化して、$(w_1, \ldots, w_k)$から密度推定する方法(gBKE)を提案する。

 どうやるかというと... [以下、すごく端折る。どうせわかんないもん]

 ふつうのsKEってのはだね、カーネルを$K$, バンド幅を$h$として、
 $\hat{f}^s_n(x) = \frac{1}{n} \sum_i^n \frac{1}{h} K \left(\frac{x-X_i}{h} \right)$
 この漸近的MSEはわかっていて[...中略...] 最適なバンド幅というのも簡単に求められる。
 これがBKEだと、各ビンの中央値を$t_i$として、
 $\hat{f}^b_n(x) = \frac{1}{n} \sum_i^n \frac{n_i}{h} K \left(\frac{x-t_i}{h} \right)$
 さて我々がご提案するgBKEは、
 $\hat{f}^g_n(x) = \frac{1}{h} \sum_i^n w_i K \left(\frac{x-t_i}{h} \right)$
そのMSEは[...読んでない...]。最適なバンド幅は[...読んでない...]。

 シミュレーションしました[...もちろんパス...]。
 応用事例[...パス...]。

 結論。gBKEは、漸近的に不偏な推定量です。標本サイズや分布にもよるのですが、大雑把な目安としては、ビンの幅の平均が標本の範囲の6%位までであればうまくいきます[ってことは、17カテゴリくらいはないといかんということか...]。

 ... すいません、肝心の内容は全然理解してないんですけど、雰囲気はわかったということでひとつご容赦いただきたい。

読了:Reyes, Francisco-Fernandez, & Cao (2016) ヒストグラムから元の確率密度を推定します、階級の幅が不均等でも大丈夫です

2018年10月13日 (土)

King, G. (1990) Stochastic variation: A comment on Lewis-Beck and Slakaban's "The R-Square". Political Analysis 2(1), 185-200.
 先に読んだLewis-Beck & Skalaban (1990) に対する、政治学者King先生の反論というかコメントがあったので(というか「いつか読む」箱に入っていたので)。ついでに目を通した。ほんとはそれどころじゃないんだけど、つい...

 いわく。
 いま回帰をやって、効果パラメータ$b$, その分散行列$\hat{V}(b)$、誤差項の分散$\hat{\sigma}^2$を手に入れ、オリジナルのデータは捨てたとしよう。ここに$R^2$を付け加えたら、実質的リサーチ・クエスチョンに関してなにか新しいことがわかるのか? Noだ。というのが86年の論文における私の主張であった。
 変数$z$について
 $S(z) = \sum_i^n(z_i - \bar{z})^2 / n$
として($n-1$で割ってないのは簡略のため):
 $R^2 = S(\hat{y}) / S(y)$
 $\hat{\sigma}^2 = S(y) - S(\hat{y})$
 $\hat{V}(b) = [S(y) - S(\hat{y})] (X'X)^{-1}$
だよね。違いは、$S(y)$と$S(\hat{y})$の比をみるか、差をみるか、差を重みづけるか、にすぎない。$R^2$は新情報を付け加えない。
 なお、Lewis-Beck & Skalabanは$R^2$を母集団パラメータの推定値だと捉えているけれど、本当だろうか? 回帰モデルの式をみてみよう。どこにも$R^2$にあたるパラメータはないぞ。
 話を戻すと、$R^2$と$\hat{\sigma}^2$(ないし$\hat{V}(b)$)の両方はいらない、どちらかでよい。どちらをとるべきかはほぼ趣味の問題だが、研究者をミスリードしないのはどっちだ、という議論はできる。私は$\hat{\sigma}^2$のほうがいいと思う。理由は次の3つ。

 [ここからはR二乗の是非というより、回帰モデルについての啓蒙的解説になるので、メモ省略]

 ... あーあ、この人たち、絶対友達だよな... 双方とも面白がって書いている...
 まあとにかく、整理しておくと、実質的関心がパラメータ推定値に向かっている場合に$R^2$が無意味だ、という点については合意がある。実質的関心が予測に向かっているとき、予測の良さの指標のひとつが回帰の標準誤差(SER)だという点についても合意がある。
 意見が分かれているのは、SERを目的変数のSDで標準化するのは回帰分析ユーザにとって手助けになるのか、という点に尽きると思う($R^2$は標本特性か母集団特性の推定値かという話はポイントではない)。King先生も触れていたけど、これ、標準化回帰係数に意味があるのかという論争とパラレルなんでしょうね。

 いましらべたら、なんと、同一号にAchenさんのコメントもあるようだ。読みたいような、読みたくないような... 前にAchenさんの本を読んだら、華麗なレトリックのつるべ打ちで、英文読解そのものに消耗したのである。

読了:King (1990) R二乗? だから要らないってば、そんなの

 都合によりcitizen forecastingについて調べていて(そういう話題があるのです)、主要研究者のひとりである政治学者M. Lewis-Beckを辿っていたら、この先生による全く別の方面の論文が「いずれ読む」箱に叩き込まれていたことに気が付いた。世界は狭い。
 というわけで、整理の都合で読んでしまった。面白かったけど、別にいま読むこたあなかったな...

Lewis-Beck, M.S, & Skalaban, A. (1990) The R-Squared: Some Straight Talk. Political Analysis, 2, 153-171.
 いわく。
 政治学ではR二乗は時代遅れだ。人々は口々にR二乗の悪口を言う。もっとも有名なのはAchen(1982)で、かの大先生に言わせれば、R二乗なんてものにたいした意味はない。King(1986, Am.J.Polit.Sci.)も同趣旨を述べている。分散説明率?政治の分析においてそれになんの意味があるんだい? というわけである。[←このKing先生のエッセイ?は面白そう]
 なるほど。確かに我々の心のなかには冷酷な「R二乗マクシマイザー」が住んでおり、無闇に変数を増やしたがる。上述の批判で質の低い分析が防止されるってんなら、拍手するのにやぶさかでない。しかぁし。悪いのはR二乗の誤用である。R二乗そのものは悪くありません。本稿では、回帰分析においてR二乗が価値ある統計量となることがあるということをお示しするぞ。

 いま母集団について
 $ Y = \alpha + \beta_1 X_1 + \ldots + \beta_k X_k + \epsilon$
というモデルがあるとする。政治学者はこれを観察データにあてはめ、$a, b_1, \ldots, b_k$をOLS推定し、$\hat{Y}$を得る。
 このとき、研究者は回帰モデルの諸想定への合致を達成しようと尽力する。合致している程度に応じて、研究者はOLS推定値がBLUEだと信じ、係数からなにかを推論しようとする。ときには信頼区間を出したり検定したりもするだろう。
 ここでふつうの実務家は、R二乗、すなわち$RSS=\sum (\hat{y}_i -\bar{y})^2$と$TSS = \sum(y_i - \bar{y})^2$の比によって、「あてはまりのよさ」を評価しようとする。
 いっぽうAchen先生いわく、正しい「あてはまりのよさ」指標はYの推定値の標準誤差
 $SEE = \sqrt{ \sum(y_i - \hat{y}_i)^2 / (n-k)}$
だ。
 というわけで、もうちょっと賢い実務家は、$a, b_1, \ldots, b_k, N, R^2$に加えて、$SE_{b_1}, \ldots, SE_{b_k}, SEE$をチェックする。使い方としては、(1)独立変数の効果を知りたいときは$b$と$SE_b$をみる。(2)予測したい場合は$\hat{Y}$とともに、$R^2$か$SEE$かその両方をみる。

 実例で考えてみましょう。
  政治学者Brooms氏はUSにおける市長選のモデルというのを作った。$Y$は現職候補の得票率、$X_1$は犯罪率の変化, $X_2$は予算に占める道路予算の割合、$X_3$は貧困層の税率の変化, $X_4$は予算に占める教育予算の割合で、
 $\hat{Y} = 22.39 - 1.15X_1 + 0.56X_2 - 0.33X_3 + 0.47X_4$
 $R^2 = 0.52, \ \ SEE = 7.7, \ \ N=70$
である[係数のSEと検定結果は省略]。
 さて、(1)Broom 氏は独立変数の効果を知りたいとしよう。$X_2$の係数は有意。どうやら、道路予算の1パーセントの増大は得票率の0.56パーセントの増加をもたらすようだ。という風に、Broom先生は$b$と$SE_b$から知りたいことを知ることができる。
 おそらくKing先生ならここでストップである。King先生にとって、回帰分析の目的とは母集団パラメータの推測だ。しかしBroom氏もそうかどうかは別の問題である。
 (2)Broom氏は予測の良さを知りたいとしよう。SEEは7.7。直観的に言えば、これは「絶対予測誤差」のようなものがだいたい8パーセントポイントだということを表している。しかしこれだけでは物足りない。Broom氏は他の情報も必要とする。現職候補の平均得票率は?(Yの平均は51.1)。現職がどこまで大勝ち・大負けするのか?(Yの範囲は30-79)。得票率はどのくらいばらつくか?(YのSDは10.8)。カッコ内の答えによって、SEEはさらに有意味となる。
 なぜカッコ内の答えを必要としたのか。それは、SEEが予測能の絶対指標だったからだ。それ単独で評価できるような相対指標があれば便利じゃないですか。それがR二乗である。R二乗とは、独立変数について知ったことによって$Y$の予測誤差がどれだけ減ったかを表している。
 R二乗をこのように使うのはナイーブすぎるという人もいる。R二乗は予測$\hat{Y}$をベースライン予測$\bar{Y}$と比べていることになるけど、 $\bar{Y}$がベースラインだというのはナイーブだ、という意見である。そうだろうか。Broom先生にとって、$Y$しか知らないときの予測は$\bar{Y}$ではないか、もっと良い代替案があるとは思えない。[...中略...]
 絶対指標SEEと相対指標R二乗の間には
 $\sqrt{1- adj.R^2} = SEE / SD_y$
という関係がある。これをcoefficent of alienationと呼ぶ人もいる[うーん... 「説明されてない度係数」という感じだろうか]。これはいわば標準化されたSEEである。

 別の政治学者Brush氏は、Broom氏に対抗してこういうモデルをつくった。[係数のSEと検定結果は省略]
 $\hat{Y} = 40.04 - 1.12X_1 + 0.46X_2$
 $R^2 = 0.46, \ \ SEE = 8.04, \ \ N=70$
 R二乗はBroom氏のモデルのほうが高い。これを根拠に、Broom氏はBrush氏のモデルよりも自分のモデルの方が良いと主張できるか(King先生にいわせると不可である)。
 どっちのモデルの予測能が高いかと云えば... 修正R二乗で比較すると、Broom氏のモデルのほうが良い。しかしこれは標本についての話である。F検定してみると、$X_3, X_4$を加えた方がR二乗が高くなっている(Broomモデルで$X_3, X_4$の係数は有意じゃなかったけど、それは別の話である)。やはりBroomモデルのほうが良い。
 なお、ここでBrush氏は反論するかもしれない。R二乗の増大は統計的に有意かもしれないけど、でも実質的にはどうよ?と。 ここから先はもはや実質的議論である。
 さて、上記の議論では、R二乗は母集団パラメータとみなされている。統計学者はそう考える傾向がある。いっぽう計量経済学者はR二乗を標本特性と捉える傾向がある。King先生は後者である。
 この論争に決着をつけることはできないけど、整理しておくと、まず回帰モデルは母集団について固定されたR二乗を生成するし、無作為標本のR二乗はその一致推定量になっている。検定に際してはふつう、標本がMVNに従うと仮定する。この仮定は守られていないかも知れないけどしかし頑健性があって...[面倒くさいのでこのくだりは省略]
 要するに、R二乗を評価するってこと自体がトレードオフを伴う。相対的予測能の指標としては有益である反面、実はMVN仮定が成り立たっておらず有意性検定は有害かもしれない。
 
 [ここから今度はPan氏という政治学者が出てきて、Broom氏のモデルを別のデータにあてはめようとする。SEEは下がったけどR二乗も下がった、どう評価する?というような話。面倒なのでメモは省略するけど面白い説明であった]

 というわけで、R二乗は、Xの効果の理解という観点からはあまり意味がないが、Yの予測という観点からは有益な道具である。
 どう解釈するかはデザインによって変わる。単一の無作為標本に対する単一のモデルであれば、標本におけるモデルの性能の記述とみることもできるし、母集団パラメータの一致推定量とみることもできる。いっぽう、多母集団の比較の場合はそれほどファンダメンタルな統計量とはいえない。分散の違いも考慮しないといけないわけだから。
 云々。

読了:Lewis-Beck, & Skalaban (1990) R二乗について率直に語ろう

2018年10月 7日 (日)

Bae, S.H., Shin, M. (2007) Telecommunications expenditure potential of Korean households and income turning point. info: The journal of policy, regulation and strategy for telecommunications, information and media. 9(6), 45-56.

 仕事の都合で急遽無理やり読んだ奴。ある国のある品目の消費支出がどこまで増えうるかという問題について考えていたので、この論文のテーマはその関心にはジャストフィットなのだが(韓国の通信支出がどこまで増えうるかという話)、あいにく全く土地勘がない分野の論文である。辛い。
 掲載誌がどういう雑誌だか全然わからないが、現誌名はDigital Policy, Regulation and Governance。International Telecommunications Societyという学会の雑誌で、NACSISによれば所蔵館3館。メジャーではないにせよ、ものすごく変な雑誌でもなさそう。

 いわく。
 韓国では家計消費に占めるICT系消費の割合が96年から04年にかけて倍増した(4.4%→9.2%)。いまや先進国の平均を超えている。政府はICT産業のさらなる強化を目指しているんだけど、消費者支出ってのはロケットじゃないわけで、これからは徐々にしか増えないかもしれない。韓国の世帯におけるICT支出のポテンシャルを調べておく必要がある。

 先行研究:

 世帯収入とICT支出の関係についての研究の多くは、次の2つの概念を使っている。

 先行研究の問題点:

 本研究では通信支出をクズネッツ曲線でモデル化する。クズネッツ曲線というのは、経済発展とともにGNPに占める農業のシェアが低下し、産業財生産のシェアが上昇してやがて低下し、サービスのシェアが上昇する... という奴。新技術・新製品でいうところの「ライフサイクル」もこれに近い。[←そういう意味なの? 全然知らんかった。えーっと、縦軸にジニ係数、横軸に国民所得をとった山形の曲線をクズネッツ曲線って言わない?]

 世帯消費支出に占める通信支出の割合$TEXP$を以下のようにモデル化する。
 $TEXP = a_0 + \beta_1 Y + \beta_2 YSQ + \epsilon, \ \ \epsilon \sim iid(0, \delta^2)$
ただし、$Y$は世帯消費支出の月平均、$YSK$はその二乗。
 ここで収入ではなくて消費支出を使っている理由は以下の通り。Friedman(1957)の恒常所得仮説によれば、世帯の支出は現在の収入に基づいているのではなく、恒常収入に基づいている。恒常収入を説明変数にすべきモデルで現在の収入を説明変数にしてしまうと、不偏性と一致性が失われる。現在の収入が適切なバロメータになるのは、消費者の収入のフローと消費の欲求が時変しないときに限られるが、そんなのはおよそ現実的でない。世帯の消費支出とは、過去・現在の収入、そして期待される収入の複雑な関数なのである。というわけで、収入じゃなくて全消費支出を使います。
 話を戻して... 世帯収入と通信支出の関係がU字型なのであれば、$\beta_1$が正で$\beta_2$が負になるはずである。ターニング・ポイントになる収入レベルは$-\beta_1/2\beta_2$となる。

 韓国統計局の世帯調査データ(1982-2005)のうち働いている世帯のローデータを使う。交通費と通信費はわける。[←よくわからん。先行研究では集計表を使ってたから分けらんなかったってことかな?]
 通信支出は一貫して伸びてるんだけど、90年代に急増、99年をピークに伸び率は減少。
 時系列の観察と背景知識に基づき、仮に構造的変化があったならそれは97年だと考え、構造変化があったかどうかを調べる。Chow検定というのをやる。これは
 $TEXP_t = a_0 + \beta_1 Y_t + \beta_2 YSQ_t + \epsilon_t, \ \ t$は82年から96年まで
 $TEXP_t = a'_0 + \beta'_1 Y_t + \beta'_2 YSQ_t + \epsilon_t, \ \ t$は97年から2005年まで
と考えて(tは四半期)、誤差分散は同じだとして
 $H_0: a_0 = a'_0$ かつ $\beta_1 = \beta'_1$ かつ $\beta_2 = \beta'_2$
を検定する。[...計算手順の説明。省略...] 無事有意になりました。

 時系列は定常だろうか。96年以降の時系列についてADF検定とPP検定をやったんだけど棄却できなかった。そこで共和分検定をやったらどうのこうの...[ああもう、いらいらする。こういう経済時系列のごちゃごちゃした話題は苦手なんで、メモは大幅省略!]。というわけで、変数間に共通のトレンドがあること、どれも定常じゃないけど回帰分析できることがわかりました。
 回帰分析で推定したところ、通信支出のターニング・ポイントになる収入レベルは240万ウォンだとわかりました。あと4~5年は通信支出は伸びそうです。
 云々。

 うーん...
 難しいことやってるけど、背後にあるモデルはごく単純で、消費支出に占める通信費の割合は消費支出の二次関数になるだろう、って話ですよね。それってどこまで信じていいの? まるきり見当がつかないぜ。

読了:Bae & Shin (2007) 家計に占める通信費はどこまで増えるか予測する in 韓国

Rhemtulla, M., Brosseau-Liard, P.E., Savalei, V. (2012) When can categorical variables be treated as continous? A comparison of robust continous and categorical SEM estimation methods under suboptimal conditions. Psychological Methods, 17(3), 354-373.

 仕事の都合で読み始め、「本研究の目的」が示されたところで、あ、これはちがう...と気がついたんだけど、個人的に興味ある話ではあるので、そのままだらだらと読んでしまった奴。

 どういう話かというと、5件法評定値みたいなカテゴリカルデータを指標にしたCFAモデルを組むとき、それを量的データとみなしてそのままあてはめちゃう場合と、ちゃんとポリコリック相関行列を推定してからあてはめる場合とあるよね? 結果はどうちがうのかシミュレーションしてみました! という話である。かの萩生田・繁桝(1996)のCFA版といったところである。
 いやあなたね、2012年にもなってその比較? なぜにFIMLでやらない? と思ったんだけど、そこの説明はイントロ部分で縷々なされている(メモは末尾に)。

 さて。ポリコリック相関行列にCFAモデルをあてはめるとき、その推定方法にはいろいろある。
 以下、変数の数を$p$, ポリコリック相関を縦に並べたベクトル(長さ$p(p-1)/2$)を$r$とします。ポリコリック相関の共分散行列を推定した行列を$\hat{V}$とします。CFAモデルでの下でのポリコリック相関行列の構造を$\rho(\theta)$とします。

 なお、cat-LSとcat-DWLSにおいて頑健標準誤差を推定するのは、ちゃんとWLSを求めてないので有効性が失われているから。ときどき「cat-LSとcat-DWLSは、観察変数の背後にある連続変数の正規性仮定を緩和したものだ」といわれることがあるけど、これは間違いで、依然として正規性仮定は必要。もとも頑健標準誤差ってのは、最尤推定量の有効性がデータの非正規性のせいで失われるのに対処するためにつくられたものなので、混乱が生じたのであろう。

 連続量とみたててCFAモデルを当てはめる場合、正規性は仮定できないわけで、そのことを考慮して頑健修正した最尤法を用いるのがよろしかろう...[最小化する関数と検定統計量の説明。メモ省略。これ、MplusでいうとMLMVかなあ?]。とはいえ、ほんとは変数は連続量ではなく、変数と潜在変数の関係は線形でないわけで、パラメータ推定は歪む。

 先行研究概観。さすがは一流誌という感じで、長い。
 要点のみメモすると...連続量とみて最尤推定するとパラメータ推定は過小になるが、4~5カテゴリくらいあれば大丈夫。cat-DWLS, cat-LSのパラメータ推定は歪まない。
 標準誤差や検定統計量は無修正だと歪む。修正すると、連続量MLの場合は少し過小のままで、cat-DWLS, cat-LSはほぼ歪まない。[大幅中略]
 パフォーマンスに影響する要因としては... まず正規変数からカテゴリ変数を作る際の閾値が項目によって大きく違うとうまくいかなくなるといわれている。裏にある連続変数が正規分布じゃないときもバイアスが生じる。[要は、項目によって分布が大きく違うと困るってことね... どう困るのか色々書いてあったけど読み飛ばした]
 他に、モデルサイズが大きいときも困る。

 おまたせしました、実験します... なんだけど、疲れてきちゃったのでメモは簡略に。
 まずデータをつくる。動かす条件は以下の通り。各セルあたり1000セット。

 CFAモデルは、2因子, 因子当たり指標数は5ないし10, 負荷は0.3,0.4,0.5,0.6,0.7。因子間相関0.3。[交差負荷はないんやろね...]
 Mplusで推定した結果を報告する。
 [いい加減に読み飛ばしているので自信がないんだけど、cat-WLSは試さなかったみたい。cat-DWLSは報告から省略しているらしい。よって以下はcat-LSと連続量MLの比較である]
 
 結果。長い... メモは超簡略に...
 収束の失敗と不適解は、カテゴリ数が2の時に多く、4以上で少ない。収束失敗は連続量MLで、不適解はcat-LSで多い。指標が20あるとほぼ起きない。
 負荷の推定は、連続量MLだと過小で、カテゴリ数が多いと減る。5カテゴリあれば10%未満。cat-LSはおおむね正確...[いろいろ書いてあるけど読み飛ばした]。因子間相関はどちらもおおむね正確だった。
 推定量の有効性は...[えーい省略だ]
 頑健標準誤差は...検定統計量は... [著者の先生すいません、疲れたのでパスさせてください]

 考察。
 cat-LSは優秀です。ただし、小標本かつ非正規のとき問題が生じる。カテゴリ数が5以上ならば連続量MLでもよろしい。
 測定モデルはどうでもいい、構造モデルのパラメータだけに関心があるんだという場合には、カテゴリ数が4以下であっても連続量MLを使うのはアリ。小標本の場合にはむしろ望ましいかもしれない。
 [他、いろいろ書いてあったけど、省略...]

 ... というわけで、カテゴリ数が5以上ならまあ連続量とみなしてもいいんじゃない? という、よく言われている話を裏付ける論文であった。

 ところで、二十一世紀、アベノミクスの大成功によりいままさに美しい日本を取り戻そうとしているこの現代においてですね(すいません冗談です)、いまさらカテゴリカルCFAのためにいったんポリコリック相関行列を推定するのってどうなの? 時代は完全情報最尤法でしょう? と思ったわけですけど、著者らの説明は以下の通り。

  1. たしかに理論的には、完全情報法のほうがパラメータ推定の有効性が高い。しかし実務的にはたいした差はなく、むしろ限定情報法(モデルを相関行列にあてはめることね)のほうが良いこともあるといわれている。ご不審の向きはKnol & Berger (1991 MultivariateBehav.Res.), Forero & Maydeu-Olivares (2009 Psych.Methods)をみよ。
  2. 完全情報法は計算が大変。
  3. 著者らの知る限り、完全情報法ができるSEMのソフトはMplusとMxのみ。心理学者はIRTのソフトに馴染みがない。
  4. 検定統計量がつかいものにならない。

... 論点2、計算が大変だから実用に適しませんってのは、そうなんですかね、よくわからん。論点3については、私はMplusの信者なのでMplusを買いましょうとしかいいようがない。論点4はたぶんカイ二乗統計量の話だろう、別の適合度指標を使えばいいんじゃないかしらん、よくわからない。
 いっぽう、最初の論点はすごく意外だった。そうなの? へえええ。

読了:Rhemtulla, et al. (2012) 順序カテゴリ変数を連続変数とみたてて確認的因子分析をやっちゃってよいものか

2018年10月 3日 (水)

萩生田伸子, 繁桝算男(1996) 順序付きカテゴリカルデータへの因子分析の適用に関するいくつかの注意点. 心理学研究, 67(1), 1-8.

 リッカート尺度の段階数はどうすればよいかとか、リッカート尺度のデータを因子分析してもいいんでしょうかとか、そんな話の中で実にひんぱんに引用される有名論文。ちょっと用事があってメモをとった。実のところ、たぶん読むのは3回目くらいである。

 いわく。
 順序カテゴリカルデータの因子分析には2つの方法がある。

 推定値の挙動について実験してみましょう。

 データのつくりかた。まず量的データをつくる。
 $\Xi = F \Lambda^{'} + E$
とし、$F$と$E$に$N(0,1)$の正規乱数をいれる。$\Lambda$は単純構造とし、負荷があるところに$\sqrt{0.3}$をいれる。こうすると、ある因子に負荷を持つ項目間の真の相関は0.3になる。
 ここで動かす条件は3つ。

 このデータをやおらカテゴリ化する。全項目に共通の閾値を与えて順序尺度に落とすわけである。ここで動かす条件は2つ。

 簡便法と多分相関の2種類で因子分析をやる。データセットは各セルについて100個。SASのPROC FACTOR, ML、SMC。[これ、多分相関のほうは、まず別のプログラムで多分相関行列を推定し、PROC FACTORに食わせたのであろう。あああ、それって時間もかかるし不適解もでまくる...]

 実験1。負荷行列はどうなるか。因子数として真の因子数を指定する。得られた行列を、真の負荷行列をターゲットにしてプロクラステス回転する。
 結果。真の負荷行列と推定された負荷行列の乖離(RMSE)に注目すると、

共通性が1を超えちゃって計算不能になる回数は、乖離が大きいときに大きくなる。いっぽう、多分相関行列が収束しないという回数(結構多い)は、データサイズが小さいときに増える。
 なお、カテゴリ無し条件でも結構な不適解が出た。標本変動のせいでしょうね。

 実験2。因子数を当てられるか。AICとBICで因子数を推定し、真の因子数と比較する。計算不能だったら「当てられなかった」とカウント。[←条件によっては笑っちゃうほど当てられない...]
 カテゴリ数が多い方が、項目数は多い方が、因子数は少ない方が、的中率は上がる。閾値の位置はあんまり効かない。簡便法 vs 多分相関の勝負が気になるところだけど、AIC vs BIC と交互作用があってよくわからない(BICだと多分相関、AICだと簡便法が良かった)。
 
 考察。
 2件法・3件法は計算不能も多いし因子数も当てられないし乖離も大きい。因子分析はお勧めできない。逆に5件法と7件法は大差ない。
 なお、上の実験ではカテゴリなしだとかえって乖離するという変な話になったが、追加実験したところ、データサイズが大きければやはりカテゴリ化しないほうがよかった。[←うーん、それでも謎は残りますね。小さなデータでカテゴリ化したほうが乖離が小さくなったのはなぜか。外れ値のせいじゃないかなあ]
 項目数が少ないと乖離が大きくなる。因子数が多いとうまくいかなくなりやすい。「項目数は因子あたり3個」ルールはあてにならん。これはまあ、カテゴリカルデータに限ったことではない。
 データサイズについて。「データサイズは項目数の3倍」ルールもあてにならん[←そんなのあったの? 私は5倍って習ったけど]。いろんな要因の影響をうけるので、なかなか安心できない。
 データの分布は、正規性から極端にはずれていると悪影響を及ぼす可能性がある。
 簡便法よりも多分相関係数を分析した方が良いとは必ずしもいえない模様。時間もかかるし、計算不能になりやすいし、再現性も(この実験では)別に高くなかった。

 というわけで、調査データの因子分析ユーザへのアドバイス。(1)5件法か7件法がお勧め。(2)データサイズはなるたけ多く。(3)項目数は多い方が良いこともある。(4)多分相関行列の因子分析? 別にやんなくていいよ。

 ... ところで、これ、第一著者の先生の修論だったんですね。へー。

 この論文の価値とはまったく関係ないんだけど、この論文の主旨のひとつである「因子分析するときは3件法より5件法」という話が変な風に伝わっちゃって、調査票作成の際に「因子分析するから5件法にしなきゃ」と強く主張する人が結構多く、何度か頭を抱えたことがある。あのですね、それはいったん連続量を生成してからカテゴリ化したシミュレーション研究の話であって、調査票上で何件法になっていようが、全員が両端にしか反応してくれなかったらそれは2件法と同じでしょ、という話である。調査設計時にはなによりも、個別具体的な調査項目に対する反応分布を考えなきゃいけない。そういうわけで、こういう研究のせいでちょっと苦労しているんだけど、それは別の話。わかりやすくて勉強になる論文であります。

 細かいことをいくつかメモしておく。

読了:萩生田・繁桝(1996) 順序カテゴリカルデータを因子分析したときの推定値の挙動

2018年9月28日 (金)

 Wilcoxon-Mann-Whitney検定ってのがありますわね。おさらいしておくと、えーっっっとですね、いわゆる「対応のないt検定」のノンパラ版だって習った気がします。
 群Aと群Bがあるとき(サイズを$n_A, n_B$とする)、群間でのすべての測定値ペア($n_A
\times n_B$個)について、Aの値のほうが大きいペア数$U$を数える。群間にぜんぜん差がなければ、$U$の期待値は(タイになるペアがないとして)$n_A \times n_B / 2$である。というわけで、帰無仮説の下での$U$の分布をどうにかして求めて検定する。$n_A$+$n_B$個の測定値を順位に変換し、群Aの測定値の順位の和を検定統計量にすることもあるが、まあ結局は同じことである。Mann-WhitneyのU検定とか、Wilcoxonの順位和検定ということもある。

 ここでの帰無仮説とはなにか。修士課程ははるか記憶の彼方ですけど(ついでにいうと学部の統計学教育はかなりめちゃくちゃであった。あれはナイよなあ...今でもちょっと可笑しい)、わたしゃ「母集団において二群の中央値が等しい」だと習いましたね、確か。
 手元の本で言うと、森・吉田(編著)「心理学のためのデータ解析テクニカルブック」には、はっきりと「対応のない2条件の中央値の比較」とある(もっとも、先ほどめくってみたところ「比較される代表値が今一つ明確でない、しかし[...]測定値間の大きさの順位を問題にするものであり、このような意味では、各条件の中央値を比較しているといえよう」と微妙に日和った脚注がついているのを発見した)。この定評ある参考書に限らず、たいていの本には「二群の中央値を比較する検定」だと書いてあると思います。

Divine, G.W., Norton, H.J., Baron, A.E., Juarez-Colunga, E. (2018) The Wilcoxon-Mann-Whitney procedure fails as a test of medians. American Statistician, 72, 278-286.
 最近のAmerican StatisticianのTeacher's Cornerの記事らしい。いま必要な内容じゃないんだけど、Mann-Whitneyの検定はたまに使うこともあるし、タイトルに惹かれて目を通してみた次第。

 いわく。
 Wilcoxon-Mann-Whitneyの手続き(以下WMW)は二群の中央値が等しいかどうかの検定だと思っている人が多い。信頼ある教科書にもよくそう書いてある。
 これは誤りである。WMWについてはいろいろ誤解がある。諸君の無知蒙昧を正そう。

 まず、WMWとt検定を比べてみよう。
 t検定、それはパラメトリックな手続きである。各群の分布は$N(\mu_1, \sigma_1^2)$, $N(\mu_2, \sigma_2^2)$に従うと想定する。
 概念上は、$\mu_1$と$\mu_2$が同じかどうかという話をしたい。計算上は、標本平均$\bar{x}_1$と$\bar{x}_2$を比べる。検定統計量は
 $t = (\bar{x}_1 - \bar{x}_2) / se(\bar{x}_1 - \bar{x}_2)$
である。
 いいですか、t検定というのは、概念上は母平均の検定であり、計算上は標本平均を使う。このように、t検定は平均についての検定だといって差支えない。

 WMW検定、それは分布フリーな検定である。
 概念上はどんな検定なのか。一般には、帰無仮説は「分布Fと分布Gが等しい」で、対立仮説は$G(x)=F(x+\delta), \ \ \delta \neq 0$だと考えられることが多い(つまり、分散も歪度もなにもかも同じで位置だけが異なるという対立仮説である)。これを「シフト仮説」と呼ぼう。
 シフト仮説の下では、確かに$\delta$は母中央値の差である。同時に、$\delta$はお好きな分位点の差でもあり、平均の差でもあり、最頻値の差でもある。[←なるほどそりゃそうだ]
 計算上はどんな検定か。正確法と漸近法があるが、ここでは説明の都合上、後者について考えよう。
 測定値の順位を求め、各群の順位和を$R_1$, $R_2$とする。検定統計量は
 $X^2 = [(R_1 - E(R_1)/se(R_1)]^2$
 ちなみにMann-WhitneyのU統計量はちょっと定式化が違うが、
 $U_1=n_1n_2 + n_1(n_1+1)/2 - R_1$
という関係がある。
 いま
 $p^{''} = Pr(X_1 < X_2) + Pr(X_1=X_2)/2$
という母集団特性を考えると、
 $U_1/n_1 n_2 = \hat{p}^{''}$
 $X^2 = [(\hat{p}^{''}-0.5)/se(\hat{p}^{''})]^2$
と書きかえられる。WMW検定の帰無仮説は$p^{''}=0.5$だといえる。
 なお、$p^{''}/(1-p^{''})$を「WMWオッズ」と呼び、これがWMW検定のための理想的な要約統計量だとする主張もある。帰無仮説は「WMWオッズ=1」だというほうが、$p^{''}=0.5$だというよりわかりやすいだろうという主張である。

 ちょっと話が逸れるけど...
 タイがある場合について。教科書のなかには「タイがあったら使えない」と書いてあるのもあるけど、これは間違い。順位和で定式化する場合なら、タイには平均順位を与える。ある弱い条件の下で、タイがあるデータでも検定統計量の漸近正規性が成り立つことが示されている。
 t検定の場合、分散が等しくない時、そのことを考慮した分散推定量と自由度を使えばそれでOKなの?という問題が生じる。御存じBehrens-Fisher問題である。WMW検定でも同じことが起きる[←漸近法の場合は、ってことだと思う]。連続データの中央値の比較に関心があるという仮定の下で、分散が異なるときでもうまくいくというFlinger-Policello検定というのが提案されている(SAS/STATのPROC NPAR1WAYに載っている)。ほかにBrunner-Munzelの提案というのもあって、標本サイズが小さい時にはこっちのほうが良いと報告されている。標本サイズが30以下だったり、タイが多かったりする場合には、permutationによる正確法に切り替えたほうが良い。

 さて、このようにですね、WMW検定は$p^{''}=0.5$かどうかの検定であり、中央値の検定ではないのであります。いくつか例を示しましょう。

ご覧のように、WMW検定は標本中央値と対応しない。複数群間で推移律さえ満たさない。この検定は、あくまで分布間の相対的な比較であって、標本の位置を表すなんらかの指標によって決まるような検定ではないのである。

 では、WMW検定は母中央値の検定だといえるだろうか。
 「シフト仮説」の下ではそうだろう。しかし、たいていの場合、「シフト仮説」はナンセンスである。リッカート尺度項目の回答分布を考えてみてほしい。またはなんらかの出来事の回数の分布について考えてほしい。分布が同じで位置だけ変わるってありえないでしょ。

 なぜにWMW検定は中央値の検定だといわれているのか。おそらくこういう事情だろう。

なぜにWMW検定は連続量データを必要とするという誤解が広がっているのか。おそらくこういう事情だろう。

 というわけで、著者らは講義でWMWについて正しく教えてます...[略]
 教えるときにはこういうチャートを使うといいでしょう。全ペアを(群1の値) vs (群2の値)の散布図上に載せたバブルチャート。ペア内の大小を診断と見立ててROC曲線を書くとAUCが$p^{''}$になる[←頭が混乱する...]。ドミナンス・ダイアグラム[←説明を読んでたらわけわかんなくなってきたので省略]。

 ...というわけで、最後のほうは疲れて読み飛ばしちゃったけど、面白い啓蒙論文でありました。
 著者らが力説しているのは「WMWは2群の中央値の検定じゃなくて、2群間のすべてのペアにおいて片方が勝つ確率が0.5かどうかの検定だ」ということであって、「WMWは使うな」と言っているわけではない。でも世の中にはWMWそのものに対して否定的な方もいるわけで(たしかGelmanさんがそうだった)、有識者の方々に、その辺のご意見も聞きたいところである。

読了:Divine, et al. (2018) Mann-Whitney検定は中央値の検定ではない

2018年7月30日 (月)

Wakimoto (1971) Stratified random sampling (I) Estimation of the population variance. Annals of the Institute of Statistical Mathematics, 23(1), 233–252.
Wakimoto (1971) Stratified random sampling (II) Estimation of the population covariance. Annals of the Institute of Statistical Mathematics, 23(1), 327-337.
Wakimoto (1971) Stratified random sampling (III) Estimation of the correlation coefficient. Annals of the Institute of Statistical Mathematics, 23(1), 339-353.

 層別抽出デザインにおける母分散・母共分散・母相関の推定について述べた3本の論文。仕事の都合で読んだ。
 複雑な標本抽出デザインにおける推定量の分散について解説している資料は多いけど、母分散の推定について述べているものが全然見当たらず(探し方が悪いのかもしれないけど)、思い余って1971年の論文をめくった次第である。掲載誌は日本の統計数理研究所が出している英文誌。著者の脇本さんという方は昭和40年代に統数研に勤めていた方で、その後郷里の岡山大に移り、平成5年に亡くなった由。
 
 読んだというよりもめくったというのが正しいのだが、まあとにかく、だいたいどんなことが書いてあったかをメモしておく。

(I) 母分散の推定

 $X$の分布関数を$F(x)$とする。層の数を$L$とし、$i$番目の層の分布関数を$F_i(x)$とする。層の割合を$w_i$とする($\sum_i^L w_i = 1$)。

 定理1. $X_{i1}, \ldots, X_{in_i}$が$F_i(x)$にiidに従い、どの$i$についても$n_i \geq 2$であるとき、母分散$\sigma^2$の不偏推定量は
 $ U_{s,n}$
 $\displaystyle = \sum_i \frac{w^2}{n_i (n_i)} \sum_{k < l}^{n_i} (X_{ik}-X_{il})^2$
 $\displaystyle + \sum_{i < j}^L \frac{w_i w_j}{n_i n_j} \sum_k^{n_i} \sum_l^{n_j} (X_{ik} - X_{jl})^2$
 [なぜか最初からペアの差によって定義してあるので途方にくれたが、平均からの偏差によって定義すると、これは
 $\displaystyle U_{s,n} = \sum_i w_i U_i + \sum_i w_i (\bar{X}_i - \bar{X}_n)^2 - \sum_i \frac{w_i(1-w_i)}{n_i} U_i$
 となるそうだ。ただし$U_i$ってのは各層における不偏分散, $\bar{x}_n = \sum_i w_i \bar{X}_i$。第1項は層内分散、第2項は層別の標本平均を使って求めた層間分散、第3項は層間分散が標本平均を使っちゃっていることによるバイアスを補正する項なのだろうと思う]

 定理2. $U_{s,n}$の分散$V(U_{s,n})$は...[略]

 $U_{s,n}$の漸近正規性について... [難しくてよくわからん]

 $n_i = w_i n$とする場合を代表サンプリングないしBowleyサンプリングと呼び、標本サイズのことを「比例割当」と呼ぶ。このとき、母分散推定量$U_{s,p,n}$と$V(U_{s,p,n})$は...[略]
 いっぽう、単純無作為抽出のときの母分散推定量$U_{r,n}$と$V(U_{r,n})$は...[略]

 定理3. $V(U_{r,n}) - V(U_{s,p,n})$は...[略]

 というわけで、$n$が大きければ$V(U_{s,p,n})$は$V(U_{r,n})$より小さい。[←よく母平均推定において層別抽出は単純無作為抽出より有利だというけれど、母分散推定という観点から見ても、比例層別抽出は単純無作為抽出よか有利だってことね]
 いっぽう、層別をしくじったケースでは逆転することもある。たとえば$F_1(x) = F_2(x) = \cdots = F_L(x)$のときとか。[←なるほど...層別するからには層間で分布がちがわないといかんということね]

 $V(V_{s,n})$を最小化するように$n_i$を決めるという最適割当について考えると... [この節まるごとパスするけど、専門家というのはいろんなことを考えるものだなあ。なお、イントロにある要約によれば、理論上は最適割当を考えることはできるけど、そのために必要な事前情報がふつう手に入らないので、実務的には比例割当がお勧めである由。はっはっは]

 比例割当の場合の最適層別について... [まじか、母分散推定のために層別を最適化するなんていう発想もあるのか。ひょえー。パス]

(II) 母共分散の推定

 $X, Y$の同時分布関数を$F(x,y)$とする。母平均を$\mu_x, \mu_y$, 分散と共分散を$\sigma_{xx}, \sigma_{yy}, \sigma_{xy}$とする[←論文(I)とちがって二乗の添字がついてない。面倒くさくなったのかな?]。層の数を$L$とし、$i$番目の層の同時分布関数を$F_i(x,y)$とする。

 定理1. $(X_{i1}, Y_{i1}), \ldots, (X_{in_i}, Y_{in_i})$が$F_i(x,y)$にiidに従い、どの$i$についても$n_i \geq 2$であるとき、母共分散$\sigma_{xy}$の不偏推定量は
 $\displaystyle U_s$
 $\displaystyle = \sum_i \frac{w^2}{n_i(n_i-1)} \sum_{k < l}(X_{ik}-X_{il})(Y_{ik}-Y_{il})$
 $\displaystyle + \sum_{i < j}\frac{w_i w_j}{n_i n_j} \sum_k^{n_i} \sum_l^{n_j} (X_{ik} - X_{jl})(Y_{ik} - Y_{jl})$
 [ここでもいきなりペアの差で定義してあるので面食らうわけですが、第1項は層内共分散、第2項は層間共分散なのでありましょう]

 定理2. $U_s$の分散$V(U_s)$は...[略]

 $U_{s}$の漸近正規性について... [難しくてよくわからん]
 推定量の精度は層別無作為抽出のせいでどのくらい改善するかというと...[パス]
 最適割当は...[パス]
 比例割当の場合の最適な層別は...[パス]

(III) 相関係数の推定

 母相関係数を$\rho_{xy}$とする。

 [まず$\sigma_{xx}, \sigma_{yy}, \sigma_{xy}$の推定量とその分散についておさらいがあって...]
 $\rho_{xy}$の推定量を以下とする。
 $R_s = U_{s,xy} (U_{s,xx} U_{s,yy})^{-1}$
 [手元のPDFだと字がかすれちゃってよくわからないんだけど、たぶん上の式であっていると思う。えーと、ちょっと待って、これって一致推定量ではあるけど不偏じゃないと思うんですけど、あってますかね?]

 定理1. $|E[R_s - \rho_{xy}]|$の上界は...[省略するけど、すっごくややこしい式になる。3頁にわたる証明がついている。思うに、ここが3本の論文を通じたハイライトシーンなんだろうな]

 定理2. $R$のMSE $E[(R_s -\rho_{xy})^2]$は...[省略。この式だけで1ページくらい占めている。すげえなあ]

 推定量の精度は層別無作為抽出のせいでどのくらい改善するかというと...[パス]
 比例割当の場合の最適な層別は...[パス]

読了:Wakimoto (1971) 層別抽出デザインにおける母分散・母共分散・母相関の推定

2018年7月26日 (木)

Bethel, J. (1989) Sample allocation in multivariate surveys. Survey Methodology, 15(1), 47-57.
 仕事の都合で読んだ。題名の通り、標本抽出設計における最適割当法(層とかクラスタとかに割り当てる標本サイズを、単に母集団サイズに比例させるんじゃなくて、コストまで考慮してもっとゴリゴリ考える奴) についての論文。
 著者はWestatの人。掲載誌はカナダ統計局の機関誌だと思う。

 いわく。
 多目的的な調査における標本の最適割当問題について最初に論じたのはNeyman(1934)であった。以来、この問題へのアプローチは次の2つに大別される。

 本論文では線形不等性制約のもとでの最適割り当てを閉形式で与える。本研究の利点は...[略]

 層別無作為抽出について考える。層の数を$I$, 変数の数を$J$とする。層$i$における$j$番目の変数の分散を$S^2_{ij}$, 層の標本サイズを$n_i$, 母集団に占める層の割合を$W_i$とする[原文では$W^2_i$となっているがミスプリであろう]。有限母集団修正は無視できるものとする。
 いま、次の制約が課せられているとする。任意の正の定数$v_j$について、
 $Var(\bar{y}_j) \approx \sum_i W^2_i S^2_{ij} / n_i \leq v^2_j$
以下では
 $a_{ij} = W^2_i S^2_{ij} / v^2_j$
と定義し[原文では$W$は小文字だが直した]、これを「標準化精度単位」と呼ぶ。$a_{ij} \geq 0$である。$\mathbf{a}_j = (a_{1j}, \ldots, a_{Ij})^T$とする。

 コスト関数を定義しよう。$x_i = 1/n_i$($n_i$が0なら無限大)として
 $g(\mathbf{x}) = \sum_i c_i / x_i, \ \ c_i > 0$
とする[要するに票単価を$c_i$としますってことね]。固定コストをいれてもいいけど以下の話には影響しない。

 この最適割当問題は以下のように定式化できる。
 Minimize $g(\mathbf{x})$
 subject to
  $\mathbf{a}_j^T \mathbf{x} \leq 1, \ \ j=1,\ldots, J$
  $\mathbf{x} > 0$

 さて、単一変数の最適割当についてはすでに良く知られている。$J=1$のときの上の問題の解$\mathbf{x}^*$は, すべての$i$について$a_{i1} > 0$のときにのみ有限となり
 $x^*_i = \sqrt{c_i} / \left( \sqrt{a_{1i}} \sum_k \sqrt{c_k a_{k1}} \right)$
である。
 これを$J > 1$へと拡張すると... [省略するけど、拡張できるんだそうです]

 $v_i$をちょっぴり動かしたらコストがどう変わるか...[これをシャドー・プライスと呼ぶ由。へー。内容のメモは、まあいいや、省略]
 最適化プログラミングにおける注意点 ... [パス]
 考察...[パス]

 。。。というわけで、こりゃあ私の能力を超える内容だ、と早々に見切ってしまったのだが、最適割当という問題に対する土地勘を養いたかっただけなので、この論文はこれでよし、ってことにしましょー。

読了: Bethal (1989) 目的変数が複数ある調査の標本抽出設計における最適割当法

2018年7月23日 (月)

堤盛人・瀬谷創 (2012) 応用空間統計学の二つの潮流:空間統計学と空間計量経済学. 統計数理, 60(1), 3-25.
 これもしばらく前にめくったやつ。瀬谷・堤「空間統計学」の基になっているような感じの内容であった。

読了:堤・瀬谷(2012) 空間統計学と空間計量経済学

久保川達也 (2006) 線形混合モデルと小地域の推定. 応用統計学, 35(3), 139-161.
 小地域推定についての解説論文。Rao & Molina本を読む前に目を通した気がするんだけど、記録がないので、整理の都合上読み直した。
 いくつかメモ:

読了:久保川(2006) 線形混合モデルで小地域推定

2018年7月20日 (金)

Chandra, H., Kumar, S., Aditya, K. (2016) Small area estimation of proportions with different levels of auziliary data. Biometrical Journal, 60(2), 395-415.
 二値データの小地域推定について、推定方法をシミュレーションで比較した実験。仕事の都合で、まさにこういうのを探していたんです。著者らはインド・ニューデリーの人。ありがとう、インドの先生。
 ちょっと細かめにメモを取った。

1. イントロダクション
 二値データの小地域推定、つまり小地域における割合の推定においては、ロジット・リンクの一般化線形混合モデル(GLMM)が用いられることが多い。ユニットレベル共変量がある場合、小地域における割合の推定には経験的プラグイン予測量(EPP)が使われることが多い。実はMSEを最小化する推定量は他にあるのだが(経験的最良予測量, EBP)、閉形式でなく数値近似が必要なのであまり使われていない。
 一般に小地域モデルは地域レベルとユニットレベルに大別される。地域レベルではFay-HerriotモデルによるEBLUP推定量が知られている。地域レベルモデルもユニットレベルモデルも線形混合モデルの特殊ケースである。
 二値の場合、地域レベルでもユニットレベルでも、結局はロジット・リンクのGLMMが使われているわけだが、ユニットレベルモデルのEPPと地域レベルモデルのEPPは異なる。最近では地域レベルポアソン混合モデルのEBPというのも開発されている。
 二値データの場合、どういう共変量があったらどういう推定量を使うべきか。本論文では、ロジット・リンクのGLMM(すなわちロジスティック正規混合モデル)のもとでのいろんな推定量について述べる。

2. 小地域推定
 母集団$U$(サイズ$N$)が、小地域$U_1, \ldots, U_D$(サイズ$N_1, \ldots, N_D$)に重なりなく完全に分割されているとする。母集団から標本$s$(サイズ$n$)を取ってきた。小地域別にみると$s_1, \ldots, s_D$(サイズ$s_1, \ldots, s_D$)である。抽出されなかった残りの部分を$r_1, \ldots, r_D$とする。
 小地域$i$のユニット$j$の関心ある変数の値を$y_{ij}$とする。本論文ではこれを二値とする。
 いま推測したいのは$P_i = (1/N_i) \sum_{j \in U_i} y_{ij}$である($U_i$は$s_i$と$r_i$からなるという点に注意)。

 デザインベース直接推定量(DIR)は
 $\hat{P}^{DIR}_i = \sum_{j \in s_i} w_{ij} y_{ij}$
と書ける。ここで$w_{ij}$は調査ウェイトで、$\sum_{j \in s_i} w_{ij} = 1$と基準化されている。
 $\hat{P}^{DIR}$のデザインベース分散は
 $var(\hat{P}^{DIR}_i) \approx \sum_{j \in s_j} w_{ij}(w_{ij}-1)(y_{ij} - \hat{P}^{DIR}_i)^2$
と近似できる。
 SRSならば、
 $\hat{P}^{DIR}_i = (1/n_i) \sum_{j \in s_i} y_{ij}$
 $var(\hat{P}^{DIR}_i) \approx (1/n_i) \hat{P}^{DIR}_i (1-\hat{P}^{DIR}_i)$
である。
 
 では小地域モデルについて。
 ユニットレベル共変量を$\mathbf{x}_{ij}$(長さ$p$)とする[書いてないけどどうやら切片項もコミである]。$\pi_{ij} = Prob(y_{ij} = 1)$として、ロジットリンクGLMM
 $logit(\pi_{ij}) = \mathbf{x}^T_{ij} \mathbf{\beta} + u_i, \ \ u_i \sim N(0, \sigma^2)$
を考える。$u_i$は互いに独立。[←ここで$j$が$N_i$まで動く点に注意。つまりこれは母集団モデルである]
 
 このモデルによる経験的プラグイン予測量(EPP)は
 $\hat{P}^{EPP}_i = (1/N_i) (\sum_{j \in s_i} y_{ij} + \sum_{j \in r_i} \hat{\mu}_{ij})$
ただし$\hat{\mu}_{ij} = logit^{-1} (\mathbf{x}^T_{ij} \hat{\beta} + \hat{u}_i)$である。
 [原文では、$\hat{\mu}_{ij} = \exp(\mathbf{x}^T_{ij} \hat{\beta} + \hat{u}_i) / (1+\exp(\mathbf{x}^T_{ij} \hat{\beta} + \hat{u}_i))$とあるけれど、書くのが面倒なので$logit^{-1}(\cdot)$と略記する。以下同様]
 ここで$\hat{\beta}$は固定効果パラメータの推定値、$\hat{u}_i$はランダム効果パラメータの予測値である。
 GLMMの推定手続きとしてもっともよく使われているのはPQLである。この方法では、反応変数の非正規な分布を線形近似し、線形化された従属変数が近似的に正規分布に従うと仮定する。場合によっては一致性・不偏性が失われるものの、経験的には上手くいく。

 ここからは、共変量の入手可能性に応じた、3つのケースについて考える。

 ケース1、標本ユニットでのみ共変量が入手可能であるケース。
 この場合、モデルのあてはめは可能だが、EPPは手に入らない。そこで次の推定量(EPP1)を提案する。
 $\hat{P}^{EPP1}_i = \sum_{j \in s_i} w_{ij} \hat{\mu}_{ij}$
EPP1はDIRより効率的だが、モデルの誤指定によるバイアスはDIRより大きい。EPP1は、標本抽出ウェイトに対応する回数だけ共変量の値を反復し、共変量のセンサスを再作成し、このセンサスを使って、ロジット混合モデルで確率を予測していることになる[←ややこしい...]
 EPP1の欠点は、標本ユニットのアウトカムを使っていない点である。
 [↑そりゃそうだよなあ、これは変だ。もっと良い推定量があるんじゃなかろうか...]

 ケース2, 標本ユニットで共変量が入手可能で、かつそれらの共変量の母集団での集計値が入手可能であるケース。
 $\bar{\mathbf{X}}_i = (1/N_i) \sum_{j \in U_i} \mathbf{x}_{ij}$, $\bar{\mathbf{x}}_i = (1/N_i) \sum_{j \in s_i} \mathbf{x}_{ij}$とすると、ここから非標本ユニットにおける平均$\bar{\mathbf{X}}_{r_i}$がわかる[面倒なので式は省略するが、そりゃわかるよな]。
 まずモデルをあてはめて$\hat{\beta}$, $\hat{u}_i$を得る。で、$\hat{\mu}^{EPP2}_{ij} = logit^{-1} (\bar{\mathbf{X}}^T_{r_i} \hat{\beta}+ \hat{u}_i)$を求める。推定量は
 $\hat{P}^{EPP2}_i = (1/N_i) (\sum_{j \in s_i} y_{ij} + \sum_{j \in r_i} \hat{\mu}^{EPP2}_{ij} )$
 標本平均$p_i = (1/n_i) \sum_{j \in s_i} y_{ij}$, 標本抽出割合$f_i = n_i / N_i$を使って書き直すと
 $\hat{P}^{EPP2}_i = f_i p_i + (1-f_i) \hat{\mu}^{EPP2}_{ij}$
$f_i$が小さく、かつ$\bar{\mathbf{X}}_i \approx \bar{\mathbf{X}}_{r_i}$なら、$\bar{\mathbf{X}}_{r_i}$の代わりに$\bar{\mathbf{X}}_i$を使って
 $\hat{P}^{EPP2.1} = f_i p_i + logit^{-1} (\bar{\mathbf{X}}^T_i \hat{\beta} + \hat{\mathbf{u}}_i)$
でもよい。$f_i$が無視できる大きさなら、
 $\hat{P}^{EPP2.2} = logit^{-1} (\bar{\mathbf{X}}^T_i \hat{\beta} + \hat{\mathbf{u}}_i)$
でもよい。

 ケース3, 共変量の母集団集計値だけが入手可能であるケース。
 この場合はさきほどのモデルのあてはめ自体が無理で、
 $logit(\pi_{ij}) = \bar{\mathbf{X}}^T_i \mathbf{\alpha} + v_i, \ \ v_i \sim N(0, \sigma_v^2)$
をあてはめるしかない。で、$\hat{\mu}^{EPP3}_{ij} = logit^{-1} (\bar{\mathbf{X}}^T_i \hat{\alpha}+ \hat{u}_i) $ を求める。推定量は
 $\hat{P}^{EPP3}_i = (1/N_i) (\sum_{j \in s_i} y_{ij} + \sum_{j \in r_i} \hat{\mu}^{EPP3}_{ij} ) = f_i p_i + (1-f_i) \hat{\mu}^{EPP3}_{ij}$
となる。標本抽出割合が無視できる大きさなら、
 $\hat{P}^{EPP3.1}_i = \hat{\mu}^{EPP3}_{ij}$
でもよい。これはEPP2.2と同じになるけど、元のモデルは異なる。[ああそうか。どちらも横着して非標本ユニットだけに注目している点では同じだが、EPP2.2は非標本ユニットにおける共変量の母平均を考えるのが面倒だから全体の母平均を使っているのに対して、EPP3.1は最初から全体の母平均しかわかんないわけだ]

 ...という路線のほかに、ふたつ代替路線がある。両方とも、ケース2と3で使える。
 代替路線その1,地域レベルでモデルを組む。
 $logit(\pi_i) = \bar{\mathbf{X}}^T_i \lambda + a_i, \ \ a_i \sim N(0, \sigma_a^2)$
とする。推定量は
 $\hat{P}^{EPP.A}_i = logit^{-1} (\bar{\mathbf{X}}^T_i \hat{\lambda}+ \hat{a}_i)$
となる。まず$\sigma_a^2$をREML推定し、次に$\lambda$と$a_1, \ldots, a_D$を
PQL推定する。詳細はChandra et al. (2011 J.App.Stat.), Johnson et al. (2010 J.Official Stat.)をみよ。
 代替路線その2,Fay-Herriotモデルを組んじゃってEBLUP推定量を使う(EBLUP.FH)。これは推定値が$[0,1]$の外側に出ちゃうかもしれない。[Fay-Herriotモデルの場合、小地域ごとの標本抽出誤差の分散が既知でないといけないと思うんだけど、そこはどうやったんだろう? $n_i p_i (1-p_1)$としたのかな?]

 [話が長くなってしまったので、EBLUP.FHを除くすべての推定量を同一の記法で書き直しておく。なお、
 $logit(\pi_{ij}) = \mathbf{x}^T_{ij} \mathbf{\beta} + u_i, \ \ u_i \sim N(0, \sigma^2)$
 $logit(\pi_{ij}) = \bar{\mathbf{X}}^T_i \mathbf{\alpha} + v_i, \ \ v_i \sim N(0, \sigma_v^2)$
である。うーん、こうしてみると、標本ウェイトがEPP1でしか使われていないという点も不思議だなあ...]

3. MSE推定[略]

4. シミュレーション
 というわけでシミュレーションをふたつやります。(1)モデル・ベース・シミュレーション。データ生成モデルをつくって母集団を都度生成する。(2)デザイン・ベース・シミュレーション。実データを母集団にみたてて標本抽出する。
 まず評価基準を定義しておく。
 $k$回目の反復における小地域$i$の割合を$p_{ik}$とする[直接推定量ではなくて母平均のことらしい。よってデザインベースの場合は$k$を通じて同一]。その推定値を$\hat{p}_{ik}$, MSE推定値を$mse_{ik}$とする。$p_{ik}$の全$K$回を通じた平均を$P_i$とする[デザインベースの場合は$p_i$と等しいってことでしょうね]。
 推定量のMSEの推定値を$mse_{ik}$, 真値を$MSE_i = mean_k ( (\hat{p}_{ik} - p_{ik})^2 )$とする。
 [以下、簡略のため $(1/K)\sum_k^K(\cdot)$を$mean_k (\cdot)$と略記する]

 シミュレーション1,モデルベース・シミュレーション。
 $D=30, N_i=500$とする。母集団生成モデル(後述)に従って母集団を生成し、地域を層にした層別無作為抽出で標本を抽出し、いろんな推定量で推定する。以上を$K=1000$回繰り返す。
 分析モデルは:
 $y_{ij} \sim Binomial(1, \mu_{ij})$
 $\mu_{ij} = logit^{-1} (1+x_{ij} + u_i)$
 $u_i \sim N(0, \sigma^2)$ (iid)
 $x_{ij} \sim \chi^2(1)$ (iid)

 要因は:

[他にMSE評価のために別のシミュレーションをやっているけど、省略]

 結果。
 [ここでは考察はなく、表のみ示されている。表を眺めていて結構びっくりしたので、メモしておく。
 推定量のパフォーマンス(Table 1), $n_i=5, \sigma^2=0.25$をみると、まずEBLUP.FHはバイアスRB(P)が法外に大きいので除外してよい。他の推定量について分散RRMSE(P)を比べると、DIRが20.3, EPPが9.2。肝心の提案推定量は、EPP1, EPP2系, EPP3系がいずれも10から12なのに対して、なんとEPP.Aの成績が良い(9.56)。かつ、EPP2系はなぜかバイアスRB(P)が大きくなるのに対して、EPP.AはバイアスにおいてもDIRと遜色ない小ささを誇る。つまり、EPP.A (地域レベルGLMM)の成績は、EPP(ユニットレベルGLMM)に匹敵するのである。
 まじか。それって、仮に共変量の母平均$\bar{\mathbf{X}}_i$が手に入っている場合(たとえば小地域が国勢調査小地域、共変量が性年代だというような場合)、非標本の共変量がわからないならば、たとえ標本の共変量をユニットレベルで測っていたとしても(ケース2)、それを捨てて地域レベルGLMMを組んだほうがよい、ということだ。言い換えると、$y_{ij}$と$x_{ij}$の地域内での共分散は捨てて良いということだ。不思議だ...
 このメモは論文を一通り読み終えてから書き直しているので、ここで感想をメモしておくと、上記の知見がどこまで一般化可能なのかという点について非常にもやもやした気持ちが残る。頭が整理できていないんだけど、生成モデルにおいて共変量が地域と直交しているという点がどうもひっかかる。このとき、$y_{ij}$と$x_{ij}$の地域内での共分散は存在するいっぽう、($N_i$が十分に大きければ)小地域特性の予測に共変量は効かないわけだ。だからどうだと論理的に説明できないんだけど、これってすごく特殊な状況なのではないかと...]

 シミュレーション2,デザインベース・シミュレーション。
 インドのNational Sample Survey Office (NSSO)による、ビハール州のdebt investment についての標本調査データを使う。38地域, 母集団サイズは52~140。ここから20件づつ層別無作為抽出して分析する。
 目的変数は「世帯が貸付残高を持っているか」。共変量は所有している土地の広さ。
 [面倒になってきたのでここからのメモは省略するが、動かすのは標本サイズだけである]

 結果の考察。
 推定量についてみると、

 MSEについてみると、

5. 実データへの適用[略]

6. 結論
 提案手法はEPPのかわりとして使えることがわかった。EPP1のMSEも使えることがわかった。
 今後の課題: 空間モデルへの拡張、よりよいMSE推定の開発。

 ... やれやれ、疲れた。
 
 論文の内容に対する疑問をメモしておくと:(1)ベイジアンならどうなるのか。これは自分で試せって話でしょうね。(2)上にメモしたように、なぜEPP.Aの成績がよいのかという点に興味を惹かれる。

 実のところ、この論文を読んだ最大の理由は、すべてのシミュレーションのRコードが公開されているという点にある。そういうの、ほんとに助かります。まだちゃんとみてないけど、lme4パッケージを使っているようだ。

読了:Chandra, Kumar, Aditya (2018) 二値データの小地域推定

2018年7月13日 (金)

Wall, M.M. (2004) A close look at the spatial structure implied by the CAR and SAR models. Journal of Statistical Plannning and Inference, 121, 311-324.
 仕事の合間に読んだ奴。空間計量経済学でいうところのSARモデル(同時自己回帰モデル)とCARモデル(条件つき自己回帰モデル)は、特に不規則格子に適用したとき、意外な相関構造をもたらすよ、という論文。
 なんの気なしに読み始めたら、これがほんとに面白くって... 最後まで一気読みしてしまった。

 説明の都合上、まずはモデルの定式化から。
 $\{A_1, \ldots, A_n\}$が$D$の格子になっているとする(つまり、$D$を重なりなく完全に分割しているとする)。$\{Z(A_i): A_i \in (A_1, \ldots, A_n)\}$をガウス過程とする。
 [以下、本文ではいちいち$Z(A_i)$と書いているけど、うざいので$Y_i$と略記する]

 SARモデルとは、
 $Y_i = \mu_i + \sum_j^n b_{ij} (Y_j - \mu_j) + \epsilon_i$
 $\mathbf{\epsilon} = (\epsilon_1, \ldots, \epsilon_n)' \sim N(\mathbf{0}, \mathbf{\Lambda})$
ただし$\mathbf{\Lambda}$は対角行列。$\mu_i = E[Y_i]$。$b_{ij}$は定数で($b_{ii}=0$)、既知でも未知でもよい。[この定式化だと、空間自己回帰パラメータは$b_{ij}$のなかに入ってるわけね]
 $n$が有限なら、$\mathbf{Y} = (Y_1, \ldots, Y_n)'$, $\mathbf{\mu} = (\mu_1, \ldots, \mu_n)'$, $\mathbf{B} = (b_{ij})$として
 $\mathbf{Y} \sim N(\mathbf{\mu}, (\mathbf{I} - \mathbf{B})^{-1} \mathbf{\Lambda} (\mathbf{I} - \mathbf{B})^{-1'})$
である。$\mathbf{B}$は、隣接行列を$\mathbf{W}$として$\mathbf{B} = \rho_s \mathbf{W}$とすることが多い。この場合
 $\mathbf{Y} \sim N(\mathbf{\mu}, (\mathbf{I} - \rho_s \mathbf{W})^{-1} \mathbf{\Lambda} (\mathbf{I} - \rho_s \mathbf{W})^{-1'})$
である。

 CARモデルでは、$Y_{-i} = \{Y_j: j \neq i\}$と書くとして
 $Y_i | Y_{-i} \sim N \left( \mu_i + \sum_j^n c_{ij} (Y_j - \mu_j), \tau^2_i \right)$
ただし、$\mu_i = E[Y_i]$。$c_{ij}$は定数で($c_{ii}=0$)、既知でも未知でもよい。
 $n$が有限なら、$\mathbf{C} = (c_{ij})$とし、対角に$\tau_i^2$を持つ対角行列を$\mathbf{T}$として
 $\mathbf{Y} \sim N(\mathbf{\mu}, (\mathbf{I} - \mathbf{C})^{-1} \mathbf{T})$
である。$\mathbf{C}$は、隣接行列を$\mathbf{W}$として$\mathbf{C} = \rho_c \mathbf{W}$とすることが多い。この場合
 $\mathbf{Y} \sim N(\mathbf{\mu}, (\mathbf{I} - \rho_c \mathbf{W})^{-1} \mathbf{T})$
である。

 隣接行列$\mathbf{W}$の要素$w_{ij}$は、隣だったら1, そうでなかったら0とすることが多いが、行の和を1にしたり、もっといろいろ工夫することもある。行で基準化する理由は、近接地域の数が変動するときに内的整合性が失われるからである。
 なお、CARモデルでは$\mathbf{W}$と$\mathbf{T}$が$w_{ij} \tau_j^2 = w_{ji} \tau_i^2$を満たさなければならない。
 
 なお、CARをもっと限定したICAR(intrinsic CAR)モデルもあるが、ここでは扱わない。

 準備はできた。ここからが本題。

 米48州のSAT言語得点平均をモデル化してみる。共変量は受験率とし(中部の州は受験率が低く得点平均が高い)、二次の項もいれる。
 誤差項について次の4つのモデルを比較する。

 誤差項の予測値を比較すると、SARとCARはだいたい同じで(CARのほうが分散が大きい)、バリオグラムモデルとはずいぶんちがう。よくみると、SARとCARでは隣接している2州のあいだでも相関がちがっている[ああそうか、州の形が不規則だからね]。バリオグラムモデルの場合は経験バリオグラムをみれば残差の空間構造が適切かどうかチェックできるが、SARとCARでは共分散に体系的な構造がなく、それが空間構造の記述として適切かどうかを調べる方法がないのである。[←なるほどー]

 こんどは、同じ米48州の隣接行列$\mathbf{W}$を使って、SARとCARの共分散行列が$\rho_s, \rho_c$とともにどう変わるかを調べてみよう。つまりこれはデータと関係ない話である。
 $\rho_s$と$\rho_c$がとりうる範囲は、$\mathbf{W}$の固有値を$\omega_i$として、$i=1, \ldots, n$について$\rho_s \omega_i < 1$, $\rho_c \omega_i < 1$である、と通常考えられている。厳密にいうと、SARモデルの場合には$\rho_s \neq 1/\omega_i$が満たされていればよいのだが、$\rho_s$の解釈が難しくなる。[...このくだり、理解が追いつかない。あとで勉強しておこう。Haining(1990)という教科書がreferされている]
 まあとにかく、この米48州の隣接行列でいえば、$\rho_s, \rho_c$は(-1.392, 1)の範囲を動ける。
 $\rho_s, \rho_c$を動かしながら、隣接州(107ペア)の相関がどうなるかをチャートにしてみると、面白いことがわかる。
 $\rho_s, \rho_c$が0のとき、隣接州の相関は0になる。増やしていくと相関も単調に上がっていき、1まで増やせばみんな相関1になる。なお、CARモデルで$\rho_c$を増やした時よりも、SARモデルで$\rho_s$を増やしたときのほうが、隣接州の相関は速く上がる。ここまでは、まあ、いいですよね。
 問題はここからだ。隣接州107ペアの相関の高さの順序は一定でない。$\rho_s$なり$\rho_c$なりを増やしていくと、順序がどんどん入れ替わっていくのだ。
 さらに。$\rho_s, \rho_c$を負の方向に動かした時は奇妙なことが起こる。最初はどのペアの相関も負になっていくが、途中から突然正の相関を持つペアが生じるのである。結局、107ペアのうち37ペアは正になる。どういうペアが正になるかを簡単に説明する方法はない。
 
 このように、SARモデル・CARモデルによる空間相関は直観に反する。なお、これは$\mathbf{W}$の行規準化をやめても変わらない。

 かつてCressie(1993)は、$\mathbf{B}, \mathbf{C}$を「空間従属行列」と呼んだ。この行列の要素$(i,j)$は、地点$i, j$の相互作用の程度を表現していると考えられてきた。そういう言い方は実はミスリーディングである。空間構造を本当に説明しているのは$(\mathbf{I} - \mathbf{B})^{-1}$, $(\mathbf{I} - \mathbf{C})^{-1}$である。$\mathbf{B}, \mathbf{C}$と空間相関のあいだに直観的な関係はない。空間構造に関心があるなら、地球統計学のモデルのように、共分散構造を直接モデル化する手を考えたほうが良い。

 SARモデル・CARモデルは広く使われているが、その意味についてきちんと考えている人は少ない。これはおそらく、分析者の関心が空間構造そのものというより回帰の予測子に向けられているからだろう。しかし!もしあなたが、モデルがデータに合致しているかどうかを決めようという立場なら、まずはモデルの意味を知ろうとしたほうがいいんじゃないですか?
 云々。

 。。。いやー、これは面白かった。
 このたび小地域推定の関連で勉強していて、SARモデルやCARモデルって直観的にはどういうことなのだろうかと不思議に思っていたのである。だって、どちらもローカルな空間的従属性についてモデル化しているのに、結局は大域的な相関構造が生まれるじゃないですか。隣接行列をいくら思い返しても、相関行列が想像できない。そうか、あれは直観的にわかる話ではないのね。謎が氷解したという感じだ。
 空間自己相関パラメータが負になった時にとんでもないことが起きるというのも面白かった。たしかにね、地域の形が不規則だったら、なにが起きても不思議でない。
 というわけで、きちんと積み上げて勉強している人にとっては当たり前の話をしているのかもしれないけど、私のように付け焼刃だけで凌いでいる者にとっては、とても啓蒙的な論文であった。思わずwebで写真を探してしまった(町内会の会合にクッキー持ってきそうな、気の良さそうな女性であった)。メラニー先生、どうもありがとー。

読了: Wall (2004) SARモデル・CARモデルは実は君が思っているような空間モデルではないかもしれないよ?

2018年6月 8日 (金)

Min, Y., Agresti, A. (2002) Modeling nonnegative data with clumping at zero: A survey. Journal of The Iranian Statistical Society, 1, 7-33.

 仕事の都合で知りたいことがあって、タイトルがまさにジャスト・ミートだったもので読んだ論文。
 掲載誌は... イラン統計学会...?! なぜにイラン?! とびびりましたが、Google Scholar上では被引用回数94, 第二著者はカテゴリカル・データ解析の神様アグレスティ先生、読んでも損はなかろうかと。
 タイトルにあるClumping at Zeroという表現、なんと訳したらいいのかよくわからないんだけど、要はゼロがいっぱいあるということであろう。

1. イントロダクション
 連続的分布を持っているけど値0の確率質量だけが不連続。こういうのを半連続変数と呼ぼう。これに関連するタイプのデータとしてゼロ過剰カウントデータがある。なお、これらを左打ち切り(censored)データと混同しないように。ここで値0は本物のアウトカムである。
 半連続データやゼロ過剰カウントデータを扱う際の難しさは、正規分布やガンマ分布を当てはめるわけにいかないという点にある。本論文は、このような「ゼロに集まっている」データをモデリングするための方法についてレビューする。

2. 半連続データのモデル
 初期の研究は主に計量経済学でなされた。Tobin(1958)は耐久財の世帯支出を記述するための打ち切りつき回帰モデルを提案した。いまでいうところのTobitモデルである。この系統のモデルは正規確率変数がなんらかのメカニズムで打ち切られると考える。
 このほかに、正規分布を仮定しない系統の研究もある。

2.1 Tobitモデル
 反応変数を$Y$とする。被験者$i$の観察を$y_i$とする。
 Tobitモデルではこう仮定する。正規分布に従う変数$Y^*_i$を考えて、それが0より大なら$y_i = y^*_i$、でなければ$y_i = 0$。
 説明変数ベクトル$x_i$があるならば
 $y^*_i = x'_i \beta + u_i$
ただし$u_i$はiidに$N(0, \sigma^2)$に従う。
 TobitモデルはML推定できる。$N(0,1)$のCDFを$\Phi(\cdot)$, PDFを$\phi(\cdot)$として、Tobitモデルの尤度関数は...[略]。
 セミパラ推定の提案もある...[略]。そっちのほうが性能がいいという研究がある。

2.2 Two-partモデル
 Tobitモデルでは、反応がゼロか正値を決める確率的過程と、反応が正値であるときにその値を決める確率的過程とが同じである。ここからはそうでないモデル。

 Duan et al.(1983)はこう考えた。
 $logit(P(Y_i=0)) = x'_{1i} \beta_1$
 $log(y_i | y_i > 0) = x'_{2i} \beta_2 + \epsilon_i$
ただし$\epsilon_i \sim N(0, \sigma^2)$。
 これはわりかし簡単にML推定できる、というか、別々に推定すればいいのである。尤度関数は...[略]。
 このモデルは、アウトカムが本当に正である時のアウトカムのレベルを記述する、条件付きの式を推定している。

2.3 標本選択モデル
 Heckman(1974, 1979)の提案も、Tobitモデルをtwo-partモデルに拡張することであった。その後いろんなバージョンが出てきたんだけど、ここではvan de Ven & van Praag (1981)に基づいて説明しよう。
 観察$i$について、$\{u_{1i}, u_{2i}\}$がiidに二変量正規分布$N(0, \Sigma)$に従うとする。$\Sigma$の対角成分を$\sigma^2_1, \sigma^2_2$とし、非対角を$\sigma_{12}$とする。
 モデルは以下の通り。
 $I_i = x'_{1i} \beta_1 + u_{1i}$
 $y^*_i = x'_{2i} \beta_2 + u_{2i}$
で、$y_i$は$I_i > 0$のときに$\exp(y^*_i)$、そうでないときに$0$になる。

 このモデルはML推定できる。尤度関数は...[略]。
 Heckmanの2段階推定でも推定できる...[説明略]。MLより良いとはいえないけど、すっごくかんたんなので、標準的な推定方法となっている。
 もっとも、Duan et al.(1983 J.Business&Econ.Stat., 1984同誌)いわく、このモデルは数値的にも統計的にもあまりよくない。尤度関数は局所解に落ちるかもしれないし、計算も大変。打ち切られたデータは観察不能だという想定を置いているわけだけど、それを検証する方法がない。2段階推定だと、結局、下位標本について
 $\log(Y_i) = x'_{2i} \beta_2 + (\sigma_{12}/\sigma_{1})\lambda_i + \epsilon_i$
ただし$\lambda_i = \phi(z_i)/\Phi(z_i), z_i = x'_{1i} \beta_i/\sigma_1$という式になるんだけど[ああ...逆ミルズ比っていうんだっけか...]、$\lambda_i$が$x_2$と強く相関していたら推定量が不安定になる。$x_1$と$x_2$は別の変数にしなさいとよく言われるが、そんなの現実的じゃない。
 このモデルは、「もしすべての人がアウトカムを持っていたらそのレベルはなんだったか」を記述する、条件付きでない式を推定している。two-partモデルとの違いにご注目。どっちがいいかという点については議論がある。上述のDuan et al.や, Manning et al.(1987 J.Econometrics), Leung & Yu (1996 J.Econometrics)をみるがよろしい。

2.4 Compound Poisson exponential dispersionモデル
 一般化線型モデルでは指数型分布族
 $f(y_i; \theta_i, \phi) = c(y_i, \phi) \exp(\frac{\theta_i y_i - b(\theta_i)}{\phi})$
を使う。平均$\mu_i$, その分散を$v(\mu_i)$として、$v(\mu)=\mu$とするとポアソン分布である。[ううう...この辺、良く理解できていない...]
 Jorgensen(1987,1997)はこう考えた。$v(\mu)=\mu^p$かつ$1 < p <2$とするとこれは複合ポワソン分布になって...なんたらかんたら... なんたらかんたら...
 [本節、私の能力を超えて大空を飛んでいったので、ぼんやり空を見上げたまま飛び去るのを待ちますが、要するに、半連続変数をひとつの確率分布でうまく表現できるような謎の確率分布を考える、というアプローチらしい。なんだか知らんが推定できるらしい。Tweedie分布という言い回しを聞いたことがあるけど(SASのGENMODとかで)、これがそれかしらん。勉強する気もあまりないんだけど、Rのcplmパッケージというのがこれなんじゃないかと思う]

2.5 順序閾値モデル
 Saei, Ward, & McGilchrist(1996)は、反応変数を順序カテゴリ変数に落とせばいいじゃんと考えた。順序カテゴリ変数$Y_g$の値が、連続潜在変数$Z$と固定閾値で決まると考えるわけね。で、最初のカテゴリを値ゼロを表すカテゴリだってことにすりゃあいい。あとは$Z$のCDFを好きに決めるがよい。ロジスティックとか正規とか。
 two-partモデルとは異なり係数がひとつなので、群間でモデル比較しやすい、というのがメリット。カテゴリに落とすときの恣意性と情報損失がデメリット。
 
2.6 既存アプローチの得失
 ある種の打ち切り反応変数であれば、Tobitモデルや標本選択モデルが向いているだろう。でも、ゼロがほんとのアウトカムなら、たいていの場合正規性仮定に無理があるから、two-partモデルが向いている。合成ポアソン指数型分布モデルも悪くないけど(単一モデルで分析できるという意味ではシンプルだともいえる)、あんまり使われてない。順序反応モデルは簡単でいいけど元データを分析してないというのが欠点。
 というわけで、いちばん適用範囲が広いのはtwo-partモデルだといえましょう。

3. ゼロ過剰カウントデータのモデル
 ゼロが過剰なカウントデータの場合、ただのポアソン分布だと非ゼロの値の変動を説明できない。負の二項回帰モデル(これはポアソン平均のガンマ混合)なり、ポアソン平均の対数のモデルに正規誤差をいれるなりで対処することもあるけど(Agresti本の13章をみよ)、うまくいかないことが多い。たとえば、分布がゼロとどこかの二峰になっている場合、やはり混合分布を考えるほうが自然だろう。

3.1 ゼロ過剰離散分布
 Lambert(1992)はゼロ過剰ポアソン回帰モデル(ZIP回帰モデル)を考えた。このモデルでは、データをゼロとポアソン変量のアウトカムとの混合とみなす。つまり、$Y_i$は確率$p_i$で$0$となり、そうでない場合に$Poisson(\lambda_i)$に従う。二値潜在クラス$Z_i$があるのだと考えても良い。でもって、
 $logit(p_i) = x'_{1i} \beta_1$
 $\log(\lambda_i) = x'_{2i} \beta_2$
とする。
 尤度関数は...[略]。EMアルゴリズムでML推定できる。

 Hall(2000)は、$Poisson(\lambda_i)$じゃなくて$binomial(n_i, \pi_i)$と考えた。こうすると$Y_i$の上界が$n_i$になる。でもって、
 $logit(p_i) = x'_{1i} \beta_1$
 $\log(\pi_i) = x'_{2i} \beta_2$
とする。これもEMアルゴリズムでML推定できる。

 実際のところ、カウントデータにはoverdispersionがつきものである。非ゼロかどうかとか潜在クラスとかで条件づけてもやっぱりそうである。ZIPモデルだと、$Z_i=0$だったら全員同じと考えているわけで、これはやっぱり無理があることが多い。その意味ではZIPモデルよりゼロ過剰な負の二項分布モデルのほうがよい面がある。どっちがよいかを決めるスコア検定というのもある。
 すごく確率が高い値が複数個あるときに注意。たとえば女性の出産数は0か2が多いので、多項ロジットモデルで解いた研究がある。

3.2 ハードルモデル
 これはMullahy(1986)が提案したtwo-partモデル。ひとつは非ゼロかどうかを説明する二値モデルで、これがハードル。もうひとつは、ハードルを越えたという条件の下でアウトカムのレベルを説明するモデルなんだけど、ここで切断(truncate)を考える。切断つきポアソンとか、切断つき負の二項とか。
 たとえばこう考える。[説明がないけど$\lambda$というのはポアソンパラメータであろう]
 $logit[P(Y_i=0)] = x'_{1i} \beta_i$
 $\log(\lambda_i) = x'_{2i} \beta_i$
 すると尤度関数は...[略]。
 カウントの右裾がすごく長いこともある。そういう場合のためのセミパラモデルの提案もある。

3.3 有限混合モデル
 3.1に述べたように、ゼロ過剰離散分布は一種の有限混合分布である。これをもっと緩くして、ゼロの母集団と非ゼロの母集団をはっきり区別しないようにすることもできる... [以下メモは省略するけど、なるほどね、正面からゼロ過剰という問題に取り組むのではなくて、ふつうの潜在クラスポワソン回帰モデルを組むわけね。Wedel, DeSarbo, Bult, & Ramaswamy(1993, J.App.Econ.)というのを読むのがよさそう]

3.4 Neyman type A分布
 ゼロ過剰カウントデータを、Neyman type A分布というのをつかってモデル化するという提案がある。これはポアソン-ポアソン混合分布で...[この節、一読したんだだけど、実現値$Y_i$はあるポアソン分布に独立に従う$N_i$個の変数の和、$N_i$は別のポアソン分布に従う、という悪い冗談のような話であった。人生においてそんなややこしい話と関わり合いを持ちたくないので、パス]

3.5 既存アプローチの得失
 ゼロ過剰モデルとハードルモデルは似ている。母集団は反応がゼロの人々と非ゼロの人々の混合だ、という考え方が自然ならばゼロ過剰モデルがよい。いっぽうハードルモデルはシンプル。さらに、ゼロが過剰なんじゃなくて、標準的な仮定に基づく期待よりも少ないという場合にも、ハードルモデルは使える。
 有限混合モデルは、観察が異なる母集団から抽出されているとみなすのが現実的ならば魅力的。ただし、モデルが適合してないときクラス数が過大評価されるかもしれない。Newman type Aモデルは推定が大変。

4. zero-clumpedな反復測定データのモデリング
 ここまでは横断データの話であった。ここからは、縦断データみたいにクラスタのあるデータ(観察間に相関のあるデータ)について。研究は多くない。

4.1 半連続データの反復測定
 Tobitモデルや標本選択モデルを縦断データに拡張しようという研究はあるんだけど、ゼロが本物のアウトカムだった場合には正規性仮定に無理があるので、本論文では扱わない。

 Olsen & Schafer(2001)は、Duanらのtwo-partモデルを縦断データに拡張している。被験者(ないしクラスタ)$i$, 時点$j$の半連続反応を$y_{ij}$、それが0である確率を$p_{ij}$とする。まずゼロか正値かについてのロジスティック・ランダム効果モデルを組む。
 $logit(p_{ij}) = x'_{1ij} \beta_1 + z'_{1ij} c_i$
$x_{1ij}$と$z_{1ij}$は共変量、$\beta_1$が固定係数、$c_i$がランダム係数。$c_i$はベクトルにしておくけど、通常はランダム切片モデルで十分であろう($c_i$はスカラーで$z_{1ij}$はなし)。
 で、$y_{ij} > 0$のとき$V_{ij} = y_{ij}$として、
 $\log(V_{ij}) = x'_{2ij} \beta_2 + z'_{2ij} d_i + \epsilon_{ij}$
ただし$\epsilon_{ij} \sim N(0, \sigma^2)$。ここでも、通常はランダム切片モデルで十分であろう($d_i$はスカラーで$z'_{2ij}$はなし)。
 $c_i$と$d_i$を縦に繋いで$b_i$とし、$N(0, \Sigma)$に従うということにする。で、ここが工夫なんだけど、$\Sigma$は対角行列じゃなくて、全要素を推定するわけ。
 Olsenらは推定手法をいろいろ比べている。MCMCとかEMとか罰則付き擬似尤度とかGH求積とか高次ラプラス近似とか。[ああ、そうか...よくわかんないけど、これって一般化線形混合モデルに近い話なのではなかろうか...]

 順序閾値モデルを拡張するというアイデアもある。Saei, et al.(1996)は...[略]
 
4.2 ゼロ過剰データの反復測定
 Hall(2000)はゼロ過剰ポアソンモデルを時系列に拡張している。
 例によって、$Y_{ij}$は確率$p_{ij}$で0、そうでなかったら$Poisson(\lambda_{ij})$と考える。で、
 $logit(p_{ij}) = x'_{1ij}\beta_1$
 $log(\lambda_{ij}) = x'_{2ij} \beta_2 + b_i$
ただし$b_i \sim N(0, \sigma^2)$と考える。尤度は...[略]。推定は...[略]。なお、ポワソンじゃなくて$binomial(n_i, \pi_{ij})$とし、二本目で$logit(pi_{ij})$のモデルを組むという手もある。
 一本目のほうにはランダム効果が入っていない点にご注目。

 You & Lee(2001)はハードルモデルにランダム効果をいれるというのを提案していて...[略]。

5. clumpが2つあるデータへの適用
 たとえばゼロと最大値がやたらに多いというような場合のように、clumpがふたつある場合にはどうするか。これは患者の順守(compliance)の研究で問題になる。全然いうことを聞かない患者と、完璧に言うとおりにする患者が多いから。ロジット変換して0-1データを実数データにしたところで、clumpに対処したことにはならない。というわけで、我々はいまこの問題を研究してます。

6. 今後の課題
 まず、時系列データの研究が足りない。[いくつか「あのモデルをこう変えるのはどうか」的なことが書いてある。略]
 半連続データの手法はたいがい、正値であれば対数正規だと仮定している。でもたとえば医療費はもっと右に裾を引く。セミパラな手法のほうがいいかもしれない。
 云々。

 。。。やれやれ、読み終えたぞ。
 そんなに重量級のレビューって感じではなくて、修論かなにかの1章を切り出したような感じだけど、勉強になりました。セレクション・バイアスに対するヘキットみたいなアプローチと、ゼロ過剰カウントデータに対するアプローチはたいてい別の文脈で説明されていると思う。私のような初学者は学習時の文脈に過度に制約されちゃうきらいがあるので、こういう風に、多様な文脈にまたがる話を統一的な記法でレビューしてもらえると、すごくすっきりする。ありがとう著者のみなさん、ありがとうイランのみなさん。

 半連続データのところ、意外にもヘキットでなくてTwo-partモデル推しであった。考えてみると、データが半連続であるということの背後にある発生メカニズムを特定せず、一般的にレビューすれば、それはそうなるんだろうなと思う。ヘキットというのは誤差に対して結構きつい仮定を置いているわけで、どこでも使えるわけじゃない。やっぱし、いろんなツールについて知っていることと、目の前の現象について都度都度真剣に考えること、この両方がないといかんのだなあ...と、これは反省の弁である。

読了:Min & Agresti (2002) ゼロがやたらに多い非負データの分析方法レビュー

2018年5月28日 (月)

Dotson, J.P., Howell, J.R., Brazell, J.D., Otter, T, Lenk, P., MacEachern, S., Allenby, G.M. (2018) A Probit Model with Structured Covariance for Similarity Effects and Source of Volume Calculations. Journal of Marketing Research, 55(1), 35-47.
 新製品のSOV(Source of volume)測定について考えていて、なにかの足しになるかと思って読んでみた。先日出たばかりの論文である。

 数ページ読んで、コンジョイント分析に特化した分析手法提案であることに気づき、ちょっとやる気が萎んだ。前半の理論編を読み終えるあたりでようやく、ベイズモデリング界の有名人・Allenby兄貴が共著者であることに気づき、急速にやる気が衰えた。でもまあ、いちおう最後までめくりました。

 いわく。
 SOV(source of volume)、つまり需要変化の源について知ることは大事だ。わが社の新製品が自社の現行製品とカニバリゼーションを起こさないかしらん、とか。
 製品間の代替性のパターンを完全にモデル化するとなると、製品数を$J$個として$J^2-J$個の交差効果が必要になる。コンジョイント分析なんかだと架空の製品がたくさんあるわけで、とてもじゃないがモデル化できない。
 ロジットモデルの世界では、代替性のパターンを柔軟にモデル化するよりも倹約性のほうが重視される。というわけで、ふつうIIAが仮定される。IIA仮定をおいたロジットモデルでは、個人レベルでのSOVは計算できないけど、消費者には異質性があるから、累積レベルではSOVが計算できるんだよ、という理屈である。我々はこういう路線は採らない。ほんとうの問題は、ロジットモデルは選択肢間での誤差の相互依存性を説明していないという点にある。
 そこで、多項プロビット(MNP)モデルに、構造化した共分散行列を導入する。この共分散行列は選択肢間の知覚距離に基づいて決める。知覚的に類似した選択肢の間では選択確率が相関すると考えるわけである。
 多項モデルに誤差の相関を導入する提案はすでにある。Hausman&Wise(1978)は正規誤差を、McFadden(1978)は極値誤差を考えた。しかしそういうモデルでは、誤差項は提示順序とかブランドとかと結びつけて考えられており、それぞれの選択肢の具体的な属性・水準と関連付けられることはなかった。[←そうなんですか?]
 
 モデル。
 マーケティングにおける選択モデルは、ふつう誤差項がiidだと仮定する。そのため、どんな選択肢でも誤差項の実現値によっては勝ちうるということになり、弱い製品への需要が過大評価され、予測シェアは0にならない。
 このようにモデルの倹約性に価値が置かれていたのは、マーケティング・データはふつう、対象者数は大きいけど対象者あたりの観察数が小さいからである。誤差項に相関を許した先行研究もあるけれど、異質性の表現だけが目的だったり、nested logitモデルによって相関構造を制約したりしていた。
 さて、我々のモデルは次の通り。
 製品の属性のうち観察可能なのを$x_o$、観察不能なのを$x_u$とする。世帯特性のうち観察可能なのを$h_o$, 観察不能なのを$h_u$とする。$x= [x_o, x_u], h=[h_o, h_u]$とする。
 効用関数を
 $u(x, h) = V(x_o, h_o) + \epsilon(x, h)$
と仮定する(誤差項は加算されるのだと仮定する)。意思決定者は選択を通じて効用を最大化すると仮定する。
 決定論的効用について、選択課題を$c$、選択肢を$k$として
 $V_h(x_{hck}) = x'_{hck} \beta_h$
と考える。
 さらに、誤差項も$x, h$の関数と考える。誤差$\epsilon_{hck}$は平均ゼロの正規分布に従うと考え、その共分散行列を世帯x選択課題別に$\Sigma_{hc}$とする。これはサイズ$K$の行列で(つまり行と列は選択肢)、対角要素は1、非対角要素は$\sigma_{ij}$である。なお、対角要素を1にしないというのも試したが、モデルの性能は上がらなかった。
 当然ながら、世帯x選択課題別に共分散行列を推定できるだけのデータはない。そこで$\sigma_{ij}$についてこうモデル化する。
 $\sigma_{ij} = \exp(-d_{ij}/\theta_h)$
$d_{ij}$はスカラーで、選択肢$i, j$の距離を表す。$\theta_h$は距離をリスケールするパラメータで、未知の世帯特性によって決まると考える。ゼロに近いときにIIAに近づく。

 では、選択肢$i$と$j$のあいだの距離$d_{ij}$をどうやって求めるか。4案考えました。

 なお、選好と知覚とは別だろうと考え、距離の式の中に出てくる$\beta$を別の自由パラメータに置き換えるというのも試したが、モデルの性能は上がらなかった。

 こうしてみると、従来の選択モデルと比べて新たに導入されたパラメータは、結局$\theta_h$だけである。
 [以下、$\theta_h$の識別条件とか、もうちょっとだけモデルを拡張して負の共分散を許しました、とかといった話題。パス]

 理論編の最後になりましたが、先行研究紹介。[ここは勉強のために詳しくメモ]
 iidでない誤差項をいれることでIIA仮定を避けるという文献は山ほどあるが、大きく3つの次元を考えることができる。

本モデルは、3つの次元すべてにあてはまる。

 実験やりまーす。
 コーヒー・クリーミング・パウダーについてのコンジョイント実験。属性は、ブランド(4水準)、乳製品か(2)、無脂肪か(2)、香りつきか(2)、サイズ(2)、価格(5)。951名。14試行。完全プロファイルで4選択肢並べてひとつ選ばせる。1試行をホールドアウト。
 すべてのモデルパラメータをランダム効果とする。対象者を$h$として
 $\beta_h \sim N(\bar{\beta}, V_\beta)$
でもって、次のモデルを比較する:

 結果。インサンプルの適合度でも[Gelfand & Dey(1994, JRSS)の推定量のlogmarginal densityというのを使っている。そんなん知らんがな]、ホールドアウトの予測でも、距離3による提案モデルが優れていた。パラメータ推定値を比べると...[略]。誤差項の相関をこまかくみていくと...[略]。
 別のデータセットでやっても、やっぱし提案モデル(距離3)が優れてました。
 
 SOVの推定について。
 新規参入のSOVをどう推定するか。まずは多項ロジットモデルの場合について考えてみる。IIAが仮定されているから、SOVのレートは参入前の選択確率と同じである。既存品を$i$, 新規品を$k$, すべての製品を$j$とする。$i$の決定論的効用を$V_i = x'_i \beta$とする。参入前は
 $Pr(i)_{Before} = \exp(V_i) / \sum_j \exp(V_j)$
参入後は
 $Pr(i)_{After} = \exp(V_i) / ( \sum_j \exp(V_j) + \exp(V_k) )$
 $Pr(k)_{After} = \exp(V_k) / ( \sum_j \exp(V_j) + \exp(V_k) )$
製品$k$のSOVにおける$i$の割合は
 $\%SOV = (Pr(i)_{Before}-Pr(i)_{After})/Pr(k)_{After}$
これは結局$Pr(i)_{Before}$となることが示せる。代替性を調べているはずが、実際には選好を調べているわけである。たとえば低価格のために選択確率が高くなっている選択肢があったら、そこからのSOVも高くなるわけで、これはおかしい。
 ロジットモデルのもつこの制約的な性質は、異質な消費者集合について累積することで緩和されるだろうか。
 クリームパウダーの実験に基づき選択肢シミュレータをつくった。パラメータとしてランダム効果の事後分布の平均$\bar{\beta}$を使う版と、事後分布$\pi(\{\beta|Data\})$を使う版をつくった。なお後者は$\{\beta_h \}$を使うのと似た結果になる。このことは実務家ならみんな知っている。Huber, Orme, Miller(1999, Sawtooth Software Conf.)をみよ。
 まず3選択肢でシェアを求める。選択肢2,3は属性がひとつしか違わないものにする。次に選択肢1と属性がひとつしか違わない選択肢4を追加し、再度シェアを求める。これを繰り返す。
 選択肢4のSOVは1で大きくなるはずである。しかし多項ロジットモデルの場合はそうならない。これは$\{\beta_h \}$版でも対して改善しない。つまり、個人レベルでIIAを仮定しちゃったことによって生じる問題は、異質性を盛り込んでも取り返せない。問題の深刻さは異質性の程度によって決まるわけだけど、それは事前にはわからない。
 [さらに選択肢1の全体効用を操作した実験を行っている。主旨は同様なので省略]
 [別のデータでも試しているけど、もう疲れたのでパス。やりすぎでしょう...]

 というわけで、誤差相関が選択肢の価値と構造的に関連している選択モデルを御提案しました。相関構造は製品属性から勝手に決まります。
 距離3が優れていたということは、選択肢間の相関は、どの属性のせいで効用が高い・低いかとは無関係に、補償的に決まる模様です。マーケティングや心理学の研究では、製品の類似性ってのは製品属性で決まると考えるのがふつうで、効用で決まるとは考えない。いっぽう本研究の結果は、製品が異なっているときだけでなく、製品の効用が異なっているときにも、対象者はそれを弁別しやすい、ということを示唆している。
 実務家のみなさん、ロジットモデルをよく使っておられますが、製品間の代替性を調べるときにはIIA仮定の影響が強すぎて怖い、ということを知っていただきたい。
 今後の課題は、異なる代替関係をもたらすような選択理論を構築すること。Tversky&Simonsonの文脈依存的選好の研究とかがこれに近いが、そういうのは遷移律からの逸脱に焦点を当てているのに対して、代替性が製品によって違うというのは遷移律の違反ではない、という点が異なる。
 云々。

 ... やれやれ、いちおうめくったぞ。疲れたぞ。
 私の仕事との関係で言うと、「コンジョイント分析におけるIIA仮定は非現実的だけど個人効用をHB推定してるから大丈夫」というのは半ば幻想である、という点が、ちゃんとしたシミュレーションでわかったというのが収穫であった。そうなんすかー。参っちゃいますねー。
 いっぽう、あんまり真面目に読んでないので読み落としてるのかもしれないけど、提案手法じゃなくてHBプロビット($\Sigma_h$)でも別にいいんじゃね?とも思った。モデルのパフォーマンスは遜色ないみたいだし。SOV算出時のシミュレーションは示されてないのだが、実は提案手法と対して変わらんのではないかしらん。えーっと、HBプロビット($\Sigma_h$)なら、Allenby先生のbayesmパッケージでできちゃいません?

 実務的問題とはちょっと離れてしまうけど、距離3が優れているのはなぜか、って話が興味深かった。大きく言うと、実験者は選択肢を属性の束として捉えているけど、被験者はその属性の束から潜在属性(ここでは全体効用)を生成したうえでやおら課題を遂行しているかも、ということであろう。Barsalouの「アドホック・カテゴリ」みたいな話ですね。ああ栄光の80年代認知心理学。

 ベイズ・モデリング界のスターであるAllenby兄貴の論文には、アクション映画界のスターであるドニー・イェン兄貴のアクションが似合うので(前者は読者に、後者は共演者に、無理難題を押し付けるところが似ている)、今回も動画を貼っておくことにする。ピーター・チャン監督「武侠」(2011, 日本公開タイトル「捜査官X」)より。気弱な農民のはずのドニーさんが、クララ・ウェイ姉さんの横暴を前にし、ついにその本性を明らかにするという名場面である。
 屋根の上を疾走するシーンも忘れがたいですが、この映画の最大の見どころは、リアリティがありそうでなさそうな、さまざまな謎のキメポーズだと思う次第である。牛小屋の対決でクララ姉さんが刃物振り回しているときの、ドニーさんのあのポーズはなんなの? 両手のこぶしを顔の前に10cmくらい縦に離して構える奴。全然意味がわかんないんだけど、やだもう、超かっこよくないですか? 私もいまディスプレイの前で試してます。


読了:Dotson, et al. (2018) 選択肢の全体効用が似ているときに選択肢間の誤差相関を高くする階層プロビット選択モデルを使ったコンジョイント分析でSOVを推定しよう (feat. 武侠)

2018年5月11日 (金)

Nishisato, S., Clavel, J.G. (2003) A note on between-set distances in dual scaling and correspondence analysis. Behaviormetrika, 30(1), 87-98.
 調べ物の都合で読んだ。朝野先生がSASのサイトに載せていた、対応分析についてのコラムで引用されていたもの。
 第一著者は世界的に知られる偉大な計量心理学者。ここだけの話(ここってどこだ)、一般向けセミナーの聴講者のなかになぜかこの先生がおられて、穏やかな笑みを浮かべておられて...という背筋も凍る怪談を、私は複数の方から別々に聞いたことがある。起業家向けセミナーの聴衆に孫正義がいたというような話である。正直、もう怖くてセミナーなんてできない!と思いました。

 いわく。
 カテゴリカルデータを数量化する際、行変数の空間と列変数の空間はふつう異なる。行間の距離を座標から求めること、列間の距離を座標から求めることはできるけど、行と列の距離を座標から求めることはできない。
 いっぽう、行変数を列変数に射影することはできるし、逆もできる。これがいわゆる非対称的スケーリングであり、真の意味での同時グラフである。しかし、射影された変数のノルムは元の変数よりふつう小さくなる。つまり射影された変数は原点付近に集まる傾向がある。対応する特異値が小さいほどこのずれは大きくなる。言い換えると、最初のふたつの特異値がどちらも1に近いとき(上位2成分をプロットしたときとか), normed weightsとprojected weightsの exact plot はreasonableだが、第3成分と第5成分のexact plotを描いた日なんぞは、normed weightsの分散とprojected weightsの分散とのギャップが大きくなり、距離の比較はもはやreasonableでなくなる。[←このくだり、理解できたかどうか自信がない... 二元クロス表$Y$を総和で割って$P$とし、$P$の行和と列和を持たせた対角行列を$D_r$, $D_c$とし、$P$をうまいこと中心化したうえで、$D_r, D_c$を重みとして$NDM'$と一般化SVDしたとしよう。特異行列$N, M$がnormed weightsで, それに特異値を掛けた$ND, MD$がprojected weightsで、たとえば行のprojected weightsと列のnormed weightsを同時布置するのは正しいが、行の布置の分散は絶対に小さくなるよ。ということだと思うのだけれど、あっているだろうか]

 もっとも一般的な妥協案は、対称的スケーリングによって同時プロットをつくることである。その場合、2つの異なる空間が重ね書きされているということに気をつけないといけない。それはexactな記述ではなくて、practicalな近似だ。
 行と列を同じ空間に布置しようという試みの一つが、ご存じCGSスケーリングだが、明確な理論的基盤がなかった。Nishisato(1980 双対尺度法本), Greenacre(1989, JMRに載った批判論文)をみよ。実はNishisato(1990, 1997 いずれも手に入りにくそうな論文集)でその方法を提案している。
 本論文の主旨は:行と列との距離を求める方法はあるんだよ。あまりに単純なんだけど。

 $F$を$n \times m$分割表とする。成分$k$について、$y_k$を規準化された行ウェイト(長さ$n$)、$x_k$を規準化された列ウェイト(長さ$m$)とする。$y_k$で重みづけた反応と、$x_k$で重みづけた反応との相関$\rho$を最大化するように$x_k, y_k$を決めたい。
 良く知られた方法はこうである。$F$の行和をいれた対角行列を$D_r$, 列和をいれた対角行列を$D_c$とし、$D_r^{-1/2} F D_c^{-1/2}$の第$k$特異値を$\rho_k$として、
 $y_k = (1/\rho_k) D_r^{-1} F x_k$
 $x_k = (1/\rho_k) D_c^{-1} F' y_k$
Nishisato(1980)はこれをdual relationsと呼んでいる。

 $y_k, x_k$はnormed weights(ないし標準座標)と呼ばれている。なぜそう呼ぶかというと、$y'_k D_r y_k$と$x'_k D_c x_k$が事前に決めた定数と等しくなるからである。これに特異値を掛けた奴($\rho_k y_k, \rho_k x_k$)をprojected weights(ないし主座標)と呼ぶ。
 $y_k$と$\rho_k x_k$は同じ空間を張るし、$\rho_k y_k$と$x_k$も同じ空間を張る。でも、ある成分について行の軸と列の軸は$cos^{-1}\rho_k$だけ離れる。Nishisato(1996, Psychometrika)をみよ。
 だから行変数と列変数の同時布置は、ひとつの成分について2次元になり、ふたつの成分について3次元になる。いいかえると、行空間と列空間は違うもので、ある成分セットについて完全に記述するためにはもうひとつ次元を追加する必要がある。

 行と行の距離、列と列の距離についてはふつうカイ二乗距離を使う。行$y_i$と$y_j$があり、和の割合が$p_i, p_j$だとして、
 $\displaystyle d_{ij}^2 = \sum_k \rho^2_k (\frac{y_{ik}}{\sqrt{p_i}} - \frac{y_{jk}}{\sqrt{p_j}})^2$
 ところで、いま二次元空間上に点AとBがあり、原点からそれぞれまでの距離が$a, b$, AOBのなす角度が$\theta$だとしたら、AB間の距離は
 $d_{AB}^2 = a^2+b^2-2ab \cos \theta$
 さて、2成分について行空間と列空間を張ったとして、行$y_i$と列$x_j$とのカイ二乗距離を求めると、次のようになる。それぞれの和の割合を$p_{i.}, p_{.j}$として...[導出プロセスで落ちこぼれちゃったんだけど、先生を信じます]
 $\displaystyle d_{ij}^2 = \sum_k \rho^2_k \left( \frac{x^2_{jk}}{p_{.j}} + \frac{y^2_{jk}}{p_{i.}} - 2 \rho_k \frac{ x_{jk} y_{ik} }{ \sqrt{ p_{.j} p_{i.} } } \right)^2$

 [数値例。Rで途中まで試してみたけど省略]

 というわけで、行と行、列と列、行と列について距離行列をつくれる。これを非計量MDSで観察してみよう...[略]

 このように、行空間と列空間の乖離を表現するためには次元をひとつ追加する必要があり、その次元の寄与は、特異値が小さいときほど大きい。思うに、対称的スケーリングで同時プロットを描いていいのは特異値がコレコレ以上の時だ、というようなガイドラインがあったほうがいいのではないか。
 双対尺度法・対応分析は行と列の距離を無視している。現時点で、我々は行と行、列と列、行と列のカイ二乗距離を同時に分析する方法を持っていない。今後の発展が望まれる。云々。

 ...なんとか読み終えたけれど、やはりもっときちんと勉強しておかないとだめだなあ...

読了:Nishisato & Clavel (2003) クロス表の対応分析の結果から「行と列の距離」を求めるには

西里静彦(2014) 行動科学への数理の応用:探索的データ解析と測度の関係の理解. 行動計量学, 41(2), 89-102.
 前に読んだ気もするんだけど、調べものの都合で読んだ。前後の文脈を調べてみると、2014年に行動計量学会が開いたワークショップを踏まえた寄稿らしく、題名はそのワークショップのタイトルに由来したもの。論文の内容としては、データを名義尺度で表現しなさい、十分な多次元空間を用いなさい、行と列を同時空間で見なさい、Nishisato & Clavel(2004)の全情報解析へようこそ、という感じ。

いくつかメモ:

読了:西里(2014) 全情報解析への招待

2018年5月 5日 (土)

Liu, I., Agresti, A. (2005) The analysis of ordered categorical data: An overview and a survey of recent development. Test, 14(1), 2005.
 順序カテゴリカルデータの分析手法についてのレビュー。
 かつてAgrestiの教科書とかで読んだ内容とも重複しているんだけど、こういう知識は突然に必要になるので、時々おさらいしておこうと思って... というのは建前で、いろいろ疲れることが重なったあげく、不意に出先で時間が空いたので、リハビリのつもりで読んだ奴。こういう話題はややこしいことを考えなくていいので助かる。
 掲載誌はSpanish Society of Statistics and Operations Researchの発行。Google様的な被引用回数は241件、結構少ない。

1. イントロダクション (略)

2. 順序カテゴリカル反応のモデル
 順序カテゴリカル反応への関心を引き起こした主な研究がふたつある。McCullagh(1980)による累積確率のロジットモデルと、Goodman(1979)によるオッズ比の対数線型モデルである。

2.1 比例オッズモデル(累積ロジットモデル)
 順序反応のモデルとして現在もっとも一般的なのは累積確率のロジットを使うモデルであろう。
 McCullaghはこう考えた。$c$カテゴリの順序反応を$Y$、予測子のセットを$x$として、
 $logit[P(Y \leq j | x)] = \alpha_j - \beta' x$
$j$は$1$から$c-1$まで動く。
 このモデルは$c-1$個の累積確率のすべてに対して予測子が同一の効果を持つと仮定している。$c$カテゴリの反応をどこかで切って二値に落とすとして、どこで切ろうが説明変数の効果を表すオッズ比は同じだということになる。このタイプのモデルは比例オッズモデルと呼ばれることも多い。

2.2 累積リンクモデル
 McCullagh(1980)は、プロビット、loglog, cloglogといった二値データでおなじみのリンク関数を使うという手も考えた。そういうのを取り込んで一般化したのが累積リンクモデルである。
 $G^{-1}[P(Y \leq j | x)] = \alpha_j - \beta' x$
$G$は連続累積分布関数(cdf)。

2.3 多項ロジットモデルによる代替案

 いま、カテゴリカル反応を長さ$c-1$のダミーベクトルで表現し、対象者$i$におけるその平均を$\mu_i$として
 $g(\mu_i) = X_i \beta$
という多変量一般化線型モデルを考えると、累積リンクモデルも隣接カテゴリロジットモデルもcontinuation-ratioロジットモデルも、このモデルの特殊ケースとして捉えられる。

2.4 その他の多項反応モデル

2.5 順序反応の連関のモデリング
 $r \times c$分割表の行を$X$, 列を$Y$とし、セル頻度を$\{n_{ij}\}$, その期待値を$\{\mu_{ij}\}$とする。
 Goodman(1985)はこう考えた。
 $\log \mu_{ij} = \lambda + \lambda_i^{X} + \lambda_j^{Y} + \sum_k^M \beta_k u_{ik} v_{jk}$
ただし$M \leq min(r-1, c-1)$。$M = min(r-1, c-1)$とすると飽和する。ふつうは$M=1$とする。

関連する研究は対応分析と正準相関モデルの文脈でも行われている。一般正準相関モデルは
 $\pi_{ij} = \pi_{i+} \pi_{+j} \left(1+\sum_k^M \lambda_k u_{ik} v_{jk}\right)$
Goodmanの定式化と似ているけど、連関の項を使って$\mu_{ij}$と独立なときの値とのずれをモデル化している点に注意。この路線の限界は、多元表への一般化が大変だという点。

3. 順序反応のクラスタ化データ・反復データのモデリング
 クラスタ化データ・反復データのモデルには大きく分けて2つある。

 以下、あるクラスタにおいて$Y_1,\ldots,Y_T$の反復反応が得られているとする。話を簡単にするため$T$は全クラスタで共通だということにするが、クラスタ$i$について$T_i$だと一般化してもよろしい。

3.1 GEEアプローチによる周辺モデル
 累積ロジットリンクを持つ周辺モデルについて考えよう。
 $logit[P(Y_t \leq j|x_t)] = \alpha_j - \beta' x_t$
 これだと$T$個の反応の周辺分布の説明変数への依存性だけを考えていて、$T$回の反復反応の間の多変量的な依存性はモデル化していない。
 さて、この周辺モデルを推定する際、対数尤度関数を最大化するというのはおかしな話になる。対数尤度関数は、予測子の多様な水準から得られた多項分布の積になる。それぞれの多項分布は、$T$個の反応のクロス分類における$c^T$個のセルから定義される。尤度関数はこの完全な同時分布を指しているのだから、周辺モデルの公式を対数尤度に直接置き換えることができない。[←ううむ...よくわからない...]
 ここでは一般化推定方程式(GEE)を使うのが簡単である。GEEは擬似尤度の多変量への一般化に基づいており、周辺回帰モデルだけを指定すれば、$T$個の反応の相関構造については適当に推測してくれる。
 GEEはもともと、二値とかポワソンとかの単変量分布の周辺モデルとして開発されたが、反復順序反応の累積ロジットモデルや累積プロビットモデルに拡張されている。
 [ここからGEEによるモデリングの説明に入るんだけど、残念ながら良く理解できなかった。短い説明だし、写経してもいいんだけど、面倒なので省略する。ううむ、GEEっていつも勉強しかけて挫折するんだよなあ]

3.2 MLアプローチによる周辺モデル
 上記のように、周辺モデルを最尤推定するのはおかしい。同時セル確率と、同時分布の高次パラメータならびに周辺モデルのパラメータとを一対一対応させる多変量ロジスティックモデルという提案もあるが、次元数が増えると無理になる。周辺モデルを制約方程式として扱い、ポワソン尤度と多項尤度を最大化するというアプローチもあるが、計算が大変。
 [だめだ、3.1-3.2はさっぱり理解できない。Agrestiの教科書も見たけどやっぱりむずかしい。まあふだんはGLMMでやっておりますので、今回はあきらめるけど、なにかやさしい教科書はないかしらん]

3.3 一般化線形混合モデル
 こんどは周辺分布じゃなくて、同時分布をクラスタのランダム効果を使ってモデル化する。反応を指数分布族として、一般化線形モデル(GLM)にランダム効果を加えたのを一般化線形混合モデル(GLMM)という。同様に、多変量GLMも多変量GLMMに拡張できる。
 ランダム効果が表すものは状況によって異なる。ヒトの異質性とか、未知の共変量とか、なんらかの過分散(overdispersion)とか。
 基本的なモデルは
 $logit[P(Y_{it} \leq j | x_{it}, z_{it})] = \alpha_j - \beta^{'} x_{it} - u^{'}_i z_{it}$
ここで$z_{it}$はランダム効果の説明変数ベクトルで、$u_i$はiidに$MVN(0, \Sigma)$に従う。リンク関数を変えてもいいし、continuation-ratioロジットモデルに変えてもいい。[嗚呼... 周辺モデルよか全然わかりやすいよ... 胸なごむ...]

3.4 マルチレベルモデル
 クラスタのレベルが2つ以上ある場合もある。地域-学校-学生、とか。
 アプローチとしては、GEE, 多変量GLMM, 階層モデルでそれぞれのレベルについて事前分布を与えるベイズモデル、が考えられる。

3.5 その他のモデル(遷移モデルと時系列)
 反復測定データを遷移モデルで分析するという手もある。反応を説明変数と過去の反応で条件づけて説明するわけだ。二値データについてマルコフ連鎖構造を使うことが多い。
 順序データについてはEkholm et al.(2003)というのがあって、反応間の連関をdependence ratioというので表す。これは所与のセルの確率を独立性の下での期待値で割った値のこと。このモデルは、連関メカニズムが純粋に交換可能であればヒトのランダム項をいれたGLMMと等しくなり、連関メカニズムが純粋にマルコフであればマルコフ連鎖構造の遷移モデルと等しくなる。[←悪いけどなにをゆうておるのかようわからん]
 連続時間の遷移モデルのGEE推定とML推定というのもある。

 周辺モデルが良いか、クラスタ特定的なモデルが良いか、遷移モデルが良いか。これは、母集団レベルで解釈したいか個人レベルで解釈したいか、説明変数の効果を以前の反応で条件づけて記述したいか、によって決まる問題である。
 モデルのタイプがちがえばパラメータのサイズも変わる。たとえば、周辺モデルよりもクラスタ特定的モデルのほうが効果の推定値が大きくなる。

4. 順序反応へのベイジアン分析
4.1 多項パラメータの推定
 とりあえず、$c$カテゴリの多項変数、説明変数なし、ということにしよう。セルの頻度$(n_1, \ldots, n_c)$がサイズ$n=\sum n_i$, パラメータ$\pi=(\pi_1, \ldots, \pi_c)'$の多項分布に従うとする。多項確率質量分布の共役密度関数はディリクレで...[分布とその特性値の説明。省略]。事前のパラメータを$(\alpha_1, \ldots, \alpha_c)$とすると、事後のパラメータは$\{n_i+\alpha_i\}$となり...[特性値の説明。省略]。
 さて、多項確率の推定の際に$\pi_1 \leq \ldots \leq \pi_k \geq \pi_{k+1} \geq \ldots \geq \pi_c$という制約をいれるという考え方があり、これは順序カテゴリに適することが多い。[←えっ、なぜ??]
 多項ロジットのパラメータ事前分布としてディリクレじゃなくてMVNを仮定するという路線もある。相関行列を自己回帰の形式にすると、隣接カテゴリの確率が似てくるので、順序カテゴリに向いている。
 ディリクレ・パラメータの分布を階層的に指定するという手もある。二階の事前分布をいれるわけね。共役分布を使わないと決めてしまえば、ロジットモデルでMVN事前分布の階層モデルのほうが計算しやすい。

4.2 クロス表における確率の推定
 Good(1965)はディリクレ事前分布と階層モデルを使ってクロス表のセル確率を推定した。その後、データ依存な事前分布を使うというのも出てきて... [面倒になってきたのでこの節はスキップ]

4.3 順序反応のモデリング
 [いよいよ、順序反応そのもののベイジアン・モデリングの話、なんだけど... 1996年ごろ以降の先行研究が、一本につき数行づつ紹介されている感じなので、省略する。多変量反応にも拡張されている由]

5. 順序反応についてのモデルベースでない手法
5.1 層別クロス表のCMH法
 カテゴリカル変数$X, Y$の連関を、第三の変数$X$をコントロールして分析したいとき、ふつうは三元クロス表を書く。では、$Z$をコントロールした下での$X, Y$の条件つき連関は?
 モデルに基づかないアプローチとして一番有名なのはCochran-Mantel-Haenszel(CMH)検定である。$X$と$Y$がともに順序なら、層を結合した連関が自由度1のカイ二乗分布に従うことを利用する。これは行と列になんらかスコアを振って線形トレンドをみていることになる。実はこれ、多項ロジットと深い関係がある。Agrestiの本を読め。
 検定統計量だけでなく、後述する順序オッズ比も手に入る(それが層を通じて一定だという仮定の下で)。各層が十分大きければ多項ロジットモデルのML推定量と類似するし、層が多くなってデータがスパースになってくると、実はML推定量より優れている。

5.2 順序オッズ比
 順序反応の二元表のオッズ比にはいろんなタイプがある。

5.3 ランク・ベースのアプローチ
 先ほど述べたように、CMH統計量は連関の要約にカテゴリのスコアを使っていると捉えられるが、スコアを使わず厳密に順序情報だけで推論するのもある。Kendallの$\tau$統計量, Goodman-Kruskalの$\gamma$, Jonckheere-Terpstra検定、など。[←最後の奴、初めて聞いた...]

5.4 不等性制約の使用
 順序カテゴリを活用するその他の方法として、連関構造を記述するパラメータに不等性制約を置くというのがある。たとえば、二元クロス表での連関を記述する際、累積オッズ比、局所オッズ比、大域オッズ比、連続オッズ比が使えるが、その際に$(r-1)(c-1)$個の対数オッズ比のすべてが非負だという制約を掛ける。するとセル確率のML推定値が手に入ったり、尤度比検定で独立性を検定したりできる。Bartolucci et al(2001, JASA)をみよ。なお、局所オッズ比を制約するのがもっともきつい制約になる(局所対数オッズ比が一様に非負なら大域対数オッズ比も非負)。
 2行の場合、非負対数オッズ制約のもとで尤度比検定の漸近分布が手に入って...でも3行以上には一般化できなくて... [とかなんとか... 略]
 それとは別の話として、対数線形モデルとかのパラメータに非負制約を掛けるというのもある。

5.5 一致の測定
重みつき$\kappa$とか、ROC曲線を使うとか、いろんな方法がある。

6. その他の問題
6.1 正確推論
[ごく短い説明だけど、力尽きてきたのでパス]

6.2 欠損データ
 多変量GLMMの場合、MCARやMARがあっても大丈夫。いっぽうGEEのように尤度ベースでない手法では、ランダム欠損でも無視できるとは限らない。
 他にも欠損を扱うモデルの提案がいろいろある。反応じゃなくて共変量の欠損を扱うモデルの提案もある。

6.3 標本サイズと検定力
 $c$カテゴリの順序反応を2群間で比較する場合について考える。比例オッズモデルの場合、周辺確率が変わらないとして[←?]、ある検定力に達するために必要な標本サイズ$N(c)$には次の性質がある:
 $N(c) / N(2) = 0.75/(1-1/c^2)$
ここからわかるのは、カテゴリを2つに潰すと情報の損失は大きい、しかしカテゴリが4~5個あればそれ以上あるときと変わらない。
 ほかに、Wilcoxonのrank sum検定の場合のガイドラインとか、個人について処理前と処理後に測定すするsubjec-specificモデルの場合のガイドラインが提案されている。

6.4 順序データ分析のためのソフトウェア
[略]

6.5 結語
[略]

 ... いやあ、長かった... 疲れた... めんどくさかった...

 この論文が面白そうだと思ったのは、73頁のうち本文は29頁で、残りは識者たちのコメントと返答になっているところ。せっかくなので対話調でメモしておく。

Tutz: 順序回帰モデルの利用について伺います。
 順序モデルとして良く知られているのは累積型のモデル、つまり
 $P(Y \leq j | x) = F(\eta_j(x))$
 $\eta_j(x) = \alpha_j - x'\beta$
というものです。
 でも、逐次型のモデル
 $P(Y=j | Y \geq j, x) = F(\eta_j(x))$
も有用だと思うんですよね。ここで$F$は狭義単調分布関数であればよくて、たとえばロジスティック分布関数ならcontinuation-ratioロジットモデルになります。
 このモデルはカテゴリ$r$から$r+1$への遷移をモデリングしているとみることもできます。だから、カテゴリ$r$に到達しているという条件のもとで、どんな二値回帰モデルでも使えるんです。
 逐次型モデルは拡張が容易です。たとえば累積モデルによる近似がうまくいかない場合は、$\beta$をカテゴリごとに$\beta_j$として推定してもいいです。[以下、累積モデルに比べて逐次型モデルがいかに柔軟かという話。略]
 というわけで、累積型モデルばかりが注目されるのって納得いかないんですけど、どう思います?

Liu & Agresti: 逐次型モデルがあまり使われてないのは、カテゴリを低いほうから並べるか高いほうから並べるかで結果が変わってきちゃうからじゃないですかね。

Tutz: 予測子をどう組み合わせるかという話なんですが。
 反復測定データの周辺モデルや混合モデルの場合、一番単純なモデルだと、クラスタ$i$の観察$t$のカテゴリ$j$について
 $\eta_{tj}(x_{it}) = \alpha_j - x'_{it}\beta$
というふうに、観察$t$を通じて$\alpha_j$と$\beta$は一定にすると思います。カテゴリ数なり観察数なりが小さい場合はともかく、これはちょっと制約し過ぎと思います。先々の研究を考えたら、やっぱり
 $\eta_{tj}(x_{it}) = \alpha_{tj} - x'_{it}\beta_j$
とか
 $\eta_{tj}(x_{it}) = \alpha_{tj} - x'_{it}\beta_t$
というふうに、カテゴリ別・観察別のパラメータを入れたほうがいいと思います。でも全パラメータを自由推定しちゃうとノイズに敏感になっちゃうし解釈しにくいので、なんらか制約を入れたほうがいいでしょうね、たとえば罰則付きML法で、対数尤度$\ell$を
 $\ell_p = \ell - \sum_{j,s} \lambda_s (\beta_{j+1,s} - \beta_{j,s})^2$
に置き換えるとか($\lambda_s$は平滑化パラメータ)。
 累積型モデルで追加制約を考慮する場合、罰則付き尤度モデルは比例モデルと非比例モデルの間のどこかに位置します。$\lambda_s$がすごく大きい場合、$x_{it}$の$s$番目の要素に比例オッズモデルを当てはめることになります。もちろん$\alpha_{tj}$は$t,j$を通じて一定にしないといけません。[←??? 力不足で理解できない...]
 予測子を平滑化するという方向の拡張もあります。線形予測子の代わりに加算構造を使うというのは興味深い拡張ですね。[GEEのこと???] 横断データだと加算順序回帰モデルとしてすでに使われていますが、反復測定の場合、$t$別にスムーズな構造を見つけるというのはチャレンジングな課題です。

Liu & Agresti: 予測子のより一般的な構造を用いるという解説、ありがとうございます。おっしゃるとおり、単純・解釈可能でかつスムーズな構造を見つけるのが難しいですね。でもこれからは応用事例も増え、もっと一般的になると思いますよ。

Tutz: 平均反応モデルについて一言申し上げたい。
 実務家にとって魅力的だというのはわかりますけど、あれは順序モデルじゃないですよ。カテゴリにスコアを与えているということは、反応をmetricallyにスケールした離散反応モデルにすぎないです。

Liu & Agresti: おっしゃる通り、順序反応データに平均反応モデルを使うのはよろしくないです。でも道具箱のなかにはいれておきたいと思います。非統計家にとってはロジスティック回帰よりわかりやすいですし、反応カテゴリ数が多ければ、潜在構造を仮定することなしに順序回帰への道を開くという利点があります。メトリックを選ばないといけないというのは確かに難点ですが、順序説明変数を扱うときにだって同じ問題は起きているわけですし。

Tutz: 順序データ分析の研究では予測が無視されがちじゃないですか? 二値データとかカテゴリカルデータの場合には、分類の枠組みであんなに予測の研究があるのに。なんで判別分析とか機械学習で順序データが注目されてないんでしょうかね。

Liu & Agresti: そうですね。

Simonoff: あんまし触れてくださいませんでしたが、ノンパラメトリック・セミパラメトリックなアプローチについて補足させてください。私の専門なもので。
 まずノンパラメトリックなアプローチについて。大域的にパラメトリックな仮定をおくのをやめて、局所的な多項関係を仮定します。たとえば... [以下、説明省略。難しいよお]
 少なくとも局所的にはパラメトリックなモデルがあてはまると思う場合には、セミパラメトリックなアプローチがよいでしょう。たとえば... [説明省略]

Liu & Agresti: いやー、良く知らなかった話で、勉強になりました。[←とは書いてないけど、まあそういうニュアンス]

Kateri: コメントの前に、触れてくださらなかった話題について紹介してもいいですか? 正方順序行列の分析という話題です。
 分類変数の正方行列の場合、対称モデル、準対称モデル、周辺等質性モデルがあることは広く知られています。これが順序変数の場合だと、適切なモデルのクラスがさらに広がって、条件付き対称モデル、対角非対称モデルというのが出てきます。
 これらのモデルは、一致の測定とか、移動表の分析とかと関連していますし、行列がマルコフ連鎖の遷移確率行列である場合には「ランダム・ウォーク」「均衡状態」「リバーシビリティ」という概念と関わってきます。

Liu & Agresti: なるほど、ありがとうございます。順序変数の正方行列だったらほかにもこんなモデルがありますね...[とひとしきり紹介があるが、話についていけなくなったのでパス。このへんはAgrestiの教科書をみたほうがよさそう]

Kateri: クロス表の連関のモデル化についてコメントします。
 連関はKL距離の観点からの指標、相関はピアソン距離の観点からの指標です。Goodman(1996) はこの二つを含むより一般的なクラスのモデルを考えました... [以下、自分の研究紹介。省略]
 順序クロス表の分析における興味深い問題として、行ないし列の併合という問題があります... [自分の研究紹介]

Liu & Agresti: (特に返答無し)

Lesaffre: 私、自分が相談を受ける際は、順序ロジスティック回帰じゃなくて二値ロジスティック回帰を勧めることが多いんですよね。相手はたいてい医者で、二値ロジスティック回帰の出力ならよく理解できますし、二値ロジスティックでも順序ロジスティックでも結果はたいていほとんど変わらないから。おそらく他の統計家の方もそうなんじゃないかと。
 お伺いしたいんですけど、二値じゃなくて順序ロジスティックを使うことの利点を明確に示したシミュレーションとかないでしょうか? それにソフトはあるんでしょうか?

Liu & Agresti: Lesaffre先生のこのご指摘にはちょっとガックリなんですけど、ええとですね、順序モデルだとそれぞれの効果についてひとつのパラメータが出ます。二値に潰して分析するのとでは結果は結構違います。Whitehead(1993)をみてください。

Lesaffre: Anderson(1984)のモデルについて触れて下さらなかったのにはちょっとびっくりです。このモデルは評価の順序カテゴリ変数を分析するもので、
 $P(Y=s) = \exp(\beta_{0s} - \phi_s \beta^T x) / $(分子の合計)
ただし$1 =\phi_1 > \ldots > \phi_k = 0$とします。これは多項ロジット回帰の特殊ケースですが、説明変数との関係が一元的だという点が古典的な順序データ分析とは違います。
 この尺度上での評価者の誤分類をどう修正するのかというのは重要な研究分野だと思うんですけど。

Liu & Agresti: ご指摘の通り、見落としていた研究です。$\{\phi_t\}$が固定なら対数線形モデル、等間隔なら隣接カテゴリロジットモデルとして捉えられますね。このモデルがあまり注目されていない理由のひとつはパラメータ数が多いからだと思いますが、Andersonさんが早く亡くなってしまったせいもあるかもしれません。[←へー]
 誤分類の話ももっと注目されていいと思います。先生がレビュー論文書いてください![←おまえら実は仲良しだな]

Loughin: [ものすごく大雑把に要約すると] たとえば我々の研究だと、GLMMモデルでカウントデータを生成してGLMMモデルを当てはめると、完全に正しいモデルなのにパラメータが保守的に歪んだりします。いい加減だけど簡単なモデルじゃなくて、複雑で正しいモデルを使うべしという根拠とかありますかね? 分析者も忙しいわけで、証拠がないと移行しないと思うんです。

Liu & Agresti: 大事なご指摘と思います。たとえば、データがスパースなときは名義尺度モデルより順序モデルのほうが有利です。こういう風に、実務的な状況での手法の良さを調べていくことが大事ですね。

Svensson: 私は対応のある順序データをカテゴリ数と無関係に評価する方法について研究しています。視覚的アナログ尺度のデータなどに使える方法です。基本的なアイデアは、評価の間の依存性についての情報を得ることで説明できるaugmented rankingというのを考えるということです。変数ペアにランクを振るわけです。[...以下説明が続く。面白そうなんだけど、この説明だけではちょっと理解できそうにないので、メモ省略]

Liu & Agresti: [頑張ってください的コメント]

Svensson: [統計教育についてのコメント。パス]

Liu & Agresti: [Agrestiさんのフロリダ大での学部教育の話。パス]

Aguilera: 論文に出てきませんでしたが、PLS順序ロジスティック回帰というのがあります。これはPLS一般化回帰の特殊ケースで、変数の数が事例数より多かったり多重共線性があるときにも使えます。主成分ロジスティック回帰というのもあります。
 関数的データ分析(functional data analysis)というのもあります。これは観察がベクトルじゃなくて関数であるときに、関数的共変量の観点から反応変数を説明しようというものです[←??? よくわからん]。

Liu & Agresti: ご指摘ありがとうございます。いずれも興味深い問題ですね。

 ... はい!終了!疲れた!
 すぐに忘れてしまいそうなので、最後に「ここがわからん」「ここをもっと知りたい」という箇所をメモしておこう。

読了: Liu & Agresti (2005) 順序カテゴリカルデータの分析方法レビュー (全体的に遠慮がちな質疑応答つき)

Rosipal, R., Kramer, N. (2006) Overview and Recent Advances in Partial Least Squares. in Saunders C. et al. (eds) Subspace, Latent Structure and Feature Selection. Lecture Notes in Computer Science, vol 3940. 34-51.
 PLS回帰にはいろいろバージョンがあるようで、イライラするので読んでみた。先日読んだAbdiさんの解説にも引用されていた。

 いわく。
 PLSというのはPLS回帰だけでなく、もっと幅の広い手法である。それらの共通点は、観察データとの背後に少数の潜在変数が存在すると考える点である。ふつうは2つの変数セットについて(回帰の場合だと予測子セットと反応セット)、その間の共分散を最大化するようにして、直交する潜在変数スコアを求める。
 統計学者はもともとPLS回帰を無視する傾向があり、いまでもPLS回帰を統計モデルというよりアルゴリズムとして捉えていることが多い。もっとも最近では、PCRやリッジ回帰などとあわせ、continuum回帰という統一的なアプローチとして捉えられるようになった。
 PLSを分類手法としてみるとFDAと密接な関連がある。またPCAと関連付けることもできる。潜在変数をつかってSVMするという提案もある[へー]。カーネル法と併用することもできる。

 標本サイズを$n$とし、$N$変数データ$\mathbf{X}$と$M$変数データ$\mathbf{Y}$があるとしよう(どちらも変数の平均は0にしてある)。PLSではこれらを
 $\mathbf{X} = \mathbf{TP}^T + \mathbf{E}$
 $\mathbf{Y} = \mathbf{UQ}^T + \mathbf{F}$
と分解する。$\mathbf{T}$と$\mathbf{U}$は$p$個の潜在変数のスコア行列でどちらもサイズ$n \times p$。$\mathbf{P}$と$\mathbf{Q}$は負荷行列で、サイズは$N \times p$, $M \times p$。$\mathbf{E}$と$\mathbf{F}$は残差行列。
 オリジナルのNIPALSアルゴリズムでは、$\mathbf{Xw}$と$\mathbf{Yc}$の標本共分散を最大化するような、長さ1のウェイト・ベクトル$\mathbf{w}, \mathbf{c}$を求める。
 手順としては、まずランダムなスコアベクトル$\mathbf{u}$を用意しておき、

  1. $\mathbf{w} = \mathbf{X}^T \mathbf{u}/(\mathbf{u}^T \mathbf{u})$
  2. $||\mathbf{w}|| \to 1$ [←これがXウェイトね]
  3. $\mathbf{t} = \mathbf{X w}$ [←X得点]
  4. $\mathbf{c} = \mathbf{Y}^T \mathbf{t} / (\mathbf{t}^T \mathbf{t})$
  5. $||\mathbf{c}|| \to 1$ [←Yウェイト]
  6. $\mathbf{u} = \mathbf{Yc}$ [←Y得点]

これを収束するまで繰り返す。なお、$\mathbf{Y}$が1変数($\mathbf{y}$)の場合には$\mathbf{u}$が$\mathbf{y}$そのものになり、繰り返しは不要になる。
 実はウェイトベクトル$\mathbf{w}$は、
 $\mathbf{X}^T \mathbf{Y} \mathbf{Y}^T \mathbf{X w} = \lambda \mathbf{w}$
という固有値問題の第一固有ベクトルになっている。
 以上が第一因子。$\mathbf{X}, \mathbf{Y}$をデフレーションし、今度は第二因子を求める。

 さて、PLSにはいろいろな形式がある。それらのちがいは、スコア$\mathbf{t}, \mathbf{u}$を求めたあとで、$\mathbf{X}, \mathbf{Y}$をどうやってデフレーションさせるかという点の違いである。4つの形式について述べる。
 以下、$\mathbf{p} = \mathbf{X}^T \mathbf{t} / (\mathbf{t}^T \mathbf{t})$, $\mathbf{q} = \mathbf{Y}^T \mathbf{u} / (\mathbf{u}^T \mathbf{u})$を負荷ベクトルと呼ぶ。

 PCA, CCAとの関係について。
 PCAは$\mathbf{Xw}$の分散を最大化するような$\mathbf{w}$を求める。
 CCAは$\mathbf{Xw}$と$\mathbf{Yc}$の相関を最大化するような$\mathbf{w}, \mathbf{c}$を求める。これは正準リッジ分析という概念からみることもできる。いま、
 $\displaystyle max_{|r|=|s|=1} \frac{cov(\mathbf{Xr}, \mathbf{Xs})^2}{([1-\gamma_x] var(\mathbf{X r}) + \gamma_x)([1-\gamma_y] var(\mathbf{Y s}) + \gamma_x)}$
という最適化問題があるとしよう。$\gamma_x, \gamma_y$は正則化項で0以上1以下。両方を0にするとCCAとなり、両方を1にするとPLSとなる。つまり、その中間(正則化CCA)もあるわけだ。また、$Y$が1次元であればリッジ回帰もこのなかにはいる[へー!]。
 なお、CCAは固有値分解で一発で求めるという点ではPLS-SBに近い。

 上で述べたように、PLS1・PLS2をつかって線形回帰問題を解くことができる。
 $\mathbf{X} = \mathbf{TP}^T + \mathbf{E}$
 $\mathbf{Y} = \mathbf{UQ}^T + \mathbf{F}$

 $\mathbf{U}=\mathbf{TD} + \mathbf{H}$
より
 $\mathbf{Y} = \mathbf{TDQ}^T + (\mathbf{HQ}^T + \mathbf{F})$
となる。$\mathbf{C}^T = \mathbf{DQ}^T$, $\mathbf{F}^* = \mathbf{HQ}^T+\mathbf{F}$とおけば
 $\mathbf{Y} = \mathbf{TC}^T + \mathbf{F}^*$
となる。これは$\mathbf{Y}$を直交予測子$\mathbf{T}$を使ったOLS回帰で分解しているのと同じである。
 いま、スコアベクトル$\mathbf{t}$は正規直交ベクトルで(つまり$\mathbf{T}^T \mathbf{T} = \mathbf{I}$)、行列$\mathbf{C} = \mathbf{Y}^T \mathbf{T}$のベクトル$\mathbf{c}$は長さ1になっていないとしよう。[なぜここでこういうことを云っているのか理解できていない...]
 ここで
 $\mathbf{T} = \mathbf{XW}(\mathbf{P}^T \mathbf{W})^{-1}$
という関係が成り立っているので[←ここがわからない... とりあえず先に進もう]、これを代入すると
 $\mathbf{Y} = \mathbf{X}\mathbf{B} + \mathbf{F}^*$
ただし
 $\mathbf{B} = \mathbf{W}(\mathbf{P}^T \mathbf{W})^{-1} \mathbf{C}^T = \mathbf{X}^T \mathbf{U}(\mathbf{T}^T \mathbf{XX}^T \mathbf{U})^{-1} \mathbf{T}^T \mathbf{Y}$
である。[←ここもわからない...泣きたくなるね]

 ここからしばらくPLS1についてだけ考える。
 いま回帰式
 $\mathbf{y} = \mathbf{Xb} + \mathbf{e}$
があるとしよう。$\mathbf{X}$の特異値分解を
 $\mathbf{X} = \mathbf{V} \mathbf{\Sigma} \mathbf{S}^T$
として、$\mathbf{\Lambda} = \mathbf{\Sigma}^2$、その要素を$\lambda_i$としよう。また、
 $\mathbf{A} \equiv \mathbf{X}^T \mathbf{X} = \mathbf{S \Lambda S}^T$
 $\mathbf{z} \equiv \mathbf{X}^T \mathbf{y}$
としよう[正規方程式を簡単に書くために記号を導入しているわけね]。
 さて、OLS推定量$\hat{\mathbf{b}}_{OLS}$は
 $arg min_{b} || \mathbf{y} - \mathbf{Xb} ||$
の解だが、正規方程式
 $\mathbf{Ab} = \mathbf{z}$
の解でもある。これを解くと
 $\displaystyle \hat{\mathbf{b}}_{OLS} = \sum_i^{rank(\mathbf{A})} \frac{\mathbf{v}_i^T \mathbf{y}}{\sqrt{\lambda_i}} \mathbf{s}_i$
となる。以下では
 $\displaystyle \hat{\mathbf{b}}_{i} = \frac{\mathbf{v}_i^T \mathbf{y}}{\sqrt{\lambda_i}} \mathbf{s}_i$
としよう。

 線形回帰の推定量の多くは、
 $\mathbf{Ab} = \mathbf{z}$
の解の近似である。たとえば主成分数$p$の主成分回帰推定量は
 $\hat{\mathbf{b}}_{PCR} = \sum_i^{p}\hat{\mathbf{b}}_{i}$
だし、パラメータ$\gamma$のリッジ回帰推定量は
 $\hat{\mathbf{b}}_{RR} = \sum_i^{rank(\mathbf{A})} \frac{\lambda_i}{\lambda_i + \gamma} \hat{\mathbf{b}}_{i}$
である。

 ではPLS回帰はどうか... [ここからconjugate gradient法だのLanezosアルゴリズムだのKrylov空間だのという謎の呪文が乱れ飛び、到底手に負えなくなる... 数ページ飛ばします]

 回帰係数$\mathbf{b}$の推定量$\hat{\mathbf{b}}$のMSEをバイアス-バリアンス分解すると、OLS推定量はバイアス0で、そのかわり($\mathbf{X}$の共分散行列の固有値が小さい時に)バリアンスが大きくなっている。そこで推定量を縮小して
 $\hat{\mathbf{b}}_{shr} = \sum_i f(\lambda_i) \hat{\mathbf{b}}_i$
とすることを考える。$\lambda_i$は$\mathbf{X}$の第$i$特異値の二乗、$f(\lambda_i)$はシュリンケージ・ファクター。$i$は共分散行列のランクだけ回る。この枠組みで考えると、PCRとは「$i$が$p$以下の時$f(\lambda_i)=1$, そうでないとき0」に相当し、リッジ回帰は$f(\lambda_i) = \lambda_i / (\lambda_i + \gamma)$に相当する。
 実はこの縮小推定の枠組みでPLS回帰も説明できてしまう。PLSではなんと
 $\displaystyle f(\lambda_i) = 1 - \prod_{j=1}^{p} \left(1-\frac{\lambda_i}{\mu_j} \right)$
なのである。[$\mu_j$というのは... 上で読み飛ばしたくだりで説明されているんだけど、
 $\mathbf{L} = \mathbf{W}^T \mathbf{A} \mathbf{W}$
の第 j 固有値らしい。では$\mathbf{W}$ってなにかというと、
 $\mathbf{K} = (\mathbf{z}, \mathbf{Az}, \ldots, \mathbf{A}^{p-1}\mathbf{z})$
で張られるKrylov空間というのがあって、そこからLanczosアルゴリズムというので求めた直交基底なのだそうである... しらんがな!!!!]
 このシュリンケージ・ファクターは面白い性質を持っている。$i$と$p$の組み合わせによっては$f(\lambda_i) > 1$となることさえある。$f(\lambda_i)$は$\mathbf{L}$に依存するので、つまりは$\mathbf{y}$に依存する。そのため、このシュリンケージがPLS1のMSEにどう効くのかははっきりしない。

 PLSを判別・分類に使う場合は... [関心はあるんだけど、疲れちゃったのでパス]
 非線形PLSとは... [カーネルPLSとか。疲れちゃったのでパス]

... というわけで、中盤でPLS回帰をいろんな線形回帰の推定量のひとつとして位置付けるあたりで頭がパンクしてしまい、肝心の後半(判別・分類や非線形PLS)は断念。また体力のあるときに。
 PLS回帰の解説ってすぐに反復アルゴリズムの話になっちゃうので、そういうものかと思っていたんだけど、ちゃんとこういう統計学的な議論もあるのね。正準相関分析の正則化として捉えるとか、線形回帰の縮小推定量として捉えるとか。知りませんでした。
 昔からPLS回帰とPLS-SEMとの関係がいまいちわからなくて困っているんだけど、PLS-SEMについては言及がなかった。ま、言及されても理解できないかもしれないけれどさ。

 先日読んだAbdiさんの解説と見比べると、説明がちょっと違っていて混乱する... この論文で言うPLS-SBとはAbdiさんのいうBPLSのことだろうか? Woldのオリジナルの提案は、結局$X$と$Y$を対称的に扱っていたのか(この論文)、そうでないのか(Abdiさん)?

2019/12/27: 仕事の都合で原論文を読み返し、大幅に追記。でも、正直なところさっぱりわかっていない...

読了: Rosipal & Kramer (2006) PLSレビュー in 2006

Abdi, H. (2010) Partial least squares regression and projection on latent structure regression (PLS regression). WIREs Computational Statistics. 2(1), 97-106.
 「PLS回帰というのはこういうもので...」と人に説明する必要が生じたのだが、めんどくさいのでよさそうなPDFを送り付けて済ませてしまった。ごめんなさい。渡しておいて読んでないというのもなんなので、自分でも読んでみた次第。
 著者AbdiさんはPLS回帰の専門家として私のなかで評価が高い方である(超・上から目線。要はわかりやすく書いてくれるのでスキよということです)。いま検索してみたら、なかなか渋い感じのおじさんであった。

 途中で気が付いたんだけど、これ、前半は以前読んだAbdi(2007)とほぼ同じ。どうせ三歩歩けば忘れてしまうので、気にせずメモを取りましたけど。

 いわく。
 PLS回帰は、予測子がたくさんあるときの予測に向いている手法。もともとPLS回帰は社会科学から生まれたのだが(Woldは経済学者だしね)、ケモメトリクスとか官能評価とかで人気がでて、社会科学に逆輸入された。

 事例数を$I$、従属変数の$I \times K$行列を$Y$, 予測子の$I \times J$行列を$X$とする。
 $X$で$Y$を予測したい。$Y$が単変量ならふつうはOLSを使うところだが、$J$が$I$より大きかったりすると$X$が正則でなくなる。さあどうするか。変数を削るか? リッジ回帰に走るか?
 ひとつのアイデアは主成分回帰(PCR)である。すなわち、$X$を主成分分析し、主成分を予測子とする。テクニカルには、$X$をSVDにかけて
 $X = R \Delta V^T$
右特異行列$V$を負荷と呼ぶ。$G = R\Delta$を因子得点と呼ぶ。で、$G$を予測子にしてOLSをやる。
 このアイデアの短所は、予測子から最適なサブセットを選ぶという問題が未解決だという点である。上位主成分を選ぶのは、$X$の説明という意味では最適だが、$Y$の説明という意味では最適でない。

 そこでPLS回帰でございます。
 $X$と$Y$の両方を、共通の直交因子の積として表現することを考える。つまり、まず
 $X = TP^T$
と分解する。$T$の列を「潜在ベクトル」と呼ぶ。ふつうは$T^T = I$とする(実のところ、ここの規準化の仕方によって微妙な差が出てくる。ソフト間で結果が違う原因がここにある)。PCAとのアナロジーで言うと、$T$が得点行列、$P$が負荷行列である。
 $Y$は
 $\hat{Y} = T B C^T$
と推定する。$C$は「ウェイト行列」, $B$は対角行列で「回帰ウェイト行列」という。

 潜在ベクトルの行列$T$をどう決めるか。PLS回帰ではこれを、$X$の線形和と$Y$の線形和を最大化する問題として捉える。
 オリジナルのアルゴリズム(NIPALS)だとこうである。$X$, $Y$はあらかじめ標準化しておく。これを$E$, $F$に代入する。ランダムベクトル$u$を用意しておく。
 ステップ1. $E^T u$を求め、標準化して「Xウェイト」$w$とする。
 ステップ2. $Ew$を求め、標準化して「X得点」$t$とする。
 ステップ3. $F^T t$を求め、標準化して「Yウェイト」$c$とする。
 ステップ4. $u=Fc$を「Y得点」とする。
これを収束するまで繰り返す。で、係数$b = t^T u$と、「X負荷」$p=E^T t$を求める。$E$の予測値$tp^T$, $F$の予測値$b t c^T$を求め、$E, F$から引く。
 以上が第一因子。これを繰り返していく。$b$は$B$の対角にいれていく。
 $X$の二乗和のうち潜在ベクトルによって説明された部分は$p^T p$、$Y$の二乗和のうち潜在ベクトルによって説明された部分は$b^2$となる。

 ところで、行列の固有値を求める方法にpower methodというのがあるんだけど、NIPALSはこれと似ている。
 NIPALSはSVDの観点からも捉えることができる。上のをつなげると、「求めて標準化する」のを$\propto$と書くとして、
 $w \propto E^T u \propto E^T Fx \propto E^T F F^T t \propto E^T F F^T E w$
なので、
 $S = E^T F$
をSVDしたときの第1右特異ベクトルが$w$, 第1左特異ベクトルが$c$であることがわかる。[←ううううむ... ごめんなさい、私にはよくわかんないです... ]

 PLS回帰モデルをどう評価するか。
 手元のデータについての記述が目的なのであれば、モデルの評価にもっともよく使われているのはRESS(残差平方和)である。$L$因子PLS回帰による予測値の行列を$\hat{Y}^{[L]}$として、
 $RESS = || Y - \hat{Y}^{[L]} || ^2$
が小さければ良い予測だということになる($L$を大きくすれば小さくなる)。潜在変数については、潜在変数を実質的に解釈することに意味がある文脈ならば、解釈すればよろしい。
 そうではなくて、手元の標本に基づく新データの予測が目的だとすると、それぞれの潜在変数による寄与と、潜在変数の数の決定が問題になる。これはジャックナイフ法やCVで調べる必要がある。相関係数の二乗とか、PRESS(予測誤差平方和)とかが良く使われている。予測値の行列を$\tilde{Y}^{[L]}$として、
 $PRESS = || Y - \tilde{Y}^{[L]} || ^2$
である。
 $L$をどう決めるか。記述の場合とちがい、PRESSは$L$を大きくし過ぎると逆に上がってしまう。ひとつの方法は、PRESS最小の$L$を選ぶというもの。もうひとつは、$L=l$のときのPRESSとRESSを$PRESS_l$, $RESS_l$として、
 $Q^2_l = 1 - (PRESS_l) / (RESS_{l-1})$
が閾値を上回っている最大の$l$を選ぶというもの($RESS_0=K(I-1)$とする)。閾値の案としては、$(1-0.95^2)=0.0975$とか、「事例数が100以下だったら$.05$、そうでなかったら$0$」とか。[このくだり、理解できない。挙げられている事例で計算してみたんだけど、$Q^2$の値が全然合わない。なにか読み間違えているのか、誤植があるのだと思う]

 ところで、ここまでで述べてきたPLS回帰はWold, Martensから発する系統。もうひとつ、Booksteinという人の系統もある。BPLSと呼ぶことにしよう。
 BPLSでは、$S = X^T Y$のSVDが
 $S = W \Theta C^T$
だとして、
 $T = XW$
 $U = YC$
とする。BPLSの場合、$X$と$Y$を入れ替えても同じ結果になる。正準相関分析とすごく似ている(ちがいは、正準相関分析では$X$, $Y$の線形和の相関を最大化するのに対して、BPLSでは共分散を最大化するという点)。
 BPLSのバリエーションとして、

 云々。

 。。。一番勉強になったのは、PLSとBPLSのちがい。そういうことだったのか、とようやく腑に落ちた。以前、PLS回帰についての説明を複数種類読み比べて、微妙なちがいに頭を抱えたことがあるんだけど、以前取ったメモと見比べて思うに、Rのplsパッケージの解説書Mevik & Wehren(2007)で説明されているのは、PLSではなくてBPLSなのではないかと思う。

読了:Abdi (2010) PLS回帰への招待 in 2010

Indahl, U.G, Liland, K.H., Naes, T. (2008) Canonical partial least squares: A unified PLS approach to classification and regression problems. J. Chemometrics, 23, 495-504.
 PLS回帰と正準相関分析ってどう違うのだろうか... と検索していて見つけた論文。Rのplsパッケージにはcanonical powered PLSという手法が載っていて、その参照文献のひとつになっている。あ、第二著者のLilindさんという人はplsパッケージの作者のひとりだ。
 掲載誌が掲載誌だけに(ケモメトリクスはPLS回帰の本場)、PLS回帰そのものについての知識を前提として、新手法を提案している論文。

 いわく。
 本論文ではPLS2 (多重反応PLSのことらしい) よりももっと自然なやりかたで、PLSによる判別分析を提供します。その際、すでに提案されているpowered PLS(PPLS)という方法を使います。
 それではご紹介しましょう。じゃじゃーん。その名も正準PLS(CPLS)。PLSと正準相関分析(CCA)をあわせた手法です!

 背景。
 予測子$n \times p$行列をX, 反応の$n \times q$行列を$Y$とする。
 $Y$が連続変数である場合に、$p$次元単位ベクトル$u$, $q$次元単位ベクトル$v$について
 $f_1 (u, v) = u^t X^t Y v$
を最大化する手法をPLS2という。
 これはSVDで解ける。$X, Y$を中心化しておいて、$W = X^t Y$をの一階SVD近似を$W_{(1)} = s a b^t$とする。このとき、$cov(Xu, Yv) = (1/n) f_1(u, v)$となる。[←あれれ...どこかに誤植があるはずだ。$cov(Xa, Yb) = (1/n) f_1 (u,v)$の間違い??]

 $Y$が$n \times g$のダミー行列である場合、ちょっとやり方を変えたほうがよい。$W = X^t Y$のSVDから特異ベクトルを得るのは、
 $B_Q = n \bar{X}_g^t Q \bar{X}_g$
のSVDをするのと同じことになる。ここで$\bar{X}_g = (Y^t Y)^{-1} Y^t X$、すなわち$g \times p$の群平均行列。$Q$は重みを表す対角行列で、対角要素は群サイズ$n_k^2$に比例し合計1となる。それよか、
 $f_2(u, v) = u^t X^t Y (Y^t Y)^{(1/2)} = u^t W_\Delta v$
を最大化することを考えたほうがいい。なぜなら、$W_\Delta$のSVDから特異ベクトルを得るのは
 $B_P = n \bar{X}_g^t $P$ \bar{X}_g$
のSVDと同じことになり、ここでPの対角要素は$n_k$に比例し合計1だ。これをPLS-DAという。[はああ? どういうこと? 狐につままれた気分]

 今度はCCA。
 PLS2では$cov(Xu, Yv)$の最大化を行ったわけだが、今度は$corr(Xu, Yv)$の最大化を行う。これは結局... [以下、説明が続くけどパス]

 で、ここからが新手法CPLSの説明なんだけど、哀しいかな、理解できなかった。なんでも、$corr(Xu, Yv)$じゃなくて$corr(X X^t Y c, Yd)$を最大化するのだそうだ。えっ、なぜ???
 説明が書いてあるんだけど、これがもう全然理解できない... 涙を呑んで諦めます。今回はご縁がなかったということで。
 えーと、とにかく、PLSやPLS-DAと比べて、よりアグレッシブに$Y$を予測し、PLS因子数は少なくなるんだそうだ。

 。。。いやいや。深刻に考えるのはよそう。ある日ふと読み返したら、意外にスルスルと理解できるかもしれない。あるいは加齢によってこの分析手法への関心ごと消え失せ、理解できなくてもなんら痛痒を感じなくなるかもしれない。いいよ、もう、どうだって。

読了:Indahl, Liland, Naes(2008) 正準PLS回帰分析のご提案 (おまえらにわかるかどうかは別にして)

赤穂昭太郎 (2013) 正準相関分析入門:複数種類の観測からの共通情報抽出法. 日本神経回路学会誌, 20(2), 62-72.

 仕事のなかで正準相関みたいな問題が出てきちゃったので、勉強の足しになるかと思って読んだ。こういうの、昔から苦手分野である。まあ得意分野なんてどこにもないけどな。

 あれこれ「へーっ」という話がありましたが、ひとつだけメモ。
 ある測定で$m$次元ベクトル$x$と$n$次元ベクトル$y$のペアが観測されるとする(いずれも標本平均を0とする)。それぞれを線形変換して得られる
 $u(x) = a^{T}x$
 $v(x) = b^{T}y$
について、その相関を最大化したい。これは一般化固有値問題に帰着する(要は解けるってことですね先生)。最大で$min(m,n)$個の成分がとれる。これが線形正準相関分析。

 さて、$u(x), v(x)$を非線形化したい。
 カーネル関数を$k_x(x, x')$とする。なんでもいいけど、ガウスカーネルなら
 $k_x(x, x') = \exp(-||x-x'||^2/2\sigma^2)$
である。ある観測ベクトル$x_i$について
 $\phi_x(x_i) = (k_x(x_i, x_1), k_x(x_i, x_2), \ldots, k_x(x_i, x_n))^T$
を求める。同様に$\phi_y(y_i)$も求める。それぞれから平均を引き、それを$x, y$だと思ってやおら線形正準相関分析をやる。実際にはオーバーフィットしちゃうので正則化項をいれる(残念ながら、ここで人手によるパラメータ調整が必要になる)。
 $u(x) = a^{T} \phi_x(x)$
 $v(x) = b^{T} \phi_y(y)$
というわけで、非線形な特徴$u(x), v(y)$が手に入ったことになる。

 ところが。これとは別の非線形化アプローチがある。
 実は、$(x, y)$の同時確率密度関数$p(x, y)$が既知ならば、$u(x), v(x)$は連立方程式
 $\int \{p(x|y)-p(x)\} u(x) dx = \lambda v(y)$
 $\int \{p(y|x)-p(y)\} v(x) dx = \lambda u(y)$
の解になるのだそうだ。実際には$p(x, y)$は未知なので、実用性は低いんだけど、著者の先生いわく、「xやyが実数ベクトルではなくアンケートデータのような質的データの場合の解析法である数量化III類は、この定式化から理解することが容易となる」とのこと。へええ、そうなんですか。

 。。。いやー、もうね、嫌になっちゃいますね、勉強しないといけないことが多すぎて。
 そういえば、正準相関とPLS回帰ってどう違うんだろう。相関を最大化するか、共分散を最大化するかという違いに過ぎないのだろうか? 疲れちゃったのでいまは考えたくないけど。

読了:赤穂(2013) 正準相関分析入門

Jain, A.K., Murty, M.N., Flynn, P.J. (1999) Data Clustering: A Review. ACM Computing Surveys, 31(3), 264-323.
クラスタリングについてのレビュー論文。Google scholar上の被引用件数が14000件超というすごい奴である。勉強のために読んだ。20年近く前の論文を、なにをいまさらという気もするけれど...

1. イントロダクション
1.1 モチベーション
 探索的データ分析であれ検証的データ分析であれ、その手続きにおいて鍵となる要素のひとつにグルーピングがある。パターンの集まりを類似性に基づくクラスタへと組織化することをクラスタ分析という。判別分析(教師つき分類)とは異なり、与えられたパターンにはラベルがついていない(教師なし分類)。いいかえれば、カテゴリのラベルはデータ駆動的である。
 本論文ではクラスタ分析におけるコア概念と技法をサーベイする。統計学・決定理論にルーツを持つ分野を中心とするが、機械学習などのコミュニティに関しても言及する。

1.2 クラスタリング課題の構成要素
 ふつう、クラスタ分析は次の段階からなる:

  1. パターンの表現。3章で扱う。
  2. 近接性の定義。4章で扱う。
  3. クラスタリング。5章で扱う。
  4. (必要ならば)データ抽象化。たとえば、クラスタについての記述とか。
  5. (必要ならば)出力の評価。ふたつにわかれる。
    • cluster tendencyの分析。そもそもクラスタ分析していいことがあるのかどうかを調べる。研究分野としてあまり活発でないので本論文では割愛。
    • cluster validityの分析。得られたクラスタが偶然の産物だったりアルゴリズムのアーティファクトだったりしないかを調べる。(1)外的評価(アプリオリに与えられた構造を復元できるか)、(2)内的評価(クラスタがデータに対して内在的に適切か)、(3)相対的テスト(2つの構造を比べてどちらが良いか)、に分けられる。

1.3 ユーザのジレンマと熟達の役割
 手元の問題に適したアルゴリズムをどうやって選ぶか。Dubes & Jain (1976)はFisher & Van Ness (1971)が定義した許容性基準によってアルゴリズムを比較している。そこでの許容性基準のベースにあるのは、(1)クラスタの形成方法、(2)データの構造、データの構造に影響しない変化への敏感性、である。でも、「データは規準化すべきでしょうか」「どんな類似性指標がどんな状況で適切でしょうか」といった問いには答えてくれない。[←ああなるほど、アルゴリズムのadmissibilityの比較だけでは役に立たんということか]
 多次元データセットにおける構造をいつでも明らかにしてくれるという便利な方法はない。ユーザは個々の手法について十分に理解するだけでなく、データ収集過程の詳細についての知識と、ある程度の領域知識を持たねばならない。
 データソースに対する適切な制約もクラスタリング手続きの一部である。たとえばmixture resolvingがそうだ。データが未知の数の確率密度の混合から抽出されていると仮定するせいで、混合要素の数と各要素のパラメータを推測することがクラスタリング問題となる。

1.4 歴史(略)
1.5 本論文の構成(略)

2. 定義と表記
 あるパターン(特徴ベクトル、観察事例、データ)を$\mathbf{x}$とする。その要素$x_i$を特徴(属性)と呼ぶ。パターンの次元数を$d$とする。
 パターン集合を$\mathcal{X} = \{\mathbf{x}_1, \ldots, \mathbf{x}_n\}$とする。通常は$n \times d$行列である。
 パターン生成過程を支配する状態ををクラスと呼ぶ。クラスタリングとは、パターンをグルーピングして、異なるパターン生成過程を反映するクラスを手に入れようとすることである。
 パターン集合$\mathcal{X}$にラベル$\{l_1, \ldots, l_n\}$を付与することをハード・クラスタリングという。ラベルの種類数(クラスタの数)を$k$とする。
 パターン$\mathbf{x}_i$に、それがクラスタ$j$に属する程度$f_{ij}$を付与することをファジー・クラスタリングという。
 パターンの類似性を定量化するのに用いる、特徴空間におけるメトリック(ないし準メトリック)を距離指標という。

3. パターン表現、特徴選択、特徴抽出
 [良いパターン表現がいかに大事か、という説明が続いて...]
 特徴は、量的(連続, 離散, 間隔)、質的(名義, 順序)にわけられる。特徴が木として構造化されている場合もある。
 特徴選択は大事。本質的にアドホックで試行錯誤を要する。
 PCAなどで特徴抽出することもある。
 [この節、期待してたんだけど、ごく短い。がっくり。まあそういう主旨のレビュー論文ではないのだろう]

4. 類似性指標
 連続的特徴の場合、一番一般的なメトリックはユークリッド距離である。
 $d_2(\mathbf{x}_i, \mathbf{x}_j) = (\sum_k (x_{ik}-x_{jk})^2)^{1/2} = || \mathbf{x}_i - \mathbf{x}_j||_2$
 一般化するとミンコフスキー距離。
 $d_p(\mathbf{x}_i, \mathbf{x}_j) = (\sum_k (x_{ik}-x_{jk})^p)^{1/p} = || \mathbf{x}_i - \mathbf{x}_j||_p$
 良い点:(1)直感的にわかりやすい。(2)「コンパクト」ないし「よく分離されている」クラスならうまく機能する。
 悪い点:(1)スケールが大きい特徴が支配的になる(なので、ふつうは事前に規準化する)。(2)特徴間に線形相関があると歪む。そういうときは正規化マハラノビス距離
 $d_M(\mathbf{x}_i, \mathbf{x}_j) = (\mathbf{x}_i - \mathbf{x}_j) \Sigma^{-1} (\mathbf{x}_i - \mathbf{x}_j)^T$
を使うこともある。$\Sigma$は既知の共分散行列または標本共分散行列。これは、各クラスの条件付き密度が単峰で、多次元空間における広がりで特徴づけられるという仮定(つまり多変量正規だという仮定)に基づいている。Mao & Jain (1996 IEEE Trans.Neur.Net.)をみよ。ほかにHausdorff距離というのを使うという提案もある。 Huttenlocker, et al. (1993 IEEE Trans.PatternAnal.Mach.Intell.)をみよ。

 クラスタリングアルゴリズムはふつうパターン集合を使い、パターン間の距離を求めるのだが、最初から距離行列を使うアルゴリズムもある。
 連続量でない特徴から距離を求めるというのは厄介な問題である。Wilson & Martinez (1997 J.Artif.Intell.Res.), Ichino & Yaguchi (1994 IEEE Trans.PatternAnal.Mach.Intell.)をみよ。
 パターンを文字列で表現するというのもある(syntactic clusteringという)。統計的手法に比べるとすべての面で劣っているといわれているので、本稿では割愛。パターンを木構造で表すというのもある。
 近隣のデータ点(文脈)の効果を考慮した距離指標もある。たとえば相互近隣距離(MND)。データ点$i$に関して$j$が持っている近隣数を$NN( \mathbf{x}_i, \mathbf{x}_j)$とする。[←よくわからないのだが、$j$からみて$i$より近い点の数、ってことかな?] で、
 $MND(\mathbf{x}_i, \mathbf{x}_j)  NN( \mathbf{x}_i, \mathbf{x}_j ) + NN(\mathbf{x}_j, \mathbf{x}_i)$
この距離は三角不等性を満たさないのでメトリックでないんだけど、クラスタリングでは良く使われている。このように、距離・類似性は必ずしもメトリックでない。

 特徴が十分にたくさんあれば、いかなるふたつのパターンであっても類似性は同程度である。類似性に差をつけるためにはなんらかの付加的な領域情報が必要になる。[ここでconceptual clusteringの例を紹介。3つの事例があって、ユークリッド距離では同程度なんだけど、うちふたつは同一のカテゴリに属しているようにみえて...という話。Michalski & Stepp (1983) というのが引用されているのだけれど、おそらくMichalski, Stepp, & Diday (1983 IEEE Trans. Pattern Anal. Mach. Intell.) の誤りだろう]

5. クラスタリング技法
 クラスタリングはとりあえず次のように分類できる。

といっても、ほかにもたくさんの分類がありうる。

5.1 階層クラスタリング・アルゴリズム
 [基本的な考え方と、デンドログラムについての説明があって...]
 たいていの階層アルゴリズムは、{単一リンク、完全リンク、最小分散}の変形である。[←書いてないけど、Ward法は最小分散アルゴリズムに分類されるのであろう]
 一番有名なのは、クラスタ間の距離を、それぞれ1個ずつ事例を出してその距離を調べた時の最小値(単一リンク)ないし最大値(完全リンク)とするやりかた。単一リンクだとchainingしやすい。完全リンクはコンパクトなクラスタになりやすい。実務的にもふつう完全リンクのほうが優れている。
 階層アルゴリズムは分割(Partitional)アルゴリズムに比べて使い勝手がよい面がある。たとえばk-meansはデータセットが等方的(isotropic)なクラスタを含んでいないとうまくいかない[←なるほどー]。いっぽう、アルゴリズムは階層アルゴリズムのほうが複雑。両者のハイブリッド案もある。
 なお、ここまでの話は全部hierarchicalかつagglomerativeだったけど、hierarchicalかつdivisiveなアルゴリズムもある。

5.2 分割アルゴリズム
 この方法の問題点は、クラスタ数を決めなきゃいけないという点。Dubes(1987, Pattern Recogn.)を参考にせよ。
 この方法はふつう、なんらかの関数を最適化するクラスタをつくるわけなんだけど、網羅的に探すのは大変なので、初期値を変えながら複数回繰り返し、最良の奴を選ぶことが多い。

5.2.1 二乗誤差アルゴリズム
 一番よく使われていて、直感的にもわかりやすい。二乗誤差とは、クラスタ$j$に属する$i$番目のパターンを$x_i^{(j)}$, クラスタ$j$の重心を$c_j$として、
 $\sum_j \sum_i || x_i^{(j)} - c_j ||^2$
のこと。
 もっとも良く使われているのがk-meansアルゴリズム。問題点は、初期値に対して敏感で、局所最小解に落ちちゃうかもしれない点。[図で説明している。親切...]
k-meansのバリエーションはたくさんある。(1)初期値選択を工夫する。(2)重心の距離が閾値を下回る2クラスタを併合する。例としてISODATAアルゴリズムがある。(3)二乗誤差以外の基準関数を併用する。例としてdynamic clusteringというのがある。

5.2.2 グラフ理論的クラスタリング
 いちばんよく知られているのは、データの最小全域木(minimal spanning tree; MST)をつくり、一番長いエッジを消すという手法。
 階層クラスタリングはグラフ理論の観点からみることもできて...[略]
 非階層、overlapありという手法でドロネーグラフ(Delaunay graph; DG)というのもある。ボロノイ近隣の点をつなぐ。

5.3 mixture-resolvingアルゴリズムとmode-seekingアルゴリズム
 mixture-resolvingアルゴリズムは、パターンが複数の分布から抽出されたものだと仮定し、それぞれの分布のパラメータを推定するアルゴリズム。ふつう分布はガウシアンだと仮定される。伝統的にはパラメータを最尤推定する。最近ではEMアルゴリズムを用いることが多い。[←とこのように、有限混合モデルについては意外にそっけない説明である。機械学習系の論文だからかしらん?]
 密度ベースのクラスタリングのノンパラメトリックな手法も提案されている。ノンパラ密度推定の方法にParzenウィンドウというのがあるけど、あれと同じようにして、入力パターンセットの多次元ヒストグラムのなかで、カウント数が大きくなるビンを探す。[←ああそうか、これってmodeを探索しているわけか...]
 ほかに、ノンパラ密度推定に基づく距離を使った階層手法・分割手法もある。

5.4 最近隣クラスタリング
 最近隣距離を使ったクラスタリングもある(Lu & Fu, 1978 IEEE Trans. Syst. Man Cybern.)。距離が閾値を下回る最近隣ペアを探しては、ラベルを一方から他方にコピーするというのを繰り返す。[←ちょ、ちょっと待って、最初のラベルはどうすんの?]

5.5 fuzzyクラスタリング
 対象を$N$個、クラスタを$K$個とする。まず$N \times K$の初期メンバーシップ行列$U$をつくる。要素$u_{ij}$は対象$x_i$のクラスタ$c_j$へのメンバーシップを表していて、ふつう$u_{ij} \in [0,1]$。
 で、$U$からファジー基準関数の値を求める。たとえば
 $\sum_i \sum_k u_{ij} ||x_i - c_k||^2$
というような関数。で、この基準関数が小さくなるように$U$を少しずつ変えていく。
 もっともよく用いられているのはfuzzy c-meanアルゴリズム(FCM)。他にもいろいろある。

5.6 クラスタの表現
 クラスタリングの最終目的が、データの分割ではなく、むしろデータの抽象化だということもある。クラスタの表現という問題はこれまであまり研究されていない。表現のスキーマとして以下が挙げられる。

 意思決定におけるデータ抽象化は重要である。なぜなら:

5.7 人工ニューラルネットワークによるクラスタリング
以下の特徴がある:

良く使われているのは、Kohonenの学習ベクトル量子化(LVQ)、自己組織化マップ(SOM)、適応的レゾナンス理論モデル(ART)。これらはアーキテクチャとしては単層。入力ノードと出力ノードのあいだのウェイトを更新する手続きは、実は古典的なクラスタリングとよく似ている。たとえば、LVQはk-meansと深いつながりがある。
 SOMは2次元のマップを使うので直感的にわかりやすいけど、初期ウェイトをしくじると局所解に落ちるし、収束に関わるパラメータがいっぱいあって、同じ入力なのに反復回数によっては異なる出力となりうる(つまり安定性がない)。学習率を下げていけば安定性が生じるけどこんどは可塑性がなくなる。
 ARTは安定的かつ可塑的といわれているんだけど、パターン入力の順序に依存する。また、クラスタの数とサイズがビジランス閾値と呼ばれる定数に依存する。
 SOMもARTも超球になっているクラスタの検出にしか向いていない。これに対して、2層のネットワークで楕円もみつけようという提案がある。

5.8 進化アプローチによるクラスタリング
 まず、クラスタリングの解(データの分割)のランダムな母集団をつくる。で、それぞれの解について適合度を求める(通常は二乗誤差に反比例する値)。で、それぞれの解を染色体と見立てて、selection, recombination, mutation操作を行い、第二世代の母集団をつくる。これを繰り返す。
 有名な手法として、遺伝的アルゴリズム(GA)、進化方略(ES)、進化プログラミング(EP)がある。GAが一番良く使われている。GAでは解は二値文字列になる。recombination操作にはいろいろあるけど、交差が一番良く使われている。selection, recombination, mutationのいずれも、適合度に基づいて確率的に行われる。
 ES, EPとGAとのちがいは解の表現と操作である(EPはrecombination操作を行わない)。要するにいずれも二乗誤差を最小化しているわけである。
 たとえばk-meansの場合、「次の反復」で得られる解は今ある解の近傍である。fuzzyクラスタリングもANNもそうだ。こういうのを局所化探索と呼ぶことができる。これに対して、GAでは交差や変異の操作によってとんでもない解が得られるわけで、大域化探索であるといえる。
 進化的アプローチによるクラスタリングにはいろいろ拡張案があって...[省略]
 GAの問題点としては、母集団サイズや交差・変異確率といったいろいろなパラメータに対する敏感性の高さが挙げられる。問題特有的なヒューリスティクスを組み込んだほうがよいという意見もある。
 クラスタリングを最適な分割を見つけるという課題ではなくて、最適な重心の位置を決めるという最適化問題として捉えるなら、ESやEPが使いやすい(GAとちがって、重心を実数ベクトルとして直接符号化できるから)。

5.9 検索ベースのアプローチ
 検索テクニックを使って最適な分割を検索するというアプローチ。ここでいう検索は決定論的検索と確率的検索に分かれる。
 決定論的検索としては、Branch-and-bound法で最適な分割を探すというアプローチがある。計算が大変。また、決定論的アニーリングを使うという手もある。大域最適解が保証されないというのが欠点。[←なるほどね... データ生成メカニズムは一切問わず、事例にクラスタ番号を付与する整数計画として解いちゃうということだろうか]
 確率的アプローチとしては、シミュレーテッド・アニーリング(SA)とか、Tabuサーチとかがある。[説明略]

5.10 手法の比較
各手法の特徴を概観すると、

 実証的な比較研究はいろいろあって...[めんどくさいのでパス]...
 要約すると、大データ向きなのはk-meansとKohonen net、あとは小データ用。どの手法でも領域知識をうまく使うことが大事。基準関数を使うアプローチだとクラスタは超球になりやすいので、それが困る場合は、階層アルゴリズムのほうがいいかも。

5.11 領域に基づく制約をクラスタリングに統合する
 そもそもクラスタリングは本質的に主観的な課題である。だから主観性をうまく組み込みたい。
 どんなクラスタリング・アルゴリズムであっても、なんらかのタイプの知識をつかっている。ただそれが暗黙的か明示的かがちがうだけだ。[←おおお、名文句だ...」
 パターンを表現するスキーマの選択、類似性指標の選択、グルーピングのスキーマの選択、ANN, GA, TS, SAにおけるパラメータの選択、いずれにおいても、知識が暗黙的に影響している。もっと明示的に知識を使うこともできる。知識を活かした特徴選択とか。
 領域知識の組み込みはアドホックなものなので、事例と先行研究を挙げることしかできない。こういうのに関心がある人は機械学習系の学術誌を読みなさい。

 実務的には、次の3つの問題が重要。(1)領域知識の表現、利用可能性、完全性。(2)知識を用いた推論の構築。(3)知識の変化への適応。

5.12 巨大なデータセットのクラスタリング
 大データに対して使われているのはk-meansとKohonen netである。超球じゃないクラスタが作れるという点では階層アルゴリズムが便利なんだけど、時間とメモリが大変になる。
 大データ向き手法もいろいろ開発されている。CLARANS, BIRCHが有名。[いろいろ説明が書いてあるけどパス]
 データが大きいとメモリにデータが載りきらなくなる。この問題に対する対処策として以下が挙げられる。

6. 応用
[画像分割、物体と文字の認知、書籍を検索するシステムというような状況検索、原油を掘るというようなデータマイニングでの活用例、を消化。内容も古いと思うし、気力も尽きたのでパス]

7. 要約 [略]

... やれやれ、疲れた。正直、途中から「これ20年前の話だよな...」という思いにかき乱されて、モチベーションが落ちてしまったんだけど、勉強になりましたです。
 グルーピングの手続きについて、この論文ではまず大きく階層的手法とそうでない手法という観点から分けていて、前者のほうが使い勝手が良い(versatile)だと何箇所かで述べている。クラスタの形状についての仮定がない分柔軟だ、という意味なのだろうと思う。うーん、それって良し悪しだと思うんですけど、どうなんすかね。
 admissibilityについての議論が短いところも、ちょっと意外であった。クラスタリング手法のレビューなんだから、当然Fisherのadmissibility基準で比較するんだろうと思ったのである。著者らが説明していたように、アルゴリズムのadmissibilityだけで形式的に語れる範囲はそう広くない、ってことなんでしょうね。

読了:Jain, Murty, Flynn (1999) クラスタリング手法レビュー

Hanley, J.A., Lippman-Hand, A. (1983) If nothing goes wrong, is everything all right? Interpreting zero numerator. Journal of the American Medical Association. 249(13), 1743-1745.
 「いずれ読む」フォルダにPDFが入っていたんだけど、なぜ入れたんだか思い出せない。時々こういうことがあって、結局読まないままになっちゃうんだけど、これはたったの3pなのでざっと目を通した。
 タイトルの通り、割合の推定において分子が0だったらどうするのかという啓蒙論文であった。誌名に見覚えがないな...と思ったのだが、よく見たら現在でいうJAMAである。

 いわく。医師は患者に特定のアウトカムが生じる確率についての推定値を示さなければならない。そのアウトカムが一般的なものでない場合、正確な推定は難しくなる。特に、ある研究においてそのアウトカムの事例が一件もない場合には、一件以上ある場合と比べて質的にも量的にも異なる事態となる...と考えられている。
 本論文では以下を強調したい。(1)分子が0であることは「リスクなし」を意味しない。(2)分子が0だからといってリスクのサイズについて推測できないわけじゃない。(3)分子が非ゼロのとき適用できる推測統計の諸原理は、分子がゼロの時にも適用できる。

 いま、標準的な造影剤があって、深刻なリアクションを示す人が10000人中15人であることがわかっているとする。新しい造影剤を167人に試したところ、深刻なリアクションを示した人はいなかった。リスクはどちらが高いか。
 まずはふたつの造影剤のあいだでリスクが同一(10000人中15人)だとしよう。167人試して出現数0となる確率は、(1-0.0015)^167 = 0.78。ごくありうる事柄である。
 では、新造影剤のリスクが100人中1人だったら? 167人試して出現数0となる確率は、(1-0.01)^167 = 0.19。まだまだ、驚くような値ではない。
 今度は、新造影剤のリスクが25人中1人だったら? 167人試して出現数0となる確率は、(1-0.04)^167 = 0.01。この場合は驚く。真のリスクはもっと低いに違いないという話になる。
 ここで慣例に従い、我々の「驚きたい程度」を5%とし、これを下回ったら「真のリスクはもっと低いに違いない」と考えることにしよう。[←というわけで、途中でやっと気が付いたんだけど、著者らは95%信頼区間についてわかりやすく説明しているわけである]

 さて、観察された割合が$0/n$であるとき、真のリスクは0からある値までの間にある。それと整合するような真のリスクの最大値(=95%信頼区間の上限)をMaximum Riskと呼ぼう。すると
 $(1-Maximum Risk)^n = 0.05$
 $Maximum Risk = 1-0.05^{1/n}$
これは$3/n$で近似できる。なお、ポワソン分布から直接算出しても同じことがいえる。

 [数学の勉強をしてこなかったせいで、こういう話には途中でついていけなくなる。自分向けにゆっくり書くと、
 $0.05^{1/n} = \exp(\log(0.05^{1/n})) = \exp(\log(0.05)/n)$
さて指数関数というものは
 $\exp(x) = \sum_i \frac{x^i}{i!} = 1+x+\frac{x^2}{2}+\frac{x^3}{6}+\cdots$
と展開できる。$x=\log(0.05)/n$と代入して
 $\exp(\log(0.05)/n) = 1 + \frac{\log(0.05)}{n} + \frac{\log(0.05)^2}{2n^2} + \frac{\log(0.05)^3}{6n^3} \cdots$
第二項の$\log(0.05)$はおよそ-3。第三項以降は分母が$2n^2, 6n^3, \ldots$と大きくなっていくので無視できる。というわけで
 $0.05^{1/n} \approx 1 - 3/n$
 $1- 0.05^{1/n} \approx 3/n$
ということであろうかと思う]

 手っ取り早くいうとこういうことだ、観察された割合が$0/n$だったら、真の割合は$3/n$以下である。100人観察して0人だったら、真の割合は3%より以下である。これが"The rule of three"だ、諸君、覚えておきなさい。

 。。。というわけで、なぜ読もうと思ったんだか結局最後まで思い出せなかったんだけど、面白い文章であった。The rule of threeね。こんどセミナーとかやることがあったらネタにしよう。

 途中で余談として出てくるんだけど、かつてラプラスは、過去5000年間にわたって日が昇らなかった日はない、この日数を$n$として、今後日が昇るオッズは$n:1$だ、と述べているそうである。へええ。

読了:Hanley & Lippman-Hand (1983) 調べたい事柄の発生率が0で困っているあなたのための「ルール・オブ・スリー」

中田秀基 (2018) 人工知能・機械学習の応用・研究に適したパブリッククラウドサービス. 人工知能, 33(1), 15-22.
タイトルの通りの内容。世の中どんどん変わってキャッチアップできないので、こういう話をまとめて紹介して下さるの、すっごく助かりますです。
音声認識・発話のSaaSとして、AWS, Watson, Google Cloud Platform, MS Azureが挙げられていたが、Azure Custom Speech Serviceというのはアプリケーション固有の言語モデルを与えることができるのだそうだ。へえー。

読了:中田(2018) 機械学習のクラウドサービス in 2018

Qi, Z., Wang, H., Li, J., Gao, H. (2018) Impacts of Dirty Data: an Experimental Evaluation. arXiv:1803.06071 [cs.DB]
 たまたま見つけて、面白そうなのでめくってみたもの。著者らの所属はハルビン工科大。
 タイトルの通り、データが汚れていたら機械学習の結果にどう響くか、という実証研究である。面白いことを考えるなあ。実験結果をどこまで一般化していいものかどうかわからないが、テーマとしてはなかなか切実な話である。

 データの品質として次の3つに注目する。

 アルゴリズムとして以下に注目。

 実験です。UCIデータセットから、irisなど13個のデータセットを借りてきて、わざと汚してはアルゴリズムを適用し、汚さない場合と比較した。
 手順の説明ののち、5頁にわたって結果の報告があったが、めんどくさいのでパス。すいません、そこまでの気力はないんです...

 最後に示された、ユーザ向けガイドラインだけメモしておく。
 分類の場合のガイドライン。なお、F指標ってのは(2 x Precision x Recall) / (Precision + Recall)のこと。

  1. まずは所与のデータのエラー率(欠損率、不整合率、矛盾率)を求めましょう。
  2. アルゴリズムを選びましょう。まずprecision, recall, F指標のどれに注目するかを決める。それが70%を超えるアルゴリズムを候補とする。データが小さい場合は、ロジスティック回帰も候補にいれる。
  3. 一番エラー率が高いタイプのエラーに注目し、上で決めた指標について、sensitivityが一番低いアルゴリズムを選ぶ。[sensitivityとは、データが汚れているときにそれに影響される度合いのことで、実験結果が表になっている。実際のところ、どのエラータイプでもどの指標でも、KNNが最低みたいだ]
  4. そのアルゴリズムのkeeping pointを調べ、それに達するまでデータをクリーニングする。[keeping pointとは許容できるエラー率のことで、実験から求めた結果が表になっている。表をみると、注目する指標がF指標の場合、欠損のkeeping pointが一番高いのは決定木だが、不整合のkeeping pontが一番高いのはベイジアン・ネットワーク。ランダム・フォレストはrecallに対する欠損のkeeping pointがやたらに高いが、F指標に対する欠損のkeeping pointはやたらに低い。などなど、いろいろ眺めているといろいろ面白い]

 クラスタリングの場合も上とほぼ同じで、

  1. 所与のデータのエラー率(欠損率、不整合率、矛盾率)を求める。
  2. precision, recall, F指標のどれに注目するかを決め、それが70%を超えるアルゴリズムを候補とする。データが大きい場合はDBSCANも候補にいれる。
  3. 一番エラー率が高いタイプのエラーに注目し、上で決めた指標について、sensitivityが一番低いアルゴリズムを選ぶ。[全体にLVQが低めだ]
  4. そのアルゴリズムのkeeping pointを調べ、それに達するまでデータをクリーニングする。[LVQ, DBSCANが高め。CLARANSは欠損のkeeping pointがめっちゃ低い。へー]

 回帰の場合のガイドライン。なお、NRMSDってのはRMSDを(予測値の最大値)-(最小値)で割ったもの、CVRMSDってのはRMSDを予測値の平均値で割ったもの。

  1. 所与のデータのエラー率(欠損率、不整合率、矛盾率)を求める。
  2. RMSD, NRMSD, CVRMSDのどれに注目するかを決め、それが1(NRMSDなら0.5)%を超えるアルゴリズムを候補とする。
  3. 一番エラー率が高いタイプのエラーに注目し、上で決めた指標について、sensitivityが一番低いアルゴリズムを選ぶ。[全体に最小二乗法が低めだわ...]
  4. そのアルゴリズムのkeeping pointを調べ、それに達するまでデータをクリーニングする。[最小二乗法が高めだ... これが伝統の強さというものか...]

 最後に、今後の課題。
 データ分析・データマイニング関係者のみなさん向けには、

 データ品質・クリーニング関係者のみなさんにはこういいたい。アルゴリズムがエラーに対して持つ頑健性は、エラーのタイプによってもアルゴリズムによっても異なる。だから、いきなりデータを100%クリーンにする必要はないわけだ。むしろ分析課題が決まってから、それにとって適切なkeeping pointまでクリーニングするのがお勧め。

 というわけで、あんまり真面目に読んでないけど、面白い論文であった。
 自分の仕事に引き付けて考えると、私の仕事上のデータ分析はほぼすべてがアドホックなもので、初期の段階では分析課題さえきちんと定義できていないことが多い。分析の進行とともに課題が徐々に明確になり、複数の下位課題にブレイクダウンされていくが、その下位課題によってアルゴリズムも使う変数も変わってくるし、クリーニングが必要な程度も変わってくる。そのせいで、初期段階で時間をかけたクリーニングが結果的には不要であったり、逆にあとでクリーニングをやり直す必要に迫られることも少なくない。どうやって改善すればいいのか、悩ましいところである。
 この論文のアプローチは、「目的とする指標とアルゴリズムによって、クリーニングの目標水準を決める」というもので、分析課題がはっきりしている状況では有用だと思う。でも私の場合、データを一通りクリーニングしないことには身動きが取れないが、しかしクリーニングしてる段階ではまだ先が読めないんですよね...クリーニングをいくつかのフェイズに分け、本格的なクリーニングは個別のモデリングごとにオンデマンドにやるものなのだと覚悟を決める、というのがよいのだろうか。ううむ...

読了:Qi, Wang, Li, & Gao (2018) 機械学習におけるデータの「汚れ」の影響

Richardson, D.B., Kinlaw, A.C., Keil, A.P., Naimi, A.I., Kaufman, J.S., Cole, S.R. (2018) Inverse Probability Weights for the Analysis of Polytomous Outcomes. American Journal of Epidemiology.

 多項回帰モデルは共変量が多いと推定が大変なので、ウェイティングでなんとかしましょう、という話。
 いずれ読もうと思い、「いずれ読む」という名のフォルダ(実質的には墓場)にPDFを放り込みかけたんだけど、行間の広いdraftなのに10pしかないことに気づき、そんならさっさと目を通しておこう、と仕事を中断して目を通した。要するに現実逃避である。

 アウトカムを$D$, そのカテゴリを$0, \ldots, G$とする。曝露変数を$E$とし、話を簡単にするために二値とする。共変量を$\mathbf{Z}=\{Z_1, \ldots, Z_k\}$とする。
 研究者は、$Z$を調整しつつ、曝露ありとなしの間で$D$の分布を比べたい。多項回帰なら、参照レベルを$D=0$として
$\displaystyle \log\frac{P(D=g|E=e, \mathbf{Z}=z)}{P(D=0|E=e, \mathbf{Z}=z)} = \alpha_g + \beta_g E + \mathbf{Z} \gamma_g$
とするところだ。するってえと、$\alpha$を$G$個、$\beta$を$G$個、長さ$k$の$\gamma$を$G$個、推定する羽目になるわね。そんなん推定してられっか、と思いません? そんなあなたのための新手法!名付けて「inverse-probability-of-exposure weighted多項ロジスティック回帰モデル」です!
 [正直言って、名前をみただけでなにすんのか見当が付いちゃうわけで、すごい出落ち感がある...まあ最後まで読みますけど...]

 ここからは実例でご覧いただきましょう。
 子宮内膜がん患者の横断調査(n=288)。知りたいのはがんの組織学的下位タイプと年齢の関連性。説明変数は年齢のみ、二値とする(64歳まで, 65歳以上)。アウトカムは3タイプある。共変量は喫煙有無など3つ、すべて二値。
 まず共変量で年齢の確率を予測するモデルを推定します。次に、この確率の逆数(に、年齢の周辺確率を掛けた値)を重みにし、年齢だけを説明変数にして、重みつきの多項回帰を推定します。
 シミュレーションしてみると、ふつうの多項モデルが収束しない時にもこの方法なら収束する。パラメータ数が多すぎる多項モデルをどうにかする方法としては、ほかに縮小推定なんかもあるけれど、多くの場合こっちのほうが簡単なのではないでしょうか。
 なお、この手法は要するに曝露の傾向スコアと関連しておりましてですね、本命の多項モデルが一致性を持つためには、その前の曝露予測モデルの指定が正しいことが必要であります。
 云々。

 。。。という、ごく短い報告であった。ま、気分転換っていうことで、ひとつ。
 詳細は付録をみよとのことだが、入手できない。なんだかなあ。

読了:Richarson, et al. (2018) 共変量のある多項回帰モデルを、共変量で予測した曝露確率の逆数でウェイティングして共変量なしで済ませる

 対応のある二値データについて考える。たとえば、n人の人に製品PとQをみせ、それぞれについて買ってみたいかどうかを判断してもらった、というような場合ですね。両方の製品について「はい」と答えた人数を$a$, 製品Qについてのみ「はい」と答えた人数を$b$, 製品Pについてのみ「はい」と答えた人数を$c$, 両方の製品について「いいえ」と答えた人数を$d$とする(当然ながら$a+b+c+d=n$)。
 製品PとQのあいだで「はい」率は異なるか。これを調べる古典的な方法が、ご存じMcNemar検定である。母集団における「はい」率が製品P,Q間で同一であるという帰無仮説の下で、$(b-c)^2/(b+c)$が自由度1のカイ二乗分布に従うことを利用する。
 分野の違いというのは面白いもので、市場調査の参考書ではこれを「対応のあるZ検定」と呼び、検定統計量$(b-c)/\sqrt{b+c}$を$N(0,1)$と比べよ、と書いてあることが多い。まあどっちでも同じことである。

 ところがこのMcNemar検定、自分で手計算してみるとわかるけど、ちょっと不思議な面がある。
 たとえば、サンプルサイズは$n=100$、うちQについてのみ「はい」と答えた人数が$b=15$, Pについてのみ「はい」と答えた人数が$c=10$だったとしよう。このときの検定統計量の値は$(b-c)^2/(b+c)=25/25=1$。
 今度は、サンプルサイズは$n=100000$, うち$b=15, c=10$だったとしよう。このときも$(b-c)^2/(b+c)=25/25=1$。
 つまり、サンプルサイズがどんなに変わろうと、2x2クロス表の対角セル$a, d$がどんなに変わろうと、非対角セル$b$と$c$さえ同じなら、検定統計量の値は同じなのだ。
 でも、そもそもここで比較したいのは、Pに「はい」と答えた人の割合$(a+c)/n$と、Qに「はい」と答えた人の割合$(a+b)/n$でしょう? サンプルサイズ$n$が大きいとき、これらの割合の信頼性は高くなるはずでしょう?

 ...という素朴な疑問は、私自身がかつて感じたことでもあり、前職の社内研修のときに訊ねられたことでもある。このたび仕事のなかで、ふとこの話を思い出す機会があり、試しにAgrestiの分厚い教科書をめくってみたら、その話はAgresti & Min (2003)に書いたから読んでね、とのことであった。

Agresti, A., & Min, Y. (2003) Effects and non-effects of paired identical observations in comparing proportions with binary matched-pairs data. Statistics in Medicine, 22. 65-75.

 というわけで、読んでみました。難しくてよくわかんない箇所が多かったんだけど...

 あるペア(たとえばあるヒト)$i=1, \ldots, n$が提供する$t=1,2$個目の値を$y_{it}$とする。値$1$を成功、$0$を失敗と呼ぶ。
 このデータを表す形式を2種類考えよう。

 subject-specific形式のデータに当てはめられる標準的モデルは、
 $link[P(y_{i1})=1] = \alpha_i$
 $link[P(y_{i2})=1] = \alpha_i+\beta_c$
であろう。これをconditional modelという(効果$\beta_c$の定義がペアに条件づけられているという意味)。linkというのはたとえばlogit。モデル・フィッティングにおいては、$(y_{i1}, y_{i2})$が$\{\alpha_i\}$の下で独立だと仮定するのが普通である。

 いっぽう、ランダムに取り出したあるヒトの最初の観察を$y_1$, ランダムに取り出した別のヒトの二番目の観察を$y_2$として
 $link[P(y_1)=1] = \alpha$
 $link[P(y_2)=1] = \alpha+\beta_m$
とモデル化するという手もある。これをmarginal modelという。ペアの母集団を通じた平均効果のモデル化である。population-averaged形式の2x2クロス表の周辺分布のモデル化だといえる。

 ここでちょっとこの論文のメモから離れて、Agrestiの"An Introduction to Categorical Data Analysis"からメモしておくと;
 一般化線形モデルのパラメータ$\beta$について$H_0: \beta = 0$を検定する方法には3つある。

 論文に戻って。。。
 $\pi_1=P(y_1=1)$と$\pi_2=P(y_2=1)$が等しいという帰無仮説の検定について考えよう。この帰無仮説は$\beta_m=0$と等価であり、$\pi_{12}=\pi_{21}$と等価である。
 marginal modelに基づいて考えると、$\beta_m=0$という条件の下で最大化された尤度と、条件なしで最大化された尤度の比は、$b,c$だけに依存している。尤度比統計量(=-2*対数尤度比)は$2b \log(2b/(b+c)) + 2c \log(2c/(b+c))$となる。
 $b+c$が小さい場合、$c$を試行数$b+c$, パラメータ$1/2$の二項分布と比べる正確検定が可能である。大標本の場合、これは正規近似できて、
 $\displaystyle z=\frac{c-(1/2)(b+c)}{\sqrt{(b+c)(1/2)(1/2)}} = \frac{c-b}{\sqrt{b+c}}$
これを二乗したのがMcNemar統計量である。これは周辺分布が等しいという検定のためのスコア統計量になっている。
 ワルド統計量はどうか。ワルド統計量は、推定された効果をSEで割ったものである。だからリンク関数の定義によって変わってくる。でも後述するように、$a,c$への依存性は無視できる程度である。
 このように、この検定において情報を提供するのは$b$と$c$だけである。

 ここからは、割合の差、オッズ比、相対リスクの推定、という3つの観点から考える。

 まず割合の差の推定について。ここ、短いんだけど途中からいきなりわかりにくくなるので、思い余って全訳した。

 identity linkの場合、subject-specificな効果とpopulation-averagedな効果は同一である。たとえばconditional modelでは、すべての$i$について$\beta_c = P(Y_{i2}=1)-P(Y_{i1}=1)$である。これを母集団内のペアを通じて平均すると、marginal modelにおける周辺確率の差$\beta_m=\pi_2-\pi_1$と等しくなる。
 別の見方として次の結果に着目することもできる。indentity linkのconditional modelを$2 \times 2 \times n$表に適用したとき、層別変数が説明変数と周辺独立であるときにcollapsibilityが成立する。このとき、これら2変数の標本クロス表は全セルが1となる。[←先生すいません、この段落、なにいってんだかさっぱりわかんないです]
 標本における割合の差は
 $p_2 = p_1 = p_{21} - p_{12} = (c-b)/n$
となる。これはindentity linkのmarginal modelにおける$\beta_m$の最尤推定値である。conditional modelの観点からいえば、これはヒト別の表のMantel-Haenszel型加重平均からも得られる。またこれは、Chen(1996)が示しているように、$\{\alpha_i\}$がなんらかのparametric familyからランダムに抽出されたものだと仮定した、ランダム効果版conditional modelでの最尤推定値になっている。
 周辺表の多項抽出において
 $Var(p_2-p_1) = [(\pi_{12}+\pi{21}) - (\pi_{21}-\pi_{12})^2]/n$
その標本推定値は
 $\hat{Var}(p_2-p_1) = \frac{(b+c)-(c-b)^2/n}{n^2}$
周辺等質性($\pi_1=\pi_2$)という帰無仮説の下で、分散は$(\pi_{12}+\pi_{21})/n$に、その推定値は$(b+c)/n$に、それぞれ帰着する。ここからMcNemar検定が導かれる。$n=a+b+c+d$であるから、帰無仮説が真でない時、効果のサイズの推定値とその標準誤差は、$(a+d)$が増大するにつれて減少する。
 ここでも、また以下のモデルでも、$(a+d)$の効果について考える際には、$b$と$c$を固定して$(a+d)$だけを大きくすると考える。$n$自体も大きくなるので、帰無仮説のもとでの漸近性において$a$, $d$が果たす役割をチェックすることができる。
 $(p_2-p_1)$の分散の推定値は、$n^{-2}$のオーダーで、$(b+c)/n^2$すなわち帰無仮説の下での分散の推定値になる。同様に、$n$が大きければ、$(p_2-p_1)$とその標準誤差の推定値との比は近似的に$(c-b)/\sqrt{b+c}$となる(これはMcNemar統計量の標準正規形式である)。このように、とりわけ$n$が大きいとき、割合の差のワルド検定における$(a+d)$の寄与はごくわずかである。

 では、リンクlogitである場合(パラメータは対数オッズ比になる)は...[パス]
 リンクがlogである場合(対数相対リスク)は...[パス]

 ベイズ推論の観点から見るとどうか。
 marginal modelの場合。$\{\pi_{jk}\}$の事前分布としてパラメータ$\{\mu_{jk}\}$のディリクレ分布を与えるとしよう。$\pi_2 > \pi_1$の事後確率は、$\pi_{21} / (\pi_{12}+\pi_{21}) > 1/2$の事後確率に等しい。左辺の事後分布はパラメータ$(c+\mu_{21}, b+\mu_{12})$のベータ分布になる。だから$a, d$は効かない。ところが、conditional modelになると話が変わってきて...[めんどくさいので省略]

 云々、云々。。。というわけで、$a, d$は効果のサイズやそのSEに全然効かないわけじゃないけど、たいして効かない、ということなのだそうである。すいませんAgresti先生、途中で心が折れました。

読了:Agresti & Min (2003) 対応のある二条件間で割合を比べるとき、「両方1」「両方0」の事例を無視してよいのか

2018年5月 2日 (水)

Trajman, A., & Luiz, R.R. (2008) McNemar chi^2 test revisited: comparing sensitivity and specificity of diagnostic examinations. The Scandinavian Journal of Clinical & Laboratory Investigation. 68(1), 77-80.
 McNemar検定(対応のある2条件間の割合の差の検定)についてちょっと知りたいことがあり、タイトルに惹かれて目を通した。なんだかマイナーそうな誌名だが、Google Scholar上は被引用100件。
 新しい診断基準ができたとき、フォローアップで患者と分かった人だけに絞って、通常の基準での診断を表側、新基準での診断を表頭にとった2x2クロス表をMcNemar検定すれば、敏感度の差を検定できますね、という論文だった。
 メモを取りながら読んだんだけど、そりゃそうだろうなという感じで、正直言って話のポイントが全然つかめなかった...。もっとも、読みながら何度も意識を失ったので、なにか読み落としているのかも。ま、少なくとも知りたい内容についての論文ではなかった、いいや、次にいこう。

読了:Trajman & Luiz (2008) 二つの診断基準の敏感度と特異度をMcNemar検定で比較する

2018年5月 1日 (火)

Choi, S.S., Cha, S.H., Tappert, C.C. (2010) A survey of binary similarity and distance measures. Journal of Systemics, Cybernetics and Informatics, 8(1), 43-48.
 6頁の短い論文。掲載誌についてはよくわからない。
 何の気になしに印刷し、帰宅する電車で眺めていたらこれが妙に面白く、図を「へぇぇぇ...」と感心して眺めていたら乗り過ごしてしまった。仕方がないので次の駅で降り、駅前の深夜スーパーでうろうろして安売りのワインを買った。

 どういう話かというと、長さが等しいふたつの二値ベクトルの類似性を測ることがありますわね。値が一致する個数を調べるとか、値が異なる個数を調べるとか。そういうときに使う指標が山のようにある。そこで、どの指標とどの指標が似ているかというデンドログラムを作りましたという話である。類似性指標の類似性を調べているわけです。

 要するに、なんらかのランダムデータを使って、二値ベクトル間の類似性をいろんなやり方で測ったところ、いつも似た値になる指標とそうでない指標があった、これをデンドログラムで表現しました、と。
 面白いのは、検討する類似性指標のコレクションである。集めも集め、実に76種類もの指標について調べている。各指標の発表年表もついていたりして、眺めているだけで飽きない。いやあ、いろんな指標があるものだ...

 著者らはデンドログラムに基づき、いくつかの指標のグループを指摘しているので、メモしておく。以下、2x2のクロス表について、両方presenceを$a$, 両方absenceを$d$, 片方だけpresenceを$b, c$とする。合計を$n=a+b+c+d$とする。

ほかにも一匹狼的な指標がある。Yuleのw $(\sqrt{ad}-\sqrt{bc})/(\sqrt{ad}+\sqrt{bc})$ とか。

 ... いやー、週末にできちゃうような実験だけど(すいません)、面白かった。
 一番面白かったのは指標の年表である。Jaccard類似性は1901年発表だが、これより古い(つまり19世紀の)指標として、二値ユークリッド距離、Peirceの類似性$(ab+bc)/(ab+2bc+cd)$、Yuleの類似性(YuleのQ$(ad-bc)/(ad+bc)$のことかな?)が挙げられるのだそうだ。ハミング距離なんていったらえらく古めかしい印象があるけど(情報理論っていうんでしょうか?)、発表は1950年、統計学の長い歴史の中では中堅どころに過ぎないのであった。恐れ入りました。
 仕事に役立つ学びは、というと...正直あんまりないけれど、ネガティブ・マッチを抜くか抜かないかというのが重要な対立軸なのね、というのが勉強になった点である。

 いちおうメモしておくけど、この論文、細かい点は良くわからないことが多くて...
 76個の指標をよく見ると、定義が全く同じ奴が散見されるんだけど、これはどういうことなんだろうか。
 実験手続きもよくわからない。該当箇所を逐語訳すると「ランダムな二値データセットをデータセットとして用いる。参照セットは30個の二値事例からなり、それぞれが100の二値特徴を持つ。この参照セットを使った一回のテスト・クエリで、距離ないし類似性の値が100個、それぞれの指標について生成される。2つの指標の間の相関係数を使ってデンドログラムを作る」「30回の独立な試行を平均してデンドログラムを作る」とのこと。どういうこと? 長さ100のランダム二値特徴ベクトルを1本作り、それとは別に100本作り、1本と100本の類似性をk種類の指標で測り、100行k列の行列からk行k列の相関行列をつくり、以上を30回繰り返して平均し、できあがったk行k列の相関行列を使ってk種類の指標を階層クラスタリングした、ってこと? というか、ランダム二値データって母比率はなんなの? ま、細けぇこたぁいいんだよ、って気もするけど。

読了:Choi, Cha, & Tappert (2010) 二値類似性指標はたくさんあるので、その類似性を調べてみた

Wright, M.N., Ziegler, A. (2017) ranger: A fast implementation of random forests for high dimensional data in C++ and R. Journal of Statistical Software.

 Rの高速ランダム・フォレストパッケージrangerの紹介。うっかりarXivのバージョン(2015)を読んじゃったけど、中身は同じだと思う。

 rangerについてご紹介します。分類木、回帰木、生存木に対応してます。速いです。高次元データに最適化してます。C++のスタンドアロン版もあるけど、Rパッケージ版をお勧めします(速さは同じです)。Rにおける標準的実装であるrandomForestパッケージに近い結果が得られます。云々。

 rangerは手法が新しいというより、高速・低メモリ消費を謳うパッケージ。紹介されている実験の結果をみると、

読了:Wright & Ziegler (2017) ランダム・フォレストのRパッケージranger

2018年4月30日 (月)

 勤務先の優秀なインターン青年に「機械学習で分類課題やるとき、クラスの事前確率が極端にちがう場合はclass imbalance問題といわれていて、いっぱい議論があるのよ。腕の見せ所だよ、頑張ってねー」などと、お茶をすすりながら偉そうなことを抜かしたのはいいが、良く考えてみたら、そもそもclass imbalance問題とはなんだろう。正面切って問われたら全然答えられない。
 こういう話、人々はいったいどうやって勉強してんですかね?

Japkowicz, N., Stephen, S. (2002) The class imbalance problem: A systematic study. Intelligent Data Analysis, 6, 429-449.
class imbalance 問題 (以下CIと略記)についての論文。google様的には引用度数1600件強。

本論文の概要
本研究では次の3つの問いについて調べる。

  1. CI問題の本質はなにか。つまり、C5.0のような標準的分類器の正解率がCIのせいで低くなってしまうのはどんな領域か?
  2. CI問題に対処するためのさまざまなアプローチはどう異なるか?
  3. C5.0以外の分類器でも、正解率はCIのせいで低くなるか?

Q1. CIの問題の本質
 実験やります。
 架空のdomainをつくる。それぞれのdomainは[0,1]の一次元の入力を持つ。[0,1]を$2^c$等分して($c=1,\ldots,5$)、それぞれの区間にクラス(0,1)を交互に割り当てる。ここから$(5000/32)*2^s$個の事例を一様に抽出する($s=1, \ldots, 5$)。で、クラス0の各区間から得た事例は$1/(32/2^i)$番目まで残し($i=1,\ldots,5$)、あとは捨てる。これを訓練データとする[nagativeが少ないわけだ]。テストデータは各区間あたり50事例。
 というわけで、要因は複雑性、訓練データのサイズ、CIの3つ。たとえば$c=1, s=1, i=2$だったら、訓練データは$[0,0.5)$がクラス1で157件、$(0.5,1]$がクラス0で79件となる。
 これをC5.0で学習する。4種類の結果を報告する。

 結果。

 この実験にはいろいろ不備がある。たとえば訓練データの実際のサイズがimbalance要因のせいで変わっちゃうとか。そこで改めて実験すると...[細かくて面倒くさい話なので詳細は省略, 結果のみメモする]

Q2. 手法の比較
さっきと同じ実験をやるんだけど、今度は次の対処法を試す。

 結果。どの方法にもそれなりの効果があるが、undersamplingの効率が悪い(randomでもfocusedでも)。概して一番良いのはcost modifying。
 今度は実事例の場合をみてみよう...[面倒くさいのでパス]

Q3. 他の分類器はCIに敏感か?
 同じような実験を、多層パーセプトロン(MLP)とサポート・ベクター・マシン(SVM)でやる。それぞれパラメータがいろいろあるので、試した中で最良の結果をみます。
 結果。
 MLPは[...大幅中略...]C5.0ほどにはCIの影響を受けない。
 SVMは[...中略...] CIの影響を全然受けない。[←へぇー]

結論
 CI問題は相対的な問題で、以下の要因の影響を受ける。(1)CIの程度, (2)概念の複雑さ、(3)訓練セットのサイズ、(4)分類器。ポイントは下位クラスタのサイズが十分かどうか。
 分類器はC5.0, MLP, SVMの順にCIの影響を受ける。
 CIの影響をうける分類器の場合はリサンプリングやcost-modifyingに効果がある。cost-modifyingが一番良い。
 云々。

 。。。いやー、読みにくい論文であった。チャートが小さいんだもん。
 クラス不均衡問題っていうけど不均衡自体が問題なのではない、結局は(クラスじゃなくて)下位クラスタの小標本問題なのだ、というところが面白かった。そういうもんなんすかね。
 SMOTEとかなんだとか、かっこいいリサンプリング法があるが、ああいうのはどうなんだろう。この論文では今後の課題として言及されていた。

読了:Japkowicz & Stepeh (2002) 機械学習におけるクラス不均衡問題について実験しました

Montero, P., Vilar, J.A. (2014) TSclust: An R Package for Time Series Clustering. Journal of Statistical Software, 62(1).
 時系列クラスタリングのRパッケージTSclustのビニエット. 仕事の都合で読んだ。

イントロダクション
 時系列間の類似性をどうやって調べるか。いろんなアプローチがある。

とかとか。類似性さえ決まってしまえば、あとは一般的な分類手法(k-meansとか)などを用いて分析することが多い。
 というわけで、ご紹介しましょう、TSclustパッケージです。時系列間のさまざまな類似性指標をご提供します。ついでにクラスタリングアルゴリズムもご提供します。

TSclustが提供する類似性指標
$X_T = (X_1, \ldots, X_T)^T, Y_T = (Y_1, \ldots, Y_T)^T$とします。

 第1グループ, モデル・フリーなアプローチ。
 まずはローデータに基づくタイプから。

次に、時系列のなんらかの特徴に基づくタイプとしては

 第2グループ, モデル・ベースなアプローチ。
 まずはそれぞれの時系列にARIMAモデルをあてはめる。構造は手で決めてもいいし、AICとかで自動選択してもいい。推定は普通GLSでやる。

 第3グループ、複雑性ベースの距離。
 [圧縮ベースの指標、permutation distribution clusteringというのが挙げられている。誰がそんなもん読むか、全面的にパスだ。とはいえ、最後に出てきた話はこれらの話とは毛色が違い、ちょっと面白いのでメモしておくと...]
 よく使われている非類似性指標では、複雑性の高い時系列同士は非類似性が高くなり、複雑なやつと簡単な奴が類似してしまう傾向があるので、既存の非類似性指標が複雑性の影響を受けないように補正するというアイデアがある。
 いま、ローデータベースの類似性指標$d(X_T, Y_T)$があるとしよう。これを補正したい。まず、なんでもいいから複雑性を定義する。たとえば
 $CE(X_T) = \sqrt{\sum_t^{T-1} (X_t - X_{t+1})^2}$
次に、$CE(X_T)$と$CE(Y_T)$のうち大きい方を小さい方で割り(複雑性が異なる程度を表す)、これを$d(X_T, Y_T)$に掛けてやる。こうすると複雑性が異なる時系列同士の非類似性が高くなる。[←なるほどねえ。細かい工夫があるものだ]

 第4グループ、予測ベースの手法。将来の時点についての予測の分布が似ている奴同士を類似しているとみなす。当然ながらこの手法の結果は他のとは全然違ってくる。予測のためのモデルとしては、いろんなタイプの自己回帰モデルが使える。

時系列クラスタリングのツール
 まあとにかくこのようにして、ペアワイズの非類似性行列が得られたとしましょう。クラスタリングのためには、p値に基づく階層クラスタリングのアルゴリズム、真のクラスタがわかっているときにそれとクラスタを比較するツール、などをご用意している。
 もちろん他のパッケージも活用して下さい。たとえば:

非類似性指標を選ぶときの考慮事項
 まず、形に基づく非類似性が欲しいのか、動的構造に基づく非類似性が欲しいのかを考えること。

 クラスタリングの目的がはっきりしたら、上記指針で指標が絞り込める。次はパラメータをうまく調整せよ。計算時間も留意事項だ。
 クラスタリングのアルゴリズムにも気をつけなさい。たとえば、ふつうのk-meansは「時系列の集合の重心」と時系列との距離を求めることになるけど、そんな重心が正しく定義できるかどうかわからない。Ward法はユークリッド距離が前提だけど、ユークリッド距離でいいのかわからない。
 [なるほどね... この節を読んだだけでも、目を通した甲斐があった]

事例
[TSclustパッケージの使用例を3つ紹介。略]

 。。。勉強になりました。
 時系列の類似性って、いきなりユークリッド距離とか相関とったりしてはいかんのだろうとなんとなく思ってたのだが、それは場面による話であって、一概にダメともいえないようだ。ふうん。
 それはそうと、あれですかね、やっぱし、いったん類似性行列を作んないといけないんですかね。何十万本も時系列があるときはどうしたらいいんだろうか。

読了:Montero & Vilar (2014) RのTSclustパッケージで時系列クラスタリング

2018年4月28日 (土)

Mercer, A., Lau, A., Kennedy, C. (2018) For Weighting Online Opt-In Samples, What Matters Most?, Pew Research Center.

 先日Pew Research Centerが出していたリリース。仕事の役に立つかと思って読んでみた(←建前. ホンネは「なんだか疲れちゃったので息抜きにパラパラ眺めた」)。
 70ページもあるんだけど、ちょうど半分がAppendixである。論文というより広報目的のホワイトペーパーという感じ。正直、こういうの、すごく読みづらい。

 いわく。
 任意参加型の標本を使った世論調査では、よく母集団に合わせてウェイティングすることがあるけど、あれって意味あんのか。実験してみました。
 [なお、Pew Research Centerでは2016年にもオンライン・パネルと確率標本の比較をやっている由]

 任意参加型のオンライン・パネルで調査して国レベルの推定値を得る、という場面に注目する。
 同じ調査票で複数のパネルからどさっと回答を集めておく。で、そこから票を抽出し、あれこれウェイティングとかして調整して集計しては、公的調査と比べ、一致するかどうか調べる。[それらの公的調査がベンチマークとして正しいのかという問題はあるわけだけど...その話は2016年のレポートをみて、とのこと]

 調査時期は2016年の6-7月。パネルは3種類、それぞれ約10000票を集めた。言語は英語かスペイン語。各パネルの回収票から、{2000票, 2500票, ..., 8000票}のいずれかを無作為抽出する。標本サイズによる違いを見たいから。

 調整に使う変数は2種類。

 [...ここまで読んで、うわあこういう仕事やりたくねえなあと、思わず天を仰いだ。上記の変数で調整するからには、これらの変数の母集団分布が必要になる。でも全変数の分布を一発で教えてくれるデータソースは、たぶん存在しない。いろんな公的調査からデータを集めてきて、調査設計の違いを勘案しながら摺り合わせ、分布を確定する作業を、誰かがやんなきゃいけない。ものすごく面倒くさくて、そのわりには誰にも評価されない作業だ。あああ、想像するだけで辛い。吐きそう。
 いやまて、それだけじゃないぞ。この実験では調整の方法としてマッチングを使うから(後述)、各変数の周辺分布だけでなく、ケースレベルの母集団データが必要になるではないか。おいおい、どうすんだよ。
 というわけで、いったん絶望しかけたんだけど、気を取り直してきちんと読んでみた(Appendix B)。はい深呼吸!]

 母集団についてのデータソースは次の5種類。(1)米センサス局のAmerican Community Survey(ACS)。これが一番あてになる。(2)米センサス局のCurrent Population Survey(CPS)から、5つの調査データ。(3)General Social Survey(GSS)。(4)PewのReligious Landscape Study(RLS)。(5)PewのPolitical Polarization and Typology Survey.
 これらのデータのコーディングを揃えた上で[これも非常に大変なんだけど省略]、個票を20000票ずつ復元抽出する(つまり同じ票を2回抜き出すことも厭わない。なおここでウェイトを使ったり、いろいろとややこしいんだけど読み飛ばした)。
 で、これらを縦に積み、37変数のデータセットを作る。値がすべて埋まっているのは性別、年代、未既婚など少数の変数のみで、あとは虫食いだらけである。
 虫食いを埋めます。個々の変数について、その値を他の全変数から予測するモデルを作り、値を埋める。これを繰り返し、25バージョンつくる。これを連鎖方程式による多重代入(MICE)という。Azur, et al.(2011, Int.J.Methods in Psychiatric Res.)をみよ。なお、モデルはランダム・フォレスト。Doove, et al.(2014, Comp.Stat.Data Anal.)をみよ。[←MICEって本で読んだことはあったけど、使用例をみるのは初めてだ...]
 最後に、ACS由来の行だけを残し、あとは消す。25バージョンのうちひとつを採用する[バージョン間の比較も行っているけど省略]。以下これをsynthetic populationという。
 [あれれ? ってことはsynthetic populationのサイズは20000ってこと? ACSだけはもっと積んでおけばよかったのでは...なにか誤解してんのかな...]

 本題に戻って... お待たせしました、調整方法のご紹介です(本文ならびにAppendix C)。選手入場!

 この3つのすべての組み合わせを試す(なにもしないのを含めると8通り)。複数使う場合は、マッチングで票を選ぶ→傾向スコアでウェイティング→レイキングでウェイティング、の順。

 [ここまで整理すると、この実験の要因は以下のとおり。(1)標本サイズ13水準。(2)調整手法8水準。(3)調整変数2水準。]

 評価方法。
 調査票にはACSなどに含まれる項目を24個入れてあった(たとえば「近所の人とどのくらい話しますか」「タブレットを使ってますか」)。各項目について、各カテゴリの(調整後)選択率を求める。で、ACSとかの回答分布と比べ、差の絶対値を求める。 標本抽出を1000回繰り返し、平均を求める。
 調整しない場合でもバイアスは押しなべて小さい。ただしバイアスが大きい項目もあり、たとえば「2014年の中間選挙に投票しましたか」は32%ポイントものバイアスがある。[書いてないけど、ネットパネルの回答が高すぎるということだろうか]

 結果。[ちゃんと読んでないので、かなり抜け漏れがあると思うけど...]

 推定値の変動について。
 世論調査の分野では、調査を独立に繰り返した時に期待される推定値の変動のことをmargin of error(MOE)という[推定量の分散のことですかね]。確率標本ならMOEがすぐにわかるが、任意型パネルの場合には仮想的標本の性質についてのなんらかの仮定が必要になる。
 一般に、たくさんの変数について調整するとMOEは大きくなりやすい。そこでMOEを推定してみた。具体的には、1000回の反復を通じて95%信頼区間を構成し、その幅の半分をMOEと呼ぶ。

バイアス除去とMOEとのトレードオフを考えるため、いくつかのシナリオについてRMSEを調べた。[←そうそう!これが一番大事だと思うのよ。最初からMSEで評価すりゃいいのにと思いながら読んでいた]
 傾向スコア+レイキングと3手法併用はRMSEに差なし。3手法併用のほうがちょっぴりバイアスが小さいが、MOEが大きくなるのでRMSEには差がつかない。
 ただしトピックによっても異なる。政治についての項目では3手法併用のRMSEが小さく、家族についての項目ではレイキング単体のRMSEが大きい(わずかな差だが、標本サイズとともに開く)。要するに、凝った手法を使って報われるかどうかは場合による。
 云々。

 。。。とても読みにくかったけど、面白い実験であった。ちゃんとお金かけてこういうの試しているの、すごいなあと感心する。
 私が糊口をしのいでおりますところの市場調査の場合だと、ネットパネルで調査して、少数の調整変数(多くの場合は性・年代)の同時分布を国勢調査とかから引っ張ってきて、これを目指して標本ウェイティングを掛けることが多いと思う。 この実験でいうとレイキングに相当する(ウェイトの算出はもっと簡便だけど)。この実験、いろいろ頑張ってウェイティングしたところで、ネットパネルのバイアスはたいして取り除けませんねという話なわけで、なんというか、胸が痛みます。

 いっぽう、いっちゃなんだけど、壮大な努力の末にそりゃそうだろうなという結果を得ました、という感じのする実験でもある。
 標本ウェイティングによる調整の効果は、標本選択確率、調整変数、目的変数の3者の実質的な関係で決まるので、どんな結果がでたところで、「そういうデータだったんですね」という感想しか持てない面があると思う。
 いっけん予想外にみえる結果があったとすれば、調整変数を増やしてもレイキングで推定量の分散が大きくならなかったというところじゃないかと思うけど、調整変数と目的変数の関連が強ければそういうことも起きるはずである(と、Littleさんたちが前に書いていた)。

 結果があたりまえでも実務に対する示唆がヴィヴィッドであれば、デモンストレーションとして優れているといえるだろうけど、その点でもちょっと首をひねってしまう面があって...
 この実験では、標本が確率標本でなく、重要な共変量の分布が母集団と標本でずれているとき、いわゆるデザインベースのアプローチ(主に調査設計に基づいて調整するアプローチ。目的変数の標本分布は見ないで調整する)で標本選択のバイアスを取り除くという場面を想定している。でも、関心あるトピックがたとえば政治的態度であり、事前の政党支持といったトピックspecificな共変量が想定される場合には、ふつうはモデルベースのアプローチを使うんじゃなかろうか。たとえば、政治的態度の変数を目的変数にとった回帰モデルを推定し、母集団における共変量の同時分布を放り込んで目的変数の分布をシミュレーションするとか。
 調査データの分析においてデザインベースのアプローチ(標本ウェイティング)を使う理由は、(多くの公的調査がそうであるに)調査が多目的で関心ある変数の範囲が広いとき、ないし、事前知識が足りなくてトピックspecificな共変量を調整変数として選べないときではないかと思う。だから、「適切な調整変数によるウェイティングが大事です」といわれても、そりゃそうでしょうけど、うぐぐぐ、と思うしかないわけで...
 レイキングとマッチング・傾向スコアウェイティングとの間に大差がなかったというの話も、そりゃそうだろうと思う。レイキングのように共変量の周辺分布を母集団と揃える手法が不利になるのは、なにが共変量なのかいまいちはっきりしないときや、標本選択確率に対する共変量の効果に交互作用があるときだ(たとえば「男性の福音派の共和党員だけがパネルに登録していない」とき)。そういう事態が起きてなければ、そりゃレイキングでもなんとかなるでしょう。これは結局、いやー今回は運が良かったですねという話であって、調査一般において「ネットパネルの調整手法はレイキングによるウェイティングで十分」という風に受け取られるとしたら、それはちょっとちがうんじゃないですかね。

 この実験、たぶん大きな問題意識として、世論調査による政治的態度の測定と政治行動の予測が念頭にあるのだろうと思う(トランプ勝利を予測するためにはどうしたらよかったのか、というような)。私のように一般的な調査手法研究として読んじゃうほうがおかしいのかもしれない。どうなんでしょうね。専門家の方の意見を伺いたいところだ。

 ところで、ここで試している調整のやりかたは、実験の主旨として必要なのはわかるけど、調査実務の上でのリアリティはどのくらいあるんだろうか?
 教科書的には、ある共変量についての母集団分布があきらかでないならば、その共変量についてのデザインベースの調整はあきらめるべきであろう。しかしこの実験では、ACSにない変数であっても調整変数として選んでしまい、母集団分布を他の変数から無理やり推測しているわけで、これは相当に違和感がある状況設定だと思う。かの国の世論調査ではほんとにこういうことをやるのかなあ?
 調整手法を併用するというのも不思議である。傾向スコアによるウェイティングと共変量を投入したモデリングを併用するというのは聞いたことがあるけど(doubly robust推定というらしい)、傾向スコアでウェイティングしてさらに周辺分布をあわせてウェイティングすることって、実際にあるのだろうか。いや、架空の手法だというならばそれはそれでいいんだけど...

読了:Mercer et al. (2018) ネットパネルで調査したとき母集団の構成にあわせてウェイティングすることがあるけど、あれって意味はあるのかどうか試してみました

Athey, S., Tibshirani, J., Wager, S. (2017) Generalized Random Forests. arXiv:1610.01271v3 [stat.ME]

 著者らが提案する新手法「一般化ランダム・フォレスト」の解説。Rのパッケージgrfとして実装されている。仕事の役に立つかと思って。
 付録をあわせて47pもあるのだが、関心のあるところだけ目を通した。

 もともとランダム・フォレストというのは $\mu(x) \equiv E[Y | X =x]$を推定するための手法である。つまり、いま$\psi_{\mu(x)}(Y) = Y - \mu(x)$というスコアリング関数があるとして、
 $E[\psi_{\mu(x)}(Y)|X =x] = 0$
となる$\mu(x)$を推定する手法である。
 これを任意の量$\theta(x)$の推定へと一般化したい。$Y$のかわりに$O$があるとする。$\theta(x)$を次の局所推定方程式によって定義する。$\psi(\cdot)$をなんらかのスコアリング関数、$\nu(x)$をオプションの局外母数として、
 $E[\psi_{\theta(x),\nu(x)}(O) | X = x] = 0$
このように一般化することで、条件つき平均だろうが条件つき分位点だろうがなんだろうが扱えるようになる。我々がこれを開発する主な目的は、道具変数による、異質性のある処理効果の推定である。

 ここで解決すべき問題が3つある。

  1. 上のように一般化すると、オリジナルのランダム・フォレストのように、B本の木を作りそれぞれの予測$\hat{\mu}_b(x)$を単純平均しよう、というわけにはいかなくなる。そこで、まずランダム・フォレストでテスト点$x$の近隣集合を求め、それらを使って$\mu(x)$を推定する。
  2. この適応的近隣関数を$\theta(x)$に合わせて変えなければならない。ある治療の効果を知りたいとしても、その治療が長期的な生存率に及ぼす効果を知りたいときと、入院日数への効果を知りたいときでは、必要な共変量が変わってくるだろう。そこで、まず推定したい非線形な式を勾配ベースの方法で線形に近似してから木の分割点を決める。[←む、難しい... 分かるような、わからないような気分だ]
  3. $\theta(x)$の漸近的一致性とガウス性の理論的な保証がほしい。以下でそれを示す。

 先行研究。
 統計学では昔から局所最尤推定というアイデアがある。たとえば経済学でいえば、回帰不連続デザインで使う局所線形回帰、パネルデータで使う多項選択モデル、道具変数を使った回帰、などがそうだ。基本的なアイデアは、共変量がある特定の値をとるときのパラメータ推定を行う際、共変量空間において近くにある事例により重みをつけましょう、というものである。重みはふつうカーネル法で求める。このアプローチの難しい点は、共変量空間が多次元のとき、「次元の呪い」のせいでうまくいかなくなってしまうという点だ。
 そこで、カーネル・ウェイティングのかわりにランダム・フォレストでウェイトを求めることを考える。つまり、ある事例の重みを「目標とする共変量ベクトルと同じ葉にその事例が落ちた木がどれだけあるか」で決めるのである。このように、ランダム・フォレストを適応的最近隣推定として用いる発想は、Meinshausenによるランダム・フォレスト・ベースの分位点回帰に遡る。
 [ほかに、勾配ベースで分割点を決めるというアイデアの先行研究、ランダムフォレストの漸近的性質についての先行研究について触れている。パス]
 なお、注意してほしいんだけど、ここで関心があるのは、単一で低次元なパラメータ(たとえば平均処理効果)を共変量をコントロールしたうえで推定したいという話ではない。関数$\theta(x)$が共変量によって変わっちゃうのをどう推定するかという話である。[←ああ、なるほど...やっと少しだけ意味がわかった。親切に教えてくれて助かるよ]

 以下、提案手法の説明。なお、ランダム・フォレストについてよく知らない人はHastieの本とかをみるように。

 事例$i = 1, \ldots, n$が、観察量$O_i$, 共変量$X_i$を持っている。$O_i$というのは、たとえばノンパラ回帰であれば$\{Y_i\}$そのものだし、外生的な処理割付($W_i$)の下での処理効果の推定であれば$\{Y_i, W_i\}$である。
 ゴールは次の局所推定方程式におけるパラメータ$\theta(x)$の推定である。局外パラメータ(オプション)を$\nu(x)$として、すべての$x$について
 $E[\psi_{\theta(x),\nu(x)}(O_i) | X_i = x] = 0$

 ふつうのやり方は、まず$x$において事例$i$との関連性を表すなんらかの類似性ウェイト$\alpha_i(x)$を定義し、
 $||\sum_i \alpha_i(x) \psi_{\theta, \nu}(O_i)||_2$
を最小にする$(\theta, \nu)$の集合を求め[えーっと、ユークリッド・ノルムを最小にするわけね]、その集合のなかに$(\hat{\theta}(x), \hat{\nu}(x))$が入っていると考えるやりかたである。$\alpha_i(x)$の推定にはふつうカーネル関数を使う。でもこのやりかたは高次元のときにうまくいかない。
 そこで、まずB本の木をつくる(作り方は後述)。で、$X_i$がそれぞれの木$b$において$x$と同じ葉に落ちたかどうかを調べ、落ちた割合を求める。これを合計1に調整して$\alpha_i(x)$とする。

 木の作り方。[普通の決定木と似ているんだけど、評価関数に工夫があるらしい。難しくてよくわからん。パス]

 実際には、計算効率を高めるため、勾配ベースの近似を行う。[以下3p、難しいのでパス。なんだか知らんがxgboostみたいなもんなんですかね]

 ここでいったん小休止して[←ほんとにそう書いてある]、分位点回帰フォレストの場合について紹介しよう。$X=x$の下での$Y$の$q$分位点$\theta_q(x)$の推定がゴールである。[...中略...] MeinshausenのquantregForestパッケージと比べると... [以下略]

 漸近的性質についての分析。[パス!もちろんパス!8p飛ばすぞ!]
 デルタ法による信頼区間。[3p飛ばすぞ!]

 応用事例その1, 外生性があるときの条件付き平均部分効果の推定、名付けて「因果フォレスト」。
 次のランダム効果モデルを考える。
 $Y_i = W_i b_i + e_i$
 $\beta(x) = E[b_i | X_i = x]$
ゴールは、なんらかの対比$\xi$についての$\theta(x) = \xi \beta(x)$を推定すること。もし$W_i$が処理割付$\{0, 1\}$だったら、$\beta(x)$が条件つき平均処理効果。
 $W_i$は外生で $\{b_i, e_i\} (独立) W_i | X_i$ だと仮定する。[独立性の記号の書き方がわからない...とにかく、交絡がないという仮定である]
 [...以下、面倒になってきたので読み飛ばしたけど、やっとこの応用事例のイメージがわいてきた... 「処理効果が共変量によって変わっちゃう場面で、共変量の特定の水準の下での条件つき処理効果を機械学習で推定しよう」という話なのね、なるほど]

 応用事例その2、道具変数を使った異質性のある処理効果の推定、その名も「道具変数回帰フォレスト」。
 たとえば、母親の就業への子育ての因果効果を測りたい。でも子供の人数はなにかと交絡しているかもしれない(もっと子供が欲しいかとか)。Angrist & Evans(1998)は、子供が二人以上いる母親について、上の二人が同性か異性かに注目した(性別はさすがに偶然で決まるだろう)。同性のほうがもっと子供を欲しがる傾向がある。同性かどうかと就業意欲との間の関連性が、子供の人数をコントロールしたとき消えるなら、コントロールしなかったときに観察される関連性は子どもの人数のせいだといえる。
 さて、こういう道具変数回帰への古典的なアプローチでは処理効果のグローバルな理解しか目指さない。ここでは異質性のある処理効果をフォレストで推定することを目的とする。
 $n$人のiidな対象者$i$が持つ特徴を$X_i$, アウトカムを$Y_i$、処理割付を$W_i$、道具変数を$Z_i$とし、次の構造モデルを考える:
 $Y_i = \mu(X_i) + \tau(X_i) W_i + \epsilon_i$
$W_i$の因果的効果が$\tau(X_i)$。いま、ノイズ$\epsilon_i$が$W_i$と正の相関を持つかもしれないとしよう。この場合、一般に標準的な回帰では$\tau(X_i)$の一致推定量が得られない。さて、$Z_i$が$X_i$の下で$\epsilon_i$と条件付き独立であると知っているとしよう。この場合、$Z_i$が$W_i$になんらかの影響を持っているとするならば(すなわち、$X_i=x$の下で$Z_i$と$W_i$の条件付き共分散が非ゼロならば)、処理効果$\tau(x)$は
 $\tau(x) = Cov[Y_i, Z_i|X_i = x] / Cov[W_i, Z_i | X_i = x]$
実際に$\tau(x)$を推定するには次の式を解けばよくて...
 [... いま日々の生活でいろいろ忙しいもので、大幅に中略。来世ですっごく頭の良い人に生まれ変わったら読みますね]
 事例。Angrist & Evansが挙げた問題について推定してみる。2人以上子供がいる母親について分析する。$Y_i$は母親がセンサスの前年に働かなかったか、$W_i$は母親がセンサス時点で3人以上子供を持っているか、$Z_i$は上の二人が同性か異性か。普通の道具変数回帰で平均処理効果$\tau$を推定するとAngristらの結果が再現された(3人目がいると就業率が下がる)。
 さて、提案手法により、母親の年齢とか人種とか父親の年収とかを共変量にして、条件付きの平均処理効果$\tau(x)$を推定してみると... 父の年収が低く、かつ母親の年齢が低いと効果が大きい。[←なるほどね...そういう分析がやりたいのか]
 云々。

 というわけで、全体の1割くらいしか読んでないけど、なんとなく雰囲気がわかったので良しとしよう。
 いやあ、なんというか... generalized RFっていうから、分類や回帰とかだけじゃなくて、打ち切りつき生存時間データとか、いろんなややこしい問題を統一的にあつかってくれるようなランダム・フォレストなのかな、と思って読んだのである。想像のはるか斜め上をいく話であった。

読了:Athley, et al. (2017) 一般化ランダム・フォレスト

2018年1月 8日 (月)

Thissen, D., Steinberg, L. (1986) A Taxonomy of Item Response Model. Psychometrika. 51(4), 567-577.
 題名のとおり、IRTモデル(項目反応モデル)の分類を提案する論文。回答スタイルのIRTモデリングについて調べていて、知らない通称がバンバン出てきて嫌になってしまったので、試しに読んでみた。今頃四半世紀前の分類を読んでどうすんだという気もするんだけど...

 いわく。ラッシュモデル以来、モデルに人名を付けることが多いんだけど、そういうのやめたほうがいい。Samejimaさんはいっぱいモデル作っているのでSamejimaモデルといわれてもどんなモデルか分からないし[←やっぱそうなのか]、Rasch(1960)は母集団分布のことを考えてなかったから母集団分布を考慮した「傾きが等しいロジスティックモデル」をRaschモデルと呼んでいいのかどうかわからない。
 曲線のかたちにちなんでモデル名をつけるのもよくない。関数が同じでもパラメータ制約が違ってたら全然違うモデルになる。rating scale modelとpartial credit modelとか。
 というわけで、IRTモデルの分類をご提案します。

 [ここで図が入る。下表にまとめておく]

 本稿で言うモデルとは、カテゴリカル反応を得る項目についての、潜在変数の下でのある反応の条件付き確率を記述する数学的関数のこと。潜在変数の母集団分布の扱いについては考えない。パラメトリックなモデルについてだけ考える。いずれのモデルでも、潜在変数の母集団分布についてなんらか特徴づければ、パラメータはparallel marginal ML法で推定できるだろうけど、推定手続きについても考えない。多次元モデルも考えない。

 IRTモデルを4つに大別する。
 その1、二値モデル
 IRTの始まりは1930-40年代、二値反応の正規累積モデルにまで遡る。Rasch(1960)とBirnbaum(1968)がロジスティックモデルを導入した。Guttman(1950)の決定論的モデルもこの潮流に位置づけられる。Winsberg, Thissen, Wainer(1983)はスプライン関数の導入を提案している。
 まあとにかく、二値モデルはもっと複雑なモデルの基盤となるモデルである。

 その2,differenceモデル
 Samejima(1969)はIRTを多重カテゴリカル反応へと拡張した。「カテゴリ$k$より上に反応する確率」$P^*(k)$を二値モデルでモデル化するというアイデアである。これは現在"graded responses"モデルとして知られている。結局カテゴリ$k$への反応確率を$P^*(k)-P^*(k+1)$とモデル化しているわけで、ここではこのタイプのモデルをdifferenceモデルと呼ぼう。
 このタイプのモデルでは、正規累積関数なりロジスティック関数なりを使う場合、傾きパラメータはすべてのカテゴリで等しくないといけない(でないと曲線が重なってしまう)。もっとも重なりさえしなければいいわけで、たとえばスプライン関数だったらパラメータがカテゴリ間で違っててもよい。

その3.divide-by-totalモデル
 Masters(1982)が提案した"partial credit"モデルは、Samejima(1969)のgradedモデルの代替案である。このモデルでは「反応がカテゴリ$k-1$かカテゴリ$k$であるとして、その下でのカテゴリ$k$」の曲線を考える。SamejimaもMastersも、$m$カテゴリの段階反応項目を$m-1$個の架空の二値項目に分解するという点では同じで、分解の仕方がちがうのである。
 Mastersはこの曲線をこうモデル化した。
 $\frac{P(k)}{P(k-1)+P(k)} = \{1+\exp[-(\theta-\delta_{k-1})]\}-1$
ただし$\sum_k P(k)=1$。変形すると
 $P(k) = \exp[(k-1)\theta - \sum_{j=0}^{k-1}\delta_j] /$ (m個の分子の和)
となる。このタイプのモデルを、ここでは"divide-by-total"モデルと呼ぼう。
 [←なるほど... このモデルは結局、$1, \ldots, m$個めの選択肢の効用関数において$\theta$に係数$0, \ldots, m-1$がかかるような多項選択モデルになるわけね。ここは勉強になった。Schneider(2017)が自分のモデルをpartial credit modelと呼んでいた理由がわかった]

 このタイプのモデルは、Bock(1972)の名義反応モデル
 $\displaystyle P(k) = \exp[z_k(\theta)] / \sum_h^m \exp[z_h(\theta)]$
 $z_h(\theta) = a_h \theta + c_h$
の一種である。もともとBockは
 $\sum z_h(\theta) = 0$
と制約しようと思っていた。これは要するに$\sum a_h = \sum c_h = 0$ということである。いま$\alpha, \gamma$を長さ$m-1$の無制約なパラメータベクトルとすれば、$(m-1)\times x$の対比行列$T_a, T_c$をつかって
 $a' = \alpha' T_a, c' = \gamma' T_c$
と書き直すことができる。さて、上で述べたpartial creditモデルは
 $T_a = [0,1,2,\ldots,m-1]$
で$\alpha$はスカラーだというモデルになる。
  [...ここから、過去のいろんな提案をこのモデルの拡張として説明する。たぶんこの論文でいちばん力が入っている部分で、3頁ほど続くんだけど、ぼけーっと読んでたらわけわかんなくなってきちゃった。あきらめて省略する。必要になったら!勉強すればいいさ!]

 "divide-by-total"モデルと"difference"モデルの関係について。
 単純に言っちゃうと、この2つは異なるパラメトリックなクラスに属する。"difference"モデルは$k$より右の確率について
 $\displaystyle P^*(k) = \sum_{h=k}^m P(h) = \frac{\sum_{h=k}^m \exp [z_h(\theta)]}{\sum_{h=1}^m \exp [z_h(\theta)]}$
 とモデル化している。この曲線は二値ロジスティックでない。
 別の言い方をすると、"difference"モデルを代数的に"divide-by-total"形式に書き換えることはできる(Master(1982)はSamejima(1969)の書き換えになっている)。どんな多重カテゴリモデルであれ、"difference"形式でも"devide-by-total"形式でも表現できる。でも、一方で簡単にかけると他方では簡単にかけない。

 その4、left-side addedモデル
 最初の提案はBirnbaum(1968)の3パラメータ・ロジスティックモデル。このモデルは結局、2パラメータ・ロジスティックモデルを$2PL$として
 $3PL = 2PL + c(1-2PL)$
となる。「ほんとは知らない」確率に$c$を掛けた奴でもって、曲線の左のほうをちょっと上にあげるわけなので、ここでは"left-side added"モデルと呼ぶ。
 そのほかの定式化としては、Choppin(1983)の提案があって[...略]

 その5. left-side added multible catogoryモデル
 当て推量パラメータ付きのモデルを多カテゴリへと拡張する提案としては[...略。すいません、当面関心ないもので]
 云々。

 ... ちょっと頭の整理になったけど、そのぶんかえってわからないことが増えてしまった... 前にMuthen導師のテクニカル・ペーパーを読んだときは「おお!わかったぞ!」と思ったのに...
 順序反応変数$y$をモデル化するとき、その背後に連続変数$z$を想定し、$z$が閾値1と閾値2の間におちたら$y$は2になる、という風に考えることがあるじゃないですか。そういうのはdifferenceモデルに分類されるのだろうか($z$が正規分布に従うなら$P(y \geq k | z)$が正規累積曲線になるから)。いや、でもそれは閾値の設定次第? 仮に閾値に等間隔性の制約をいれたらpartial creditモデルにも書き換えられるってこと? あれ???
 この辺の話、なにも86年の論文を読まなくても、私くらいのレベルの素人向けの、日本語の参考書がありそうだな...

読了:Thissen, & Steinberg (1986) いろんな項目反応モデルを分類する体系についてのご提案

rebuilt: 2020年11月16日 22:37
validate this page