elsur.jpn.org >

« 2018年1月 | メイン | 2018年5月 »

2018年4月30日 (月)

 マーケティング・リサーチにおいては、この製品・サービスの価格がこうだったら売上はこうなるでしょうというようなことを調べることがあるんだけど、その際の手法のひとつにBPTO (Brand Price Trade-off)というのがある。
 ううむ、懐かしいなあ。前の勤務先に拾ってもらった際、トシを食ってはいるものの業界の常識を全く持たない私に、上司様が懇切丁寧に教えて下さったのであった。さぞや面倒だっただろう。いま私があの立場になったとして、あのように親切には振る舞えそうにない。

 要するに、(1)調査対象者にいくつかの製品を提示しひとつ選ばせる、(2)選ばれた製品の値段をちょっぴり上げ、再び製品をひとつ選ばせる、(3)これを繰り返す... というのが基本アイデアである。値段と選択率の関係がわかります、すなわち価格-需要関数が手に入ります、という理屈ですね。わっかりやすい。
 BPTOというのはかなり古めかしい手法であって、おそらく現在ではあまり使われていないだろうと思うんだけど、その細部についてはたまに議論になる。一度きちんと調べてみたいと思った次第である。

書籍
 BPTOについて解説している書籍はないだろうか。 
 Google Booksのお力により、少なくとも以下の書籍で言及されていることがわかった。

論文
 論文における言及を探すのはなかなか難しい。BPTOというのは地を這うリサーチャーののためのごくごく実務的な手法であって、マーケティングの学術誌で扱われるようなかっこよい話題ではないのである。
 90年代以降、以下の論文で言及されているのをみつけたのだが、すべて未入手。

カンファレンス・ペーパー
 この種の聴取・分析手法を扱うカンファレンスのなかで最も有名なのは、AMA(American Marketing Association)のART Forumだと思うのだけど、残念ながらProceedingsを入手する方法がわからない。あれ、ほんとに納得いかないんですよね。いったいどうなっているんだろうか。
 コンジョイント分析のソフトウェアを発売しているSawtooth Softwareという会社は昔からユーザ・カンファレンスを開いており、Proceedingsを公開している。検索してみたところ、BPTOに言及している発表が少なくとも5件みつかった。いずれも調査実務家による発表である。

Web
 Webを検索すると、BPTOについて解説しているものがたくさんみつかる。BPTOという名前を挙げているだけならもっとたくさんみつかる(日本だとインテージさんとか)。マーケティング・リサーチにおいては一般的な手法名であることがわかる。
 検索上位に出現するページを片っ端から眺めてみたのだが、当然ながら解説の中身は玉石混淆である。

歴史
 何人かの人が、BPTOは1970年代末に開発されたと述べている。正確に言うと、誰がいつ開発したのだろうか。
 上に挙げた書籍やWebページを手掛かりに、古い文献を探していくと...

 というわけで、おそらくこういうことなんじゃないかと思う。

なお、Research InternationalとはかのUnileverに源流を持つ由緒正しき調査会社で、現在はWPP傘下のKantor Group。Rich Johnsonが辞めたあとのMarket FactsはSynovateとなり、その極東オフィスは、トシばっか食ってて使えない男、その親切な上司、などの多様な人材を抱えていた。2011年にIpsosに買収された。

BPTOの手続き
 実をいうと、このメモを取り始めた理由は、人々がBPTOと呼んでいる手法の具体的な手続きが、実は人によってかなりずれているのではないか、一度きちんと比較して異同を整理しておいたほうがと良いのではないか... と思ったからである。しかし、あれこれ調べているうちに、だんだんどうでもいいような気がしてきた。
 誰かがBPTOを「貧乏人向けコンジョイント分析」と呼んでいたけど、正しい批評である。ある製品の価格だけが目の前でどんどん値上げされていくというのはずいぶん奇妙な課題であって、それよか選択型コンジョイント分析をやったほうがはるかに気が利いている。いまさらBPTOの正確な手続きだなんて、いンだよこまけぇことは! という気分になってきた。すいません、疲れているんです。
 というわけで、続きはまた気の向いた時に...

