Simon Kiss
2012-Dec-10 13:40 UTC
[R] Warning message: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
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!
########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
*********************************
Simon J. Kiss, PhD
Assistant Professor, Wilfrid Laurier University
73 George Street
Brantford, Ontario, Canada
N3T 2C9
Elizabeth Fuller Bettini
2012-Dec-10 13:48 UTC
[R] Warning message: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
Please unsubscribe me from this mailing list. Thank you Liz On Mon, Dec 10, 2012 at 8:40 AM, Simon Kiss <sjkiss@gmail.com> wrote:> R-help@r-project.org[[alternative HTML version deleted]]
Berend Hasselman
2012-Dec-10 14:07 UTC
[R] Warning message: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
On 10-12-2012, at 14:48, Elizabeth Fuller Bettini wrote:> Please unsubscribe me from this mailing list. > Thank you > Liz >You do that yourself. See the link at the very end of each message. Repeated here for your convenience: https://stat.ethz.ch/mailman/listinfo/r-help And don't hijack a thread for something completely unrelated to the original post. Berend> On Mon, Dec 10, 2012 at 8:40 AM, Simon Kiss <sjkiss at gmail.com> wrote: > >> R-help at r-project.org > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code.
David Winsemius
2012-Dec-10 19:48 UTC
[R] Warning message: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
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 convergeAnd 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