glm(R)で適合度を計算する方法


21

glm関数を実行すると、次の結果が得られます。

次の値をどのように解釈できますか?

  • ヌル逸脱
  • 残留偏差
  • AIC

彼らはフィットの良さに関係がありますか?これらの結果から、R平方またはその他の尺度などの適合度の尺度を計算できますか?

Call:
glm(formula = tmpData$Y ~ tmpData$X1 + tmpData$X2 + tmpData$X3 + 
    as.numeric(tmpData$X4) + tmpData$X5 + tmpData$X6 + tmpData$X7)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.52628  -0.24781  -0.02916   0.25581   0.48509  

Coefficients:
                     Estimate Std. Error  t value Pr(>|t|)    
(Intercept         -1.305e-01  1.391e-01   -0.938   0.3482    
tmpData$X1         -9.999e-01  1.059e-03 -944.580   <2e-16 ***
tmpData$X2         -1.001e+00  1.104e-03 -906.787   <2e-16 ***
tmpData$X3         -5.500e-03  3.220e-03   -1.708   0.0877 .  
tmpData$X4         -1.825e-05  2.716e-05   -0.672   0.5017    
tmpData$X5          1.000e+00  5.904e-03  169.423   <2e-16 ***
tmpData$X6          1.002e+00  1.452e-03  690.211   <2e-16 ***
tmpData$X7          6.128e-04  3.035e-04    2.019   0.0436 *  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1   1 

(Dispersion parameter for gaussian family taken to be 0.08496843)

    Null deviance: 109217.71  on 3006  degrees of freedom
Residual deviance:    254.82  on 2999  degrees of freedom
  (4970 observations deleted due to missingness)
AIC: 1129.8

Number of Fisher Scoring iterations: 2

これはSOから移行されたもので、通常はこれらの統計用語に関する情報を検索しません。ここには素晴らしいリソースがあります!たとえば、AICのような一部の用語の検索から学べることをご覧ください。これを行うのに少し時間を費やすことで、あなたの質問に完全に答えるか、少なくともより具体的な質問をするように導きます。
whuber

ガウスのglmsとは関係ありませんが、バイナリデータに適合したbernoulli glmがある場合、モデルの適合を評価するために残差偏差を使用することはできません。この場合、2つのモデルを比較するために残差偏差のを使用できますが、残差偏差自体は使用できません。
FisherDisinformation

回答:


15

glmR2glmR2R2

RGLM2=1dmodel22/Ndnあなたはll22/N        =        1SSE/n[model]SST/n[total]=ROLS2

モデルがより単純なGaussian / OLS状況から逸脱した場合にのみ、LHSのこのような測定値がどのように解釈されるかについて、いくつかの議論があります。しかし、リンク関数がここでのように「同一性」ではない可能性があり、「二乗誤差」が同じ明確な解釈を持たないGLMでは、赤池情報基準もより一般的と思われるため報告されます。ありGLM GOFの懸賞で、他のいくつかの候補明確な勝者とは。

R2


7
上記の出力の「Nagelkerke-pseudo- "R2"」はどこにありますか?
トム

1
私はトムの質問を繰り返している。出力のNagelkerke-pseudo- "R2"はどこにありますか、またはどのように見つけることができますか?値についての詳細情報を探しているのではなく、Rの出力でそれを見つけることができる場所を探しています。質問の出力例には、範囲[0-1]の適合度の値のように見えるものは何もないため、混乱しています。
ケビン-モニカーの復活

stats.stackexchange.com/questions/8511/…およびstackoverflow.com/questions/6242818/…を参照してください... glmオブジェクトまたはサマリー出力のいずれにもR ^ 2が表示されません。私のお気に入りのモデリング環境なので、rmsサマリー関数からの通常の出力を考えていたかもしれません。
DWin

9

特に、Null DevianceとResidual Devianceを使用します。

1 - (Residual Deviance/Null Deviance)

考えてみると、モデルの逸脱とヌルの比率を測定しようとしています。モデルは、切片(ヌル偏差)よりもどれだけ優れているか(残留偏差)。その比率が小さい場合、ヌルのほとんどの逸脱を「説明」しています。1マイナスで、Rの2乗が得られます。

インスタンスでは、.998を取得します。

glmではなく線形モデル(lm)を呼び出すと、要約で明示的にR 2乗が得られ、同じ数であることがわかります。


5

バイナリロジスティックモデルを実行している場合、glm()モデルでHosmer Lemeshow Goodness of Fitテストも実行できます。ResourceSelectionライブラリを使用します。

library(ResourceSelection)

model <- glm(tmpData$Y ~ tmpData$X1 + tmpData$X2 + tmpData$X3 + 
           as.numeric(tmpData$X4) + tmpData$X5 + tmpData$X6 + tmpData$X7, family = binomial)

summary(model)
hoslem.test(model$y, model$fitted)

ただし、これはバイナリ従属変数モデルでのみ機能することに注意してください(たとえば、OPが設定されてfamily = "binomialいる場合。OPの例は線形回帰です。
Matthew

@Matthewこれは本当です、すみませんでした。私は最近バイナリロジスティック回帰を使用してきたので、私の脳はちょうどに行きましたhoslem.test()
-dylanjm

わかりやすい:)投稿の編集を提案しましたが、Rコードも更新するのを忘れていました。わかりやすくするために変更することもできます。
マシュー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.