ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

NonLinearModel クラス

非線形回帰モデルのクラス

説明

非線形回帰の学習データ、モデル記述子、診断情報および近似係数からなるオブジェクト。predict メソッドまたは feval メソッドを使用してモデル応答を予測します。

構築

NonLinearModel オブジェクトを作成するには、fitnlm を使用します。

プロパティ

すべて展開する

係数推定値の共分散行列。p 行 p 列の数値の行列を指定します。p は、あてはめたモデルの係数の個数です。

係数の名前。各係数のラベルが含まれている文字ベクトルの cell 配列を指定します。

係数の値。テーブルを指定します。Coefficients は、各係数に 1 つの行が対応し、次の列があります。

  • Estimate — 推定される係数値

  • SE — 推定の標準誤差

  • tStat — 係数が 0 である検定の t 統計

  • pValue — t 統計量の p 値

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、mdl 内の推定された係数ベクトルは次のようになります。

beta = mdl.Coefficients.Estimate

coefTest を使用して係数に他の検定を実行します。

モデルの診断情報。table を指定します。診断は、外れ値と影響が大きい観測値を特定するために役立てることができます。Diagnostics には次のフィールドが含まれています。

フィールド意味ユーティリティ
LeverageHatMatrix の対角要素てこ比は、観測の予測値が、どの程度までその観測の観測値によって決定されるかを示します。1 に近い値は、他の観測からの寄与がわずかしかなく、予測がその観測によって大部分決定されることを示します。0 に近い値は、近似が他の観測によって大部分決定されることを示します。係数 P と観測 N のあるモデルの場合、Leverage の平均値は P/N です。2*P/N より大きな Leverage をもつ観測は、てこ比が高いと認識されます。
CooksDistance近似値におけるスケーリングされた変化のクックの測定CooksDistance は、近似値におけるスケーリングされた変化の測定です。平均のクックの距離よりも 3 倍長い CooksDistance の観測は外れ値にできます。
HatMatrix観測された応答から近似を計算するための射影行列HatMatrix は、Fitted = HatMatrix*Y となる NN 列の行列です。ここで、Y は応答ベクトル、Fitted は応答の近似値のベクトルです。

誤差 (残差) の自由度。推定された係数の個数を観測値の個数から減算した値に等しくなります。正の整数値を指定します。

入力データに基づいてあてはめた (予測した) 値。数値ベクトルを指定します。fitnlm は可能な限り Fitted を応答データに近づけようとします。

モデルの情報。LinearFormula オブジェクトまたは NonLinearFormula オブジェクトを指定します。線形または一般化線形回帰モデルをあてはめる場合、FormulaLinearFormula オブジェクトです。非線形回帰モデルをあてはめる場合、FormulaNonLinearFormula オブジェクトです。

あてはめプロセスに関する情報。次のフィールドをもつ構造体を指定します。

  • InitialCoefs — 係数の初期値 (ベクトル beta0)

  • IterOptsfitnlmOptions 名前と値のペア引数に含まれるオプション

応答値におけるモデルの分布の対数尤度。数値を指定します。平均はモデルからあてはめられ、他のパラメーターはモデルのあてはめに伴って推定されます。

モデルの比較基準。次のフィールドがある構造体を指定します。

  • AIC — 赤池情報量基準。AIC = –2*logL + 2*mlogL は対数尤度、m は推定パラメーターの個数です。

  • AICc — 標本サイズについて修正された赤池情報量基準。AICc = AIC + (2*m*(m+1))/(n–m–1)n は観測値の個数です。

  • BIC — ベイズ情報量基準。BIC = –2*logL + m*log(n)

  • CAIC — 一貫した赤池情報量基準。CAIC = –2*logL + m*(log(n)+1)

情報量基準は、同じデータにあてはめた複数のモデルを比較するために使用できるモデル選択ツールです。これらの基準は、尤度に基づくモデル近似の尺度であり、複雑度 (特にパラメーター数) に対するペナルティが含まれています。情報量基準が異なるとペナルティの形式が異なります。

複数のモデルを比較した場合に、情報量基準の値が最も小さいモデルが最良近似モデルです。最良近似モデルは、モデルの比較に使用する基準によって変化する可能性があります。

これらの基準値のいずれかをスカラーとして取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl では、AIC 値 aic は次のようになります。

aic = mdl.ModelCriterion.AIC

