いわゆる回帰分析に代表される数理モデリングとその種類を説明していく。
目次
数理モデリング
数理モデリングの考え方
因果関係を定量化
「Xという要因→Yという結果」という関係を
$$Y=a+bX$$
で表す。
- X=説明変数(独立変数)
- Y=被説明変数(従属変数、目的変数)
いわゆる「回帰分析」である。
目的
- 因果関係とインパクトの大きさの特定
- 予測
モデリングの手続き
- モデル式の選択(単回帰、ロジット、…)
従属変数の特徴(分布の形状、ばらつき方)によって適切なモデルを選択する - パラメータの推定
さまざまな推定法がある(最尤法、最小二乗法) - そのモデルでいいか検証
- あてはまりのよさ(fit)
- 決定係数
- AIC
- 残差の評価(独立性、正規性、等分散性、線形性)
- 予測値 vs 残差
- 正規QQプロット
- 外れ値の評価
- てこ比
- Cookの距離
- バリデーション(検証用データで予測精度を見る)
- その他(Profit / Lossなど)
- あてはまりのよさ(fit)
- モデルを選択
ダメな場合、変数の出し入れや変数変換を試す
よく出てくる問題
- 変数が多すぎる→どう縮約するか
- 過学習⇔凡化性能
- sparse data(ゼロが多い隙間だらけのデータ)
線形回帰モデル
最もシンプルな回帰分析
$$y = a + b_1 x_1 + b_2 x_2 + \cdots + u$$
- $a$:説明変数によらない確定的な影響度
- $b$:説明変数の影響力の大きさ
→これらが回帰係数 - $u$:誤差項
推定法
最小二乗法
見るべきポイント
- 因果の意味
- 回帰係数(パラメータ)
- 決定係数:回帰式の説明力の大きさ
- そもそもモデルが妥当かどうか
- 残差(ばらつき、偏り)
- 多重共線性(説明変数間の相関)の有無
一般化線形モデル(GLM=Generalized Linear Model)
線形回帰の一般形。
線形回帰モデルは従属変数が正規分布という前提があるが、
さまざまな分布の従属変数に拡張した回帰の手法になる。
$$y = a + b_1 x_1 + b_2 x_2 + \cdots + u$$
$$g(y) = a + b_1 x_1 + b_2 x_2 + \cdots + u$$
- 正規分布
→線形回帰モデル - クラス分類
- ロジットモデル(ロジスティック回帰)
- プロビットモデル
多項ロジット/プロビット→ブランド選択
- カウントデータ
- ポアソン回帰
- 負の二項回帰
Lasso/Ridge/Elastic Net
ともすると変数が多くなり、凡化性能がなくなる。
そこで変数が増える(パラメータの絶対値の合計が大きくなる)につれて加算されるペナルティ項を推定時に加えることで、モデルが複雑になりすぎないようにする。
→正則化項つき線形モデル
線形モデルの推定時に項を加えるだけなので一般化線形モデルの中で使える。
手法
ペナルティ項の種類によって手法が異なる。
- Lasso: パラメータの絶対値の和
- Ridge: パラメータの二乗の和
- Elastic Net: LassoとRidgeの混合
http://d.hatena.ne.jp/isseing333/20110309/1299675311
生存時間解析
もともとは患者の死亡率や生存時間の分析手法
→「顧客で居続ける時間」といったCRMや貸し倒れリスクなどに応用可能
考え方
生存時間データとは?
- イベントの発生
イベントが起こるまでの時間 - 打ち切り
最後までイベントが発生しなかった、観察できなくなった
のセット(これらが最終的な従属変数となる)
実際には生存時間データから
- 生存関数(時刻tの時点で生きている確率): $S(t)$
- ハザード関数(瞬間死亡率): $h(t) = \cdots = -\frac{d \log S(t)}{dt}$
を推定する
手法
- 生存関数の推定→Kaplan-Meier法
観測データに基づいて生存関数を推定 - 独立変数の効果を推定→Coxの比例ハザードモデル
$$h(t | x1, x2, \cdots) = h_0(t) \exp(b_1 x_1 + b_2 x_2 + \cdots)$$
- ベースラインハザード×相対リスク(煙草を吸うと吸わない場合に比べてどの程度死にやすくなるか)
- ハザード比が時間に依存しない前提
パラメータの推定後、モデルの妥当性を検証する際には
- 残差分析(打ち切りがあるので難しい)
- 比例ハザード性
に気を付ける
なおCox回帰ではベースラインハザードはわからない!→だからKaplan-Meierが必要
時系列
時系列データとは
「一定の」期間ごとに計測されたデータ
計測された生のデータを原系列といい、トレンド、季節性、循環要因、ランダムなスパイクを含むことがある。
定常性
分析のためには、
時間が経っても(長い期間の中、分析対象としてどの期間をとっても)
平均やばらつきが変わらない=定常性
ことを前提としている時系列分析モデルが多い。そのため
- 平均が変化する
- ばらつきが変化する
- トレンドがある
- 周期性がある(季節変動など)
ものは極力これらを排除するよう、
- 対数変換
- 階差をとる(成長率、変化率をとる)
などによってデータを調整することになる。
たとえば株価などは実際の価格ではなく、リターン(価格の変化率)の系列で分析する。
- 定常かどうかの検定→単位根検定
- 時系列が非定常の場合、無関係の2系列間で回帰分析をしたとき、関係があるように見えてしまう(見せかけの回帰)
モデル
時系列のデータの性質によってさまざまなモデルがある。
- ARMA(定常、分散均一)
- ARIMAモデル(非定常)
季節変動を加味したモデルもあり - GARCHモデル(分散が時系列)
株価のリターンなど、実際には分散が均一でない - VARモデル(多変量)
主成分分析と因子分析
どちらも数多くの変数から少数の変数にまとめる手法。独立変数のみのモデル。
主成分分析(PCA=Principal Component Analysis)
数多くの変数を数少ない合成変数に集約する手法
(データ)→第1主成分+第2主成分+第3主成分+…
あくまで出てきた主成分に理論的な意味はない。手法が決まっており分析結果はユニーク
目的
情報の縮約
見るべき指標
- 固有値:その主成分の説明力(情報量)の大きさ
- 寄与率:その主成分が全体のどの程度の割合を説明しているか(0~100%)
因子分析(FA)
数多くの変数の背後に潜在的な因子があると想定して、その因子を探る手法
(データ)←第1因子+第2因子+第3因子+…
手法によって結果が変わる。意味を解釈しやすいようにアウトプットの形を変える。
手法
因子の抽出+回転
- 抽出
- 最尤法
- 最小二乗法
- 主成分法
- 主因子法
- 回転
- バリマックス
- プロマックス
目的
潜在因子(意味)の特定
見るべき指標
- 因子負荷量:各観測変数に対してその因子がどの程度の強さで影響を与えているか
- 寄与率:その因子が全体のどの程度の割合を説明しているか(0~100%)
その他発展的なモデリング
共分散構造分析
構造方程式モデリング(SEM=Structural Equation Modeling)ともいう
回帰+因子分析
- さまざまな観測変数、潜在変数の関係を分析
- (例)プランドジャパン
状態空間モデル
回帰+時系列
- 変数を増やしにくい(推定結果が不安定になる)
- (例) さまざまな集客施策の時間的影響も考慮したコンバージョン予測
階層ベイズモデル
パラメータを点推定するのではなく分布で推定する
- 一人一人のパラメータを分布で推定できるため、複雑な個人間異質性をモデルに組み込むことも可能。
- (例) POSデータの分析
推定はMCMC(マルコフ連鎖モンテカルロ法)
判別分析(クラス分類)
判別関数を作って分類する
実験計画法(コンジョイント分析)
バナーの比較
- レイアウト:3種類
- 背景色:3種類
- フォント:3種類
- コピー:3種類
→3×3×3×3=81通りのクリエイティブを作って試す?
(独立であるならば)
layout | bg | font | copy |
---|---|---|---|
center | green | gothic | A |
right | blue | gothic2 | A |
left | white | mincho | A |
right | white | gothic | B |
left | green | gothic2 | B |
center | blue | mincho | B |
left | blue | gothic | C |
center | white | gothic2 | C |
right | green | mincho | C |
9通りのバナーで可能
データの扱い
データ抽出、加工(クリーニング、コーディング)
ツール:Pentaho Data Integration(Kettle), Talend
直接データ加工スクリプトを書くこともあり。特にデータサイズが大きくなるとスクリプトのほうが高速
分析
- データを見る
- モデル構築
- パラメータ推定、fit(あてはまりのよさ)を見る、バリデーション→モデル選択、予測
ツール- 統計解析ツール:R, SPSS, SAS
- 機械学習:RapidMiner, Weka
- 特定の分析手法:AMOS, WinBUGS
- 直接プログラミングもあり
知見の活用
- レポーティング→意思決定
- (マーケティングオートメーションの)アルゴリズム実装
データ分析全般を眺める際の参考に
データ分析 の記事一覧