0
$\begingroup$

I am following a code snippet someone provided for calculating Nagelkerke R2:

  N <- my_prevalence
  ##base model 
  glm0 <- glm(as.formula(paste("my base model")), data = dat, family = binomial(logit)) 
  
  # logistic full model
  glm1 <- glm(as.formula(paste("my full model")), data = dat, family = binomial(logit)) 
  
  # Calculate Cox & Snell R2 using log Likelihoods 
  LL1 <-  logLik(glm1)
  LL0 <-  logLik(glm0)
  CSr2 <-  round(1 - exp((2 / N) * (LL0[1] - LL1[1])), 6)
  
  # Calculate Nagelkerke's R2
  NKr2 <- round(CSr2 / (1 - exp((2 / N) * LL0[1])), 6)  

  # Test whether NKr2 is significantly different from 0
  devdiff <- round(glm0$deviance - glm1$deviance, 1) 
  df <- glm0$df.residual - glm1$df.residual degree of freedom 
  NKr2_pval <- pchisq(devdiff, df, lower.tail = F) 

To check my understanding, this link mentions that

  • "Deviance is a number that measures the goodness of fit of a logistic regression"
  • "deviance = 0 means that the logistic regression model describes the data perfectly"

Here it looks like what they are doing is taking the difference of the deviance from each model and testing that for significance. Is that right?

What I don't understand is that they mention testing "whether NKr2 is significantly different from 0",how would saying that be different from saying that they are testing if the difference of the deviance from each model is significant?

$\endgroup$

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.