Как установить значение коэффициента в регрессии;р - PullRequest
3 голосов
/ 23 ноября 2011

Я ищу способ указать значение переменной-предиктора. Когда я запускаю glm с моими текущими данными, коэффициент для одной из моих переменных близок к единице. Я хотел бы установить его на 0,8.

Я знаю, что это даст мне более низкое значение R ^ 2, но я априори знаю, что предсказательная сила модели будет выше.

Весовая составляющая glm выглядит многообещающе, но я еще не понял.

Любая помощь будет принята с благодарностью.

1 Ответ

7 голосов
/ 23 ноября 2011

Я полагаю, вы ищете аргумент 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 

Обратите внимание, что последние два имеют одинаковые коэффициенты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...