2016-12-14 302 views
0

我想知道是否有一種方法可以根據產生的輸出計算Nagelkerke R-square。我知道我可以直接計算McFadden R-square。但是Nagelkerke產生了我們認爲是模型更精確的力量。 如果你有這樣的想法,我沒有把運氣添加到我的設置上。R:McFadden&Nagelkerke之間的關係

謝謝。

+1

的'pscl'包中包含用於估計幾僞R^2所統計的函數('pR2')。需要警告的是,「Nagelkerke產生我們感覺到的是模型的更精確的強度」是與以類似於線性模型的方式評估GLM有關的困難的過於簡單化... –

+0

有多種計算僞R2度量的包。 ('library(「sos」); findFn(「Nagelkerke」)')。你嘗試過哪些,哪些沒有奏效? –

+0

當我輸入findFn時,它找不到它 - 它不存在。我也嘗試了pR2功能,但沒有成功。 – WillCoop4

回答

1

這個問題還沒有定義,所以我會盡我所能,假設「產生的輸出」是一個glm對象。此函數應用於glm對象時應產生適當的僞R方形。

Nagelkerke <- function(mod) { 
    l_full <- exp(logLik(mod)) 
    l_intercept <- exp(logLik(update(mod, . ~ 1))) 
    N <- length(mod$y) 
    r_2 <- (1 - (l_intercept/l_full)^(2/N))/(1 - l_intercept^(2/N)) 
    return(as.numeric(r_2)) 
} 

實施例:

model <- glm(formula = vs ~ mpg + disp, family = binomial("logit"), data = mtcars); 
Nagelkerke(model); 
#[1] 0.6574295 
+0

我看到了這個,但是當我輸入Nagelkerke(模型)時,我收到了一個錯誤信息,說沒有這樣的功能。 – WillCoop4