如果我有 5 个预测变量,如何在 MATLAB 中创建二阶线性模型?

How to create a second order linear model in MATLAB if I have 5 predictors.?

基本上,我有一个包含 5 个预测变量和一个目标变量的数据集。我需要在 MATLAB 中拟合二阶线性模型。那么我需要创建总共 20 个预测变量然后使用 fitlm 还是有任何其他方法以便我不需要创建 20 个变量?

根据 the documentation,您可以通过将 modelspec 参数指定为 'quadratic',使用 fitlm 拟合二阶模型。这是一个模拟数据的例子。

% generate some random correlated data
mu = [0 0 0 0 0 0];
sigma = [1.6737    1.0183    1.0279   -1.8104   -2.4717   -2.2875; ...
         1.0183    2.9619   -0.2512   -1.9997    2.4059   -1.7610; ...
         1.0279   -0.2512    2.7031   -0.2611   -3.9707   -0.6580; ...
        -1.8104   -1.9997   -0.2611    5.8947   -2.9645    4.1843; ...
        -2.4717    2.4059   -3.9707   -2.9645   15.3447    1.6498; ...
        -2.2875   -1.7610   -0.6580    4.1843    1.6498    6.0116];
data_train = mvnrnd(mu,sigma,10000);
data_test = mvnrnd(mu,sigma,1000);

% fit second order polynomial
predictors_train = data_train(:,1:5);
target_train = data_train(:,6);
model = fitlm(predictors_train, target_train, 'quadratic');

% test using data from same distribution
predictors_test = data_test(:,1:5);
target_test = data_test(:,6);
target_est = predict(model, predictors_test);

% report root mean-square error
rmse = sqrt(mean((target_est - target_test).^2))