[R] Warning message: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
David Winsemius
dwinsemius at comcast.net
Mon Dec 10 20:48:23 CET 2012
On Dec 10, 2012, at 5:40 AM, Simon Kiss wrote:
> Hi there
> I'm trying to fit a logistic regression model to data that looks
> very similar to the data in the sample below. I don't understand
> why I'm getting this error; none of the data are proportional and
> the weights are numeric values. Should I be concerned about the
> warning about non-integer successes in my binomial glm? If I should
> be, how do I go about addressing it?
> I'm pretty sure the weights in the data frame are sampling weights.
>
> What follows is the result of str() on my data, the series of
> commands I'm using to fit the model, the responses I'm getting and
> then some code to reproduce the data and go through the same steps
> with that code. One last (minor) question. When calling svyglm on
> the sample data, I actually get some information about the model
> fitting results as well as the error about non-integer successes.
> In my real data, you only get the warning. Calling summary(mod1) on
> the real data does return information about the coefficients and the
> model fitting.
>
> I'm grateful for any help. I'm aware that the topic of non-integer
> successes has been addressed before, but I could not find my answer
> to this question.
>
> Yours, Simon Kiss
>
> ######str() on original data
> str(mat1)
> 'data.frame': 1001 obs. of 5 variables:
> $ prov : Factor w/ 4 levels "Ontario","PQ",..: 2 2 2 2 2 2 2 2 2
> 2 ...
> $ edu : Factor w/ 2 levels "secondary","post-secondary": 2 2 2 1 1
> 2 2 2 1 1 ...
> $ gender: Factor w/ 2 levels "Male","Female": 1 1 2 2 2 2 1 1 2 2 ...
> $ weight: num 1.145 1.436 0.954 0.765 0.776 ...
> $ trust : Factor w/ 2 levels "no trust","trust": 2 1 1 1 1 2 1 2 1
> 2 ...
>
> #######Set up survey design
> des.1<-svydesign(~0, weights=~weight, data=mat1)
>
> #######model and response to svyglm
> mod1<-svyglm(trust ~ gender+edu+prov, design=des.1,
> family='binomial').
>
> Warning message:
> In eval(expr, envir, enclos) : non-integer #successes in a binomial
> glm!
I also got:
> 2: glm.fit: algorithm did not converge
And the gender coefficient was NA.
Your problem is not reproducible because no seed was set. Does this
suggest any issues?
with(mat.test, table(trust, gender) )
gender
trust Female Male
notrust 300 100
trust 0 200
--
David.
>
> ########Model Summary
> summary(mod1)
>
> Call:
> svyglm(formula = trust ~ gender + edu + prov, design = des.1,
> family = "binomial")
>
> Survey design:
> svydesign(~0, weights = ~weight, data = mat1)
>
> Coefficients:
> Estimate Std. Error t value Pr(>|t|)
> (Intercept) -0.625909 0.156560 -3.998 6.87e-05 ***
> genderFemale 0.013519 0.140574 0.096 0.923
> edupost-secondary -0.011569 0.141528 -0.082 0.935
> provPQ -0.006614 0.172105 -0.038 0.969
> provatl 0.335166 0.297860 1.125 0.261
> provwest -0.053862 0.174826 -0.308 0.758
> ---
> Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
> (Dispersion parameter for binomial family taken to be 1.002254)
>
> Number of Fisher Scoring iterations: 4
>
>
>
>
> #########Attempt To Reproduce The Problem
> ########Data
> mat.test<-data.frame(edu=c(rep('secondary', 300), rep('post-
> secondary', 300)), prov=c(rep('ON', 200), rep('PQ', 200), rep('AB',
> 200)), trust=c(rep('trust',200), rep('notrust',400)),
> gender=c(rep('Male', 300), rep('Female', 300)), weight=rnorm(600,
> mean=1, sd=0.3))
> #######Survey Design object
> test<-svydesign(~0, weights=~weight, data=mat.test)
>
> #####Call To svyglm
> svyglm(trust ~ edu+prov+gender, design=test, family='binomial')
>
> #Reults
> Independent Sampling design (with replacement)
> svydesign(~0, weights = ~weight, data = mat.test)
>
> Call: svyglm(formula = trust ~ edu + prov + gender, design = test,
> family = "binomial")
>
> Coefficients:
> (Intercept) edusecondary provON provPQ genderMale
> -2.658e+01 -8.454e-04 5.317e+01 -1.408e-02 NA
>
> Degrees of Freedom: 599 Total (i.e. Null); 596 Residual
> Null Deviance: 759.6
> Residual Deviance: 3.406e-09 AIC: 8
> Warning messages:
> 1: In eval(expr, envir, enclos) :
> non-integer #successes in a binomial glm!
> 2: glm.fit: algorithm did not converge
--
David Winsemius, MD
Alameda, CA, USA
More information about the R-help
mailing list