狠狠撸

狠狠撸Share a Scribd company logo
確率統計
-機械学習その前に-
伊津野 英克
hidetkatsu.izuno@gmail.com
Version 2.0.0
なぜ確率統計を学ぶのか
?システム開発に確率統計なんて使うの?
1. プロジェクトやログデータの分析
?必要になったときにトンチンカンな分析をしてしま
わないように最低限の理解は必要
2. 機械学習の基礎として
?機械学習と確率統計はベースが同じ
?線形回帰だって立派な機械学習のひとつ
2
確率統計?機械学習の違い
?確率統計:データを「説明」する手法
? 例:あるシステムは10人月で出来た。開発工数は一般的なレベルだろうか
? そのデータになる理由が知りたい(高い説明力)
?機械学習:データを「予測」する手法
? 例:あるシステムは10人月で出来た。別のシステムは何人月だろうか
? 未知のデータに対応できて欲しい(高い汎化性能)
3
データがあらわれた。どうする?
とはいえ、道具立てには重なるところが多い
データを要約する
4
平均値?中央値?最頻値
?データの要約値としては平均値がよく使われる
?正規分布するなら平均値≒中央値≒最頻値
?中央値=データを順番に並べて中央に位置する値
?正規分布しないものは中央値の方が実感に近いとされる
5
正規分布の例
(中央値と平均値と最頻値がほぼ同じ)
0
5
10
15
20
25
30
35
0 500 1000 1500 2000 2500 3000
割合(%)
資産額(万円)
保有金融資産額
最頻値=0
中央値=400 平均値=1078
0
1
2
3
4
5
6
7
8
150 155 160 165 170 175 180 185 190
人数割合(%)
身長
17歳男子身長
最頻値=170
中央値=169 平均値=171
非正規分布の例
(中央値と平均値と最頻値が全然違う)
なぜ正規分布はよく使われるのか
?ある値を中心にランダムなばらつきがある?正規分布
?中心極限定理:繰り返すと誤差が正規分布に近づいていく
?大数の法則:繰り返すと平均に近づいていく
?大成功した翌年に調子を崩す、大失敗した翌年は奮起した、
というようなケースは実際にはこれかもしれない
?情報がない場合には正規分布(や一様分布)が仮定される
?意図がない?偏りがない?ランダムな分布
?統計手法には正規分布が仮定されているものも多い
(例:回帰分析)
?実際には正規分布を仮定できない場合も多い。例えば、シス
テム開発の工数は上がりやすく、下がりにくいので誤差が正
規分布に従わない。
6
データの関係を調べる
7
相関分析
?相関係数:平均値から各点の乖離を足し合わせて、-1~1の範囲
に正規化したもの
? 1に近いほどプラス方向に強い関係
? -1に近いほどマイナス方向に強い関係
? 0は無相関
8
2変数の関係を簡単に分析できる
永岡 淳一 散布図と相関係数?回帰分析(http://www.cuc.ac.jp/~nagaoka/2011/ouyou/10/expr/index.html)より引用
相関が大きい=因果関係がある?
?高い相関係数のデータが見つかる?因果関係があるのでは?
9
「科学?宇宙技術への投資金額」と「自殺率」の関係を示したデータ
? 単なる偶然!
Spurious Correlations(http://www.tylervigen.com/spurious-correlations)より引用
相関が大きい=因果関係がある?
相関関係は因果関係を意味しない
?隠れた共通要因
? アイスクリームが売れると水死者が増える
? 「暑い夏」という共通要因
? 朝食を食べる子供は成績がいい
? 「良好な家庭環境」という共通要因
?逆の因果関係
? 会社への満足度が高いほど業績も好調
? 業績が好調な職場自体が高い満足度をもたらす
? 癌での死亡率が増加している!
? 他の病気で死ぬ人が減って長生きになったため
?選択バイアス
? サッカー場でスポーツ振興についてのアンケートを取る
? 母集団にすでに偏りがある
? サンプル数が少ない
? 一部の特徴あるサンプルに強い影響を受ける
10
回帰分析
?例えば、機能数と工数の間の関係を調べたい
?散布図を書いて線を引く ? (単)回帰分析
?誤差の2乗和が最小になるように線を動かす
11
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
0 200 400 600 800 1000
人時工数
機能数
機能数と工数の関係
0
50000
100000
150000
200000
250000
300000
350000
400000
450000
500000
0 200 400 600 800 1000
人時工数
機能数
機能数と工数の関係
「回帰」分析の語源
身長の高い親からは身長の高い子が生まれ、その逆も同様であることを示そうとしたら実際には
「平均に帰っていく」、すなわち「平均への回帰」が見られたことに由来するとのこと。
データは「ソフトウェア開発データ白書2016-2017」を加工したもの
回帰分析でわかること
?傾きと切片
? 結果=傾き?原因+切片
? 原因=説明変数、結果=目的変数、傾きは係数、切片は定数項と呼ばれる
? 先ほどの例だと「人時工数=97?機能数+25000 」
? 切片は常に0と仮定し原点を通る前提で求めることも出来る
傾きや切片はEXCELを使うと簡単に求められる。
?決定係数(R2)
? 当てはまりの良さを表す指標値。1に近いほど当てはまりはいい
? おおむね相関係数の2乗と捉えていい(厳密にはいろいろある)
? 先ほどの例だと R2 = 0.08 ? 当てはまりは良くない
決定係数もEXCELで簡単に求められる
?有意性(p値)
? 効果がないのに効果があるとしてしまっていないかを判断する指標値。小さいほど有
意性が高い。
? 一般に p値<0.05 以下で統計的有意であると呼ばれる(5%有意)
? 先ほどの例だと p値 =0.00000002 ? 有意
p値などを求める場合は、RやPythonを使う(EXCELでも計算できなくはない) 12
EXCELで回帰分析
?原因と結果の2つのデータ列を選択し、グラフ(散布図)を挿入
? 「グラフ要素を追加」から「近似曲線」?「線形」を追加
? 「近似曲線のグラフ設定」で式と決定係数を表示できる
13
回帰分析は一番簡単な
「機械学習」でもある
重回帰分析
?重回帰:複数の説明変数に対する回帰
? 基本的には単回帰と同じ考えを多次元に拡張しただけ
? 性別なども1/0で代替することで分析できる(ダミー変数)
?説明変数が複数になったことで問題も発生
? 説明変数が多すぎる ? 推定の自由度が上がってしまう
? ステップワイズ回帰、ラッソ回帰で説明変数を削減
? 説明変数同士が独立ではない ? 多重共線性にて推定性能が悪化
? 主成分回帰、部分最小二乗回帰、リッジ回帰で独立な形に変換
? 両方の問題に対応したい ? Elastic Net
?自由度調整済み決定係数
? 通常の決定係数は変数が増えると1に近づく性質がある
? 説明変数の数で正規化
14
結論を確認する
15
バイアス(偏り)
?Garbage In Garbage Out (GIGO)
?クズなデータからは、クズな結果しか得られない
16
選択バイアス 測定バイアス
母集団からサンプリングすると
きに生じる偏りのこと
? 標本抽出バイアス
? 自己選抜バイアス
? 脱落バイアス
? 生存(勝者)バイアス
? 所属バイアス
サンプルから得られる情報や情
報の受け手による偏りのこと
? 先入観バイアス
? 報告バイアス
? 測定バイアス
? 想起バイアス
? リードタイムバイアス
回帰分析にも前提がある
?前提を満たさないと、意味のない結論が出るだけ
?サンプル数が十分にある
? 少数のデータだと偏ったサンプルになっている可能性がある
?データの発生源に偏りがない
? 基準を設けて分割したり選び出したりすると、人工的な偏りが
生まれる
? 収集後だけでなく、データの収集時にも偏りが出ないように気
をつける必要がある
?データがすべて独立
? 独立=個々のデータには相互に関係がないということ
? 同じデータを水増しすると有意にできるが、独立ではないない
ので分析の意味がなくなる
? 時系列データも独立ではない(時間的自己相関)
17
検定(仮説検定)
?検定:分析結果が妥当か評価すること
?関係があるように見える ? 単なる偶然かも
?偽陽性(第一種の過誤)
? 関係がないのに、あるとしてしまう間違い
? p値はこの偽陽性を判定する検定を行った結果として得られる基準値
? 検定方法は想定する分布に応じて様々なものがある
? t 検定、カイ二乗検定、F検定、U検定、などなど
?偽陰性(第二種の過誤)
? 関係があるのに、ないとしてしまう間違い
? 偽陽性と偽陰性にはトレードオフがある。偽陽性を重視すると偽陰性
が発生する可能性が増す。
18データ収集にバイアスがないという前提での評価であることに注意!
有意である=因果関係がある?
?p値はよく使われるが完璧な指標ではない
?p値は扱いやすいので普及しているが、問題も多い
? アメリカ統計学会「統計的優位性とp値に関する声明」(2016)
? サンプル数を増やすと有意と判定されやすくなるという特徴がある
?有意である ? 効果が 0 ではないことがわかるだけ
? 効果の強さは何もわからない
? 有意であるが決定係数が低いなら、誤差程度の関係しかないとも言える
? 逆に有意ではない=因果関係がない、とも言えない
?有意水準 5% では、偽陽性を十分に排除できない
? 有意水準 0.5% に設定すべきという提言がなされている(2017)
? 心理学論文の半数は再現性に問題があるとするデータもある
19
じゃあ、どうすればいいの?
1. 他の方法を使う
? 効果量の信頼区間:統計学者おすすめの方式
? 効果量:サンプル数に依存せずに関係の強さを表すことができる指標
? 情報量基準:変数が少なく予測精度が高い方が良いとする指標
? AIC(赤池情報量基準)、BIC(ベイズ情報量規準)、WAIC、WBIC
? ベイズ統計を使う:仮説が正しい確率を直接的に計算できる
? いずれも p値ほど簡単に使えるものではない
2. 気にしない
? 論文書くならともかく、業務ならもっとカジュアルに使えばいい
? たいていの場合、因果関係があるかないかは自ずと明らかでは?
? データを眺めるだけでも気づきがある
? そもそも、未知の要因は無数にあるため、因果関係を機械的な方法だけで
判定するのは無理がある
? とはいえ、因果関係がある! と決めつける前に「そうでない可能性」
がないかは検討したほうがいい
? 特に時系列データには注意が必要(後述) 20
モデルを拡張する
21
統計モデリング
?いつでも(普通の)回帰分析の枠にはまるとは限らない
? 問題に合わせて統計モデルを作って分析したい
?統計の構成要素
?モデルの形 ? 普通の回帰なら「一次方程式」
?誤差分布の形 ? 普通の回帰なら「正規分布」
?推定の方法 ? 普通の回帰なら「最小二乗法」
? モデルは「??関数」、誤差分布は「??分布」に、など問題に合わせ
て前提を変えたり緩めたりしたい
? 推定の方法は、モデルと誤差分布の形でだいたい決まる
22
モデル
説明
変数
係数
目的
変数
入力
データ
出力
データ
サンプル サンプル
推定アルゴリズム
統計モデルの種類
(一般)線形モデル (LM)
? 通常の単回帰/重回帰分析のモデルのこと
? 誤差分布は正規分布を仮定
一般化線形モデル (GLM)
? ロジスティック回帰:誤差がニ項分布。影響度合い
(オッズ比)を求めることができる。クラス分類手法とし
てもよく使われる
? ポアソン回帰:誤差がポアソン分布。影響割合(リスク
比)を求めることができる
一般化線形混合モデル (GLMM)
? 個体差、場所差といった、データに共通しない違い
(変量効果)を考慮できるよう拡張されたモデル
? 階層線形モデル (HLM)、マルチレベルモデル (ML)
とも呼ばれる
正規表現以外の誤差
分布を使いたい
23
グループごとに相関が
ある対象を分析したい
? 次の3モデルが基本。下に行くほど前提条件が緩くなり、その分推定が難しくなる
回帰分析の手順
?手法は様々でも、手順自体は同じ
1. モデルの選定
? データを説明するのに適したモデルを選んだり作ったりします
2. 係数の推定
? モデルとデータの差などペナルティが最小になるように係数を最適化
(=最小値を探索)します
? 推定の方法としては最小二乗法、最尤推定法、ベイズ推定などがあります
3. モデルの評価
? p値のようになんからの基準で評価する方法と、他のモデルより簡単で良い
結果が得られるかで評価する方法の2つがあります
? 後者の場合は、AIC(赤池情報量基準)などを使用します
24
係数
ペナルティ
その他の回帰分析手法
?ロバスト回帰
? 回帰分析は外れ値の影響を受けやすい
? 外れ度合いに応じて説明変数に重みを付ける
?分位点回帰
? 25%分位点、50%分位点、95%分位点など分布範囲ごとにモデルを導出できる
? 分散の大きいシステム開発のデータを分析するのに向いている
?機械学習を使った回帰(非線形回帰)
? 機械学習で使われる SVM やニューラルネットを使ってモデルを推定
? 非線形回帰は「分析」よりも「予測」に重点が置かれていることが多い
? 非線形関数だと結果の解釈が難しい
25
時系列の関係を調べる
26
時系列分析
?時系列データの特徴=強い自己相関
?ある時点のデータは過去のデータに依存している
?時系列データならではの特徴も多い
? トレンド(長期的な趨勢)がある
? 周期的変動(月の日数や季節ごとの気温の影響など)
? 外部要因(制度変更など)の影響が残る
? ランダムなノイズの影響が蓄積される(ランダムウォーク)
27
トレンド 周期的変動 外部要因 ランダムショック
ランダムウォーク
?ランダムな動きが蓄積すると意味ありげなデータになる
? ランダムウォーク同士で相関を取ると、存在しないはずの強い関係性が得
られてしまう(見せかけの回帰)
? 例えば、為替レートと適当なランダムウォークの相関を取ると、0.67 とい
う高い相関係数が出てしまう
28
拡販費と売上の推移といった時系列データを
考えなしに分析すると間違った結論を導いてしまう可能性あり
データの定常性
データが定常でなければ正しく分析できない
?定常:一定範囲をばらつくデータであること
? 定常でないデータは過去との差分を取って定常化する
? ただし、差分をとると本来の関係が見えなくなるので、適用する
のは非定常のデータ限定
? 「共和分」と呼ばれる足し合わせると定常になるような長期的な
関係性がある場合には、差分を取るだけではダメ
?単位根検定
? データが定常かどうか判定する検定手法
? ランダムウォークと区別できるか調べる
?共和分検定
? 共和分があるか判定する検定手法
? 共和分がある場合は、ベクトル誤差修正モデルを使う
29
ARIMAモデル
ARIMA = AR+I+MA
?時系列分析に使用される代表的なモデル
?AR:自己回帰
? データはその過去から計算できる
?I:和分
? データは前期からの差分を足し合わせて計算される
?MA:移動平均
? データは過去のランダムノイズの蓄積に影響される
?ARIMAの拡張
?SARIMA:周期性を追加可能に
?ARIMAX:外生変数を追加可能に
30
VARモデル
VAR = ベクトル(V)自己回帰(AR)
?時系列の多変数(=ベクトル)を同時に分析す
る場合に使うモデル
?経済計量分析でよく利用される
?VARIMAモデル(=ARIMAモデルのベクトル版)もあ
るが、一部の係数が一意に決まらないなど実務上の
問題があり、ほとんど使われないらしい
?グレンジャー因果性検定
?VARモデル変数間の因果関係を推定する手法
31
一般化加法モデル(GAM)
?線形関数ではなく、非線形関数を使い曲線フィッティングを行う
? 平滑化スプライン関数など
? 交差検証を使って良い予測をする関数を見つけ出す
? データの抜けや突然の変化にも強い
?どちらかと言うと機械学習に近い方法論
? 「分析」ではなく「予測」に重点が置かれている
? Facebook 社の Prophet はこのモデルをベースにしているらしい
32Prophet サイト(https://facebook.github.io/prophet/docs/quick_start.html)より引用
予測
状態空間モデル (SSM)
?モデルを「状態モデル」と「観測モデル」に分ける
? 状態モデル:真の状態を表現したモデル
? 観測モデル:実際に観測される値を表現したモデル
?トレンドや周期的変動も観測誤差と考える
? 不要な成分は観測誤差として統一的に扱えるため分析の自由度が高い
? 推定はフィルタを使う方法とMCMCを使う方法がある
? 逐次処理が必要な場合はフィルタ(カルマンフィルタなど)
? 一括処理できる場合はMCMC
33
時刻
真の
状態
真の
状態
真の
状態
真の
状態
観測値 観測値 観測値 観測値
ベイズモデリング
?従来の統計手法の代わりにベイズ推定を使って分析する手法
? ベイズ推定:事前分布と実際のデータから事後分布を推定する手法
? 体系が違うだけで、統計モデル自体は既存のもの
? 一般線形モデルでも状態空間モデルでも
? どんなモデルでも同じ手法で対応できるので分析の自由度が上がる
? 係数が定数ではなく確率変数になる
? 係数の値が確率分布として求まるため、結果にどれくらい自信があるの
かがわかる(裾が狭い=確信度が高い)
? 従来の統計モデルに比べて結果の解釈が行いやすい
34
事前分布 実際のデータ 事後分布
A B
参考文献
? Takashi J. OZAKI「統計学と機械学習の違い」はどう論じたら良いのか」など
? http://tjo.hatenablog.com/entry/2015/09/17/190000
? https://tjo.hatenablog.com/entry/2013/04/23/190417
? 佐藤俊夫「回帰分析の語源」
? http://satotoshio.net/blog/?p=1264
? 林岳彦「因果関係がないのに相関関係があらわれる4つのケースをまとめてみたよ」など
? http://takehiko-i-hayashi.hatenablog.com/entry/20130418/1366232166
? http://takehiko-i-hayashi.hatenablog.com/entry/20130902/1378119705
? アレックス?ラインハート「ダメな統計学」
? http://id.fnshr.info/2014/12/17/stats-done-wrong-toc/
? himaginary「新発見の統計的有意性のp値の閾値は5%から0.5%に下げよ」
? http://d.hatena.ne.jp/himaginary/20170829/Redefine_Statistical_Significance
? 久保拓弥「GLMM の紹介 - GLM→GLMM→階層ベイズモデル」
? http://hosho.ees.hokudai.ac.jp/~kubo/stat/2015/jssp/kubo2015jssp.pdf
? Logics_of_Blue「時系列データへの回帰分析」
? https://logics-of-blue.com/time-series-regression/
? Hiroshi Shimizu「MCMCでマルチレベルモデル」
? /simizu706/mcmc-35634309
35

More Related Content

確率統計-機械学習その前に v2.0