DataRobotのブログ記事統計解析と機械学習:要因分析からの考察(Part 1,
Part 2)を読んで参考になった点のメモ。
(記事内の単語は、自分が分かりやすいように言い換えてます)
はじめに
機械学習にとって要因分析は、予測や分類を行うのに比べてレベルの高い課題。
その理由は、機械学習においては説明変数と目的変数の相関関係は明らかにできるが、因果関係があるか否かの検証においてはそれだけでは不十分であるため。
因果関係を明らかにするアプローチとして要因実験が挙げられるが、これは因子の数その値が増えた時に検討数が爆発的に増えてしまう問題がある。
(要因実験:実験計画法などで計画された実験で得られたデータに対して分散分析を行い、定量的に因果関係を明らかにする)
このDataRobotの記事では、「観測データの解析によって要因分析を行うケース」を下記5つの切り口で考察している。
- ステップワイズ法のように統計的仮説検定を繰り返す変数選択手法のリスク
- 変数選択プロセスにおけるパーティショニング手法の有効性
- 伝統的な多変量解析手法によるアプローチと機械学習を用いたアプローチの適切な使い分け
- 機械学習を用いた変数選択アプローチの限界と、インサイトの安定性・再現性
- 要因分析におけるドメイン知識の重要性
伝統的な多変量解析手法による変数選択のリスク
要因実験のアプローチでは攻略が難しいケースは以下の二つ
- 倫理的観点あるいは実験コストの観点から実験の実施が困難なケース
- ドメイン知識の蓄積が少なく、多数の要因候補から何が本当に重要な要因なのかを絞り込むことが困難なケース
このようなケースでは、観察データを解析するアプローチをとるしかないが、線形重回帰などの多変量解析手法を安易に使ってしまうと以下の間違いを犯してしまうリスクがある。
- 統計モデルの濫用(Abuse)問題:相関関係を因果関係としてしまう過ち
- 多重検定問題:変数選択(特徴選択)を行なって「強い関係性を持つ少数の説明変数」に絞り込む際に犯す過ち
多重検定問題について
例えば、「大量の因子(変数)候補があり、その中からいくつかの変数をピックアップしモデル作成→検定」を実施する場合、使用する変数を変えて何度も検定を行なってしまうと、その帰無仮説の棄却判断を行う指標(p値)を誤って下回ってしまい、本来は有意でないモデルが有意であると判断されてしまう。(言い換えれば有意でない変数が選ばれてしまう)
これのような間違いは第一種の過誤と呼ばれる。(このような多重検定問題を避けるために、Bonferroni検定などが提案されている)
変数選択プロセスにおけるパーティショニング手法の有効性
沢山の説明変数から重要なものを絞り込む場合には、下記のアプローチが解析結果を安定させるために有効。
- 外部データ法:外部データを使って同様の結果が得られるか(同じ説明変数が選択されるか)検証する。
- データスプリット法:データを2つに分割し、片方のデータで得られた結果が、もう片方のデータを使用した場合にも得られるか検証する。
- ブートストラップ法:コンピュータ上で「よく似ているけど別の研究のデータ」を仮想でいくつも作成し、それらのデータを使った場合にも同じ結果が得られえるか検証する。
上記の方法は、機械学習を使った解析でのホールドアウト法に相当し、機械学習を使った解析では以下の手順になる。
- 元のデータを訓練、テストデータにに分割し、訓練データを使ってクロスバリデーションによるハイパーパラメータのチューニングを行う。
- 1.によってを汎化性能が最大化されるようなモデルを決定する。
- 決定したモデルから、目的変数との関係性が強い重要な変数を解析的に明らかにする。
多変量解析手法によるアプローチと機械学習的アプローチの使い分け
分析対象となる説明変数(とデータ数)によって、従来の統計解析手法(記述的な手法や伝統的な多変量解析)と機械学習を使い分けるのが望ましい。
例えば、要因分析の場合には...
- 計算リソースと計算コストの観点からも、ドメイン知識に基づいて有力な説明変数を洗い出しまずは少ない説明変数で仮説を立てて検証するアプローチがの方が良く、
- まずは、ドメイン知識から選択した1つあるいは少数の説明変数と目的変数の間の関係性を視覚化したり、統計的検定によってチェックすることが有効。
- このようにして得られた知見を活かして「計画的に取られた少数のデータ」の方が「無計画に取られた大量のデータ」よりも有用な情報を含む場合が多い。
また、たとえ機械学習を使って要因分析を行うときにも、特性要因図やマインドマップを活用してドメイン知識整理を整理し、要因から結果にいたるメカニズムについて仮説を立てておくことが重要。
「回帰」や「数値の予測」が目的の際の分析手法
説明変数の数 | 解析手法 |
---|---|
1~2個 | ・散布図 + 回帰線 ・相関分析 |
10個以下 | ・線形回帰モデル ・一般化線形モデル(ロジスティック回帰など) ・数量化1類 |
11個以上 | ・正則化回帰(L1,L2, Elastic Net) ・非線形回帰 ・アンサンブル学習(Bagging, Boosting) ・サポートベクター回帰 ・ニューラルネットワーク ・一般化加法モデル |
少数データにおける課題と対策
データ数が少なかったり説明変数の数よりも少ない(いわゆる横長データ)場合には、 目的変数と強い関係性を持つとして選択される説明変数とその序列がパーティショニング条件によって変わるため、解析結果の再現性が担保できなくなる。
このような問題を回避する(解析結果の頑強性を高める)ためには、以下のアプローチが有効
- アンサンブルモデルを利用する(多様な機械学習アルゴリズムから作られたモデル単体を様々な方法で組み合わせる)
- ランダムにパーティショニングを変えたデータを用いて構築した大量のモデルから、特徴量のインパクトを見積もる
このようなアプローチで安定して重要な説明変数リストがわかれば、ドメイン知識から原因に気づき、対策アクションを取れる場合も多い。