ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

【書籍メモ】分析者のためのデータ解釈学入門を読んだ

f:id:taxa_program:20210117184640p:plain:w600

こんにちは。takapyです。

本日は「分析者のためのデータ解釈学入門」を読んだので、そのメモ書きです。
(完全に自分用の備忘録なので、雑になっています)

1部 データの性質に関する基礎知識

1部では、モデリングを行う手前の作業でもある、データをどのように取得してくるか、その時に気をつけておくポイントなどが綺麗にまとめられていました。
データ分析コンペなどでは、この「データ取得」という作業はすでに行われていることが多いと思いますが、実務を行う上でもデータそのものは、分析の土台であり、garbage in garbage out*1という言葉があるくらいとても重要なフローだったりするので、要点がまとめられている本書は貴重だと思いました。

個人的にはデータのバイアスに関するポイントは知らないことも多く、読んでいて楽しかったです。

データを観測すること

  • データ分析は観測したデータを人間が利用したすいように変換する作業
    • 入力データの質が分析結果に
  • もともと数値化されていないものをデータ化しようとする際には、「測れる何か」で代替する必要がある
  • データを誤って解釈しないために
    • 観測によって図られているものは何なのか
    • 「本当に測りたいもの」の中でとらえられていない要素は何か
      • を明示的に把握することが大切
  • バイアスを取り除く方法
    • そのバイアスがそもそも何から生じているものなのかを特定する
    • そのバイアスの影響を何らかの方法で排除する

様々なバイアス

測定基準に関するバイアス

  • データが一定の基準で取得できていない場合に発生するバイアス
  • 時間経過によりデータが変化することによるバイアス

選択バイアス

  • 有名なのは、戦闘機の生存バイアスの話*2
  • ほかにも「サンプリングバイアス」「志願者バイアス」「出版バイアス」などがある

データ分析や統計調査の報告自体にもバイアスがかかっている(出版バイアス)話は、たしかにと思った。(仮説に合わないような分析結果になってしまった場合、それは公表されることはない、というお話)

観測介入に起因するバイアス

  • 人間を対象とするデータ分析では、心理学的な効果によって、知りたい情報がうまくデータとして測定できないことがある
    • 例えばアンケートに答えてもらう形で個人の考えをデータとして取得する場合には、以下のようなバイアスがかかる可能性がある
  • 黙従傾向
    • 「はい/いいえ」で応える質問などで肯定的な選択肢を答えやすい
  • 中心化傾向
    • 「・全く同意できない ・やや同意できない ・どちらともいえない ・やや同意できる ・非常に同意できる」から1つ選ぶ場合、真ん中の選択肢が選ばれやすい
  • キャリーオーバー効果
    • 前の質問への回答が次の質問への回答に影響する
  • 質問文での誘導
    • 質問文に余計な情報を付与して、誘導回答させるもの
  • 回答者が後ろめたいと思っている事柄に関しては、正確なデータが得られないことがある
    • その場合は、ランダム回答法で解消できる

データの扱いに起因するバイアス

  • データを扱う人が意図的または無意識的にデータを歪めてしまうこと
  • 一般的に、目標が決められていて、本人の裁量で簡単にコントロールできる数値については、こうした不正によってデータが不正確になる可能性がある

機械学習のプロジェクトは、データありきで推進されることが多いが、そのデータ自体がゴミだと、プロジェクトもゴミになってしまうので、改めてまずは疑うことを意識しようと思った。

また、自分のコンロトールできるバイアスとして、「データの扱いに起因するバイアス」はありそうだと思ったので、気を付けていきたい。

交絡因子と因果関係

  • 観察データを用いた研究では、交絡因子を十分にコントロールすることが一般に難しく、注意が必要

武器軟膏*3の話はとても面白かった。
A/Bテストの基本ともいえるランダム化比較実験(RCT)から始まり、RCTが使えない場面での変数間の関係性を分析する手法について述べられている点も良いと思った。

