# wedderburn: Wedderburn Quasi-likelihood Family In hturner/gnm: Generalized Nonlinear Models

## Description

Creates a `family` object for use with `glm`, `gnm`, etc., for the variance function [μ(1-μ)]^2 introduced by Wedderburn (1974) for response values in [0,1].

## Usage

 `1` ```wedderburn(link = "logit") ```

## Arguments

 `link` The name of a link function. Allowed are "logit", "probit" and "cloglog".

## Value

An object of class `family`.

## Note

The reported deviance involves an arbitrary constant (see McCullagh and Nelder, 1989, p330); for estimating dispersion, use the Pearson chi-squared statistic instead.

## Author(s)

Modification of `binomial` by the R Core Team. Adapted for the Wedderburn quasi-likelihood family by David Firth.

## References

Gabriel, K R (1998). Generalised bilinear regression. Biometrika 85, 689–700.

McCullagh, P and Nelder, J A (1989). Generalized Linear Models (2nd ed). Chapman and Hall.

Wedderburn, R W M (1974). Quasilikelihood functions, generalized linear models and the Gauss-Newton method. Biometrika 61, 439–47.

`glm`, `gnm`, `family`
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26``` ```set.seed(1) ### Use data from Wedderburn (1974), see ?barley ### Fit Wedderburn's logit model with variance proportional to the ### square of mu(1-mu) logitModel <- glm(y ~ site + variety, family = wedderburn, data = barley) fit <- fitted(logitModel) print(sum((barley\$y - fit)^2 / (fit * (1-fit))^2)) ## Agrees with the chi-squared value reported in McCullagh and Nelder ## (1989, p331), which differs slightly from Wedderburn's reported value. ### Fit the biplot model as in Gabriel (1998, p694) biplotModel <- gnm(y ~ -1 + instances(Mult(site, variety), 2), family = wedderburn, data = barley) barleySVD <- svd(matrix(biplotModel\$predictors, 10, 9)) A <- sweep(barleySVD\$v, 2, sqrt(barleySVD\$d), "*")[, 1:2] B <- sweep(barleySVD\$u, 2, sqrt(barleySVD\$d), "*")[, 1:2] ## These are essentially A and B as in Gabriel (1998, p694), from which ## the biplot is made by plot(rbind(A, B), pch = c(LETTERS[1:9], as.character(1:9), "X")) ### Fit the double-additive model as in Gabriel (1998, p697) variety.binary <- factor(match(barley\$variety, c(2,3,6), nomatch = 0) > 0, labels = c("Rest", "2,3,6")) doubleAdditive <- gnm(y ~ variety + Mult(site, variety.binary), family = wedderburn, data = barley) ```