matlab多元线性回归代码

以下是一个简单的 MATLAB 多元线性回归代码示例:

% 多元线性回归示例

% 输入数据
x1 = [1; 2; 3; 4; 5];
x2 = [0.5; 1.0; 1.5; 2.0; 2.5];
y = [2.0; 3.5; 4.5; 5.5; 7.0];

% 构建设计矩阵
X = [ones(size(x1)), x1, x2];

% 计算回归系数
beta = inv(X' * X) * X' * y;

% 输出结果
disp('回归系数:');
disp(beta);

% 预测新数据
x1_new = 6;
x2_new = 3;
y_pred = beta(1) + beta(2) * x1_new + beta(3) * x2_new;
disp('预测结果:');
disp(y_pred);

在这个示例中,我们使用了两个自变量 x1x2,以及一个因变量 y。我们首先将输入数据存储在向量中,然后构建设计矩阵 X,其中第一列是常数项,第二列是 x1,第三列是 x2。我们使用矩阵求逆的方法计算回归系数 beta,然后使用这些系数预测新数据。

在上面的代码示例中,我们使用了矩阵求逆的方法计算回归系数。这种方法在数据量较小的情况下是可行的,但是在数据量较大时,计算矩阵的逆可能会变得非常耗时。因此,更常用的方法是使用最小二乘法(OLS)或梯度下降法来计算回归系数。

下面是使用OLS方法计算回归系数的 MATLAB 代码示例:

% OLS方法计算回归系数示例

% 输入数据
x1 = [1; 2; 3; 4; 5];
x2 = [0.5; 1.0; 1.5; 2.0; 2.5];
y = [2.0; 3.5; 4.5; 5.5; 7.0];

% 构建设计矩阵
X = [ones(size(x1)), x1, x2];

% 计算回归系数
beta = (X' * X) \ X' * y;

% 输出结果
disp('回归系数:');
disp(beta);

% 预测新数据
x1_new = 6;
x2_new = 3;
y_pred = beta(1) + beta(2) * x1_new + beta(3) * x2_new;
disp('预测结果:');
disp(y_pred);

在这个示例中,我们使用了 MATLAB 自带的反斜杠运算符 \ 来计算回归系数。这个运算符会自动选择最适合的方法来求解线性方程组,包括使用OLS方法。