R语言 回归系数:改变自变量的尺度

dfty9e19  于 2023-03-21  发布在  其他
关注(0)|答案(1)|浏览(254)

我正在运行一个加权回归模型,但我不知道如何处理一些需要放入其中的变量
我的因变量的值的规模为数千,而我的自变量的规模为数十和数百或分类变量。
我通常使用因变量的对数运行回归(这样我可以将估计系数解释为%增加)
这里有一个例子

如何处理回归变量之间的一个变量,而不是有一个规模的百万?
例如,我在回归中加入了以百万为单位的变量occ_tot

我应该如何解释这些系数?有没有一个好的方法来包括一个自变量与一个更大规模的因变量?
我对这类事情还不熟悉...

tvokkenx

tvokkenx1#

我们可以根据需要缩放预测器,并且通常系数将简单地补偿,使得如果我们将预测器乘以100,则对应的系数将被除以100,反之亦然,而其他系数将不受影响。
如果某些预测变量接近线性相关,则可能会遇到问题,但即使不进行缩放也是如此,因此这实际上是一个单独的问题。查看插入符号中的findCorrelation以排除高度相关的预测变量,并在排除或不排除此类预测变量的情况下尝试,以查看它在您的情况下是否重要。
下面的第一个lm是我们的原始回归;在第二个lm中,我们将wt预测因子乘以100,我们看到系数只是被除以100,而其他系数保持不变;在第三个lm中,我们除以100,系数再次补偿,而其他系数再次保持不变。
还请注意,除了参数化之外,所有这三个模型实际上是相同的模型,因此它们会产生相同的拟合值、相同的残差和相同的残差平方和。

coef(lm(mpg ~ cyl + wt, mtcars))  # original lm
## (Intercept)         cyl          wt 
##   39.686261   -1.507795   -3.190972 

coef(lm(mpg ~ cyl + I(100 * wt), mtcars))
## (Intercept)         cyl I(100 * wt) 
## 39.68626148 -1.50779497 -0.03190972

coef(lm(mpg ~ cyl + I(wt/100), mtcars)) 
## (Intercept)         cyl   I(wt/100) 
##   39.686261   -1.507795 -319.097214

如果我们有一个对数预测器,那么将wt改为100*wt只会影响截距,因为log(100 * wt) = log(100) + log(wt),在第一个lm下面我们取log(wt),在第二个log(100*wt)下面我们取log(100*wt)

coef(lm(mpg ~ cyl + log(wt), mtcars))
## (Intercept)         cyl     log(wt) 
##   40.649777   -1.233526  -11.523812 
 
coef(lm(mpg ~ cyl + log(100 * wt), mtcars))
## (Intercept)           cyl log(100 * wt) 
##   93.718894     -1.233526    -11.523812

相关问题