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

如果我有5个预测器,如何在MATLAB中创建二阶线性模型。?,matlab,data-analysis,Matlab,Data Analysis,基本上,我有一个数据集,有5个预测值和一个目标变量。我需要在MATLAB中拟合二阶线性模型。那么,我是否需要创建总共20个预测变量,然后使用fitlm,或者是否有其他方法不需要创建20个变量?根据,您可以使用fitlm通过将modelspec参数指定为'quadratic'来拟合二阶模型。下面是一个模拟数据的例子 % generate some random correlated data mu = [0 0 0 0 0 0]; sigma = [1.6737 1.0183 1.02

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

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

% 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))