多元线性回归模型最小二乘法以及RMSE计算matlab代码
时间: 2023-08-03 21:31:17 浏览: 139
以下是多元线性回归模型最小二乘法以及 RMSE 计算的 MATLAB 代码:
```matlab
% 输入数据
X = [ones(size(x1)), x1, x2, x3, ...]; % 自变量矩阵,第一列为常数列,x1、x2、x3、...分别为其他自变量
Y = y; % 因变量向量
% 最小二乘法求解
beta = inv(X' * X) * X' * Y; % beta为回归系数向量
% 预测值
y_pred = X * beta;
% RMSE计算
rmse = sqrt(mean((Y - y_pred).^2));
% 输出结果
disp('回归系数:');
disp(beta);
disp('RMSE:');
disp(rmse);
```
其中,`x1`、`x2`、`x3`、...为自变量向量,`y`为因变量向量。`beta`为回归系数向量,表示各自变量对因变量的影响程度。`y_pred`为预测值向量,`rmse`为 RMSE 值,表示模型拟合程度的好坏。
相关问题
多元线性回归模型最小二乘法以及RMSE计算和预测结果与实际值的散点图matlab代码
下面是多元线性回归模型最小二乘法以及RMSE计算和预测结果与实际值的散点图Matlab代码:
```matlab
% 假设有3个自变量和1个因变量
x1 = [1, 2, 3, 4, 5]';
x2 = [2, 3, 4, 5, 6]';
x3 = [3, 4, 5, 6, 7]';
y = [6, 7, 9, 10, 12]';
% 构建设计矩阵X
X = [ones(5,1), x1, x2, x3];
% 计算模型参数beta
beta = (X' * X) \ X' * y;
% 计算预测值和实际值的RMSE
y_pred = X * beta;
rmse = sqrt(mean((y - y_pred).^2));
% 绘制预测值和实际值的散点图
scatter(y, y_pred);
hold on;
plot(y, y);
xlabel('Actual Y');
ylabel('Predicted Y');
title('Scatter Plot of Predicted Y and Actual Y');
```
需要注意的是,这里的设计矩阵X中第一列是全1向量,是为了计算截距项而添加的。在实际应用中,可能需要对自变量进行标准化处理,以防止不同变量的量纲差异对模型参数产生影响。
阅读全文