I am interested in changing the null hypotheses using

`glm()`

in R.For example:

`x = rbinom(100, 1, .7) summary(glm(x ~ 1, family = "binomial"))`

tests the hypothesis that p=0.5. What if I want to change the null to p = some arbitrary value, within

`glm()`

?I know this can be done also with

`prop.test()`

and`chisq.test()`

, but I’d like to explore the idea of using`glm()`

to test all hypotheses relating to categorical data.

**Answer**

You can use an *offset*: `glm`

with `family="binomial"`

estimates parameters on the log-odds or logit scale, so β0=0 corresponds to log-odds of 0 or a probability of 0.5. If you want to compare against a probability of p, you want the baseline value to be q=logit(p)=log(p/(1−p)). The statistical model is now

Y∼Binom(μ)μ=1/(1+exp(−η))η=β0+q

where only the last line has changed from the standard setup. In R code:

- use
`offset(q)`

in the formula - the logit/log-odds function is
`qlogis(p)`

- slightly annoyingly, you have to provide an offset value for each element in the response variable – R won’t automatically replicate a constant value for you. This is done below by setting up a data frame, but you could just use
`rep(q,100)`

.

```
x = rbinom(100, 1, .7)
dd <- data.frame(x, q = qlogis(0.7))
summary(glm(x ~ 1 + offset(q), data=dd, family = "binomial"))
```

**Attribution***Source : Link , Question Author : Bill Ravenwood , Answer Author : Ben Bolker*