offset, porque el coeficiente es 1 necesariamente

Estos días me han preguntado sobre un modelo lineal tal que $latex y \sim x_1 + \dots$ donde el coeficiente de $latex x_1$ no se entiende si no es igual a 1. Es como si los datos se creasen de la forma

1
2
3
4
n <- 100
x1 <- rnorm(n)
x2 <- rnorm(n)
y <- x1 + rnorm(n, .1) + .02 * x2

y se conociese el coeficiente de $latex x_1$ y no el de $latex x_2$. Entonces no tiene sentido plantear el modelo

1
lm(y ~ x1 + x2)

sino más bien

1
modelo <- lm(y ~ offset(x1) + x2)

que hace lo que uno espera. Lo cual se puede comprobar, por ejemplo, comparando

1
2
3
head(predict(modelo))
head(x1 + coefficients(modelo)[1] +
    x2 * coefficients(modelo)[2])