R 自变量加1个标准差的线性回归
这一定是一个非常简单的问题,但我不确定我是否做得正确: 我想进行多元线性回归,其中我想在1个标准偏差(SD)中包括自变量(Indv3)变化的影响 换句话说:如果'Indv3'更改1SD,依赖(Depv)变量如何与其关联 我所做的是:计算'Indv3'的SD值,并生成一个虚拟变量(Indv3_plusSD),其中'Indv3'+1SD值=1,其余值为0 然后,为了进行线性回归,我添加了'Indv3_plusSD'虚拟变量并执行回归。然而,当我这样做时,我得到了另一个“Depv”的β系数,与一篇论文中已经发表的相同数据的分析相比…(因此,我可能在SD分析中做得不对:)R 自变量加1个标准差的线性回归,r,regression,standard-deviation,dummy-variable,R,Regression,Standard Deviation,Dummy Variable,这一定是一个非常简单的问题,但我不确定我是否做得正确: 我想进行多元线性回归,其中我想在1个标准偏差(SD)中包括自变量(Indv3)变化的影响 换句话说:如果'Indv3'更改1SD,依赖(Depv)变量如何与其关联 我所做的是:计算'Indv3'的SD值,并生成一个虚拟变量(Indv3_plusSD),其中'Indv3'+1SD值=1,其余值为0 然后,为了进行线性回归,我添加了'Indv3_plusSD'虚拟变量并执行回归。然而,当我这样做时,我得到了另一个“Depv”的β系数,与一篇论文
linregr回归到Indv1
、Indv2
和Indv3
而不使用SD术语:
linregr%
变异(Indv3_标度=标度(Indv3))
(sd3=sd(df$Indv3))
#> [1] 60.84117
模型1=lm(Depv~Indv1+Indv2+Indv3,数据=df)
模型2=lm(Depv~Indv1+Indv2+Indv3_标度,数据=df)
coef(模型1)['Indv3']*sd3
#>Indv3
#> -0.1609104
coef(模型2)[“Indv3_比例”]
#>INDU量表
#> -0.1609104
由(v0.3.0)于2020年1月14日创建,根据Indv1
、Indv2
和Indv3
回归,无需SD术语:
linregr%
变异(Indv3_标度=标度(Indv3))
(sd3=sd(df$Indv3))
#> [1] 60.84117
模型1=lm(Depv~Indv1+Indv2+Indv3,数据=df)
模型2=lm(Depv~Indv1+Indv2+Indv3_标度,数据=df)
coef(模型1)['Indv3']*sd3
#>Indv3
#> -0.1609104
coef(模型2)[“Indv3_比例”]
#>INDU量表
#> -0.1609104
由(v0.3.0)于2020年1月14日创建将此问题移至(交叉验证)我不理解您方法的理由。我想你应该在你的模型中加入scale(Indv3)。把这个问题转移到(交叉验证)我不理解你的方法的理由。我想你应该在你的模型中加入scale(Indv3)。很棒的thx@KentJohnson。所以当Indv3显著相关时,SD*(Indv3的系数)仍然是符号,这是正确的吗。关联?我不知道你说的“显著关联”是什么意思。SD*(Indv3的系数)将具有与系数相同的p值。这种方法可行,但我觉得只需标准化Indv3
(通过scale
或手动)并将该标准化变量包含在模型中就更容易了。一旦预测值以标准偏差为单位,则单位变化正好是Indv3
中的1SD变化。如果使用@Simon方法,则系数的置信区间将由lm
报告。否则,将置信区间乘以SD。具有缩放Indv3
的模型已经以SD为单位,因此您不必将β乘以SD。请看我编辑的答案。很棒的thx@KentJohnson。所以当Indv3显著相关时,SD*(Indv3的系数)仍然是符号,这是正确的吗。关联?我不知道你说的“显著关联”是什么意思。SD*(Indv3的系数)将具有与系数相同的p值。这种方法可行,但我觉得只需标准化Indv3
(通过scale
或手动)并将该标准化变量包含在模型中就更容易了。一旦预测值以标准偏差为单位,则单位变化正好是Indv3
中的1SD变化。如果使用@Simon方法,则系数的置信区间将由lm
报告。否则,将置信区间乘以SD。具有缩放Indv3
的模型已经以SD为单位,因此您不必将β乘以SD。请参阅我编辑的答案。
Depv Indv1 Indv2 Indv3 Indv3_plusSD
1 1.1555864 48 1 77.07593 0
2 1.0596864 61 2 69.51333 0
3 0.8380413 51 1 87.38040 0
4 1.5305489 53 2 67.43750 0
5 1.0619884 55 1 165.99977 1
6 0.8474507 56 2 229.14570 1
7 0.9579580 64 2 121.89550 0
8 0.7432210 58 1 211.17690 1
9 0.8374197 60 1 139.69577 0
10 0.7378349 65 1 277.03920 1
11 0.6971632 61 1 195.72100 1
12 0.5227076 64 2 194.63220 1
13 0.9900380 52 1 138.25417 0
14 0.8954233 52 2 237.39020 1
15 0.9058147 56 1 123.42930 0
16 0.9436135 55 2 152.75953 1
17 0.7123374 55 1 190.34547 1
18 1.1928167 58 1 166.50990 1
19 1.3342048 47 2 76.35120 0
20 1.0881865 49 1 135.71740 0
21 2.9028876 48 2 61.83147 0
22 0.6661121 61 1 139.68627 0
linregr <- lm(Depv ~ Indv1 + Indv2 + Indv3_plusSD, data = df)