データサイエンティストではない人に知っておいて欲しい事

統計を専門にしている訳ではない人と話していて感じた違和感があったので、書き留めておきたい。

疑うべき順番は モデル → 推定法

データ分析をしていれば、当然、期待を掛けたモデルのデータへの当てはまりそうが悪いという事が度々ある。こういう時、統計屋さんとして自然に浮かぶのは「モデルが間違っている」という発想である。と思うのだが、非統計屋さんと話していると、このような時に「別の推定法を試してみたらどうだろう」と言われる事がある。多分、目の前のモデルに対する過度の期待から来るのだろうと思うが、このような態度では統計的に見ると妥当性を欠いた分析をしてしまう危険を孕んでいる。

ひとつの事例

とある線型状態空間モデルのパラメータを推定した所、どうしてもデータに合わない部分があった。実は、それが合わない理由は簡単で、ある潜在変数は常に正であるはずなのだ。線型状態空間モデルでは、潜在変数の分布は正規分布であると仮定する(だから、負の値を取る事もある)。手元のデータでは、その潜在変数が0以下に推定されるような状態だったので、現実にそぐわない予測値が出てしまっていたのである。
この状況で、「カルマンフィルタ使って最尤推定しているのが駄目なんだな」と考える統計屋さんは居ないと思う。普通は、「非線型のモデル考えるか」と発想する。なんだけど、その線形モデルはかつて他所の会社で莫大な利益を生み出したという触れ込みで有名なモデルであったので、「モデルが間違っている」という考えは中々受け入れて貰えなかった。
自分の周りの非統計屋さん達は、次のように考える人が多い。観測値の一部分に予測値から大きく外れる部分があるのが気持ち悪いので、そこにもの凄く大きな重みを付けて、その部分の残差が小さくなるように推定しちゃえば良いんでは無いかと。
しかし、このような分析方法は、やはり統計的には妥当性を欠いた考えであると思う。
データに重みを付けるという事は、そのデータに含まれているノイズが小さい事を先験的に知っているという事を意味する。従って、本当は他のデータと同程度のノイズを含んでいるはずのデータに重みを無理に与えるというのは、ノイズによって偶然発生しただけの挙動を意味のある挙動として解釈せよと無理やりモデルに強制することに他ならない。だから、偶々その方法で該当部分の残差が小さくなったとしても、それはモデルの予測精度が上がっている事を意味するのではなく、ノイズへの過適合を起こしているだけである。
と、いうような事が昔あった。多分、そのモデルの伝説が強すぎて、こんな発想をしてしまうと思うのだが、上に書いたような理由で、それは禁じ手である。

仮説無しにデータ分析は始まらない

「〜〜という仮定を置いてよければ、**という手法が使えて、そうすると○○ということが言えますよ」という説明をすると、〜〜の部分が正しい事はどうやって分かるの?と言われる事がある。勿論、仮説検定だとかモデル選択だったりとかあるいは1つの仮定を置かずに複数の仮定を事前分布で混ぜちゃって分析するだとか、色々方法はある。なんだけど、そういった分析というのも実はよりメタな仮定を置いて議論を始めているだけで、データ分析において「〜〜という仮定を置くと」という部分が綺麗さっぱり消える事は無い。
そもそも、何ゆえにデータを分析するのかと云えばデータから有用な情報を取り出す為である。であるならば、少なくとも、何を有用ではないと見做すのかという立場をはっきりさせなくては始まらない。何が重要ではないかという事を設定して初めて、データを加工し、要らない部分を切り捨てて、解釈し易い情報を抽出することが出来るのだ。
「データを分析するには仮定が必要」だけど「どういう仮定が適切なのかはでーたを分析しないと分からない」というジレンマは、鶏と卵のような循環を成してしまう。だから、最後は何処かで人間がデータに依らずに「分析の出発点とする仮定を選ぶ」というステップが必ず必要になる。