多元线性回归中心化后回归系数不变的证明
时间: 2025-01-01 08:22:48 浏览: 16
### 多元线性回归中的中心化处理
在多元线性回归模型中,当对自变量进行中心化处理时,截距项会发生变化,而其他回归系数则保持不变。为了证明这一点,考虑原始的多元线性回归方程:
\[ y_i = \beta_0 + \sum_{j=1}^{p}\beta_j x_{ij} + \epsilon_i, \quad i = 1,\ldots,n \]
其中 \(y_i\) 是因变量观测值;\(x_{ij}\) 表示第 \(i\) 个样本点上第 \(j\) 个预测因子(即解释变量)的取值;\(\beta_j (j = 0,..., p)\) 是待估计参数向量;最后 \(\epsilon_i\) 代表随机误差。
如果我们将每个特征减去其均值,则得到新的矩阵形式如下所示[^1]:
\[ X_c=(X-\bar{X})=\begin{pmatrix}
(x_{11}-\overline{x}_1)&...&(x_{1p}-\overline{x}_p)\\
.&.&. \\
(x_{n1}-\overline{x}_1)&...&(x_{np}-\overline{x}_p)
\end{pmatrix}, \qquad Y_c=Y-\bar{Y}=y-(\frac{\sum^n_{i=1}{y_i}}{n}) \]
此时可以构建一个新的线性关系表达式:
\[ y_i - \bar{y} = (\beta_0+\sum^p_{k=1}{\beta_k\cdot\overline{x}_k})+(\sum^p_{l=1}{\beta_l}(x_{il}-\overline{x}_l))+e_i \]
这里注意到括号内部分实际上就是原数据集下的拟合直线经过平移后的常数偏置项,因此可定义新模型为:
\[ e'_i=y_i'=\gamma+(x_i'-\mu_x')^\top\theta'+v_i', \quad v'\sim N(0,\sigma'^2I_n), \]
通过最小二乘法求解上述公式可知,在这种情况下斜率不会受到影响,因为协方差阵结构未发生改变,只是位置发生了移动而已。所以对于任意给定的数据集而言,只要进行了适当标准化操作之后再做OLS估计的话,那么最终获得的结果应该是一致性的[^2]。
```python
import numpy as np
def ols(X, y):
"""Ordinary Least Squares estimation."""
beta_hat = np.linalg.inv(X.T @ X) @ X.T @ y
return beta_hat
# Generate some random data with mean different from zero.
np.random.seed(42)
N = 100
P = 3
X = np.hstack([np.ones((N, 1)), np.random.randn(N, P)])
true_beta = np.array([[5], [-2], [1], [3]])
noise = np.random.normal(size=N).reshape(-1, 1)
y = X @ true_beta + noise
# Center the variables except intercept column.
centered_X = X.copy()
for col in range(1, centered_X.shape[1]):
centered_X[:, col] -= centered_X[:, col].mean()
print("Original Beta:", ols(X, y))
print("Centered Variables Beta(except Intercept):", ols(centered_X, y)[1:])
```
阅读全文