データサンプリングの方法論

  • どういったことに注意してデータをサンプリングすればよいか
  • サンプルサイズの決め方
  • さまざまなサンプリング方法

2部 データの分析に関する基礎知識

2部では具体的なデータ分析手法や考え方、問題設定毎にどんな手法に頼れば良いのかについて解説されていました。中でも、1変数や多変量など、変数の数に応じた分析アプローチの方法は参考になる部分も多かったです。
本書にも記載されていますが、各分析手法の細かい内容については述べられていないので、モデル毎の詳細は別の参考書にてキャッチアップする必要がありそうです。

一変数データの振る舞い

  • 経験分布と理論分布を比較する際、ヒストグラムを利用してもよいが、定量的に分布の形を計りたいときは累積分布関数を用いると良い。

変数間の関係を調べる

  • なぜ「相関があるか」という分析手続きを踏む必要があるか
  • 仮説検定の方法
  • 2変数間で相関があるかどうかを検定することを、無相関検定という

多変量データを解釈する

  • 探索的に相関をいろいろ調べていくと、本来は関係のない変数の間にも相関が見えてしまうことがある
    • 例えば下図は正規分布からランダムに生成されたデータだが、1と2に相関があるように見える

f:id:taxa_program:20210117192304p:plain:w600

  • 検定の多重性を補正する方法
    • Bonferroni法
    • Holm法
      • これによって、データに見られる性質がどれだけ「たまたま」でないのかを正しく評価することができる
  • 探索的データ分析で見つかった特徴が、実際に存在するものかどうかを調べる確証的データ分析を追加で行えば、仮説が1つに定まるので、多重比較の問題は発生しない

f:id:taxa_program:20210117192404p:plain:w600

  • 3つ以上の比較をする際には、分散分析が有効
  • 偏相関で他の変数の効果を考慮することも方法の1つ

f:id:taxa_program:20210117192729p:plain:w600

  • より複雑な相関の構造を分析する手法として、因子分析があげられる。
    • 因子分析では、それぞれの変数を、少ない数の共通因子の和でうまく表現することを目指す
    • 共通因子とは、勉強熱心かどうか、語学と理数科目のどちらが得意なタイプか、といった抽象的な要因のこと

f:id:taxa_program:20210117192843p:plain:w600

  • より複雑な関係性を分析する手法として下記があげられる
    • フラフィカルモデリング
    • パス解析
    • 共分散構造分析
    • 構造方程式モデリング

各種手法の整理

  • 探索的な分析をする場合
    • 各種ペアの散布図および相関行列
      • 必要に応じて偏相関係数を計算して、特定の変数の影響を除くことも有効
    • 多くの変数を少ない変数で表現しなおすことで、本質的な特徴を見つけたい場合に有効なのが、因子分析、主成分分析、クラスタリング
      • 因子得点、主成分得点に変換することで、さらなる分析も可能
    • データのまとまりを見たい場合は、種々のクラスタリング手法を用いる。
      • 多次元尺度構成法などもある
  • 説明変数としての影響を見たい場合
    1. 目的変数も説明変数も両的変数の場合
      • 重回帰分析などを使用できる
    2. 目的変数がカテゴリで、説明変数が量的変数の場合
      • ロジスティック回帰
    3. 目的変数が量的変数で説明変数がカテゴリ
      • 分散分析や多重比較分析
      • 説明変数をダミー変数として、回帰分析を行うことも可能
    4. 目的変数も説明変数もカテゴリ
      • クロス集計

数理モデリングの要点

  • 数理モデリングは大きく分けて2つある
    • 理解思考型モデリング
      • データの背後に存在する現象のメカニズムを理解するために行われるモデル
    • 応用志向型モデリング
      • 予測やデータ生成などデータ活用を行うためのモデリング
  • 理解思考型モデリングでは、データが足りない状況などに応用が効く
    • 例えば、データの生成過程からボトムアップ的に分布を推定して、モデル化することができる
    • 一方で、妥当な仮説から導かれた論理を重視するので、家庭に含められない要因が大きな影響を与えているケースでは、パフォーマンスが低くなってしまうということもありえる