雑記 - 覚え書き:BPTO(Brand Price Trade-off)とはどんな手法か (途中で投げ出しましたけど)

 勤務先の優秀なインターン青年に「機械学習で分類課題やるとき、クラスの事前確率が極端にちがう場合は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とかなんだとか、かっこいいリサンプリング法があるが、ああいうのはどうなんだろう。この論文では今後の課題として言及されていた。

論文:データ解析(2018-) - 読了: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つ紹介。略]

 。。。勉強になりました。
 時系列の類似性って、いきなりユークリッド距離とか相関とったりしてはいかんのだろうとなんとなく思ってたのだが、それは場面による話であって、一概にダメともいえないようだ。ふうん。
 それはそうと、あれですかね、やっぱし、いったん類似性行列を作んないといけないんですかね。何十万本も時系列があるときはどうしたらいいんだろうか。

論文:データ解析(2018-) - 読了:Montero & Vilar (2014) RのTSclustパッケージで時系列クラスタリング

2018年4月28日 (土)

Bookcover R言語徹底解説 [a]
Hadley Wickham / 共立出版 / 2016-02-10
現勤務先への転職を機に、20年近く使い続けた我が愛しのSASに別れを告げ、泣く泣くRに乗り換えたのであった。たまに自宅でSAS University Editionを立ち上げると、もう懐かしくて仕方ないです。
 とはいえRを使い始めてはやX年 (Xの値については考えたくない)、その間ほぼ毎日使っているわけで、こうしてだましだましその場をしのいでいるのもいかがなものか、やはりきちんと勉強したほうがよいのでは... と後ろめたい気分であった。先日ちょっと時間があいたので、刊行時に大枚はたいて買い込んだまま本棚に積んであったこの本に一通り目を通してみた。R界の神様Hadley Wickhamによる有名な解説書。

 せっかくなので、読みながら「おおお」と思ったり「へええ」と思ったりしたところをメモしておく。

1. 導入

2. データ構造

3. データ抽出

4. ボギャブラリ

5. コーディングスタイルガイド

6. 関数

7. オブジェクト指向実践ガイド

(7.4 RC はスキップした)

8. 環境
この章がいちばん難しい。きちんと理解できたとは言い難い。

9. デバッギング、条件ハンドリング、防御的プログラミング

(9.3.2-9.3.4でtryCatch(), withCallingHandlers()について説明しているんだけど、面倒なのでスキップした。いずれ必要に迫られたときに読もう)

10. 関数型プログラミング

(10.5 ケーススタディ:数値積分 はスキップした)

11. 汎関数

(11.7 関数族 はスキップした。ちょっと疲れちゃったもので...きちんと読んだらとても勉強になりそうな内容である)

12. 関数演算子

13. 非標準評価

14. 表現式

(14.5 ペアリスト, 14.7 再帰関数を用いた抽象構文木の巡回 はスキップした)

15. ドメイン特化言語 (スキップした)

16. パフォーマンス
メモは特にないけど、全編にわたって目から鱗が落ちる内容であった。

17. コードの最適化

18. メモリ

19. Rcppパッケージを用いたハイパフォーマンスな関数 (スキップした)

20. RとC言語のインターフェイス (スキップした)

データ解析 - 読了:「R言語徹底解説」

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推定というらしい)、傾向スコアでウェイティングしてさらに周辺分布をあわせてウェイティングすることって、実際にあるのだろうか。いや、架空の手法だというならばそれはそれでいいんだけど...

