NonLinearModel
非線形回帰モデル
説明
NonLinearModel
は、当てはめ済みの非線形回帰モデル オブジェクトです。回帰モデルは、応答と予測子の間の関係を説明します。非線形回帰モデルにおける非線形性は、予測子と予測子係数の非線形結合を意味します。
当てはめた非線形回帰モデルを調べるには、NonLinearModel
オブジェクトのプロパティを使用します。オブジェクト プロパティには、係数推定値、要約統計量、当てはめ手法および入力データに関する情報が含まれています。オブジェクト関数を使用して、応答の予測や非線形回帰モデルの評価と可視化を行います。モデルの応答はオブジェクト関数 predict
または feval
を使用して予測できます。
作成
NonLinearModel
オブジェクトを作成するには、fitnlm
を使用します。
プロパティ
係数推定値
CoefficientCovariance
— 係数推定値の共分散行列
数値行列
この プロパティ は読み取り専用です。
係数推定値の共分散行列。p 行 p 列の数値の行列を指定します。p は、当てはめたモデルの係数の個数で、NumCoefficients
で与えられます。
詳細については、係数の標準誤差と信頼区間を参照してください。
データ型: single
| double
CoefficientNames
— 係数の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
係数の名前。対応する項の名前が含まれている文字ベクトルの cell 配列を指定します。
データ型: cell
Coefficients
— 係数の値
テーブル
この プロパティ は読み取り専用です。
係数の値。table を指定します。Coefficients
には、各係数に対応する 1 つずつの行と次の列が格納されます。
Estimate
— 推定される係数値SE
— 推定の標準誤差tStat
— 係数がゼロであるという帰無仮説をもつ両側検定の t 統計量pValue
— t 統計量の p 値
係数に対する他の検定を実行するには、coefTest
を使用します。係数推定値の信頼区間を求めるには、coefCI
を使用します。
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
内の推定された係数ベクトルを取得するには、次のようにします。
beta = mdl.Coefficients.Estimate
データ型: table
NumCoefficients
— 係数の数
正の整数
この プロパティ は読み取り専用です。
当てはめたモデル内の係数の個数。正の整数を指定します。NumCoefficients
は NonLinearModel
オブジェクトの NumEstimatedCoefficients
と同じです。NumCoefficients
は回帰の自由度に等しくなります。
データ型: double
NumEstimatedCoefficients
— 推定された係数の数
正の整数
この プロパティ は読み取り専用です。
当てはめたモデル内の推定された係数の個数。正の整数を指定します。NumEstimatedCoefficients
は NonLinearModel
オブジェクトの NumCoefficients
と同じです。NumEstimatedCoefficients
は回帰の自由度に等しくなります。
データ型: double
要約統計量
DFE
— 誤差に対する自由度
正の整数
この プロパティ は読み取り専用です。
誤差 (残差) の自由度。推定された係数の個数を観測値の個数から減算した値に等しくなります。正の整数を指定します。
データ型: double
Diagnostics
— 診断情報
テーブル
この プロパティ は読み取り専用です。
モデルの診断情報。table を指定します。診断は、外れ値と影響が大きい観測値を特定するために役立てることができます。Diagnostics
には次のフィールドが含まれています。
フィールド | 意味 | ユーティリティ |
---|---|---|
Leverage | HatMatrix の対角要素 | 各観測値の Leverage は、観測された予測子の値によってどの程度まで当てはめが決定されるかを示します。1 に近い値は、当てはめの大部分がその観測値によって決定され、他の観測値からの寄与は少ないことを示します。0 に近い値は、当てはめの大部分が他の観測値によって決定されることを示します。係数 P と観測 N のあるモデルの場合、Leverage の平均値は P/N です。2*P/N より大きい Leverage の値は、高いてこ比を示します。 |
CooksDistance | クックの距離 | CooksDistance は、当てはめた値におけるスケーリングされた変化の測定です。平均のクックの距離の 3 倍より CooksDistance が大きい観測値は、外れ値である可能性があります。 |
HatMatrix | 観測された応答から fitted を計算するための射影行列 | HatMatrix は、Fitted = HatMatrix*Y となる N 行 N 列の行列です。ここで、Y は応答ベクトル、Fitted は応答の当てはめた値のベクトルです。 |
Diagnostics
には、外れ値と影響力が大きい観測値を特定するために役立つ情報が格納されます。詳細については、ハット行列とてこ比およびクックの距離を参照してください。
観測値の診断情報をプロットするには、plotDiagnostics
を使用します。
欠損値 (ObservationInfo.Missing
内) または除外された値 (ObservationInfo.Excluded
内) が原因で当てはめに使用されなかった行では、CooksDistance
列に NaN
値が、Leverage
列および HatMatrix
列にゼロが格納されます。
これらの列のいずれかを配列として取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl
内のクックの距離のベクトルを取得するには、次のようにします。
CooksDistance = mdl.Diagnostics.CooksDistance;
データ型: table
Fitted
— 入力データを基に当てはめを行った応答値
数値ベクトル
この プロパティ は読み取り専用です。
入力データに基づいて当てはめた (予測した) 応答値。n 行 1 列の数値ベクトルを指定します。n は入力データ内の観測値の個数です。predict
を使用して、他の予測子の値の予測を計算するか、Fitted
で信頼限界を計算します。
データ型: single
| double
LogLikelihood
— 対数尤度
数値
この プロパティ は読み取り専用です。
応答値におけるモデルの分布の対数尤度。数値として指定します。平均はモデルから当てはめられ、他のパラメーターはモデルの当てはめに伴って推定されます。
データ型: single
| double
ModelCriterion
— モデルの比較基準
構造体
この プロパティ は読み取り専用です。
モデルの比較基準。次のフィールドがある構造体を指定します。
AIC
— 赤池情報量基準。AIC = –2*logL + 2*m
であり、ここでlogL
は対数尤度、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
データ型: struct
ModelFitVsNullModel
— 回帰モデルの F 統計量
構造体
この プロパティ は読み取り専用です。
回帰モデルの F 統計量。次のフィールドを含む構造体として指定します。
Fstats
— 当てはめたモデルとヌル モデルの F 統計量Pvalue
— F 統計量の p 値NullModel
— ヌル モデル タイプ ('constant
' または 'zero'
として指定)
当てはめたモデルに切片項が含まれる場合、NullModel
は 'constant
' (切片項のみを含む) です。それ以外の場合、NullModel
は 'zero
' (項を含まない) です。
データ型: struct
MSE
— 平均二乗誤差
数値
この プロパティ は読み取り専用です。
平均二乗誤差。数値を指定します。平均二乗誤差は、モデルにおける誤差項の分散の推定値です。
データ型: single
| double
Residuals
— 当てはめたモデルの残差
テーブル
この プロパティ は読み取り専用です。
当てはめたモデルの残差。各観測値に対する 1 つずつの行と次の表に記載されている列が含まれている table を指定します。
列 | 説明 |
---|---|
Raw | 観測した値から当てはめた値を減算した値 |
Pearson | 生の残差を平方根平均二乗誤差 (RMSE) で除算した値 |
Standardized | 推定標準偏差で除算した生の残差 |
Studentized | 生の残差を残差標準偏差の独立した推定値で除算した値。観測値 i の残差が、観測値 i を除くすべての観測値に基づく誤差標準偏差の推定値によって除算されます。 |
残差のプロットを作成するには、plotResiduals
を使用します。詳細については、残差を参照してください。
欠損値 (ObservationInfo.Missing
内) または除外された値 (ObservationInfo.Excluded
内) が原因で当てはめに使用されなかった行には、NaN
値が格納されます。
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
内の生の残差のベクトル r
を取得するには、次のようにします。
r = mdl.Residuals.Raw
データ型: table
RMSE
— 平方根平均二乗誤差
数値
この プロパティ は読み取り専用です。
平方根平均二乗誤差 (残差)。数値を指定します。
RMSE = sqrt(MSE),
ここで、RMSE は平方根平均二乗誤差、MSE は平均二乗誤差です。RMSE は、モデルにおける誤差項の標準偏差の推定値です。
データ型: single
| double
Rsquared
— モデルの決定係数の値
構造体
この プロパティ は読み取り専用です。
モデルの決定係数の値。2 つのフィールドがある構造体を指定します。
Ordinary
— 通常の (自由度未調整) 決定係数Adjusted
— 係数の数に対する自由度調整済み決定係数
決定係数の値は、モデルによって説明される二乗総和の比率です。通常の決定係数の値は、SSR
プロパティおよび SST
プロパティに関連します。
Rsquared = SSR/SST
,
ここで、SST
は二乗総和、SSR
は回帰二乗和です。
詳細については、決定係数 (R-squared)を参照してください。
これらの値のいずれかをスカラーとして取得するには、ドット表記を使用してプロパティのインデックスを指定します。たとえば、モデル mdl
の自由度調整済み決定係数の値を取得するには、次のようにします。
r2 = mdl.Rsquared.Adjusted
データ型: struct
SSE
— 誤差の二乗和
数値
この プロパティ は読み取り専用です。
誤差 (残差) の二乗和。数値を指定します。観測値の重みを使用して学習させたモデルの場合、SSE
の計算の二乗和は重み付き二乗和です。
データ型: single
| double
SSR
— 回帰二乗和
数値
この プロパティ は読み取り専用です。
回帰二乗和。数値を指定します。SSR
は、当てはめた値と応答の平均の間における偏差の二乗和に等しい値です。観測値の重みを使用して学習させたモデルの場合、SSR
の計算の二乗和は重み付き二乗和です。
データ型: single
| double
SST
— 二乗の総和
数値
この プロパティ は読み取り専用です。
二乗の総和。数値を指定します。SST
は、mean(y)
に対する応答ベクトル y
の偏差二乗和に等しい値です。観測値の重みを使用して学習させたモデルの場合、SST
の計算の二乗和は重み付き二乗和です。
データ型: single
| double
近似法
Robust
— ロバスト近似の情報
構造体
この プロパティ は読み取り専用です。
ロバスト近似の情報。次のフィールドがある構造体を指定します。
フィールド | 説明 |
---|---|
WgtFun | 'bisquare' などのロバストな重み付け関数 (Robust Options を参照) |
Tune | パラメーター調整のために指定された値 ([] で表記) |
Weights | ロバスト近似の最後の反復で使用された重みのベクトル |
fitnlm
がロバスト回帰を使用してモデルを構築した場合を除き、この構造体は空です。
データ型: struct
入力データ
Formula
— モデルの情報
NonLinearFormula
オブジェクト
この プロパティ は読み取り専用です。
モデルの情報。NonLinearFormula
オブジェクトを指定します。
ドット表記を使用して、当てはめたモデル mdl
の式を表示します。
mdl.Formula
Iterative
— 近似プロセスに関する情報
構造体
この プロパティ は読み取り専用です。
当てはめプロセスに関する情報。次のフィールドをもつ構造体を指定します。
InitialCoefs
— 係数の初期値 (ベクトルbeta0
)IterOpts
—fitnlm
のOptions
名前と値のペア引数に含まれるオプション
データ型: struct
NumObservations
— 観測値の数
正の整数
この プロパティ は読み取り専用です。
近似関数が当てはめで使用した観測値の個数。正の整数を指定します。NumObservations
は、元の table、データセットまたは行列で指定された観測値の個数から、除外する行数 (名前と値のペアの引数 'Exclude'
で設定) または欠損値が含まれている行数を減算した値です。
データ型: double
NumPredictors
— 予測子変数の数
正の整数
この プロパティ は読み取り専用です。
モデルの当てはめに使用した予測子変数の個数。正の整数を指定します。
データ型: double
NumVariables
— 変数の数
正の整数
この プロパティ は読み取り専用です。
入力データに含まれている変数の個数。正の整数を指定します。NumVariables
は、元の table またはデータセットに含まれている変数の個数、または予測子行列と応答ベクトルの列の総数です。
NumVariables
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: double
ObservationInfo
— 観測値の情報
テーブル
この プロパティ は読み取り専用です。
観測値の情報。n 行 4 列の table として指定します。n は入力データの行数に等しくなります。ObservationInfo
には、次の表で説明されている列が含まれます。
列 | 説明 |
---|---|
Weights | 観測値の重み。数値として指定します。既定値は 1 です。 |
Excluded | 除外する観測値のインジケーター。logical 値として指定します。名前と値のペアの引数 'Exclude' を使用して観測値を当てはめから除外した場合、値は true です。 |
Missing | 欠損観測値のインジケーター。logical 値として指定します。観測値が欠損値である場合、値は true です。 |
Subset | 近似関数が観測値を使用するかどうかのインジケーター。logical 値として指定します。観測値が除外されず、欠損値でもない場合、つまり、近似関数が観測値を使用する場合、値は true です。 |
ベクトルとしてこれらの列のいずれかを取得するには、ドット表記を使ってプロパティにインデックスを付けます。たとえば、モデル mdl
の重みベクトル w
を取得するには、次のようにします。
w = mdl.ObservationInfo.Weights
データ型: table
ObservationNames
— 観測値の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
観測値の名前。当てはめで使用した観測値の名前が含まれている文字ベクトルの cell 配列を指定します。
近似が観測名を含むテーブルまたはデータセットに基づいている場合、
ObservationNames
はそれらの名前を使用します。それ以外の場合、
ObservationNames
は空の cell 配列になります。
データ型: cell
PredictorNames
— モデルの当てはめに使用した予測子の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
モデルの当てはめに使用した予測子の名前。文字ベクトルの cell 配列を指定します。
データ型: cell
ResponseName
— 応答変数名
文字ベクトル
この プロパティ は読み取り専用です。
応答変数名。文字ベクトルを指定します。
データ型: char
VariableInfo
— 変数に関する情報
テーブル
この プロパティ は読み取り専用です。
Variables
に格納されている入力変数に関する情報。各変数に対応する 1 つずつの行と次の表で説明されている列がある table を指定します。
列 | 説明 |
---|---|
Class | 変数のクラス。'double' や 'categorical' などの文字ベクトルによる cell 配列を指定します。 |
Range | 変数の範囲。ベクトルの cell 配列を指定します。
|
InModel | 当てはめたモデルにどの変数が含まれているかを示すインジケーター。logical ベクトルを指定します。モデルに変数が含まれている場合、値は true です。 |
IsCategorical | カテゴリカル変数のインジケーター。logical ベクトルを指定します。変数がカテゴリカルである場合、値は true です。 |
VariableInfo
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: table
VariableNames
— 変数の名前
文字ベクトルの cell 配列
この プロパティ は読み取り専用です。
変数の名前。文字ベクトルの cell 配列を指定します。
当てはめが table またはデータセットに基づいている場合、このプロパティはその table またはデータセット内の変数の名前を与えます。
当てはめが予測行列と応答ベクトルに基づいている場合、近似メソッドの名前と値のペアの引数
'VarNames'
によって指定された値がVariableNames
に格納されます。'VarNames'
の既定値は{'x1','x2',...,'xn','y'}
です。
VariableNames
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: cell
Variables
— 入力データ
テーブル
この プロパティ は読み取り専用です。
入力データ。table を指定します。Variables
には予測子と応答の両方の値が格納されます。当てはめが table またはデータセット配列に基づいている場合、Variables
にはその table またはデータセット配列のデータがすべて格納されます。それ以外の場合、Variables
は入力データ行列 X
と応答ベクトル y
から作成された table です。
Variables
には、予測子または応答としてモデルの当てはめに使用される変数ではないものも含まれます。
データ型: table
オブジェクト関数
非線形モデルの評価
coefCI | 非線形回帰モデルの係数推定の信頼区間 |
coefTest | 非線形回帰モデルの係数に対する線形仮説検定 |
partialDependence | 部分依存の計算 |
非線形モデルと要約統計量の可視化
plotDiagnostics | 非線形回帰モデルの診断プロット |
plotPartialDependence | 部分依存プロット (PDP) および個別条件付き期待値 (ICE) プロットの作成 |
plotResiduals | 非線形回帰モデルの残差プロット |
plotSlice | 近似非線形回帰面を通るスライスのプロット |
例
非線形回帰モデルの当てはめ
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
) 観測値が含まれているので、mean
を 'omitnan'
オプションで使用して平均を計算します。
Xnew = mean(X,'omitnan')
Xnew = 1×2
103 ×
0.1051 2.9794
MPGnew = predict(mdl,Xnew)
MPGnew = 21.8073
詳細
ハット行列
"ハット行列" H は、データ行列 X およびヤコビ行列 J の項で定義されます。
ここで、f は非線形モデル関数、β はモデル係数のベクトルです。
ハット行列 H は、以下のようになります。
H = J(JTJ)–1JT.
対角要素 Hii は次を満たします
ここで n は観測の数 (X の行) であり、p は回帰モデルの係数の数です。
てこ比
てこ比は、入力空間で特定の観測の位置が原因で発生した、回帰予測におけるその観測値の影響を測定します。
観測値 i のてこ比はハット行列 H の i 番目の対角項 hii の値です。てこ比値の合計は p (回帰モデルの係数の個数) なので、てこ比が p/n (n は観測値の個数) を大幅に超える場合、観測値 i は外れ値であると考えることができます。
クックの距離
観測値 i のクックの距離 Di は
ここで
は、j 番目の近似応答値です。
は、i 番目の観測値を除いて当てはめた j 番目の応答値です。
MSE は、平均二乗誤差です。
p は回帰モデルの係数の数です。
クックの距離は代数的には次の式と等価です。
ここで、ei は i 番目の残差です。
バージョン履歴
R2012a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)