Main Content

random

非線形回帰モデルの応答のシミュレーション

説明

ysim = random(mdl) は、元の計画点で近似非線形モデル mdl からの応答をシミュレーションします。

ysim = random(mdl,Xnew) はランダム ノイズを追加して、近似された非線形モデル mdl から Xnew のデータへの応答をシミュレーションします。

ysim = random(mdl,Xnew,'Weights',W) は、観測の重み W を使用して応答をシミュレーションします。

すべて折りたたむ

自動車の燃費の非線形モデルを重量の関数として作成し、応答をシミュレーションします。

carsmall データから、重量の関数として自動車の燃費の指数モデルを作成します。すべての変数がほぼ同じサイズになるように、1000 のファクタで重み付けをスケーリングします。

load carsmall
X = Weight;
y = MPG;
modelfun = 'y ~ b1 + b2*exp(-b3*x/1000)';
beta0 = [1 1 1];
mdl = fitnlm(X,y,modelfun,beta0);

データに対するシミュレートされた応答を作成します。

Xnew = X;
ysim = random(mdl,Xnew);

元の応答とシミュレートされた応答をプロットして、相違点を確認します。

plot(X,y,'o',X,ysim,'x')
legend('Data','Simulated')

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent Data, Simulated.

入力引数

すべて折りたたむ

非線形回帰モデル オブジェクト。fitnlm を使用して作成される NonLinearModel オブジェクトとして指定します。

正の実数値の重みのベクトルまたは関数ハンドル。

  • ベクトルを指定する場合、Xnew にある観測値 (行) の数と同じ数の要素を指定しなければなりません。

  • 関数ハンドルを指定する場合、関数は予測される応答値のベクトルを入力として受け入れ、出力として正の実数重みを返さなければなりません。

重み W に対して random は観測 i における誤差分散を MSE*(1/W(i)) により推定します。MSE は平均二乗誤差です。

新しい予測子の入力値。table、データセット配列または行列を指定します。Xnew の各行は 1 つの観測値に対応し、各列は 1 つの変数に対応します。

  • Xnew が table またはデータセット配列である場合、mdlPredictorNames プロパティと同じ予測子名をもつ予測子が含まれていなければなりません。

  • Xnew が行列である場合、mdl の作成に使用した予測子入力と同じ個数の変数 (列) が同じ順序で含まれていなければなりません。当てはめたモデルで予測子としては使用しなかった予測子変数も Xnew に含めなければならないことに注意してください。また、mdl の作成に使用する変数は、すべて数値でなければなりません。数値予測子をカテゴリカルとして扱うには、mdl を作成するときに名前と値のペアの引数 'CategoricalVars' を使用して予測子を指定します。

データ型: single | double | table

出力引数

すべて折りたたむ

シミュレートされた応答値。数値ベクトルとして返されます。シミュレートされた値は、ランダム ノイズによる変動がある、Xnew で予測された応答値です。ノイズは独立しており、平均が 0、分散がモデルの推定誤差分散に等しい正規分布に従います。

代替方法

ノイズを追加しない予測では、predict を使用します。

バージョン履歴

R2012a で導入