おはようございます!
ゆきちゃんママです😊
先日書いた「GLM(一般化線形モデル)」の記事、たくさん読んでいただきありがとうございます!
……なのですが!
読んだハズバンドからメッセージが。
「リンク関数の説明がないやん!もしかして、もう初心者の気持ち、忘れちゃったの?」
……はい、すみません💦
書き忘れです!(初心者の気持ちはちゃんと覚えてます!笑)
というわけで、今日は「リンク関数とは何か」をテーマにお話しします。
- まずおさらい:「確率分布」って何?
- リンク関数とは?
- たとえばこう!
- ポアソン回帰:カウントデータにぴったり
- ロジスティック回帰:はい/いいえの世界
- ガンマ回帰:正の連続値に
- ちょっと補足
- まとめ:GLMの分布とリンク関数の対応
- まとめの一言

まずおさらい:「確率分布」って何?
GLMではまず、「このデータはどんな分布から生まれているのかな?」と考えます。
これが確率分布です。
たとえば——
サイコロなら「出る目(1〜6)」と「それぞれの確率(1/6)」がセットになっていますよね。
それを一般化したものが確率分布。
実際のデータでは、
正規分布(二値や平均まわりのデータ)、
ポアソン分布(カウントデータ)、
ガンマ分布(正の連続値)などを使い分けます。
リンク関数とは?
では、いよいよ今日の本題。
リンク関数(link function)とは、
簡単に言えば——
データの平均(=期待値)と、説明変数を「うまくつなぐための変換」のこと!
GLMは、
「分布の形」と「説明変数との関係」を別々に考えるのがポイント。
その“関係”を結びつけてくれるのが、リンク関数なんです。
たとえばこう!
① 普通の線形回帰
Y = β₀ + β₁×X
という形で、Yそのものが説明変数の線形結合で表されます。
でもこれ、Yがマイナスになってもいい場合じゃないと困ります。
(人数とか確率とか、マイナスはありえないですよね。)
だから、GLMでは「Yをそのまま使う」代わりに、
Yを変換した形(リンク関数)を使うんです。
ポアソン回帰:カウントデータにぴったり
来店人数や正答数など、0以上の整数しかとらないデータは、ポアソン分布でしたよね。
ここでは 対数リンク関数(logリンク) というのを使います。
log(λ) = β₀ + β₁×X
こうすると、どんなXでも λ = exp(β₀ + β₁×X) なので、
常に0より大きい値が出ます。
負の人数なんてありえない!をちゃんと守ってくれるんですね😊
ロジスティック回帰:はい/いいえの世界
「合格/不合格」「買う/買わない」みたいに、0か1の二値データ。
ここでは確率p(=1になる確率)を扱います。
このとき使うのが ロジットリンク関数(logitリンク)。
log(p / (1 - p)) = β₀ + β₁×X
この変換を使うと、どんなにXが大きくても、
pは0〜1の間にちゃんと収まります✨
ガンマ回帰:正の連続値に
金額や反応時間のように、「0より大きい値しかとらないデータ」。
ここでも対数リンクがよく使われます。
「値のスケールが大きく違う」データにもぴったり。
ちょっと補足
リンク関数については、本当は「どんな式でどう使うか」まで理解できるのが理想です。
でも、最初のうちはそこまで気にしなくて大丈夫!
実は、どんな分布のときにどんなリンク関数を使うかという“お決まりの組み合わせ”があるので、
まずはその対応関係を覚えておくだけでもOKです😊
(ポアソン分布なら対数リンク、二項分布ならロジットリンク……という感じですね✨)
まとめ:GLMの分布とリンク関数の対応
|
データのタイプ |
分布 |
リンク関数 |
理由 |
|---|---|---|---|
|
カウント(人数など) |
ポアソン分布 |
対数リンク log(μ) |
平均が0より大きい値しかとれない |
|
二値(はい/いいえ) |
二項分布 |
ロジットリンク log(p/(1-p)) |
確率を0〜1に収める |
|
正の連続値(時間・金額) |
ガンマ分布 |
対数リンク log(μ) |
負の値にならない |
まとめの一言
リンク関数とは、「非線形な確率の世界」を「線形モデルの世界」に“橋渡し”するための関数。
だから私は、「確率を線形にするための関数」くらいに覚えています😊
難しい言葉で正確に言うと、「平均を線形予測子に変換して結びつける関数」だそうですが……なんかちょっと難しい気がしますよね😂
今はこのくらいでOK!
そのうち自然に、
「リンク関数?ああ、平均を線形予測子に変換して結びつける関数でしょ?」
なんてサラッと言える日が来る……かもしれません(笑)
ということで、一般化線形モデル(GLM)は、
「確率分布 × リンク関数」で、いろんなデータを扱える万能モデル!
早くRで実践したいところですが、まずは事前勉強をしっかり頑張りましょう💪✨
今日も最後まで読んでいただき、ありがとうございました🌸