論文:データ解析(2018-) - 読了:Mercer et al. (2018) ネットパネルで調査したとき母集団の構成にあわせてウェイティングすることがあるけど、あれって意味はあるのかどうか試してみました

 しばらくの話だが、消費者態度指数ってあるじゃないですか、あれってどういういきさつで、誰が作っているのか、ふと疑問に思った。別に日本のオリジナルではなくて、米国にもミシガン大学の信頼感指数とかあるじゃないですか。誰が最初に作ったの?

 調べてみたら、米国にはミシガン大のほかにConference Boardというところが出している信頼感指数がある。Conference Boardというのは非営利の民間調査機関で、「全米経済審議会」と訳すのだそうだ。へええ。調べてみるものね。

 前田穣 (1999) 経済意識・経済的態度・経済的信念研究の系譜(1) G.カトーナのマクロ的消費者態度研究. 奈良大学紀要 (27), 107-117.
 というわけで、Ciniiを検索してみたら引っかかった奴。 著者は社会学の先生らしい。題名には(1)とあるが、たぶん続編はない。
 非計量経済学的なマクロ的消費者行動研究の代表例として、ジョージ・カトーナ(George Katona)の研究を概観します、という紀要論文。カトーナって、消費者行動論の教科書では見かける名前だけど、どんな人か全然知らなかった。いまWikipediaをみたところ、もとはドイツでゲシュタルト心理学やってて、米国に亡命した人らしい。ラザースフェルドとかディヒターとかと似た経歴ですね。

 いわく。
 マクロ的な消費者行動研究はもともと少ない。例外はカトーナが率いたミシガン大のサーベイリサーチセンターのICS(The Index of Consumer Sentiment)である。[←へえええ!そうだったのね!]
 カトーナは心理学者として出発し経済行動の研究を始めた。マクロ経済の心理的研究には3つの主要な敵がいた。

 消費者態度が経済に対して外生的に左右されることがある(戦争の危険とかで)、と考えたのはカトーナだけではない。たとえばノエル・ノイマンはマクロ経済の「予言者としての世論」という論文を書いている[←へえー]。
 いっぽう批判も多い。たとえば日本では石井健一(1994, in 福村出版から出てる飽戸編の本)という人が、消費者態度指数(暮らし向き)よりGNPが先行すると指摘している。でも、ICSでマクロ経済が予測できるかというのは実はカトーナの主張の検証になっていない。カトーナは消費者態度が支出そのものではなく支出の変化を予測すると考えたからだ。
 Shapiro(1972)いわく、カトーナは態度変化のメカニズムが変化すると考えていた、しかしICSを計量経済的モデルで再現できる、ゆえにカトーナの主張はおかしい。[...この節、説明が全然理解できないのでパス...]

 カトーナから何が学べるか。ここではインフレーションの研究についてみよう。
 通常の経済理論によれば、インフレ時には支出が増大するはずである(貨幣をモノに変えた方が得だから)。しかしICSはインフレ加速時に下がる。これは所得増大の利得がインフレによって侵害されると感じられるからである。こういうカトーナの説明は「不安」といった心理学概念を適用したもので...[すいません、この節も途中から論旨が見えなくなってしまった... きっと私が悪いのです...]

 まとめ。かつてH.サイモンはメイヨーらの人間関係論を、それってテイラー的労働者観から感情的存在としての人間を回復しただけで意思決定能力を持つ組織成員に至っていないじゃんと批判したが[←出典は書いてない]、カトーナも消費者意思決定の非合理性を指摘するあまり、人間をなにか感情的存在として理解するきらいがあったのではないか。云々。

論文:マーケティング - 読了:前田(1999) G.カトーナ、消費者態度指数の父

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っていうから、分類や回帰とかだけじゃなくて、打ち切りつき生存時間データとか、いろんなややこしい問題を統一的にあつかってくれるようなランダム・フォレストなのかな、と思って読んだのである。想像のはるか斜め上をいく話であった。

論文:データ解析(2018-) - 読了:Athley, et al. (2017) 一般化ランダム・フォレスト

« 2018年1月 | メイン | 2018年5月 »

rebuilt: 2020年11月16日 22:39
validate this page