# R binomial family with identity link

I want to fit a linear model by R with family=binomial(link="identity"), however, binomial family do not have identity link. What should I do?

• Note that if you need to both deal with overdispersion and use an identity link you should consider going directly to a quasi- model with binomial variance function. An intercept-only binomial model can be fitted by hand. Mar 2, 2015 at 5:26
• See Wikipedia on the linear probability model & CV posts here & here for the statistical background. You want family=quasi(link="identity", variance = "mu(1-mu)"), if you want it. Mar 2, 2015 at 10:42
• (And if you wanted the dispersion parameter fixed at one: family=binomial(link=make.link("identity")). Mar 2, 2015 at 10:57
• @Scortchi, why not turn those comments into an official answer? Mar 4, 2015 at 17:33
• @gung: On actually testing the code before posting an answer I found out you don't need make.link. Mar 6, 2015 at 14:59

See Wikipedia on the linear probability model, & CV posts here & here for the statistical background. Though not "wrong", you'd want a good reason for using an identity link to model a Bernoulli probability.

According to the family manual

the binomial family [accepts] the links logit, probit, cauchit, (corresponding to logistic, normal and Cauchy CDFs respectively) log and cloglog (complementary log-log)

But

The link and variance arguments have rather awkward semantics for back-compatibility. The recommended way is to supply them is as quoted character strings, but they can also be supplied unquoted (as names or expressions). In addition, they can also be supplied as a length-one character vector giving the name of one of the options, or as a list (for link, of class "link-glm"). The restrictions apply only to links given as names: when given as a character string all the links known to make.link are accepted.

So family=binomial(link="identity") works but family=binomial(link=identity) doesn't. (If you find differently it might be to do with the R version.) To allow for over-dispersion, then usefamily=quasi(link="identity", variance = "mu(1-mu)").

• the link="identity" vs. link=identity fix was a huge help. This is a workout in Agresti's CDA textbook. The code he provides is the quasi(link...) you discuss, however the simplicity of adding " " is elegant fix. To my understanding the link="identity" call represents the binomial as a linear model. Oct 3, 2015 at 17:40