多元线性回归(MLR)是一种线性回归模型,可以用来预测一个因变量与多个自变量之间的关系。
### Python实现
将使用`scikit-learn`库来实现多元线性回归模型。如果还没有安装该库,使用以下命令安装:
```bash
pip install scikit-learn
```
#### Python代码示例
```python
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 生成示例数据
# 假设有5个自变量
np.random.seed(0)
X = np.random.rand(100, 5) # 100个样本和5个特征
y = 3 + 2 * X[:, 0] + 3 * X[:, 1] + np.random.randn(100) # 生成y值
# 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建并训练模型
model = LinearRegression()
model.fit(X_train, y_train)
# 进行预测
y_pred = model.predict(X_test)
# 评估模型
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)
print("均方误差 (MSE):", mse)
print("R²-score:", r2)
```
### MATLAB实现
在MATLAB中,可以使用`fitlm`函数来创建多元线性回归模型。
#### MATLAB代码示例
```matlab
% 生成示例数据
rng(0); % 设定随机数种子
X = rand(100, 5); % 100个样本和5个特征
y = 3 + 2 * X(:,1) + 3 * X(:,2) + randn(100, 1); % 生成y值
% 拟合多元线性回归模型
mdl = fitlm(X, y);
% 查看模型输出
disp(mdl);
% 进行预测
y_pred = predict(mdl, X);
% 评估模型
mse = mean((y - y_pred).^2); % 均方误差
r2 = 1 - sum((y - y_pred).^2) / sum((y - mean(y)).^2); % R²-score
fprintf('均方误差 (MSE): %.4f\n', mse);
fprintf('R²-score: %.4f\n', r2);
```
### 结论
这两个实现展示了如何在Python和MATLAB中构建和评估多元线性回归模型。根据需追求的精度和分析的复杂性,可以选择适合的工具和方法来实现。