6

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

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

glm 的权重组件看起来很有希望,但我还没有弄清楚。

任何帮助将不胜感激。

4

1 回答 1

9

offset我相信您正在寻找glm. 因此,例如,您可能会执行以下操作:

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

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

为了扩展,这里是?glm关于这个offset论点的内容:

这可用于指定在拟合期间要包含在线性预测器中的先验已知组件。这应该是 NULL 或长度等于事例数的数字向量。一个或多个偏移项可以包含在公式中,或者也可以包含在公式中,如果指定了多个,则使用它们的总和。请参阅模型偏移量。

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 

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

于 2011-11-22T22:58:38.020 回答