如何在回归中设置系数值; [R

时间:2011-11-22 22:44:30

标签: r regression glm

我正在寻找一种方法来指定预测变量的值。当我使用当前数据运行glm时,我的一个变量的系数接近于1。我想把它设置为.8。

我知道这会给我一个较低的R ^ 2值,但我先前知道模型的预测能力会更大。

glm的权重部分看起来很有希望,但我还没想出来。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:7)

我相信您正在寻找offset中的glm参数。例如,您可能会这样做:

glm(y ~ x1, offset = x2,...)

在这种情况下,x2的系数将设置为1.在您的情况下,您可能希望将该列乘以0.8?

要展开,以下是?glm关于offset参数的说法:

  

这可以用于指定要包括的先验已知组件   在拟合期间的线性预测器中。这应该是NULL或a   长度等于案例数的数字向量。一个或多个   偏移项可以包含在公式中,也可以包含在公式中,如果   指定了多个使用的总和。见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 

请注意,最后两个具有相同的系数。

相关问题