平均二乗誤差。数値を指定します。平均二乗誤差は、モデルにおける誤差項の分散の推定値です。

あてはめたモデルの係数の個数。正の整数を指定します。NumCoefficientsNonLinearModel オブジェクトの NumEstimatedCoefficients と同じです。NumEstimatedCoefficients は回帰の自由度に等しくなります。

あてはめたモデル内の推定された係数の個数。正の整数を指定します。NumEstimatedCoefficientsNonLinearModel オブジェクトの NumCoefficients と同じです。NumEstimatedCoefficients は回帰の自由度に等しくなります。

モデルのあてはめに使用した予測子変数の個数。正の整数を指定します。

入力データに含まれている変数の個数。正の整数を指定します。NumVariables は、元の table またはデータセットに含まれている変数の個数です。または、あてはめが予測子行列と応答ベクトルに基づいている場合は、これらの配列の列の総数です。これは、予測子または応答としては使用されない変数があればそれら含みます。

観測値の情報。n 行 4 列のテーブルを指定します。n は入力データの行数に等しくなります。ObservationInfo の 4 列には、以下が格納されます。

フィールド説明
Weights観測値の重み。既定の設定はすべて 1 です。
Excluded論理値 1 は、Exclude の名前と値のペアで近似から除外した観測を示します。
Missing論理値 1 は入力に欠損値があることを示します。欠損値は近似に使用されません。
Subset論理値 1 は、観測が除外または欠損ではないことを示すため、近似に使用されます。

観測値の名前。あてはめで使用した観測値の名前が含まれている文字ベクトルの cell 配列を指定します。

  • 近似が観測名を含むテーブルまたはデータセットに基づいている場合、ObservationNames はそれらの名前を使用します。

  • それ以外の場合は、ObservationNames は空の cell 配列になります。

モデルのあてはめに使用した予測子の名前。文字ベクトルの cell 配列を指定します。

あてはめたモデルの残差。各観測値に対する 1 つずつの行と次の列が含まれている table を指定します。

フィールド説明
Raw観測した値からあてはめた値を減算した値。
Pearson生の残差を RMSE で除算した値。
Standardized生の残差を推定標準偏差で除算した値。
Studentized残差標準偏差の独立した推定値で除算された残差。観測 i は、観測 i を除くすべての観測に基づく標準偏差による誤差の推定値で除算されます。

ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl では、通常の生の残差ベクトル r は次のようになります

r = mdl.Residuals.Raw

ObservationInfo.Missing 内の欠損値のために近似に使用されなかった行には、次を例外として NaN 値が含まれます。

ObservationInfo.Excluded において除外された値が原因で近似に使用されなかった行は、次を例外として NaN 値が含まれます。

  • raw は、観測値と予測値の間の差を含みます。

  • standardized は残差であり通常の方法で標準化されています。

  • studentized は、この残差が残差標準偏差の予測には使用されないため、標準化された値と一致します。

応答変数名。文字ベクトルを指定します。

平方根平均二乗誤差。数値を指定します。平方根平均二乗誤差は、モデルにおける誤差項の標準偏差の推定値です。

ロバスト近似の情報。次のフィールドがある構造体を指定します。

フィールド説明
WgtFun'bisquare' などのロバストな重み付け関数 (robustfit を参照)
Tuneパラメーター調整のために指定された値 ([] で表記)
Weightsロバスト近似の最後の反復で使用された重みのベクトル

fitnlm がロバスト回帰を使用してモデルを構築した場合を除き、この構造体は空です。

モデルの決定係数の値。構造体を指定します。

線形モデルまたは非線形モデルの場合、Rsquared は次の 2 つのフィールドをもつ構造体です。

  • Ordinary — 通常の (自由度未調整) 決定係数

  • Adjusted — 係数の数に対する自由度調整済み決定係数

一般化線形モデルの場合、Rsquared は次の 5 つのフィールドをもつ構造体です。

  • Ordinary — 通常の (自由度未調整) 決定係数

  • Adjusted — 係数の数に対する自由度調整済み決定係数

  • LLR — 対数尤度比

  • Deviance — 逸脱度

  • AdjGeneralized — 一般化された自由度調整済み決定係数

決定係数の値は、モデルによって説明される二乗総和の比率です。通常の決定係数値は、SSR および SST のプロパティに関係します。

Rsquared = SSR/SST = 1 - SSE/SST

