Linear Regression with a known fixed intercept in R Linear Regression with a known fixed intercept in R r r

Linear Regression with a known fixed intercept in R


You could subtract the explicit intercept from the regressand and then fit the intercept-free model:

> intercept <- 1.0> fit <- lm(I(x - intercept) ~ 0 + y, lin)> summary(fit)

The 0 + suppresses the fitting of the intercept by lm.

edit To plot the fit, use

> abline(intercept, coef(fit))

P.S. The variables in your model look the wrong way round: it's usually y ~ x, not x ~ y (i.e. the regressand should go on the left and the regressor(s) on the right).


I see that you have accepted a solution using I(). I had thought that an offset() based solution would have been more obvious, but tastes vary and after working through the offset solution I can appreciate the economy of the I() solution:

with(lin, plot(y,x) )lm_shift_up <- lm(x ~ y +0 +                        offset(rep(1, nrow(lin))),              data=lin)abline(1,coef(lm_shift_up))


I have used both offset and I(). I also find offset easier to work with (like BondedDust) since you can set your intercept.

Assuming Intercept is 10.

plot (lin$x, lin$y)fit <-lm(lin$y~0 +lin$x,offset=rep(10,length(lin$x)))abline(fit,col="blue")