logistic regression weights problem
On Wed, 13 Apr 2005, Federico Calboli wrote:
I have a problem with weighted logistic regression. I have a number of SNPs and a case/control scenario, but not all genotypes are as "guaranteed" as others, so I am using weights to downsample the importance of individuals whose genotype has been heavily "inferred". My data is quite big, but with a dummy example:
status <- c(1,1,1,0,0) SNPs <- matrix( c(1,0,1,0,0,0,0,1,0,1,0,1,0,1,1), ncol =3) weight <- c(0.2, 0.1, 1, 0.8, 0.7) glm(status ~ SNPs, weights = weight, family = binomial)
Call: glm(formula = status ~ SNPs, family = binomial, weights = weight)
Coefficients:
(Intercept) SNPs1 SNPs2 SNPs3
-2.079 42.282 -18.964 NA
Degrees of Freedom: 4 Total (i.e. Null); 2 Residual
Null Deviance: 3.867
Residual Deviance: 0.6279 AIC: 6.236
Warning messages:
1: non-integer #successes in a binomial glm! in: eval(expr, envir,
enclos)
2: fitted probabilities numerically 0 or 1 occurred in: glm.fit(x = X, y
= Y, weights = weights, start = start, etastart = etastart,
NB I do not get warning (2) for my data so I'll completely disregard it.
Warning (1) looks suspiciously like a multiplication of my C/C status by
the weights... what exacly is glm doing with the weight vector?
Using it in the GLM definition. If you specify 0<=y_i<=1 and weights a_i, this is how you specify Binomial(a_i, a_iy_i). Look up any book on GLMs and see what it says about the binomial. E.g. MASS4 pp. 184, 190.
In any case, how would I go about weighting my individuals in a logistic regression?
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'.
Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595