[R] Calculation of r.squared for linear model with offset

Prof Brian Ripley ripley at stats.ox.ac.uk
Mon Apr 10 10:52:49 CEST 2006

On Sun, 9 Apr 2006, Ross Darnell wrote:

> R^2 for a model is usually defined as 1-RSS/TSS where TSS is the SS
> about the mean and RSS is the residual SS from the model.

Not when there is no intercept or where there is an offset in the model.

> Consider the model in R
> z <- runif(20)
> y <- z+rnorm(20)
> my.model <- lm(y~offset(z))
> summary(my.model)$r.squared
> Here the RSS is equivalent to the TSS and
> gives 0 when it should (IMHO and a few others perhaps) be
> 1 - RSS/TSS(corrected for the mean only)
> RSS = sum(resid(my.model)^2)
> TSS = sum((y-mean(y))^2)

Those are not the correct formulae in the presence of an offset.

> Have I missed this somewhere in the FAQ's or elsewhere?

Elsewhere.  The offset is subtracted from y.

Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

More information about the R-help mailing list