O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
StanとRでベイズ統計モデリング
読書会
Chapter 7(7.6-7.9)
回帰分析の悩みどころ
~統計の力で歌うまになりたい~
Osaka.Stan #4
(2017/4/29)
自己紹介
紀ノ定 保礼(Kinosada Yasunori)
− 静岡理工科大学 情報学部 講師
− 研究領域:認知心理学・交通心理学
− 趣味:カラオケ
今回の発表について
本書のデータは使用していません
‒ 発表者自身の歌唱記録データ
‒ 注意点
- 実際は同一人物(発表者)の時系列データですが,
例示のため,全データ点が独立とみなして回帰分析したりして
います
‒ 勉強中のため,間違いや「こ...
4章の内容と関連あり
←併せて
ご参照ください
7.6
説明変数が多すぎる
説明変数が多い場合の問題
• うまく推定できない
– 7.4多重共線性の問題など
• 解釈が難しい
Y
X1
X2
X3
X98
X99
X100
…
カラオケの点数を決めるパラメータ
この曲は,100点をとるまでに26回挑戦した
→ 重回帰分析(的なもの)で点数を予測してみる
(説明変数を行列形式でまとめる記法は
Stan超初心者講習スライドを参照)
karaoke.stanとして保存
• 音程
• 安定性
• 抑揚
• ロングトーン
…が影響しそう
(定石と合っている)
変数間の情報を活用したモデリングも
可能
• 音程
• 安定性
• 抑揚
• しゃくり
• こぶし
• フォール
• ロングトーン
• ビブラート
• ビブラート秒
• ビブラート回数
トレードオフ
ビブを増やすと,
安定性とロング
トーンの減...
変数間の情報が乏しい場合
~推定前の対処~
対処①:偏りの大きい説明変数を除く
− 推定がうまくいかないと予想されるため
対処②:類似度の高い説明変数をまとめる
− 例:階層的クラスタリング
変数間の情報が乏しい場合
~推定前の対処~
対処③:データの次元を減らして説明変数とする
− 例:主成分分析
変数間の情報が乏しい場合
~推定前の対処~
Bayesian Lasso
− 説明変数の係数𝛽 𝑘に対して,
二重指数分布(ラプラス分布)を事前分布に設定
• 𝜇 = 0を中心に尖った分布(本書6.16参照)
• そのようなペナルティを与えても生き残る(係数が0でない)
変数は予測に寄与...
事前分布を
加筆
説明変数は標準化しておく
Pointは事後平均,エラーバーは95%確信区間
このあたりから
変数選択が始まりそう
7.7
説明変数にノイズを含む
背後では厳密な数値が得られているはずだが,ユーザには
分からないので,見た目で点数を推測して,0~10点で入力
→ ±1点程度の誤差があると仮定
点数
真の
ビブラート
得点見た目で推測した
ビブラート得点
まずはノイズを仮定せずに
ビブラート得点で点数を予測
データ数
見た目で推測したビブラート得点
点数
4章の単回帰と同じ
ビブラート得点が1点上がると,総合得点が約2点上昇する
真のビブラート得点で
点数を予測(ノイズの仮定有)
手元のビブラート得点が,
標準偏差1の正規分布から得られた
と仮定して真の得点を推定
その推定値を用いて,
真のビブラート得点の影響を推定
ノイズを仮定すると,係数も誤差も小さくなる…
あと,分布の形がいびつ…
おかしいな
テキストの例
ノイズを仮定しても,係数には影響しないはず
model4-5.stan(ノイズの仮定無)
model7-6.stan(ノイズの仮定有)
広島大学・平川先生による,仮想データを用いた回帰
ノイズの仮定有
ノイズの仮定無
やはり係数にはあまり影響しない…
データをよく見てみる(今更)
元々の説明変数の標準偏差を
超えるノイズを仮定していた
超えないように調整
↓
7.8
打ち切り
スコアラーあるある
見た瞬間に「あーーーもう! 次!」とか言って消す
→ 正確な点数が記憶されない(記録はされるけど)
今回は96点未満は
正確な総合得点が
不明だとする
3/26試行で
“<96”
打ち切りを含む点数の
生成メカニズムを知りたい
対策①:<96 となっている値を,96で置換
ただし,平均値と標準偏差に
バイアスがかかる(中略)
打ち切りを含む点数の
生成メカニズムを知りたい
対策②:打ち切りしない/する場合で,異なる
メカニズムを考える
– 真の平均値𝜇に,測定誤差などのノイズが加わって
潜在的な測定値yが生成される
- 𝑦が検出可能な範囲内にあれば,𝑦が得られる
-...
下限打切の場合(left-censored)
Y n ~ 𝑁𝑜𝑟𝑚𝑎𝑙(𝜇, 𝜎 𝑌)
y n ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇, 𝜎 𝑌 ただし 𝑦 𝑛 < L
𝑛 = 1, … , 𝑁𝑜𝑏𝑠
𝑛 = 1, … , 𝑁𝑐𝑒𝑛𝑠実際には観測されず
推定する...
パラメータを推定するには尤度の計算が必要
– 打ち切りしない測定の尤度
– 打ち切りする場合の尤度(Lは打ち切りの閾値)
𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 𝜇, 𝜎 𝑌)
𝑦 < 𝐿 の確率
𝑃𝑟𝑜𝑏 𝑦 < 𝐿 = ‫׬‬−∞
𝐿
𝑁𝑜𝑟𝑚𝑎𝑙 𝑦 𝜇, 𝜎...
Stanマニュアルp475より
Stanにおける尤度の計算といえば,target+記法(4.3節参照)
ただしtarget+記法では,対数尤度を足し合わせている
まず,観測されたデータを用いて
𝜇と𝜎が推定され,対数尤度を計算
↓
推定した𝜇と𝜎により推測される
分布の形から,𝑃𝑟𝑜𝑏 𝑦 < 𝐿 を計算
真の点数を用いた場合
<96を96に置換した場合
上限打切の場合は?(right-censored)
LIVE DAM STADIUMでは
(総合)点数 = 素点 + ボーナス点 だが…
素点98.591 + ボーナス点1.409 = ぴったり100点
そんなことある?!
他の100点を取った曲を見ても…
素点と本来のボーナス点の
合計が100点を超える場合は,
総合得点が100点になるように
ボーナス点が調整される
真の歌唱力を知りたい
今回は,99点以上を打ち切りとする
– 100点を取ったら新しい曲に移っているので,
どの曲も100点は1回しか出ていないため
8/26試行で“>99”
Stanマニュアルp183より
Stanマニュアルp183より
今回は初期値を変えないと推定できなかった
(デフォルトでは[-2, 2]の一様分布から初期値が生成されるため,
今回のような上限打切の状況には適さなかった??)
7.9
外れ値
ちょうどいいデータがあったので,違う曲で例示
‒ かなり難しい曲だったので,11回挑戦したきり保留中
‒ 抑揚と点数の関係に注目
その他のパラメータ(音程)が
低かったことが主な原因だが,
単回帰ではそれが分からない
外れ値への対処
• 原因が明確で分析に不適な場合(例:歌唱中に中断)
‒ 当該データの修正や削除
• 経験的にあり得る場合(例:スランプによる低得点)
1. 本当の力はこんなもんじゃない,と,除外
2. 稀に外れ値が出ることが分かっているので,...
ノイズに正規分布を仮定したモデル式(単回帰)
– 𝑌 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝑎 + 𝑏𝑋 𝑛 , 𝜎 𝑛 = 1, 2, … , 𝑁
点数
model7-8.stan
予測分布を
描くために
正規分布に
従う乱数を生成
抑揚
点数
コーシー分布を仮定したモデル式
– 𝑌 𝑛 ~ 𝐶𝑎𝑢𝑐ℎ𝑦 𝑎 + 𝑏𝑋 𝑛 , 𝜎 𝑛 = 1, 2, … , 𝑁
予測分布を
描くために
コーシー分布に
従う乱数を生成
model7-9.stan
抑揚
ノイズに正規分布を仮定した場合
→ 外れ値に引っ張られて予測分布が広く,
95%予測区間内に外れ値が入っている
ノイズにコーシー分布を仮定した場合
→ 外れ値以外のデータに沿った傾き
外れ値が95%予測区間の外にある
ちなみにstudentのt分布の場合は
自由度𝜈 = 1ならコーシー分布と一致
𝜈 = ∞なら正規分布と一致
ノイズにt分布を仮定した場合(今回は𝜈=2)
→ コーシー分布とほぼ同じ結果だが,
若干傾きが小さく予測分布が広い
ノイズにコーシー分布を仮定した場合
→ 外れ値以外のデータに沿った傾き
𝜈=2のt分布よりも予測分布が狭い
自由度は非負(実質1以上)と考えられるので
下限を指定
自由度の事前分布
自由度𝒗も推定してみる
外れ値の数が多い場合
(例:全体の5%)
Stanコードの書き方 中級編より
https://www.slideshare.net/simizu706/stan-64926504
11章へ続く…
最後に
カラオケのモデリングは奥が深い…
(80点,90点を境に,関数形が変わるらしい…)
http://www.hnagata.net/archives/836
一緒にカラオケに行ってくれるデータを取ってくれる方,募集中
StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~
Próximos SlideShares
Carregando em…5
×

StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~

2.665 visualizações

Publicada em

2017/4/29に行われた,StanとRでベイズ統計モデリングに関する読書会(Osaka.stan)第4回における,第7章の発表資料です

Publicada em: Dados e análise
  • Seja o primeiro a comentar

StanとRでベイズ統計モデリング読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~

  1. 1. StanとRでベイズ統計モデリング 読書会 Chapter 7(7.6-7.9) 回帰分析の悩みどころ ~統計の力で歌うまになりたい~ Osaka.Stan #4 (2017/4/29)
  2. 2. 自己紹介 紀ノ定 保礼(Kinosada Yasunori) − 静岡理工科大学 情報学部 講師 − 研究領域:認知心理学・交通心理学 − 趣味:カラオケ
  3. 3. 今回の発表について 本書のデータは使用していません ‒ 発表者自身の歌唱記録データ ‒ 注意点 - 実際は同一人物(発表者)の時系列データですが, 例示のため,全データ点が独立とみなして回帰分析したりして います ‒ 勉強中のため,間違いや「こうすればもっと面白い」 という点があれば,ぜひご指摘ください
  4. 4. 4章の内容と関連あり ←併せて ご参照ください
  5. 5. 7.6 説明変数が多すぎる
  6. 6. 説明変数が多い場合の問題 • うまく推定できない – 7.4多重共線性の問題など • 解釈が難しい Y X1 X2 X3 X98 X99 X100 …
  7. 7. カラオケの点数を決めるパラメータ この曲は,100点をとるまでに26回挑戦した → 重回帰分析(的なもの)で点数を予測してみる
  8. 8. (説明変数を行列形式でまとめる記法は Stan超初心者講習スライドを参照) karaoke.stanとして保存
  9. 9. • 音程 • 安定性 • 抑揚 • ロングトーン …が影響しそう (定石と合っている)
  10. 10. 変数間の情報を活用したモデリングも 可能 • 音程 • 安定性 • 抑揚 • しゃくり • こぶし • フォール • ロングトーン • ビブラート • ビブラート秒 • ビブラート回数 トレードオフ ビブを増やすと, 安定性とロング トーンの減点が 減りやすい 上手くしゃくらないと 音程が下がる ※諸説あり
  11. 11. 変数間の情報が乏しい場合 ~推定前の対処~ 対処①:偏りの大きい説明変数を除く − 推定がうまくいかないと予想されるため
  12. 12. 対処②:類似度の高い説明変数をまとめる − 例:階層的クラスタリング 変数間の情報が乏しい場合 ~推定前の対処~
  13. 13. 対処③:データの次元を減らして説明変数とする − 例:主成分分析 変数間の情報が乏しい場合 ~推定前の対処~
  14. 14. Bayesian Lasso − 説明変数の係数𝛽 𝑘に対して, 二重指数分布(ラプラス分布)を事前分布に設定 • 𝜇 = 0を中心に尖った分布(本書6.16参照) • そのようなペナルティを与えても生き残る(係数が0でない) 変数は予測に寄与 変数間の情報が乏しい場合 ~推定中の対処~ ← 尖らせるほど, きつい制約になる
  15. 15. 事前分布を 加筆 説明変数は標準化しておく
  16. 16. Pointは事後平均,エラーバーは95%確信区間 このあたりから 変数選択が始まりそう
  17. 17. 7.7 説明変数にノイズを含む
  18. 18. 背後では厳密な数値が得られているはずだが,ユーザには 分からないので,見た目で点数を推測して,0~10点で入力 → ±1点程度の誤差があると仮定 点数 真の ビブラート 得点見た目で推測した ビブラート得点
  19. 19. まずはノイズを仮定せずに ビブラート得点で点数を予測 データ数 見た目で推測したビブラート得点 点数 4章の単回帰と同じ
  20. 20. ビブラート得点が1点上がると,総合得点が約2点上昇する
  21. 21. 真のビブラート得点で 点数を予測(ノイズの仮定有) 手元のビブラート得点が, 標準偏差1の正規分布から得られた と仮定して真の得点を推定 その推定値を用いて, 真のビブラート得点の影響を推定
  22. 22. ノイズを仮定すると,係数も誤差も小さくなる… あと,分布の形がいびつ…
  23. 23. おかしいな テキストの例 ノイズを仮定しても,係数には影響しないはず model4-5.stan(ノイズの仮定無) model7-6.stan(ノイズの仮定有)
  24. 24. 広島大学・平川先生による,仮想データを用いた回帰 ノイズの仮定有 ノイズの仮定無 やはり係数にはあまり影響しない…
  25. 25. データをよく見てみる(今更) 元々の説明変数の標準偏差を 超えるノイズを仮定していた 超えないように調整 ↓
  26. 26. 7.8 打ち切り
  27. 27. スコアラーあるある 見た瞬間に「あーーーもう! 次!」とか言って消す → 正確な点数が記憶されない(記録はされるけど)
  28. 28. 今回は96点未満は 正確な総合得点が 不明だとする 3/26試行で “<96”
  29. 29. 打ち切りを含む点数の 生成メカニズムを知りたい 対策①:<96 となっている値を,96で置換 ただし,平均値と標準偏差に バイアスがかかる(中略)
  30. 30. 打ち切りを含む点数の 生成メカニズムを知りたい 対策②:打ち切りしない/する場合で,異なる メカニズムを考える – 真の平均値𝜇に,測定誤差などのノイズが加わって 潜在的な測定値yが生成される - 𝑦が検出可能な範囲内にあれば,𝑦が得られる - 𝑦が検出可能な閾値を超えたら,打ち切られた値が 得られる
  31. 31. 下限打切の場合(left-censored) Y n ~ 𝑁𝑜𝑟𝑚𝑎𝑙(𝜇, 𝜎 𝑌) y n ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝜇, 𝜎 𝑌 ただし 𝑦 𝑛 < L 𝑛 = 1, … , 𝑁𝑜𝑏𝑠 𝑛 = 1, … , 𝑁𝑐𝑒𝑛𝑠実際には観測されず 推定するので小文字 ・打ち切りしない測定の場合 ・打ち切りする測定の場合 例:96点以下は正確な点数を覚えていない 打ち切りの閾値
  32. 32. パラメータを推定するには尤度の計算が必要 – 打ち切りしない測定の尤度 – 打ち切りする場合の尤度(Lは打ち切りの閾値) 𝑁𝑜𝑟𝑚𝑎𝑙 𝑌 𝜇, 𝜎 𝑌) 𝑦 < 𝐿 の確率 𝑃𝑟𝑜𝑏 𝑦 < 𝐿 = ‫׬‬−∞ 𝐿 𝑁𝑜𝑟𝑚𝑎𝑙 𝑦 𝜇, 𝜎 𝛾) = ‫׬‬−∞ 𝐿 1 2𝜋𝜎 exp − 1 2 𝑦−𝜇 𝜎 2 𝑑𝑦 = න −∞ 𝐿−𝜇 𝜎 1 2𝜋 exp − 1 2 𝑧2 𝑑𝑧 = න −∞ 𝐿−𝜇 𝜎 𝜑(𝑧)𝑑𝑧 = Φ 𝐿 − 𝜇 𝜎 標準正規分布の 確率密度関数
  33. 33. Stanマニュアルp475より Stanにおける尤度の計算といえば,target+記法(4.3節参照) ただしtarget+記法では,対数尤度を足し合わせている
  34. 34. まず,観測されたデータを用いて 𝜇と𝜎が推定され,対数尤度を計算 ↓ 推定した𝜇と𝜎により推測される 分布の形から,𝑃𝑟𝑜𝑏 𝑦 < 𝐿 を計算
  35. 35. 真の点数を用いた場合 <96を96に置換した場合
  36. 36. 上限打切の場合は?(right-censored) LIVE DAM STADIUMでは (総合)点数 = 素点 + ボーナス点 だが… 素点98.591 + ボーナス点1.409 = ぴったり100点 そんなことある?!
  37. 37. 他の100点を取った曲を見ても… 素点と本来のボーナス点の 合計が100点を超える場合は, 総合得点が100点になるように ボーナス点が調整される
  38. 38. 真の歌唱力を知りたい 今回は,99点以上を打ち切りとする – 100点を取ったら新しい曲に移っているので, どの曲も100点は1回しか出ていないため 8/26試行で“>99”
  39. 39. Stanマニュアルp183より
  40. 40. Stanマニュアルp183より
  41. 41. 今回は初期値を変えないと推定できなかった (デフォルトでは[-2, 2]の一様分布から初期値が生成されるため, 今回のような上限打切の状況には適さなかった??)
  42. 42. 7.9 外れ値
  43. 43. ちょうどいいデータがあったので,違う曲で例示 ‒ かなり難しい曲だったので,11回挑戦したきり保留中 ‒ 抑揚と点数の関係に注目
  44. 44. その他のパラメータ(音程)が 低かったことが主な原因だが, 単回帰ではそれが分からない
  45. 45. 外れ値への対処 • 原因が明確で分析に不適な場合(例:歌唱中に中断) ‒ 当該データの修正や削除 • 経験的にあり得る場合(例:スランプによる低得点) 1. 本当の力はこんなもんじゃない,と,除外 2. 稀に外れ値が出ることが分かっているので, そのようなメカニズムを仮定し,外れ値を含めて解析 - 裾の長いコーシー分布 - Studentのt分布
  46. 46. ノイズに正規分布を仮定したモデル式(単回帰) – 𝑌 𝑛 ~ 𝑁𝑜𝑟𝑚𝑎𝑙 𝑎 + 𝑏𝑋 𝑛 , 𝜎 𝑛 = 1, 2, … , 𝑁 点数 model7-8.stan 予測分布を 描くために 正規分布に 従う乱数を生成 抑揚
  47. 47. 点数 コーシー分布を仮定したモデル式 – 𝑌 𝑛 ~ 𝐶𝑎𝑢𝑐ℎ𝑦 𝑎 + 𝑏𝑋 𝑛 , 𝜎 𝑛 = 1, 2, … , 𝑁 予測分布を 描くために コーシー分布に 従う乱数を生成 model7-9.stan 抑揚
  48. 48. ノイズに正規分布を仮定した場合 → 外れ値に引っ張られて予測分布が広く, 95%予測区間内に外れ値が入っている ノイズにコーシー分布を仮定した場合 → 外れ値以外のデータに沿った傾き 外れ値が95%予測区間の外にある
  49. 49. ちなみにstudentのt分布の場合は 自由度𝜈 = 1ならコーシー分布と一致 𝜈 = ∞なら正規分布と一致
  50. 50. ノイズにt分布を仮定した場合(今回は𝜈=2) → コーシー分布とほぼ同じ結果だが, 若干傾きが小さく予測分布が広い ノイズにコーシー分布を仮定した場合 → 外れ値以外のデータに沿った傾き 𝜈=2のt分布よりも予測分布が狭い
  51. 51. 自由度は非負(実質1以上)と考えられるので 下限を指定 自由度の事前分布 自由度𝒗も推定してみる
  52. 52. 外れ値の数が多い場合 (例:全体の5%) Stanコードの書き方 中級編より https://www.slideshare.net/simizu706/stan-64926504 11章へ続く…
  53. 53. 最後に カラオケのモデリングは奥が深い… (80点,90点を境に,関数形が変わるらしい…) http://www.hnagata.net/archives/836 一緒にカラオケに行ってくれるデータを取ってくれる方,募集中

×