[R] logistic regression weights problem

Federico Calboli f.calboli at imperial.ac.uk
Wed Apr 13 22:17:35 CEST 2005


On Wed, 2005-04-13 at 17:42 +0100, Prof Brian Ripley wrote:
> Use the cbind(yes, no) form of specification.  Note though that the 
> `weights' in a GLM are case weights and not arbitrary downweighting 
> factors and aspects of the output (e.g. AIC, anova) depend on this.  A 
> different implementation of (differently) weighted GLM is svyglm() in 
> package 'survey'.

I tried to use cbind() on a slightly modified dummy set to get get rid
of all warnings and that's what I got:


status <- c(1,1,1,0,0)
SNPs <- matrix( c(1,0,1,0,0,1,0,1,0,1,0,1,0,1,1), ncol =3)
weight <- c(0.2, 0.1, 1, 0.8, 0.7)

############ using cbind()

glm(cbind(status, 1-status) ~ SNPs, weights = weight, family = binomial)

Call:  glm(formula = cbind(status, 1 - status) ~ SNPs, family =
binomial,      weights = weight)

Coefficients:
(Intercept)        SNPs1        SNPs2        SNPs3
     -2.079       43.132      -19.487           NA

Degrees of Freedom: 4 Total (i.e. Null);  2 Residual
Null Deviance:      3.867
Residual Deviance: 0.6279       AIC: 6.236

########### NOT using cbind()

glm(status~ SNPs, weights = weight, family = binomial)

Call:  glm(formula = status ~ SNPs, family = binomial, weights = weight)

Coefficients:
(Intercept)        SNPs1        SNPs2        SNPs3
     -2.079       42.944      -19.366           NA

Degrees of Freedom: 4 Total (i.e. Null);  2 Residual
Null Deviance:      3.867
Residual Deviance: 0.6279       AIC: 6.236
Warning message:
non-integer #successes in a binomial glm! in: eval(expr, envir, enclos)
##############################################

The anova() call of the cbind() model seems happy:

###############################################
mod <- glm(cbind(status, 1-status) ~ SNPs, weights = weight, family =
binomial)

anova(mod, test = "Chi")
Analysis of Deviance Table

Model: binomial, link: logit

Response: cbind(status, 1 - status)

Terms added sequentially (first to last)


     Df Deviance Resid. Df Resid. Dev P(>|Chi|)
NULL                     4     3.8673
SNPs  2   3.2394         2     0.6279    0.1980
#####################################################

The real data modeldoes not show warnings when I use cbind() but it
still shows warning when I call anova() on the model:

#######################################################
anova(glm(cbind(sta, 1-sta) ~ (X1 + X2 + X3 + X4 + X5) * breed, family=
binomial, weights =igf$we, igf),test="Chi")
Analysis of Deviance Table

Model: binomial, link: logit

Response: cbind(sta, 1 - sta)

Terms added sequentially (first to last)


          Df Deviance Resid. Df Resid. Dev P(>|Chi|)
NULL                        330     372.89
X1         1     0.14       329     372.75      0.71
X2         1     0.26       328     372.49      0.61
X3         1 0.001121       327     372.49      0.97
X4         1     2.63       326     369.86      0.10
X5         1     1.87       325     367.99      0.17
breed      3     5.41       322     362.58      0.14
X1:breed   3     2.98       319     359.60      0.39
X2:breed   3     1.21       316     358.39      0.75
X3:breed   2     1.32       314     357.08      0.52
X4:breed   3     1.75       311     355.33      0.63
X5:breed   2     2.38       309     352.95      0.30
Warning messages:
1: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
2: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
3: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
4: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
5: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
6: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
7: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
8: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
9: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
10: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
##################################################

Why such inconsistency?

Regards,

Federico Calboli

-- 
Federico C. F. Calboli
Department of Epidemiology and Public Health
Imperial College, St Mary's Campus
Norfolk Place, London W2 1PG

Tel  +44 (0)20 7594 1602     Fax (+44) 020 7594 3193

f.calboli [.a.t] imperial.ac.uk
f.calboli [.a.t] gmail.com




More information about the R-help mailing list