4

由于变量之间的测量单位不同,我正在使用 OLS 拟合线性模型,并使用 R 中的函数比例缩放我的回归量。然后,我使用 lm 命令拟合模型并获得拟合模型的系数。据我所知,拟合模型的系数与原始回归变量的单位不同,因此必须先按比例缩小,然后才能对其进行解释。我一直在寻找一种直接的方法来做到这一点,但找不到任何东西。有谁知道这是怎么做到的吗?

请看一下代码,你能帮我实现你提出的建议吗?

library(zoo)
filename="DataReg4.csv"
filepath=paste("C:/Reg/",filename, sep="")
separator=";"
readfile=read.zoo(filepath, sep=separator, header=T, format = "%m/%d/%Y", dec=".")
readfile=as.data.frame(readfile)
str(readfile)
DF=readfile
DF=as.data.frame(scale(DF)) 
fm=lm(USD_EUR~diff_int+GDP_US+Net.exports.Eur,data=DF)
summary(fm)
plot(fm)

对不起,这是数据。

http://www.mediafire.com/?hmcp7urt0ag8187

4

3 回答 3

11

如果您使用scale带有默认参数的函数,那么您的回归量将居中(减去它们的平均值)并除以它们的标准偏差。您可以解释系数而不将它们转换回原始单位:

保持其他一切不变,平均而言,其中一个回归变量的一个标准差变化与对应于该回归变量系数的因变量的变化相关。

如果您在模型中包含截距项,请记住截距的解释会发生变化。现在,估计的截距表示所有回归变量都处于平均水平时因变量的平均水平。这是从每个变量中减去平均值的结果。

要解释非标准差项中的系数,只需计算每个回归量的标准差并将其乘以系数。

于 2013-01-24T23:31:39.097 回答
4

为了从使用缩放预测变量和非缩放响应变量完成的回归中去缩放或反向转换回归系数,截距和斜率应计算为:

A = As - Bs*Xmean/sdx
B = Bs/sdx

因此回归是,

Y = As - Bs*Xmean/sdx + Bs/sdx * X

在哪里

As = intercept from the scaled regression
Bs = slope from the scaled regression
Xmean = the mean of the scaled predictor variable
sdx = the standard deviation of the predictor variable

如果Y也进行了缩放,则可以对其进行调整,但看起来您最终决定不对数据集执行此操作。

于 2017-10-30T03:03:39.117 回答
3

如果我理解您的描述(不幸的是目前没有代码),您将获得 Y ~ As + Bs*Xs 的标准化回归系数,其中所有这些“s”项目都是缩放变量。然后,这些系数是 Y 的标准偏差尺度上的预测变化,与 X 的一个标准偏差的 X 变化相关联。该scale函数将记录 hte 缩放对象的属性中的平均值和标准偏差。如果没有,那么您将在控制台日志中的某处获得这些估计。对于 X 中的 dX 变化,估计的 dY 变化应为:dY*(1/sdY) = Bs*dX*(1/sdX)。预测应该是这样的:

Yest = As*(sdX) + Xmn + Bs*(Xs)*(sdX)

您可能不需要标准化 Y 值,我希望您不需要标准化,因为这样可以更轻松地处理 X 均值的调整。如果您想要实施和检查答案,请放入一些代码和示例数据。我认为@DanielGerlance 说乘以 SD 而不是除以 SD 是正确的。

于 2013-01-24T23:24:35.777 回答