3部 データの解釈・活用に関する基礎知識

3部ではデータ分析の結果を解釈・応用する際に注意するべきポイントについてまとめられていました。
分析では、その手法や手続きそのものに注意が向きがちですが、本当に重要なのはその後、それをどう利用するかなので、データを正しく活用するためにも、迷った時に立ち返ってきたいと思える内容がまとめられていました。

データ分析の罠

  • 実数を見たら割合を疑え、割合を見たら実数を疑え
  • 変数Xが変数Yに影響を与えているかどうか、ということをデータ分析によって調べたい場合、得られるパターンは次の3つ。
    • 影響を与えていると考えられる
    • 影響を与えいないと考えられる
    • このデータからでは何とも言えない
      • この3つ目である「このデータからでは何とも言えない」を主張するのが結構難しい(悪いことではない)
  • 「結論が出せないのは、分析がうまくいっていないからでは?」という批判に耐える程度に、「分析のプロセスはベストを尽くした上で、それでもなんとも言えない」状況を作る必要がある
    • 特にEDAでは「まだ試していない分析法を用いると、何か特徴が見つかるかもしれない」という誘惑に駆られるが、このような場合は「このくらいの基本的な分析で出ない程度の特徴」ということで分析を打ち切ることも必要
      • 分析を打ち切る基準を明確に持っておくことが大切
  • 目的に応じた分析のデザインは大きく3つに分けられる
    f:id:taxa_program:20210117194303p:plain:w600

データ解釈の罠

  • データ分析の再現性を担保するのは一般的に難しい
    • 同じデータであっても、分析する人によって結果が異なることが多い。
  • データの再現性
    • たまたま仮説通りの結果が出たら良いが、仮説に合わない結果が出た場合は基本的に公開されないので、発表された結果だけしか見ないと第一種誤認が濃縮された状態になる
  • HARKing
    • 実験や分析を行った後に、その結果に沿うような仮説を立案し、あたかもその仮説を検証するためにデータを取得したかのように報告すること
      f:id:taxa_program:20210117194435p:plain:w600
  • 有意水準を下回るp値を得るために何度も検定を行うことをp-hakingと言う
    • p-hackingを避けるためのガイドライン
      1. データ取得を始める前に、どこまでデータをとるのかを決定し報告する
      2. 一つの条件につき、最低でも20の観測値を集める
      3. 収集した全ての変数について報告する
      4. データを取得した全ての実験条件を報告する
      5. もし観測値を取り除く場合は、それを取り除かなかった場合の分析結果も示す
      6. 分析で、ある変数の影響を取り除く操作(共変量の統制)を行った場合は、そうしなかった場合の結果も示す
  • Hillの基準
    • 因果関係を判定するための基準
      f:id:taxa_program:20210117194611p:plain:w600
  • 人間は本来、意味のないたまたま生じたパターンを敏感に選び取り、それに合致する理由付けを行う動物なので、データ解釈時に認知バイアスが生じることが多々ある
  • 利得と損失の非対称性
    • 数学的には同一の選択肢でも、利得と損失で感じ方が異なる
    • データ分析結果の受け取り手の解釈にも影響を与えるので、レポーティングなどでも注意する必要がある
      f:id:taxa_program:20210117194739p:plain:w600

データ活用の罠

  • フィードバックのあるシステム構築をすることが重要
    f:id:taxa_program:20210117194921p:plain:w600

最後に

本書は、帯にも記載されているように「データ取得・分析・解釈・活用の各段階で知っておくべき技術を網羅的に解説」の通りの内容でした。
これからデータ分析に関わる方、実際に業務でデータ分析を行っている方にとっても一読の価値があると思います。

個人的には、データにさまざまな偏りを生じさせる行動心理学の話や、各種分析の考え方、データの解釈における認知バイアスや数理モデリングのポイントあたりの話が網羅的かつ平易に記述されており、要所を掴むことができました。

気になった方は是非一度読んでみてはいかがでしょうか。