最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。
クラス: CompactLinearModel
線形回帰モデルの応答予測
ypred = predict(mdl,Xnew)
[ypred,yci]
= predict(mdl,Xnew)
[ypred,yci]
= predict(mdl,Xnew,Name,Value)
は ypred
= predict(mdl
,Xnew
)mdl
線形回帰モデルの予測応答を Xnew
内の点に返します。
[
は、真の平均応答の信頼区間を返します。ypred
,yci
]
= predict(mdl
,Xnew
)
[
では、1 つまたは複数の ypred
,yci
]
= predict(mdl
,Xnew
,Name,Value
)Name,Value
の引数ペアで指定された追加オプションを使用して、応答を予測します。
mdl
— 線形モデル オブジェクトLinearModel
オブジェクト | CompactLinearModel
オブジェクト線形モデル オブジェクト。fitlm
または stepwiselm
を使用して構築した完全な LinearModel
オブジェクト、または compact
を使用して構築したコンパクトな CompactLinearModel
オブジェクトを指定します。
Xnew
— 新しい予測子の入力値新しい予測子の入力値。テーブル、データセット配列または数値行列を指定します。
Xnew
がテーブルまたはデータセット配列の場合、mdl
に予測子名が含まれていなければなりません。
Xnew
が数値行列の場合、mdl
の作成に使用されたのと同じ数の変数 (列) をもたなければなりません。さらに、mdl
の作成に使用された変数は、すべて数値でなければなりません。
オプションの Name,Value
の引数ペアをコンマ区切りで指定します。ここで、Name
は引数名で、Value
は対応する値です。Name
は単一引用符 (' '
) で囲まなければなりません。Name1,Value1,...,NameN,ValueN
のように、複数の名前/値のペア引数を、任意の順番で指定できます。
'Alpha'
— 信頼区間のアルファの値信頼区間のアルファの値。'Alpha'
と 範囲 [0,1] の数値から構成されるコンマ区切りのペアとして指定します。yci
の信頼度は 100(1 – alpha)% に等しくなります。たとえば、Alpha
として 0.05 を指定した場合、95% 信頼区間に対応します。
'Prediction'
— 予測タイプ'curve'
(既定値) | 'observation'
予測タイプ。'Prediction'
と次のいずれかから構成されるコンマ区切りのペアとして指定します。
'curve'
— predict
は、近似された平均値の信頼限界を予測します。
'observation'
— predict
は、新しい観測値の信頼限界を予測します。この場合、新しい観測値の誤差が推定平均値の誤差と等しいことに加え、真の平均からの観測値のばらつきのため、限界値の範囲は広くなります。
詳細は、polyconf
を参照してください。
'Simultaneous'
— 同時信頼限界を計算するためのフラグfalse
(既定値) | true
同時信頼限界を計算するためのフラグ。Simultaneous と false または true から構成されるコンマ区切りのペアとして指定します。true
を指定した場合、すべての予測子の値について同時に信頼限界が計算されます。false
を指定した場合、個々の予測子の値についてホールドを使用して信頼限界が計算されます。1 つの予測値における曲線が範囲内であればよいのではなく、曲線全体が範囲内であることが厳密に要求されるため、同時の限界は個別の限界より広くなります。
詳細は、polyconf
を参照してください。
自動車の燃費のモデルを重量の関数として作成し、応答を予測します。
carsmall
データから、自動車の燃費の 2 次モデルを重量とモデル年の関数として作成します。
load carsmall X = Weight; y = MPG; mdl = fitlm(X,y,'quadratic');
データに対する予測された応答を作成します。
Xnew = X; ypred = predict(mdl,Xnew);
元の応答と予測された応答をプロットして、相違点を確認します。
plot(X,y,'o',Xnew,ypred,'x') legend('Data','Predictions')
この例は線形モデルの使用による応答値の予測をベースとしています。
carsmall
データセットを読み込んで、2 次回帰モデルをあてはめます。
load carsmall X = Weight; y = MPG; mdl = fitlm(X,y,'quadratic');
並べ替えられた標本内データから予測するための点を作成します。
Xnew = sort(X);
あてはめた 2 次モデルを QLMMdl.mat
というファイルに保存します。
saveCompactModel(mdl,'QLMMdl');
現在の作業フォルダーで、以下を行う mypredictQLM.m
という名前の関数を定義します。
Xnew
に相応する測定値およびおそらく有効であろう名前と値のペアの引数の受け入れ
QLMMdl.mat
内のあてはめ済み 2 次モデルを読み込む。
予測と信頼区間限界の返却
function [yhat,ci] = mypredictQLM(x,varargin) %#codegen %MYPREDICTQLM Predict response using linear model % MYPREDICTQLM predicts responses for the n observations in the n-by-1 % vector x using using the linear model stored in the MAT-file % QLMMdl.mat, and then returns the predictions in the n-by-1 vector yhat. % MYPREDICTQLM also returns confidence interval bounds for the % predictions in the n-by-2 vector ci. CompactMdl = loadCompactModel('QLMMdl'); narginchk(1,Inf); [yhat,ci] = predict(CompactMdl,x,varargin{:}); end
mypredictQLM.m
から MEX 関数を生成します。予測に対する 90% の同時信頼区間を返すように指定します。C では静的なデータ型が使用されるため、codegen
は MATLAB® ファイル内のすべての変数のプロパティをコンパイル時に決定しなければなりません。引数をコンパイル時の定数として指定するため、coder.Constant
を使用します。
codegen -config:mex mypredictQLM -args {Xnew,coder.Constant('Alpha'),0.1,coder.Constant('Simultaneous'),true}
MEX ファイル mypredictQLM_mex.mexw64
が現在の作業ディレクトリに生成されます。ファイルの拡張子はプラットフォームによって異なります。
predict
と mypredictQLM_mex
を使用した予測および信頼区間を、これらの両方とデータをプロットすることにより比較します。codegen
を呼び出したときの引数 -args
と同じ順序で名前と値のペアの引数を指定します。
[yhat1,ci1] = predict(mdl,Xnew,'Alpha',0.1,'Simultaneous',true); [yhat2,ci2] = mypredictQLM_mex(Xnew,'Alpha',0.1,'Simultaneous',true); figure; h1 = plot(X,y,'.'); hold on; h2 = plot(Xnew,yhat1,'ro',Xnew,yhat2,'g*'); h3 = plot(Xnew,ci1,'r-','LineWidth',4); h4 = plot(Xnew,ci2,'g--','LineWidth',2); legend([h1; h2; h3(1); h4(1)],{'Data','predict estimates','MEX estimates',... 'predict CIs','MEX CIs'}); xlabel('Weight'); ylabel('MPG');
生成された MEX ファイルと predict
は、本質的に同じ結果を返します。
ノイズが追加された予測では、random
を使用します。
feval
は同じ予測を行いますが、各入力引数に 1 つずつの成分がある複数の入力配列を使用します。テーブルまたはデータセット配列から作成したモデルでは feval
を使用する方が簡単な場合がありますが、feval
は予測に対する信頼区間を計算しません。
random
は追加されたノイズ付きで予測します。
使用上の注意および制限
引数 | 注意と制限 |
---|---|
mdl |
|
Xnew |
|
名前と値のペアの引数 |
名前と値のペアの引数に含まれる名前はコンパイル時の定数でなければなりません。
たとえば、生成されたコードでユーザー定義の有意水準を可能にするには、 |
コード生成の例については、予測用のコード生成ワークフローとコード生成用の可変サイズ引数の指定を参照してください。詳細については、コード生成のトピックを参照してください。
CompactLinearModel
| LinearModel
| feval
| fitlm
| random
| stepwiselm
MATLAB のコマンドを実行するリンクがクリックされました。
このリンクは、Web ブラウザーでは動作しません。MATLAB コマンド ウィンドウに以下を入力すると、このコマンドを実行できます。
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: .
Select web siteYou can also select a web site from the following list:
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.