我目前正在运行多元线性回归,对于如何手动将交互项正确添加到模型中,我有些困惑。我使用的所有变量都是连续的,并且具有不同的尺度和单位。
到目前为止,我的做法是
标准化每个变量的观察值
将特定变量的相应标准化值相乘以创建交互项,然后将这些新变量添加到回归数据集中
运行回归
这是正确的方法吗?在计算“原始”项之后,我是否也应该标准化交互项变量?
我目前正在运行多元线性回归,对于如何手动将交互项正确添加到模型中,我有些困惑。我使用的所有变量都是连续的,并且具有不同的尺度和单位。
到目前为止,我的做法是
标准化每个变量的观察值
将特定变量的相应标准化值相乘以创建交互项,然后将这些新变量添加到回归数据集中
运行回归
这是正确的方法吗?在计算“原始”项之后,我是否也应该标准化交互项变量?
标准化不是必需的,而是一种选择。均值居中(标准化的一部分)使低阶项更易于解释. Penguin_Knight 表明,在形成交互项之后而不是之前进行标准化可以得到与未标准化模型相同的结果。请注意,这是在形成交互项之前平均中心变量时低阶项的解释发生变化的结果。他的两个输出都是有效的(注意交互 t 值是相同的)你只需要知道如何解释低阶系数(ANOVA 术语中的主要影响)。简而言之,当您在形成交互项之前进行均值中心化/标准化时,mpg 效应是 mpg 对平均重量汽车的影响(因为它是与之交互的所有其他变量为 0 时的影响,并且对于重量我们将变量设置为 0 以等于均值)。没有均值居中/标准化,
是正确的,但缺少一些细节。对于连续变量,您只需将两个变量相乘即可形成交互作用(如果您愿意,也可以在均值居中或标准化之后)。当涉及分类变量时,您可以通过首先创建与感兴趣的对比相对应的单独数值变量来创建交互项。您可以创建与分类变量的级别负 1 一样多的对比。但是,您不需要使用完整的对比代码集。一旦你有了对比代码列,你就可以像以前一样创建交互,因为你现在只是将两个数值变量相乘。注意:这适用于 categorical:categorical 和 categorical:continuous 的交互以及更高阶交互的任何排列。
运行你的回归。我一直假设您在模型中也有低阶变量(即而不是会调整您解释结果的方式)。
只要关注的变量是连续的或二元的,问题中的方法似乎是正确的。具有三个或更多级别的分类变量不能按规定相乘。
标准化交互项应该是两个原始变量乘积的标准化版本,而不是两个标准化变量的乘积。以下是使用autoStata 中的样本数据集的示例:
假设我们有兴趣使用每加仑英里数 ( mpg)、汽车重量 ( weight) 及其相互作用来预测价格 ( price)。原始模型是:
. reg price mpg weight c.mpg#c.weight
Source | SS df MS Number of obs = 74
-------------+------------------------------ F( 3, 70) = 13.11
Model | 228430463 3 76143487.7 Prob > F = 0.0000
Residual | 406634933 70 5809070.47 R-squared = 0.3597
-------------+------------------------------ Adj R-squared = 0.3323
Total | 635065396 73 8699525.97 Root MSE = 2410.2
--------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
---------------+----------------------------------------------------------------
mpg | 396.7844 185.2023 2.14 0.036 27.41003 766.1587
weight | 5.067008 1.378057 3.68 0.000 2.31856 7.815455
|
c.mpg#c.weight | -.1916795 .0711936 -2.69 0.009 -.3336706 -.0496885
|
_cons | -5944.881 4525.706 -1.31 0.193 -14971.12 3081.356
--------------------------------------------------------------------------------
如果我们对产品进行标准化,结果会和原来的一致:
. reg price zmpg zwt zmpgWeight
Source | SS df MS Number of obs = 74
-------------+------------------------------ F( 3, 70) = 13.11
Model | 228430457 3 76143485.6 Prob > F = 0.0000
Residual | 406634939 70 5809070.56 R-squared = 0.3597
-------------+------------------------------ Adj R-squared = 0.3323
Total | 635065396 73 8699525.97 Root MSE = 2410.2
------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
zmpg | 2295.597 1071.489 2.14 0.036 158.5807 4432.614
zwt | 3938.046 1071.017 3.68 0.000 1801.97 6074.121
zmpgWeight | -1773.852 658.8436 -2.69 0.009 -3087.874 -459.8299
_cons | 6165.257 280.1802 22.00 0.000 5606.455 6724.059
------------------------------------------------------------------------------
但是,如果我们使用标准化变量的乘积,结果会与原来的不同。ANOVA 结果相同,但您可以看到标准化 mpg 和重量的 p 值不同:
. reg price zmpg zwt c.zmpg#c.zwt
Source | SS df MS Number of obs = 74
-------------+------------------------------ F( 3, 70) = 13.11
Model | 228430459 3 76143486.3 Prob > F = 0.0000
Residual | 406634937 70 5809070.53 R-squared = 0.3597
-------------+------------------------------ Adj R-squared = 0.3323
Total | 635065396 73 8699525.97 Root MSE = 2410.2
------------------------------------------------------------------------------
price | Coef. Std. Err. t P>|t| [95% Conf. Interval]
-------------+----------------------------------------------------------------
zmpg | -1052.87 556.2308 -1.89 0.063 -2162.238 56.49692
zwt | 765.3424 526.041 1.45 0.150 -283.8133 1814.498
|
c.zmpg#c.zwt | -861.8786 320.1187 -2.69 0.009 -1500.335 -223.422
|
_cons | 5478.971 378.7809 14.46 0.000 4723.517 6234.426
------------------------------------------------------------------------------
除非规模有很大不同,否则您不需要标准化任何东西。即使在这种情况下,您也不一定需要标准化,一个简单的度量单位(比例)也可以正常工作。一旦你改变了尺度,那么相互作用也将在尺度变量上。