我正在运行一个加权回归模型,但我不知道如何处理一些需要放入其中的变量我的因变量的值的规模为数千,而我的自变量的规模为数十和数百或分类变量。我通常使用因变量的对数运行回归(这样我可以将估计系数解释为%增加)这里有一个例子
如何处理回归变量之间的一个变量,而不是有一个规模的百万?例如,我在回归中加入了以百万为单位的变量occ_tot。
occ_tot
我应该如何解释这些系数?有没有一个好的方法来包括一个自变量与一个更大规模的因变量?我对这类事情还不熟悉...
tvokkenx1#
我们可以根据需要缩放预测器,并且通常系数将简单地补偿,使得如果我们将预测器乘以100,则对应的系数将被除以100,反之亦然,而其他系数将不受影响。如果某些预测变量接近线性相关,则可能会遇到问题,但即使不进行缩放也是如此,因此这实际上是一个单独的问题。查看插入符号中的findCorrelation以排除高度相关的预测变量,并在排除或不排除此类预测变量的情况下尝试,以查看它在您的情况下是否重要。下面的第一个lm是我们的原始回归;在第二个lm中,我们将wt预测因子乘以100,我们看到系数只是被除以100,而其他系数保持不变;在第三个lm中,我们除以100,系数再次补偿,而其他系数再次保持不变。还请注意,除了参数化之外,所有这三个模型实际上是相同的模型,因此它们会产生相同的拟合值、相同的残差和相同的残差平方和。
findCorrelation
lm
wt
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)。
100*wt
log(100 * wt)
log(100) + log(wt)
log(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
1条答案
按热度按时间tvokkenx1#
我们可以根据需要缩放预测器,并且通常系数将简单地补偿,使得如果我们将预测器乘以100,则对应的系数将被除以100,反之亦然,而其他系数将不受影响。
如果某些预测变量接近线性相关,则可能会遇到问题,但即使不进行缩放也是如此,因此这实际上是一个单独的问题。查看插入符号中的
findCorrelation
以排除高度相关的预测变量,并在排除或不排除此类预测变量的情况下尝试,以查看它在您的情况下是否重要。下面的第一个
lm
是我们的原始回归;在第二个lm
中,我们将wt
预测因子乘以100,我们看到系数只是被除以100,而其他系数保持不变;在第三个lm
中,我们除以100,系数再次补偿,而其他系数再次保持不变。还请注意,除了参数化之外,所有这三个模型实际上是相同的模型,因此它们会产生相同的拟合值、相同的残差和相同的残差平方和。
如果我们有一个对数预测器,那么将
wt
改为100*wt
只会影响截距,因为log(100 * wt)
=log(100) + log(wt)
,在第一个lm
下面我们取log(wt)
,在第二个log(100*wt)
下面我们取log(100*wt)
。