在MATLAB中进行回归分析,可以使用`regress`函数或`fitlm`函数。以下是使用这些函数进行回归分析的基本步骤:
使用`regress`函数进行线性回归分析
准备数据
确保你有自变量`X`和因变量`y`的数据。
调用`regress`函数
一元线性回归:
```matlab
b = regress(y, X);
```
多元线性回归:
```matlab
X = [x1, x2, ..., xn]; % 自变量矩阵,每一列代表一个自变量
y = [y1, y2, ..., yn]; % 因变量向量
[b, bint, r, rint, stats] = regress(y, X);
```
获取回归结果
`b`:回归系数向量。
`bint`:回归系数的95%置信区间。
`r`:残差向量。
`rint`:残差的95%置信区间。
`stats`:包含决定系数`R^2`、F值和回归的p值等统计信息。
分析模型
使用`rcoplot(r, rint)`绘制残差分析图。
使用`plot(X, b)`绘制拟合曲线。
使用`stats`中的`R^2`值评估模型拟合优度。
使用`fitlm`函数进行多元线性回归
准备数据
同样需要自变量`X`和因变量`y`的数据。
创建模型
```matlab
model = fitlm(y, X);
```
训练模型
模型已经通过`fitlm`函数创建,无需额外训练步骤。
评估模型
使用`predict(model, X)`进行预测。
使用`rmse(y, predict(model, X))`计算均方根误差(RMSE)。
使用`rsquared(model)`计算决定系数(R^2)。
示例代码
```matlab
% 示例数据
x = [1, 2, 3, 4, 5];
y = [2, 4, 5, 4, 5];
% 调用regress函数
b = regress(y, x);
% 输出回归结果
disp('回归系数:');
disp(b);
% 绘制拟合曲线
plot(x, b, 'o-');
xlabel('x');
ylabel('y');
title('一元线性回归');
```
```matlab
% 示例数据
X = [1, 2, 3, 4, 5];
y = [2, 4, 5, 4, 5];
% 创建模型
model = fitlm([1, X], y);
% 进行预测
y_pred = predict(model, [6, 7, 8, 9, 10]);
% 输出预测结果
disp('预测结果:');
disp(y_pred);
% 计算RMSE
rmse_value = rmse(y, y_pred);
disp(['均方根误差: ', num2str(rmse_value)]);
% 计算R^2
r2_value = rsquared(model);
disp(['决定系数: ', num2str(r2_value)]);
```
通过这些步骤和示例代码,你可以在MATLAB中有效地进行回归分析。