手算多元线性回归分析
时间: 2025-01-01 18:17:41 浏览: 22
### 手动计算多元线性回归分析
#### 定义与目标
多元线性回归是一种用于建模多个自变量 \(X\) 和一个因变量 \(Y\) 之间关系的方法。该模型假设这些变量之间的关系可以表示为:
\[ Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + ... + \beta_n X_n + \epsilon \]
其中,\(Y\) 是响应变量(或称为因变量),\(\beta_i (i=0,..,n)\) 表示未知参数,而 \(\epsilon\) 则代表误差项。
为了估计上述方程式中的系数向量 \(\boldsymbol{\beta}\),通常采用最小二乘法(LSM)[^4]。此方法旨在找到能使观测值与其对应的预测值之差平方和达到最小的一组最佳拟合参数。
#### 数据准备
考虑一组包含 m 条记录的数据集 D={ (\(x_{1}^{(j)},...,x_{n}^{(j)}; y^{(j)}) | j=1,...m } ,每条记录由 n 维输入特征以及相应的输出标签组成。对于给定的数据点集合,构建设计矩阵 X 如下所示:
\[
X =
\begin{pmatrix}
1 & x_{1}^{(1)}&...&x_{n}^{(1)}\\
. \\
. \\
1 & x_{1}^{(m)}&...&x_{n}^{(m)}
\end{pmatrix},
y=
\begin{pmatrix}
y^{(1)}\\
. \\
. \\
y^{(m)}
\end{pmatrix},
\hat{\beta}=
\begin{pmatrix}
b_0\\
b_1\\
.\\
b_n
\end{pmatrix}.
\]
此处,每一行对应于单个样本实例;第一列全为常数项 "1" 对应截距项 \(\beta_0\) 的求解。
#### 参数估算过程
通过使残差平方和 RSS 达到极小化来获得最优权重向量 \(\hat{\beta}\):
\[RSS=\sum(y-\hat{y})^2=(y-X\hat{\beta})'(y-X\hat{\beta}).\]
对上式关于 \(\hat{\beta}\) 进行偏导并令其等于零可得正规方程 Normal Equation :
\[X'X\hat{\beta}=X'y.\]
最终得到闭型解 Closed-form Solution :
\[\hat{\beta}=(X'X)^{-1}X'y.\]
这便是手工完成多远线形回规的核心运算逻辑。
```python
import numpy as np
def manual_multilinear_regression(X,y):
"""
Manually compute the coefficients of multiple linear regression using normal equation.
Parameters:
X : array-like shape(m,n), where m is number samples and n features.
y : target values
Returns:
beta_hat: estimated parameters including intercept term.
"""
ones_column=np.ones((len(X),1))
design_matrix=np.hstack([ones_column,X]) # Add column with all elements being one to represent bias/intercept
Xt_design_matrix=design_matrix.T @ design_matrix
inv_Xt_design_matrix=np.linalg.inv(Xt_design_matrix)
beta_hat=inv_Xt_design_matrix@design_matrix.T@y
return beta_hat.flatten()
```
阅读全文
相关推荐

















