如何在R语言的逻辑回归模型中将一个变量的系数设置为1?


要将逻辑回归模型中一个变量的系数设置为1,我们可以使用offset函数。

例如,如果我们有一个名为df的数据框,其中包含一个二元列(例如y)和三个自变量(例如x1、x2和x3),并且我们想要创建一个x1系数等于1的逻辑回归模型,那么我们可以使用以下命令:

glm(y~x2+x3,offset=x1,data=df,family=binomial)

示例1

以下代码片段创建一个示例数据框:

y1<-sample(0:1,20,replace=TRUE)
iv1<-rpois(20,2)
iv2<-rpois(20,2)
iv3<-rpois(20,5)
df1<-data.frame(y1,iv1,iv2,iv3)
df1

输出

创建了以下数据框:

  y1 iv1 iv2 iv3
1  1  1  5   8
2  1  2  3   6
3  1  2  3  11
4  1  2  1   5
5  1  2  2   2
6  1  2  1   2
7  1  3  2   1
8  1  1  2   5
9  1  0  1  10
10 0  0  0   5
11 1  0  3   5
12 1  2  4   1
13 1  4  5  11
14 0  3  2   2
15 0  1  1   3
16 1  1  3   1
17 0  1  2   7
18 1  1  3   8
19 1  3  6   9
20 1  6  3   9

为了创建一个x1系数设置为1的逻辑回归模型,请将以下代码添加到上面的代码片段中:

y1<-sample(0:1,20,replace=TRUE)
iv1<-rpois(20,2)
iv2<-rpois(20,2)
iv3<-rpois(20,5)
df1<-data.frame(y1,iv1,iv2,iv3)
Model_1<-glm(y1~iv1+iv2,offset=iv3,data=df1,family=binomial)
summary(Model_1)

输出

如果您将以上所有代码片段作为一个程序执行,它将生成以下输出:

Call:
glm(formula = y1 ~ iv1 + iv2, family = binomial, data = df1,
offset = iv3)

Deviance Residuals:
   Min    1Q       Median     3Q    Max
-2.95608 0.00035 0.04659 0.45252 1.67587

Coefficients:
            Estimate Std. Error  z value Pr(>|z|)
(Intercept) -7.6349  2.4801    -3.078    0.00208 **
iv1          1.3445  0.9276     1.449    0.14723
iv2          1.8234  0.9462     1.927    0.05396 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 31.099 on 19 degrees of freedom
Residual deviance: 19.741 on 17 degrees of freedom
AIC: 25.741

Number of Fisher Scoring iterations: 7

示例2

以下代码片段创建一个示例数据框:

Response<-sample(0:1,20,replace=TRUE)
Rate<-sample(1:10,20,replace=TRUE)
Score<-sample(0:9,20,replace=TRUE)
df2<-data.frame(Response,Rate,Score)
df2

创建了以下数据框:

Response Rate Score
1  0     8    9
2  1     7    6
3  1     2    9
4  0     8    9
5  0     9    8
6  0     1    2
7  1     3    9
8  1     7    2
9  0     7    2
10 0    10    5
11 0     3    9
12 0     7    8
13 1     3    6
14 1     7    5
15 0     2    8
16 1     8    9
17 1     7    9
18 1     6    8
19 0     4    4
20 0     8    7

为了创建一个Rate系数设置为1的逻辑回归模型,请将以下代码添加到上面的代码片段中:

Response<-sample(0:1,20,replace=TRUE)
Rate<-sample(1:10,20,replace=TRUE)
Score<-sample(0:9,20,replace=TRUE)
df2<-data.frame(Response,Rate,Score)
Model_2<-glm(Response~Score,offset=Rate,data=df2,family=binomial)
summary(Model_2)

输出

如果您将以上所有代码片段作为一个程序执行,它将生成以下输出:

Call:
glm(formula = Response ~ Score, family = binomial, data = df2,
offset = Rate)

Deviance Residuals:
   Min     1Q      Median 3Q    Max
-2.5313 -1.4891 -0.1062 1.1435 2.9733

Coefficients:
            Estimate Std. Error  z value   Pr(>|z|)
(Intercept) -7.3748       1.6822  -4.384   1.16e-05 ***
Score        0.1074        0.2432   0.442   0.659
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

Null deviance: 55.769 on 19 degrees of freedom
Residual deviance: 55.571 on 18 degrees of freedom
AIC: 59.571

Number of Fisher Scoring iterations: 4

更新于:2021年11月5日

588 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告