二項ロジットモデルとは
二項ロジットモデルは、2つの可能な結果がある状況における事象が発生する確率をモデル化するための統計ツールです。ロジスティック回帰としても知られており、社会科学、経済学、健康科学などのさまざまな分野で、1つまたは複数の予測変数に基づいてバイナリ応答を予測するために広く使用されています。このモデルの人気の理由は、解釈の容易さ、柔軟性、そして強い理論的な基盤にあります。
二項ロジットモデルの中心にあるのは、任意の入力値を0から1の確率にマップするロジスティック関数です。この関数により、伝統的な線形回帰技術を使用して簡単にモデル化できない確率の推定が可能になります。ロジットモデルの主な目的は、予測変数のセットと興味のあるバイナリ結果の関係を決定することです。
ロジスティック関数の理解
ロジスティック関数は、二項ロジットモデルの基礎となる関数であり、任意の実数値の入力を0から1の確率値にマップする数学関数です。この変換により、予測変数とバイナリ結果の関係をモデル化するのに理想的なものとなります。
ロジスティック関数の定義
ロジスティック関数は、次のように形式的に定義されます。
ここで、
ロジスティック関数の性質
二項ロジットモデルで確率をモデル化するために、ロジスティック関数のいくつかの重要な性質があります。
-
有界性
ロジスティック関数の出力は常に0から1の間にあり、確率の範囲に一致します。 -
単調性
ロジスティック関数は厳密に増加するため、入力値が増加すると出力値も増加します。 -
微分可能性
ロジスティック関数は微分可能であり、モデルの適合に使用される最適化技術に適しています。
ロジット変換
ロジット変換は、ロジスティック関数の逆関数であり、予測変数とバイナリ結果の対数オッズの関係をモデル化するために使用されます。ロジット変換は次のように定義されます。
ここで、
予測変数の組み込み
二項ロジットモデルでは、ロジット変換が予測変数の線形結合に適用されます。式で表すと次のようになります。
ここで、
モデルの解釈とオッズ比
最尤推定を使用して二項ロジットモデルを適合させた後、予測変数とバイナリ結果の関係を理解するためにモデルの係数を解釈することが重要です。この章では、オッズ比を使用して二項ロジットモデルの係数を解釈する方法について説明し、その解釈の意思決定や仮説検定における示唆を探ります。
ロジットモデルでの係数の解釈
二項ロジットモデルでは、係数は、対応する予測変数が1単位増加した場合の陽性結果の対数オッズの変化を表します。この解釈は数学的に正確ですが、実用的には容易に解釈することはできません。解釈を容易にするために、オッズ比を使用することができます。
オッズ比
オッズ比は、ロジットモデルにおける予測変数とバイナリ結果の関係を直感的に表現する方法です。ある予測変数のオッズ比は、その予測変数が1単位増加した場合に陽性結果のオッズが何倍になるかを表します。数学的には、予測変数
ここで、
オッズ比の解釈
オッズ比の解釈を説明するために、年齢と収入に基づいて顧客の購入確率を予測する架空の二項ロジットモデルを考えてみます。
推定された係数が
これらのオッズ比は、他の変数を一定にした状態で、年齢が1歳増加すると購入確率が10%増加し、収入が1単位増加すると購入確率が5%増加することを示しています。
仮説検定と信頼区間
2項モデルでは、各予測変数の統計的有意性を評価するために仮説検定を実行することができます。帰無仮説は、予測変数がバイナリ結果に影響を与えないということであり、対応する係数が0であることを意味します。対立仮説は、予測変数がバイナリ結果に有意な影響を与えることを示し、対応する係数が0と異なることを意味します。
2項モデルでの仮説検定には、ウォルド検定や尤度比検定がよく使われます。また、信頼区間を計算して、真の母集団パラメータの範囲を提供することができます。係数またはオッズ比の信頼区間を計算することで、モデルの精度を評価することができます。
Rによる二項ロジットモデル
この章では、統計解析のためによく用いられるプログラミング言語であるRを使用して、二項ロジットモデルの当てはめを例に進めていきます。当モデルは、Rパッケージのglm()
関数を使用して当てはめ、性能を評価し、結果を解釈します。
データの準備
今回は、Rに組み込まれたmtcars
データセットを使用します。このデータセットには、様々な車の属性とそれぞれの燃費(mpg)が含まれています。22.5mpgの閾値に基づいて、車が燃費効率の高い車(1)かそうでない車(0)かを示す二項結果変数を作成します。
まず、データをロードして二項結果変数を作成します。
data(mtcars)
mtcars$efficient <- ifelse(mtcars$mpg > 22.5, 1, 0)
二項ロジットモデルの当てはめ
燃費効率の結果変数と2つの予測変数(重量wt
と馬力hp
)を用いた二項ロジットモデルをglm()
関数を用いて当てはめます。family = binomial(link = "logit")
引数は、二項ロジットモデルを当てはめたいことを示しています。
logit_model <- glm(efficient ~ wt + hp, data = mtcars, family = binomial(link = "logit"))
summary(logit_model)
summary()
関数は、各予測変数に対するモデル係数、標準誤差、z値、およびp値を表示します。
Call:
glm(formula = efficient ~ wt + hp, family = binomial(link = "logit"),
data = mtcars)
Deviance Residuals:
Min 1Q Median 3Q Max
-1.72029 -0.00913 -0.00001 0.00314 1.40334
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 30.4063 18.0320 1.686 0.0917 .
wt -3.1801 1.9659 -1.618 0.1057
hp -0.2201 0.1447 -1.521 0.1283
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 38.0243 on 31 degrees of freedom
Residual deviance: 6.5068 on 29 degrees of freedom
AIC: 12.507
Number of Fisher Scoring iterations: 10
-
Call
このセクションには、モデル適合に使用された関数コールが表示されます。目的変数(efficient
)、説明変数(wt
およびhp
)、およびモデルに指定されたファミリー(logitリンクを持つ2項モデル)が表示されます。 -
Deviance Residuals
これらは、偏差の形で表現されたモデルの残差です。概要統計量(最小値、第1四分位数、中央値、第3四分位数、および最大値)は、モデルがデータに適合している程度を示しています。理想的には、残差は小さく、ゼロを中心に対称に分布している必要があります。 -
Coefficients
このセクションでは、各説明変数と切片の推定係数、標準誤差、z値、およびp値が提供されます。係数は、他の変数を一定にした場合に、1単位の増加に対する陽性結果(燃費の良い車)の対数オッズの変化を表します。- 切片: 30.4063
- 重量(wt): -3.1801
- 馬力(hp): -0.2201
-
Significance codes
有意水準を示す符号は、各説明変数の統計的有意性のレベルを示しています。このモデルでは、切片のp値(0.0917)、wt
のp値(0.1057)、およびhp
のp値(0.1283)から、いずれの説明変数も有意水準0.05以下では統計的に有意ではないことが示されています。 -
Dispersion parameter
この値は2項モデルの分散を一定と仮定して1に設定されています。 -
Null devianceおよびResidual deviance
Null devianceは、説明変数がないモデル(つまり、切片のみを持つモデル)の偏差を表し、残差偏差は適合したモデルの偏差を表します。これらの値を比較することで、モデルの適合度を大まかに判断することができます。この場合、残差偏差(6.5068)はNull deviance(38.0243)よりもはるかに小さいため、説明変数を含むモデルがNullモデルよりも適合していることを示しています。 -
AIC
赤池情報量規準(AIC)は、モデルの尤度とパラメータ数をバランスよく考慮したモデル適合度の尺度です。小さいAIC値は、より適合度の高いモデルを示します。AICは、同じデータに対して適合した異なるモデルを比較するために使用でき、より小さいAIC値はよりよく適合するモデルを示します。 -
Number of Fisher Scoring iterations
この値は、アルゴリズムが収束するまでに必要な反復回数を示します。この場合、10回の反復が必要でした。
モデル診断
モデルの分類性能を評価するために、混同行列を作成します。
# Predict probabilities
predicted_prob <- predict(logit_model, type = "response")
# Convert probabilities to binary outcomes
predicted_outcome <- ifelse(predicted_prob > 0.5, 1, 0)
# Create confusion matrix
table(Predicted = predicted_outcome, Actual = mtcars$efficient)
Actual
Predicted 0 1
0 22 1
1 1 8
結果の解釈
説明変数の係数とオッズ比を解釈します。
# Calculate odds ratios
exp(coef(logit_model))
(Intercept) wt hp
1.604309e+13 4.157947e-02 8.024697e-01
オッズ比は次の通りです。
-切片:
これらのオッズ比を解釈としては以下になります。
-
切片
切片は、重量と馬力がゼロの場合に燃費の良い車のオッズを表します。この値が非常に大きいため、この文脈ではほとんど実用的な意味を持ちません。現実には、重量や馬力がゼロの車は存在しません。 -
重量(wt)
重量が1単位増加するごとに、馬力を一定に保った場合に、燃費の良い車のオッズは約96%減少します(1-0.0416 = 0.9584)。これは、より重い車ほど燃費が良くないということを示しています。 -
馬力(hp)
馬力が1単位増加するごとに、重量を一定に保った場合に、燃費の良い車のオッズは約20%減少します(1-0.802 = 0.198)。これは、より高い馬力を持つ車ほど燃費が悪いということを示唆しています。