Glm (R) 'de uyum iyiliği nasıl hesaplanır


21

Ben glm işlevini çalıştırmak aşağıdaki sonucu var.

Aşağıdaki değerleri nasıl yorumlayabilirim:

  • Boş sapma
  • Artık sapma
  • AIC

Uyumun iyiliği ile ilgili bir şeyleri var mı? R-karesi veya başka bir önlem gibi bu sonuçlardan bir miktar uyum ölçüsü hesaplayabilir miyim?

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

Bunun, normalde bu istatistiksel terimler hakkında bilgi aramayacağı SO'dan taşındığını fark ettim. Burada harika bir kaynağınız var! Örneğin, AIC gibi bazı terimlerinizle yapılan bir aramadan neler öğrenebileceğinize bakın . Bunu yapmak için biraz zaman harcanması ya sorunuzu tam olarak cevaplamalıdır ya da en azından daha spesifik bir soru sormanız için size yol göstermelidir.
whuber

Gauss glms ile ilgili değildir, ancak ikili verilere takılan bir bernoulli glm'niz varsa, model uyumunu değerlendirmek için artık sapmayı kullanamazsınız, çünkü veriler sapma formülünde iptal olur. Şimdi, bu durumda artık sapma farkını iki modeli karşılaştırmak için kullanabilirsiniz, ancak artık sapmanın kendisini kullanamazsınız.
FisherDisinformation

Yanıtlar:


15

glmR2glmR2R2

RGLM2=1(idi,model2)2/N(idi,null2)2/N        .=.        1SSE/n[model]SST/n[total]=ROLS2

LHS üzerinde böyle bir önlemin nasıl yorumlandığı hakkında bazı tartışmalar var, ancak sadece modeller daha basit Gauss / OLS durumundan ayrıldığında. Ancak burada olduğu gibi link fonksiyonunun "kimlik" olmayabilir ve "kare hatası" aynı açık yoruma sahip olmayabilir GLMs, bu yüzden Akaike Bilgi Ölçütü de daha genel olduğu için rapor edilir. Orada GLM GOF çekiliş birçok diğer yarışmacının net bir kazanan.

GLM'leri diğer hata yapılarıyla kullanacaksanız, bir GOF ölçüsü bildirmemeyi düşünebilirsiniz: R2


7
Yukarıdaki çıktıdaki "Nagelkerke-pseudo-" R2 "tam olarak nerede?
Tom

1
Tom'un sorusunu tekrarlıyorum. Çıktıda Nagelkerke-sözde- "R2" nerede ya da nasıl bulabilirim? Değer hakkında daha fazla bilgi arıyorum, daha çok R çıktısında bulabileceğim yer. Sorunun örnek çıktısında bana [0-1] aralığında uygunluk değeri gibi görünen hiçbir şey yok, bu yüzden kafam karıştı.
Kevin -

Bkz stats.stackexchange.com/questions/8511/... ve stackoverflow.com/questions/6242818/... ... Ben glm nesne veya özet çıkışı ya herhangi R ^ 2 görmüyorum. En sevdiğim modelleme ortamı olduğu için rms özet işlevlerinden normal çıktıyı düşünüyor olabilirim.
DWin

9

Null Sapması ve Kalan Sapmayı kullanın, özellikle:

1 - (Residual Deviance/Null Deviance)

Bunu düşünürseniz, modelinizdeki sapmanın null'a oranını ölçmeye çalışıyorsunuz; modelinizin sadece kesişme noktasından (boş sapma) daha iyi olduğu (artık sapma). Eğer bu oran küçükse, boştaki sapmanın çoğunu 'açıklıyorsunuz'; 1 eksi sizi R kare alır.

Sizin örneğinizde .998 alırsınız.

Eğer glm yerine lineer modeli (lm) çağırırsanız, size açıkça özet olarak bir R-kare verir ve aynı sayı olduğunu görebilirsiniz.


5

İkili bir lojistik model çalıştırıyorsanız, glm () modelinizde Hosmer Lemeshow Uygunluk İyiliği testini de çalıştırabilirsiniz. ResourceSelection kitaplığını kullanma.

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)

Bununla birlikte, bunun sadece ikili bağımlı değişken modeller için çalışmasına rağmen (örneğin, OP ayarlamışsa family = "binomial. OP'nin örneği doğrusal regresyondur.
Matthew

@Matthew Bu doğru, özür dilerim. Ben son zamanlarda ikili lojistik regresyonlar kullanıyorum beynim sadece gittihoslem.test()
dylanjm

Anlaşılabilir :) Postanızda bir düzenleme önerdim ancak R kodunu da güncellemeyi unuttum. Bunu sadece netlik uğruna değiştirmek isteyebilirsiniz.
Matthew
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.