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
Warning message: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm!
4 messages · Simon Kiss, Elizabeth Fuller Bettini, Berend Hasselman +1 more
An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-help/attachments/20121210/470f4bcb/attachment.pl>
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.
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