如何在 R 中固定自变量的系数?


在进行分析时,我们可能会了解自变量的变化,或者我们可能希望了解如果我们固定某个变量,其他自变量的行为如何。因此,我们可以在创建模型时固定自变量的系数,这可以通过使用 offset 函数和我们想要固定系数值的变量的系数来实现。

示例

考虑以下数据框

在线演示

> set.seed(854)
> x1<-rnorm(20,5,0.34)
> x2<-rnorm(20,5,1.96)
> y1<-rnorm(20,10,1.20)
> df1<-data.frame(x1,x2,y1)
> df1

输出

     x1       x2       y1
1  5.055384 4.179533 10.432503
2  4.504170 4.239420  9.965098
3  4.790987 6.854590 12.394971
4  5.225883 5.302747  9.959724
5  5.331538 7.986233 10.652037
6  5.437044 4.479045 10.631804
7  4.880098 6.737453 11.647296
8  5.027229 3.380460 10.336230
9  5.114676 5.252512 10.005986
10 4.971399 3.423199 10.892680
11 5.360185 8.004727 10.988475
12 4.938459 6.348125 7.740576
13 5.490242 5.362272 8.400993
14 5.104938 4.410061 8.559530
15 5.680805 4.225577 9.805985
16 5.321608 5.213297 8.401131
17 5.095157 8.048281 10.927522
18 5.153315 2.422241 9.090280
19 5.534677 2.886866 8.402550
20 4.625666 4.487508 9.957264

创建预测 y1 的模型,并固定 x2 的系数

> Model1<-lm(y1~x1+offset(5*x2),data=df1)
> summary(Model1)

调用

lm(formula = y1 ~ x1 + offset(5 * x2), data = df1)

残差

  Min       1Q     Median 3Q    Max
-13.4830 -6.2440 0.9653 4.9613 12.8422

系数

Estimate Std. Error t value Pr(>|t|)
(Intercept) -13.0038 32.2757 -0.403 0.692
x1 -0.5549 6.2786 -0.088 0.931

残差标准误差:18 自由度的 8.269

多重 R 平方:0.5247,调整后的 R 平方:0.4983

F 统计量:1 和 18 DF 的 19.87,p 值:0.0003043

示例

让我们看看另一个例子

在线演示

> a1<-rpois(20,5)
> a2<-rpois(20,8)
> Response<-sample(1:10,20,replace=TRUE)
> df2<-data.frame(a1,a2,Response)
> df2

输出

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

创建预测 Response 的模型,并固定 a1 的系数

> Model2<-lm(Response~offset(1.34*a1)+a2,data=df2)
> summary(Model2)

调用

lm(formula = Response ~ offset(1.34 * a1) + a2, data = df2)

残差

Min 1Q Median 3Q Max
-10.890 -3.164 1.325 3.358 9.870

系数

Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.4180 4.4255 0.998 0.331
a2 -0.7968 0.4998 -1.594 0.128

残差标准误差:18 自由度的 5.543

多重 R 平方:0.3836,调整后的 R 平方:0.3494

F 统计量:1 和 18 DF 的 11.2,p 值:0.003587

更新于: 2020-11-06

586 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告