これらの値のいずれかをスカラーとして取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、mdl 内の自由度調整済み決定係数は、

r2 = mdl.Rsquared.Adjusted

誤差 (残差) の二乗和。数値を指定します。

ピタゴラスの定理が示すもの

SST = SSE + SSR

回帰二乗和。数値を指定します。回帰二乗和は、近似値の平均に対する近似値の偏差二乗和に等しい値です。

ピタゴラスの定理が示すもの

SST = SSE + SSR

二乗総和。数値を指定します。二乗総和は、mean(y) に対する応答ベクトル y の偏差二乗和に等しい値です。

ピタゴラスの定理が示すもの

SST = SSE + SSR

Variables に格納されている入力変数に関する情報。各モデル項に対応する 1 つずつの行と以下の列がある table を指定します。

フィールド説明
Class'double' などの変数クラスを指定する文字ベクトル
Range

変数範囲を指定する cell 配列:

  • 連続変数 — 2 因子ベクトル [min,max]、最小値と最大値

  • カテゴリカル変数 — 異なる変数値の cell 配列

InModellogical ベクトル、true は変数がモデル内にあることを示す
IsCategoricallogical ベクトル、true はカテゴリカル変数であることを示す

あてはめに使用する変数の名前。文字ベクトルの cell 配列を指定します。

  • 近似がテーブルまたはデータセットに基づいている場合、このプロパティはそのテーブルまたはデータセット内の変数の名前を指定します。

  • 近似が予測行列および応答行列に基づいている場合、VariableNames は近似手法の VarNames の名前と値のペアにある値です。

  • それ以外の場合、変数は既定の近似名になります。

モデルのあてはめに使用したデータ。table を指定します。Variables には観測値と応答値の両方が格納されます。近似がテーブルまたはデータセット配列に基づいている場合、Variables には当該のテーブルまたはデータセット配列のすべてのデータが格納されます。それ以外の場合、Variables は入力データ行列 X と応答ベクトル y から作成されたテーブルです。

メソッド

coefCI非線形回帰モデルの係数推定の信頼区間
coefTest非線形回帰モデルの係数に対する線形仮説検定
disp非線形回帰モデルの表示
feval非線形回帰モデルの予測の評価
fit非線形回帰モデルの近似
plotDiagnostics非線形回帰モデルの診断プロット
plotResiduals非線形回帰モデルの残差プロット
plotSlice近似非線形回帰面を通るスライスのプロット
predict非線形回帰モデルの応答予測
random非線形回帰モデルの応答のシミュレーション

コピーのセマンティクス

値。値のクラスがコピー操作に与える影響については、オブジェクトのコピー (MATLAB)を参照してください。

すべて折りたたむ

carbig のデータに基づいて自動車の燃費効率に非線形回帰モデルをあてはめます。平均的な車の燃費を予測します。

標本データを読み込みます。各自動車の馬力 (Horsepower) および重量 (Weight) の測定値が格納されている行列 X を作成します。ガロンあたりの走行マイル数 (MPG) の応答値が格納されているベクトル y を作成します。

load carbig
X = [Horsepower,Weight];
y = MPG;

非線形回帰モデルを近似させます。

modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ...
    b(4)*x(:,2).^b(5);
beta0 = [-50 500 -1 500 -1];
mdl = fitnlm(X,y,modelfun,beta0)
mdl = 
Nonlinear regression model:
    y ~ b1 + b2*x1^b3 + b4*x2^b5

Estimated Coefficients:
          Estimate      SE        tStat       pValue 
          ________    _______    ________    ________

    b1     -49.383     119.97    -0.41164     0.68083
    b2      376.43     567.05     0.66384     0.50719
    b3    -0.78193    0.47168     -1.6578    0.098177
    b4      422.37     776.02     0.54428     0.58656
    b5    -0.24127    0.48325    -0.49926     0.61788


Number of observations: 392, Error degrees of freedom: 387
Root Mean Squared Error: 3.96
R-Squared: 0.745,  Adjusted R-Squared 0.743
F-statistic vs. constant model: 283, p-value = 1.79e-113

平均自動の予測された燃費を見つけます。標本データには欠損 (NaN) 観測値が含まれているので、nanmean を使用して平均を計算します。

Xnew = nanmean(X)  
Xnew = 1×2
103 ×

    0.1051    2.9794

MPGnew = predict(mdl,Xnew)
MPGnew = 21.8073

詳細

すべて展開する