Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データ解析のための統計モデリング入門6章 / Handbook-of-statistical-...
Search
masso
October 14, 2020
Science
0
470
データ解析のための統計モデリング入門6章 / Handbook-of-statistical-modeling-for-data-analysis-section6
データ解析のための統計モデリング入門輪読会(6章)の発表スライド
masso
October 14, 2020
Tweet
Share
More Decks by masso
See All by masso
Stacktrace for rs/zerolog users
masso
0
140
データ解釈学入門 第一部 / Data hermeneutics Part 1
masso
8
2.1k
時系列分析と状態空間モデリングの基礎 / Foundations of Time Series Analysis and State Space Models 0
masso
0
490
わかりやすいパターン認識2章 / Pattern Recognition Manual Easy to understand SS 02
masso
0
740
分析環境紹介LT / the introduction of as my analysis env is
masso
0
96
わかりやすいパターン認識1章 / Pattern Recognition Manual Easy to understand SS 01
masso
0
140
DLGが目指すコミュニティの形 / DLG Community Objective
masso
0
2.4k
PowerAutomateによる社員健康状態集計システム / Employee health status tabulation system with Power Automate
masso
0
1.4k
Other Decks in Science
See All in Science
20240420 Global Azure 2024 | Azure Migrate でデータセンターのサーバーを評価&移行してみる
olivia_0707
2
860
(Forkwell Library #48)『詳解 インシデントレスポンス』で学び倒すブルーチーム技術
scientia
2
1.3k
伊豆赤沢海洋深層水中からメラニン分解能を有する微生物の探索
eltociear
0
110
【人工衛星開発】能見研究室紹介動画
02hattori11sat03
0
120
Machine Learning for Materials (Lecture 8)
aronwalsh
0
400
第4回ナレッジグラフ勉強会 Knowledge Graph Embedding
maruru0090
0
250
作業領域内の障害物を回避可能なバイナリマニピュレータの設計 / Design of binary manipulator avoiding obstacles in workspace
konakalab
0
140
Celebrate UTIG: Staff and Student Awards 2024
utig
0
260
Reaping the Benefits of Ritual and Routine
arthurdoler
PRO
0
160
20分で分かる Human-in-the-Loop 機械学習におけるアノテーションとヒューマンコンピューターインタラクションの真髄
hurutoriya
4
2k
小杉考司(専修大学)
kosugitti
1
490
多次元展開法を用いた 多値バイクラスタリング モデルの提案
kosugitti
0
170
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
89
16k
The Language of Interfaces
destraynor
153
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Infographics Made Easy
chrislema
239
18k
Ruby is Unlike a Banana
tanoku
96
11k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Building Your Own Lightsaber
phodgson
101
6k
A better future with KSS
kneath
235
17k
A Philosophy of Restraint
colly
202
16k
Designing with Data
zakiwarfel
98
5k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Code Review Best Practice
trishagee
62
16k
Transcript
統計モデリング入門6章 担当:masso データラーニングギルド輪読会
本章の目的 さまざまなGLMを紹介する章 - ポアソン回帰以外でどんなGLMがあるのか? - それらはどのような特徴やありがたみがあるのか? などを理解すること
目次 1. 様々な種類のデータで応用できるGLM(6.1節) 2. 二項分布で表現する「あり・なし」カウントデータ(6.3節) 3. ロジスティック回帰とロジットリンク関数(6.4節) 4. 交互作用項の入った線形予測子(6.5節) 5.
割り算値の統計モデリングはやめよう(6.6節) 6. 正規分布とその尤度/ガンマ分布のGLM(6.7節/6.8節)
6.1節
様々な種類のデータで応用できるGLM(6.1節) まとめ GLMでは応答変数のばらつきを表現する確率分布は正規分布だけでなく、ポ アソン分布・二項分布・ガンマ分布などが選択できる
GLMとは 「確率分布」「リンク関数」「線形予測子」 の組み合わせで表現する。 つまり、これらの組み合わせの数だけ、GLMは存在するということ。 とはいえ、「よく使われるパターン」があるので紹介する。
その前にリンク関数と線形予測子おさらい 線形予測子とは、説明変数xiの(べき乗も含む)線形結合のこと *P47 ({βi}をベクトル、{xi}を係数とした線形結合) 線形予測子 = β1 + β2 xi
+ β3 xi^2 リンク関数fとは、応答変数の平均値と線形予測子をつなぐ関数 f (応答変数の平均値) = β1 + β2 xi + β3 xi^2 ←自信ない…どっちがベクトル?
GLM よくある組み合わせ
直線回帰とリンク関数を用いた手法は違う GLMなど使わなくても、変数変換して、直線回帰をすればいいと考える人もい るかもしれないが、このような方法はリンク関数とは全く別のものである。 (P114/115) 「変数変換」というのが何をさしているかよくわからないが、直線回帰ということ は、パラメータが「切片」「傾き」しかない。状態これでは、もし説明変数が2個 以上あった場合でも、その自由度を無視することになる。(ということを言ってい るのかなと解釈した)
6.2節
6.2節 例題:上限のあるカウントデータ 上限のあるカウントデータとは? (応答変数y∈{0,1...N}) → 「N個体の内y個が◦、N-y個が□」 -------------------------------- 本例題の説明 個体:i∈{1, 2,
… 100} 個体iに対して 観察種子数 8個(Ni) 生存種子数 yi個 ∈{0...8} 生存確率 qi 個体iの1個の種子が生きている確率 i ∈{1...50}: 施肥処理ありfi=C i ∈{51...100}: 施肥処理なしfi=T
6.2節 例題:上限のあるカウントデータ summary(d)の出力結果 データ可視化 施肥処理と生存確率の関係 体サイズと生存確率の関係
6.3節
二項分布で表現する「あり・なし」カウントデータ(6.3節) まとめ 「N個の観察対象のうちk個で反応がみられた」というタイプのデータにみられ るばらつきを表すために二項分布が使える というより、「上限のあるデータではポアソン分布は適さない」
ちょっと脱線:二項分布とは
6.2節の例題を二項分布で表現
6.4節
ロジスティック回帰とロジットリンク関数(6.4節) まとめ 生起確率と線形予測子を結びつけるロジットリンク関数を使ったGLMのあては めは、ロジスティック回帰とよばれる
ロジット関数はロジスティック関数の逆関数 https://mathwords.net/logitkansu
ロジットリンク関数 ロジット関数をリンク関数としたもの。 ロジット関数をリンク関数として利用すると ・線型予測子と[0, 1]の数(個体iの生存確率qi)を繋げることができる
最も当てはまりの良い パラメータ {βj } を推定 尤度関数:L(y | θ) = Π{p(y
| θ)} 対数尤度関数:log {L(y | θ)} = log [Π{p(y | θ)}]
最も当てはまりの良い パラメータ {βj} を推定 Rでの命令文 > glm( cbind( y, N-y
) ~ x + f, data = d, family = binomial ) 応答変数の指定 :cbind( 生存数, 死亡数 ) 二項分布を指定 :family = binomial
オッズとは? logit関数のlogの中身をオッズという。(qi / (1 - qi)の部分) したがって、ロジットリンク関数と線型予測子の関係性より、 確率qiが0.5(五分五分)のときオッズは1倍、qiが0.8ならオッズは4倍
ロジットリンク関数とオッズ ロジットリンク関数のおかげで、 「オッズ ∝ 要因の掛け算」で表現できるため、 パラメータを最尤推定などで決めて、固定した後に、 「説明変数が1単位変動した時に、オッズがどれぐらい変動するか」といった解 釈が容易になる。 ※要因=パラメータβ×説明変数 結果として、
オッズ比 ≒ リスク の概算がしやすくなる
オッズ比 ≒ リスク の概算 生活習慣Xによってナントカ病の発病リスクが7倍になります 発病確率をロジスティック回帰で求め、最尤推定値βs=1.95となったとする。こ の時のリスク≒オッズ比は、 ≒ 7.028
6.5節
交互作用項の入った線形予測子(6.5節) まとめ 線形予測子の構成要素として、複数の説明変数の積の効果をみる交互作用 項が使える
交互作用項によってより複雑な状態を表す 体サイズxiと施肥処理有無fiが組み合わさった場合の影響度を表す Rの命令文では、モデル式が変わる > glm( cbind( y, N - y
) ~ x * f, family = binomial, data = d ) x * f は、x + f + x:f の省略形
交互作用項の導入は必ずしも良い結果につながらない 今回の例題では、交互作用項をいれても生存種子数のモデルはあまり変わら ない。(下図) AICを計算すると、むしろ悪化する。(272 -> 274)
交互作用項を取り扱う際の注意点 • むやみに追加しない。なぜなら、 ◦ 説明変数が多い場合、「組合せ論的爆発」で増加していく ◦ それが何を表しているのか解釈ができなくなることがある • 現実問題では、交互作用項を多く含むモデルのAICが最良になることがよ くある。しかし、
◦ 交互作用の効果を過大推定してる可能性あり(つじつま合わせ) ◦ 現実では、説明変数では説明できない「個体差」「場所差」が発生するが、そ れらを考慮しないGLMをあてはめると過度に複雑なモデルが最良になる傾向 がある。
6.6節
割り算値の統計モデリングはやめよう(6.6節) まとめ データ解析でしばしばみられる観測値同士の割り算値作成や応答変数の変数 変換の問題点があるが、ロジスティック回帰やオフセット項の工夫をすれば、 情報消失の原因となる「データ加工」は不要になる
観測値をこねくり回して指標を創作しないように よくある創作 ・割算値:観測データ / 観測データ ・変数変換:応答変数 = log( 観測データ )
とか = avg( 観測データ ) 「N個のうちy個で事象が生じる確率」を明示的に扱う二項分布を使うことによっ て、「y / N」などといった観測データ同士の割算を避けられる。
観測データ同士の割算値がもたらす悲劇 • 情報の消失 ◦ 1000打数300安打の3割打者と10打数3安打の3割打者は、どちらも 同じ程度に確からしい「3割打者」ではない。確からしさが失われる。 • 変換された値の分布が不明 ◦ 分子分母それぞれに誤差が入った数量同士の割算値はどんな確率
分布か?(一般に難しい問題。分子分母が独立でない場合は、さらに ややこしくなる。)
割算値いらずのオフセット項わざ 例題 • 森林のあちこちに100箇所で調査 i ∈ {1, 2, … 100}
• 調査値 i における面積 Ai (ほんとは固定にすべきだけど…あえて) • 調査地 i の「明るさ」xi • 調査地 i における植物個体数 yi を記録=応答変数 • O:調査地 i における植物個体の人口密度が明るさxiにどう影響されるか を知りたい yi / Ai という割算値を作る必要はない!
ポアソン分布+オフセット項で人口密度をモデル化 人口は正の量なので、指数関数と明るさ xiの依存性を組み合わせて Aiを指数関数の中にいれてやれば、 線型予測子:β1+β2xi+logAi リンク関数:対数リンク関数 logAiは、係数がない=オフセット項
オフセット項わざの使い所 • GLM(とそれを発展させた統計モデル)で応用可能 • 「単位◦◦あたりのカウントデータ」に使える ◦ ◦◦(例えば面積)の対数を線型予測子に追加する • もっと一般化すると、「連続値 /
連続値」となる比率・密度などに使える、と 言える。 • 分子分母共に誤差を含む場合は、ベイズ統計モデルで工夫すれば観測 値どうしの割算を回避できる(本書の対象外)
6.7節 / 6.8節
正規分布とその尤度/ガンマ分布のGLM(6.7節/6.8節) まとめ 連続値の確率変数のばらつきを表現する確率分布としては、正規分布・ガンマ 分布などがあり、これらを統計モデルの部品として扱うときには、離散値の確 率分布(ポアソン分布や二項分布)との違いに注意しなければならない
正規分布とその尤度 • 平均μ、標準偏差σをパラメータとする連続値の確率分布を表す f(x) は、条件付き確率の形式で記述すると、p( y | μ, σ )
• これをRで図示するならば > y <- seq( -5, 5, 0.1 ) > plot( y, dnorm( y, mean = 0, sd = 1 ), type = “l” )
(連続変数)確率密度関数の尤度計算法 確率=確率密度 × ⊿y として、尤度を計算するけど、 最終的に⊿yの項は無視する 省略する
(連続変数)確率密度関数の尤度計算法 結果として、 「対数尤度が正になり得る」「AICや逸脱度が負の数になり得る」 といった離散型確率分布とは異なる性質を持っている。 ※幅⊿y = 0.5としている
正規分布 : 最小二乗法=最尤推定 σがμと無関係かつ定数であるとした場合 「対数尤度関数の最大化」 = 「Σ(yi - μ)^2 の最小化」になる
最尤推定 最小二乗法 確率分布:正規分布、リンク関数:恒等関数、線型予測子:β1+β2 xi
ガンマ分布 • 0以上の連続値の確率分布 • shapeパラメータs、rateパラメータrから成る • 平均:s / r 分散:s /
r^2 ※s=1のときは指数分布 • Γ(s)はガンマ関数 (Wikipedia 「ガンマ関数」)
ガンマ分布 Rの命令文 > dgamma( y = ◦, shape = ◦,
rate = ◦ )
ガンマ分布のGLM • 確率分布関数:ガンマ分布 p(y | s, r) • リンク関数:対数かな? •
線型予測子:問題次第
例題:ガンマ分布でGLMをする 本例題の説明 個体:i ∈ {1, 2, … 50} 各個体 i
に対して 葉の重量:xi ←説明変数 花の重量:yi ←応答変数
例題:ガンマ分布でGLMをする なんらかの生物学的根拠により μi = Axi^b と表せるとする 対数リンク関数を用いて、線型予測子は、 log( μi )
= a + b log(xi) ※A = exp(a) と置いた Rの命令文 > glm( y ~ log(x) , family = Gamma(link = “log”), data = d )
例題:ガンマ分布でGLMをする なんらかの生物学的根拠により μi = Axi^b と表せるとする 対数リンク関数を用いて、線型予測子は、 log( μi )
= a + b log(xi) ※A = exp(a) と置いた Rの命令文 > glm( y ~ log(x) , family = Gamma(link = “log”), data = d ) glm()による推定では、 平均μiを決める線形予測子とリンク 関数だけを指定すれば良い 平均・分散をshape, rateパラメータ とどう対応付けるか考えなくて良い
参考文献
参考文献 - 30分だけでは決してよくわからない とてもとても難しい 一般化線形モデ ル with R - 線形結合モデルを科学的説明たりうるか
- Wikipedia 「線型結合」 - Wikipedia 「線型性」 - 確率密度関数と確率質量関数 - Wikipedia 「二項分布」