【问题标题】:How to create a second order linear model in MATLAB if I have 5 predictors.?如果我有 5 个预测变量,如何在 MATLAB 中创建二阶线性模型?
【发布时间】:2018-01-07 18:13:52
【问题描述】:

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

【问题讨论】:

    标签: matlab data-analysis


    【解决方案1】:

    根据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))
    

    【讨论】:

      猜你喜欢
      • 2018-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 2016-01-27
      • 2017-12-07
      • 2018-05-18
      相关资源
      最近更新 更多