R の glm の r 二乗を計算する方法


線形回帰モデルを近似する場合、多くの場合、モデルがデータにどの程度適合するかを評価するためにR 二乗を使用します。

R 二乗は、回帰モデルの予測変数によって説明できる応答変数の分散の割合を表します。

この数値の範囲は 0 から 1 で、値が大きいほどモデルの適合性が高いことを示します。

ただし、 ロジスティック回帰モデルやポアソン回帰モデルなどの一般的な線形モデルには R 二乗値がありません。

代わりに、 McFadden の R 二乗として知られるメトリクスを計算できます。このメトリクスの範囲は 0 から 1 未満で、値が大きいほどモデルの適合性が高いことを示します。

次の式を使用してマクファデンの R 2 乗を計算します。

マクファデンの R 二乗 = 1 – (対数尤度モデル/ゼロ対数尤度)

金:

  • 対数尤度モデル: 現在の近似モデルの対数尤度値
  • ゼロ対数尤度: ヌル モデルの対数尤度値 (切片のあるモデルのみ)

実際には、0.40 を超える値は、モデルがデータに非常によく適合していることを示します。

次の例は、R のロジスティック回帰モデルのマクファデンの R 二乗を計算する方法を示しています。

例: R でのマクファデンの R 二乗の計算

この例では、ISLR パッケージのデフォルトのデータセットを使用します。次のコードを使用して、データセットの概要を読み込んで表示できます。

 #install and load ISLR package
install. packages (' ISLR ')
library (ISLR)

#define dataset
data <- ISLR::Default

#view summary of dataset
summary(data)

 default student balance income     
 No:9667 No:7056 Min. : 0.0 Min. : 772  
 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340  
                       Median: 823.6 Median: 34553  
                       Mean: 835.4 Mean: 33517  
                       3rd Qu.:1166.3 3rd Qu.:43808  
                       Max. :2654.3 Max. :73554  

#find total observations in dataset
nrow(data)

[1] 10000

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

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

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

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

#view model summary
summary(model)

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

Deviance Residuals: 
    Min 1Q Median 3Q Max  
-2.4691 -0.1418 -0.0557 -0.0203 3.7383  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.087e+01 4.923e-01 -22.080 < 2e-16 ***
balance 5.737e-03 2.319e-04 24.738 < 2e-16 ***
studentYes -6.468e-01 2.363e-01 -2.738 0.00619 ** 
income 3.033e-06 8.203e-06 0.370 0.71152    
---
Significant. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2920.6 on 9999 degrees of freedom
Residual deviance: 1571.5 on 9996 degrees of freedom
AIC: 1579.5

Number of Fisher Scoring iterations: 8

次に、次の式を使用して、このモデルの McFadden の R 二乗値を計算します。

 #calculate McFadden's R-squared for model
with(summary(model), 1 - deviance/null. deviance )

[1] 0.4619194

McFadden の R 二乗値は0.4619194であることがわかります。この値は非常に高く、モデルがデータによく適合し、高い予測力を備えていることを示しています。

psclパッケージのpR2()関数を使用して、モデルの McFadden R 二乗値を計算することもできることにも注意してください。

 #install and load pscl package
install. packages (' pscl ')
library (pscl)

#calculate McFadden's R-squared for model
pR2(model)[' McFadden ']

 McFadden 
0.4619194

この値は以前に計算された値に対応することに注意してください。

追加リソース

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

R の R 二乗を計算する方法
R の調整済み R 二乗を計算する方法
適切な R 二乗値はどれくらいですか?

コメントを追加する

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