A: ロジスティック回帰モデルでオッズ比を計算する方法


ロジスティック回帰は、応答変数がバイナリの場合に回帰モデルを近似するために使用できる方法です。

R でロジスティック回帰モデルを近似すると、モデルの概要の係数は、各予測変数の 1 単位の増加に関連付けられた応答変数の対数オッズの平均変化を表します。

ただし、代わりにモデル内の予測変数のオッズ比を計算したい場合もよくあります。

モデル内の各予測子変数のオッズ比をすばやく計算するには、次の構文を使用できます。

 exp(coef(model))

次の構文を使用して、各オッズ比の 95% 信頼区間を計算することもできます。

 exp(cbind(Odds_Ratio = coef(model), confint(model)))

次の例は、この構文を使用して R のロジスティック回帰モデルのオッズ比を計算および解釈する方法を示しています。

例: R のロジスティック回帰モデルでのオッズ比の計算

この例では、R のISLRパッケージのデフォルトデータセットを使用します。

次のコードを使用して、データセットの概要を読み込んで表示できます。

 library (ISLR)

#view first five rows of Default dataset
head(Default)

  default student balance income
1 No No 729.5265 44361.625
2 No Yes 817.1804 12106.135
3 No No 1073.5492 31767.139
4 No No 529.2506 35704.494
5 No No 785.6559 38463.496
6 No Yes 919.5885 7491.559

このデータセットには、10,000 人の個人に関する次の情報が含まれています。

  • デフォルト:個人がデフォルトしたかどうかを示します。
  • 学生:個人が学生であるかどうかを示します。
  • 残高:個人が保有する平均残高。
  • 収入:個人の収入。

学生のステータス、銀行残高、収入を使用して、特定の個人が債務不履行になる確率を予測するロジスティック回帰モデルを構築します。

glm関数を使用して family=’binomial’ を指定すると、R がロジスティック回帰モデルをデータセットに適合させることができます。

 #fit logistic regression model
model <- glm(default~student+balance+income, family=' binomial ', data=Default)

#disable scientific notation for model summary
options(scipen=999)

#view model summary
summary(model)

Call:
glm(formula = default ~ student + balance + income, family = "binomial", 
    data = train)

Deviance Residuals: 
    Min 1Q Median 3Q Max  
-2.5586 -0.1353 -0.0519 -0.0177 3.7973  

Coefficients:
                 Estimate Std. Error z value Pr(>|z|)    
(Intercept) -11.478101194 0.623409555 -18.412 <0.0000000000000002 ***
studentYes -0.493292438 0.285735949 -1.726 0.0843 .  
balance 0.005988059 0.000293765 20.384 <0.0000000000000002 ***
income 0.000007857 0.000009965 0.788 0.4304    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2021.1 on 6963 degrees of freedom
Residual deviance: 1065.4 on 6960 degrees of freedom
AIC: 1073.4

Number of Fisher Scoring iterations: 8

結果の係数は、デフォルトの対数オッズの平均変化を示します。

たとえば、残高が 1 単位増加すると、デフォルトの対数確率が平均0.005988増加します。

代わりに、各予測子変数のオッズ比を計算するには、次の構文を使用できます。

 #calculate odds ratio for each predictor variable
exp(coef(model))

  (Intercept) studentYes balance income 
0.00001903854 0.52373166965 1.00575299051 1.00000303345 

各オッズ比と、各オッズ比の 95% 信頼区間を計算することもできます。

 #calculate odds ratio and 95% confidence interval for each predictor variable 
exp(cbind(Odds_Ratio = coef(model), confint(model)))

               Odds_Ratio 2.5% 97.5%
(Intercept) 0.00001903854 0.000007074481 0.0000487808
studentYes 0.52373166965 0.329882707270 0.8334223982
balance 1.00575299051 1.005308940686 1.0062238757
income 1.00000303345 0.999986952969 1.0000191246

各係数のオッズ比は、他のすべての予測変数が一定のままであると仮定した場合、個人のデフォルト確率の平均増加を表します。

たとえば、予測子変数の残高のオッズ比は1.0057です。

これは、学生のステータスと収入が一定であると仮定すると、個人の残高が 1 ドル増えるごとに、その個人がローンを滞納する確率が1.0057倍増加することを意味します。

他の予測変数のオッズ比も同様に解釈できます。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

R のロジスティック回帰モデルで Predict() を使用する方法
R のロジスティック回帰出力で Pr(>|z|) を解釈する方法
R でロジスティック回帰曲線をプロットする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です