Я полагаю, вы ищете аргумент offset
в glm
.Так, например, вы можете сделать что-то вроде этого:
glm(y ~ x1, offset = x2,...)
, где в этом случае коэффициент x2
будет установлен на 1. В вашем случае, возможно, вы захотите умножить этот столбец на 0,8?
Чтобы развернуть, вот что ?glm
говорит об аргументе offset
:
, это можно использовать для указания априорно известного компонента, включаемого в линейныйпредиктор во время примерки.Это должен быть NULL или числовой вектор длины, равный числу падежей.Один или несколько смещенных членов могут быть включены в формулу взамен или также, и, если указано более одного, используется их сумма.См. Model.offset.
Таким образом, вы можете добавить смещения в формулу модели, используя также функцию offset()
.Вот простой пример, иллюстрирующий его использование:
set.seed(123)
d <- data.frame(y = factor(sample(0:1,size = 100,replace = TRUE)),x1 = runif(100),x2 = runif(100))
glm1 <- glm(y~x1+x2,data = d,family = binomial)
coef(glm1)
(Intercept) x1 x2
0.4307718 -0.4128541 -0.6994810
glm2 <- glm(y~x1,data = d,offset = x2,family = binomial)
coef(glm2)
(Intercept) x1
-0.4963699 -0.2185571
glm3 <- glm(y~x1+offset(x2),data = d,family = binomial)
coef(glm3)
(Intercept) x1
-0.4963699 -0.2185571
Обратите внимание, что последние два имеют одинаковые коэффициенты.