如何在 R 中固定独立变量的系数?
r programmingserver side programmingprogramming更新于 2025/4/11 15:22:17
在进行分析时,我们可能知道独立变量的变化,或者我们可能想了解如果我们固定某个变量,其他独立变量会如何表现。因此,我们可以在创建模型时固定独立变量的系数,这可以通过使用偏移函数和我们想要固定系数值的变量的系数来实现。
示例
考虑以下数据框:
> 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
通过固定 x2 的系数创建一个预测 y1 的模型:
> 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 统计量:19.87(1 和 18 自由度),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
通过固定 a1 的系数创建一个预测 Response 的模型:
> 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 自由度上的 11.2,p 值:0.003587