Main Content

feval

各予測子について 1 つずつ入力を使用して多項回帰モデルの応答を予測

R2023a 以降

    説明

    Ypred = feval(mdl,X1,X2,...,Xp) は、新しい入力予測子 X1,X2,...,Xp に対する mdl の予測応答を返します。ここで、p は mdl の当てはめに使用された予測子変数の数です。

    Ypred = feval(mdl,XNew) は、XNew のデータを使用して応答を予測します。

    すべて折りたたむ

    標本データ セット fisheriris を読み込みます。

    load fisheriris

    列ベクトル species には、3 種類のアヤメの種の名前 (setosa、versicolor、virginica) が格納されています。行列 meas には、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) が格納されています。

    関数cvpartitionを使用して、種類と測定値のデータを学習データとテスト データに分割します。関数trainingを使用して、学習データの行のインデックスを取得します。

    n = length(species);
    partition = cvpartition(n,'Holdout',0.05);
    idx_train = training(partition);

    学習データの行のインデックスを使用して学習データを作成し、測定値の行列と種類のラベルのベクトルを作成します。

    meastrain = meas(idx_train,:);
    speciestrain = species(idx_train,:);

    学習データを使用して多項回帰モデルを当てはめます。

    MnrModel = fitmnr(meastrain,speciestrain)
    MnrModel = 
    Multinomial regression with nominal responses
    
                                   Value       SE       tStat        pValue  
                                  _______    ______    ________    __________
    
        (Intercept_setosa)         86.293    12.541      6.8807    5.9554e-12
        x1_setosa                 -1.0621    3.5795    -0.29673       0.76667
        x2_setosa                  23.851    3.1238      7.6352    2.2556e-14
        x3_setosa                 -27.266    3.5009     -7.7883    6.7894e-15
        x4_setosa                 -59.671    7.0214     -8.4985     1.921e-17
        (Intercept_versicolor)     42.637    5.2214      8.1659    3.1906e-16
        x1_versicolor              2.4652    1.1263      2.1887      0.028619
        x2_versicolor              6.6808     1.474      4.5325     5.829e-06
        x3_versicolor             -9.4292    1.2946     -7.2837     3.248e-13
        x4_versicolor             -18.286    2.0833     -8.7775     1.671e-18
    
    
    143 observations, 276 error degrees of freedom
    Dispersion: 1
    Chi^2-statistic vs. constant model: 302.0378, p-value = 1.5168e-60
    

    MnrModel は、ノミナル多項回帰モデルをデータに当てはめた結果を含む多項回帰モデル オブジェクトです。既定では、virginica が基準カテゴリとなります。meas の各予測子の係数統計量が table 出力に表示されます。列 pValue"p" 値が小さく、すべての係数が 95% の信頼水準で MnrModel に対して統計的に有意な影響を与えることを示しています。たとえば、項 x3_setosa"p" 値は、花弁の長さが ln(πsetosaπvirginica) に対して統計的に有意な影響を与えることを示します。ここで、πsetosaπvirginica はカテゴリの確率です。

    関数testを使用して、テスト データの行のインデックスを取得します。テスト データの行のインデックスを使用してテスト データを作成し、測定値の行列と種類のラベルのベクトルを作成します。

    idx_test = test(partition);
    meastest = meas(idx_test,:);
    speciestest = species(idx_test,:);

    学習データに含まれていない meas のデータ点に対応するアヤメの種類を予測します。

    speciespredict = feval(MnrModel,meastest(:,1),meastest(:,2),meastest(:,3),meastest(:,4))
    speciespredict = 7x1 cell
        {'setosa'    }
        {'setosa'    }
        {'setosa'    }
        {'setosa'    }
        {'setosa'    }
        {'versicolor'}
        {'versicolor'}
    
    

    予測されたアヤメの種類を、学習データに含まれていない species のデータ点に対応するアヤメの種類と比較します。

    speciestest
    speciestest = 7x1 cell
        {'setosa'    }
        {'setosa'    }
        {'setosa'    }
        {'setosa'    }
        {'setosa'    }
        {'versicolor'}
        {'versicolor'}
    
    

    出力から、学習データに含まれていないデータ点のアヤメの種類がモデルで正確に予測されていることがわかります。

    入力引数

    すべて折りたたむ

    多項回帰モデル オブジェクト。関数 fitmnr で作成される MultinomialRegression モデル オブジェクトとして指定します。

    新しい予測子の入力値。p 個のスカラーまたはベクトルとして指定します。ここで、p は mdl の当てはめに使用された予測子変数の数です。

    • X1,X2,...,Xp をベクトルのコレクションとして渡す場合、各ベクトルは同じサイズでなければなりません。Xi の各行が観測値に対応します。

    • X1,X2,...,Xp をベクトルとスカラーの混合として渡す場合、feval はベクトル引数と同じサイズの定数ベクトルに各スカラー引数を拡張します。

    例: feval(mdl,[0.1; 0.2],[0.3; 0.4]) は、2 つの予測子のモデル mdl を点 p1 = [0.1 0.3] および p2 = [0.2 0.4] において評価します。

    データ型: single | double

    新しい予測子の入力値。table または n 行 p 列の行列として指定します。ここで、n は予測する観測値の数、p は mdl の当てはめに使用された予測子変数の数です。

    • XNew が table の場合、mdl の当てはめに使用されたすべての予測子の名前を含める必要があります。予測子の名前は mdl.PredictorNames プロパティで確認できます。

    • XNew が行列の場合、推定された係数と同じ数の列を含める必要があります。推定された係数の数は mdl.NumPredictors プロパティで確認できます。XNew を行列として指定できるのは、mdl.PredictorNames のすべての名前が数値予測子を参照する場合のみです。

    例: feval(mdl,[6.2 3.4; 5.9 3.0]) は、2 つの予測子のモデル mdl を点 p1 = [6.2 3.4] および p2 = [5.9 3.0] において評価します。

    データ型: single | double | string | cell | categorical

    出力引数

    すべて折りたたむ

    予測応答カテゴリ。n 行 1 列の categorical 配列、文字配列、logical ベクトル、数値ベクトル、または文字ベクトルの cell 配列として返されます。ここで、n は予測する観測値の数です。Ypred のデータ型は mdl.ClassNames と同じです。

    代替機能

    • predict は、各予測子変数に 1 つの入力が対応する複数の入力引数ではなく、すべての予測子変数を格納する単一の入力引数を使用して、feval と同じ予測を返します。predict は、予測に対する信頼区間も返します。

    • random は、ノイズが追加された状態で応答を予測します。

    バージョン履歴

    R2023a で導入