ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

predict

クラス: LinearMixedModel

線形混合効果モデルの応答予測

構文

  • ypred = predict(lme)
  • ypred = predict(lme,dsnew)
  • ypred = predict(lme,Xnew,Znew)
  • ypred = predict(lme,Xnew,Znew,Gnew)
  • ypred = predict(___,Name,Value)
  • [ypred,ypredCI] = predict(___)
  • [ypred,ypredCI,DF] = predict(___)

説明

ypred = predict(lme) は、線形混合効果モデル lme の近似に使用される元の予測子の条件付きの予測された応答 ypred を返します。

ypred = predict(lme,dsnew) は、新しいデータセット配列 dsnew の値で近似線形混合効果モデル lme から条件付きの予測された応答 ypred のベクトルを返します。モデル lme の近似にデータセット配列を使用している場合は predict のデータセット配列を使用します。

dsnew の特定のグループ化変数が、元のデータにないレベルを保有する場合、そのグループ化変数の変量効果は、グループ化変数に新規レベルが含まれる観測値での 'Conditional' の予測に役立ちません。

ypred = predict(lme,Xnew,Znew) は、新しい固定効果および変量効果の計画行列 XnewZnew それぞれの値での近似線形混合効果モデル lme から条件付き予測応答 ypred のベクトルを返します。Znew は行列のセル配列にすることもできます。この場合、グループ化変数 Gones(n,1) になります。n は近似で使用される観測値の数です。

モデル lme の近似に計画行列を使用している場合、predict に行列形式を使用します。

ypred = predict(lme,Xnew,Znew,Gnew) は、新しい固定効果および変量効果の計画行列 XnewZnew それぞれの値およびグループ化変数 Gnew の値での近似線形混合効果モデル lme から条件付き予測応答 ypred のベクトルを返します。

Znew および Gnew は、それぞれ行列とグループ化変数のセル配列にすることもできます。

ypred = predict(___,Name,Value) は、1 つまたは複数の Name,Value のペアの引数で指定された追加のオプションにより、近似線形混合効果モデル lme から予測応答 ypred のベクトルを返します。

たとえば、信頼度、同時信頼限界または固定効果のみからの寄与を指定できます。

[ypred,ypredCI] = predict(___) は、前の構文のいずれかの入力引数に対する予測 ypred の信頼区間 ypredCI も返します。

[ypred,ypredCI,DF] = predict(___) は、前の構文のいずれかの入力引数に対する信頼間隔を計算するときに使用される自由度 DFも返します。

入力引数

すべて展開する

lme - 線形混合効果モデルLinearMixedModel オブジェクト

LinearMixedModel オブジェクトとして返される線形混合効果モデル。

このオブジェクトのプロパティとメソッドについては、LinearMixedModel を参照してください。

dsnew - 新しい入力データ配列 dataset

新規入力データ。データセット配列として指定された、応答変数、予測変数およびグループ化変数を含みます。予測変数は連続変数またはグループ化変数にすることができます。dsnew は、線形混合効果モデル lme の近似に使用される元のデータセット配列と同じ変数にしなければなりません。

データ型:single | double | logical | char

Xnew - 新しい固定効果の計画行列n 行 p 列の行列

n 行 p 列の行列で指定される新しい固定効果の計画行列。ここで n は観測値の数、p は固定予測子変数の数です。X の各行は 1 つの観測値に対応し、X の各列は 1 つの変数に対応します。

データ型:single | double

Znew - 新しい変量効果の計画行列n 行 q 列の行列 | 長さ R のセル配列

n 行 q 列の行列または R 計画行列 Z{r} のセル配列として指定される新しい変量効果計画。ここで、r = 1, 2, ..., R となります。Znew がセル配列の場合、各 Z{r} は n 行 q(r) 列の行列になります。ここで n は観測値の数、q(r) は無作為な予測子変数の数です。

データ型:single | double | logical | char | cell

Gnew - 新しいグループ化変数ベクトル | 長さ R のグループ化変数のセル配列

新しいグループ化変数または変数。線形混合効果モデル lme の近似には、元のグループ化変数と同じレベルまたはグループをもつグループ化変数の長さ R のベクトルまたはセル配列として指定します。

データ型:single | double | logical | char | cell

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

'Alpha' - 信頼度0.05 (既定の設定) | 0 ~ 1 の範囲のスカラー値

信頼度。'Alpha' と、0 ~ 1 の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。値が α の場合、信頼度は 100*(1–α)% です。

たとえば、99% の信頼区間の場合は、次のように信頼度を指定できます。

例: 'Alpha',0.01

データ型:single | double

'Conditional' - 条件付き予測のインジケーター真 (既定の設定) | 偽

条件付き予測のインジケーター。'Conditional' と、以下のいずれかで構成されるコンマ区切りペアとして指定します。

True固定効果と変量効果の両方からの寄与 (条件付き)
False固定効果のみからの寄与 (限界)

例: 'Conditional,'False'

'DFMethod' - 自由度の近似の計算方法'Residual' (既定の設定) | 'Satterthwaite' | 'None'

信頼区間の計算で使用する自由度の近似の計算方法です。'DFMethod' と次のいずれかの値で構成されるコンマ区切りのペアで指定します。

'Residual'既定の設定。自由度は定数で n – p に等しいと仮定されます。ここで n は観測値の数、p は固定効果の数です。
'Satterthwaite'サタースウェイトの近似法。
'None'すべての自由度は無限大に設定されます。

たとえば、次のようにサタースウェイトの近似法を指定できます。

例: 'DFMethod','Satterthwaite'

'Simultaneous' - 信頼限界のタイプfalse (既定の設定) | true

信頼限界のタイプ。'Simultaneous' と、以下のいずれかで構成されるコンマ区切りペアとして指定します。

false既定の設定。非同期区間。
true同期区間。

例: 'Simultaneous',true

'Prediction' - 予測のタイプ'curve' (既定の設定) | 'observation'

予測のタイプ。'Prediction' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

'curve'既定の設定。信頼限界は近似された関数に適用され、新しい観測値に関連付けられた変動性は含みません。
'observation'新しい観測値の観測誤差による変動性は、信頼限界の計算に含まれません。

例: 'Prediction','observation'

出力引数

すべて展開する

ypred - 予測応答ベクトル

ベクトルとして返される予測応答。ypred には、'Conditional' の名前と値のペア引数の値の選択に応じて、条件付き応答または限界応答を含むことができます。条件付き予測には、固定効果と変量効果の両方からの寄与が含まれます。

ypredCI - 点別信頼区間2 列の行列

2 列の行列として返される予測値の点別信頼区間。yCI の 1 列目には信頼区間の下限が含まれ、2 列目には上限が含まれます。既定では、yCI には予測の 95% の信頼区間が含まれます。Alpha の名前と値のペア引数を使用して信頼度を変更したり、Simultaneous の名前と値のペア引数を使用して信頼度を同時信頼度にしたり、Prediction の名前と値のペア引数を使用して、曲線ではなく新しい観測値用にすることもできます。

DF - 自由度ベクトル | スカラー値

信頼区間の計算に使用される自由度。ベクトルまたはスカラー値として返されます。

  • 'Simultaneous' の名前と値のペア引数が false である場合、DF はベクトルになります。

  • 'Simultaneous' の名前と値のペア引数が true である場合、DF はスカラー値になります。

すべて展開する

元の設計値での応答の予測

標本データが含まれたフォルダーに移動します。

cd(matlabroot)
cd('help/toolbox/stats/examples')

標本データを読み込みます。

load fertilizer

このデータセット配列には、砂質、シルト、粘土質の土壌の種類に基づいて土壌が 3 つのブロックに分けられている分割プロット試験のデータが含まれています。各ブロックは 5 つのプロットに分割され、5 種類のトマトの苗木 (チェリー、エアルーム、グレープ、枝付き、プラム) がランダムにこれらのプロットに割り当てられます。その後、プロット内のトマトの苗木はサブプロットに分割され、それぞれのサブプロットに 4 つの肥料の中の 1 つが処置されます。このデータは、シミュレーションされたものです。

実用目的でこのデータを ds という名前のデータセット配列に保存し、TomatoSoil および Fertilizer をカテゴリカル変数として定義します。

ds = fertilizer;
ds.Tomato = nominal(ds.Tomato);
ds.Soil = nominal(ds.Soil);
ds.Fertilizer = nominal(ds.Fertilizer);

線形混合効果モデルを近似します。Fertilizer および Tomato は固定効果変数であり、平均収穫量はブロック (土壌の種類) とブロック内のプロット (土壌の種類の中のトマトの種類) によって独立して変化します。

lme = fitlme(ds,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)');

元の設計値で応答値を予測します。観測された応答値をもつ最初の 5 つの観測値を表示します。

yhat = predict(lme);
[yhat(1:5) ds.Yield(1:5)]
ans =

  115.4788  104.0000
  135.1455  136.0000
  152.8121  158.0000
  160.4788  174.0000
   58.0839   57.0000

予測と観測された応答のプロット

標本データを読み込みます。

load carsmall

Weight に対する固定効果と、Model_Year でグループ化されたランダム切片で、線形混合効果モデルを近似します。最初に、データをデータセット配列に保存します。

ds = dataset(MPG,Weight,Model_Year);
lme = fitlme(ds,'MPG ~ Weight + (1|Model_Year)');

データに対する予測された応答を作成します。

yhat = predict(lme,ds);

元の応答と予測された応答をプロットして、相違点を確認します。それらをモデル年別にグループ化します。

figure()
gscatter(Weight,MPG,Model_Year)
hold on
gscatter(Weight,yhat,Model_Year,[],'o+x')
legend('70-data','76-data','82-data','70-pred','76-pred','82-pred')
hold off

新しいデータセット配列の値での応答の予測

標本データが含まれたフォルダーに移動します。

cd(matlabroot)
cd('help/toolbox/stats/examples')

標本データを読み込みます。

load fertilizer

このデータセット配列には、砂質、シルト、粘土質の土壌の種類に基づいて土壌が 3 つのブロックに分けられている分割プロット試験のデータが含まれています。各ブロックは 5 つのプロットに分割され、5 種類のトマトの苗木 (チェリー、エアルーム、グレープ、枝付き、プラム) がランダムにこれらのプロットに割り当てられます。その後、プロット内のトマトの苗木はサブプロットに分割され、それぞれのサブプロットに 4 つの肥料の中の 1 つが処置されます。このデータは、シミュレーションされたものです。

実用目的でこのデータを ds という名前のデータセット配列に保存し、TomatoSoil および Fertilizer をカテゴリカル変数として定義します。

ds = fertilizer;
ds.Tomato = nominal(ds.Tomato);
ds.Soil = nominal(ds.Soil);
ds.Fertilizer = nominal(ds.Fertilizer);

線形混合効果モデルを近似します。Fertilizer および Tomato は固定効果変数であり、平均収穫量はブロック (土壌の種類) とブロック内のプロット (土壌の種類の中のトマトの種類) によって独立して変化します。

lme = fitlme(ds,'Yield ~ Fertilizer * Tomato + (1|Soil) + (1|Soil:Tomato)');

設計値をもつ新しいデータセット配列を作成します。新しいデータセット配列は、モデル lme の近似に使用する元のデータセット配列と同じ変数をもたなければなりません。

dsnew = dataset();
dsnew.Soil = nominal({'Sandy';'Silty'});
dsnew.Tomato = nominal({'Cherry';'Vine'});
dsnew. Fertilizer = nominal([2;2]);

元の計画点の条件付き応答と限界応答を予測します。

yhatC = predict(lme,dsnew);
yhatM = predict(lme,dsnew,'Conditional',false);
[yhatC yhatM]
ans =

   92.7505  111.6667
   87.5891   82.6667

新しい計画行列の値での応答の予測

標本データを読み込みます。

load carbig

ガロンあたりの走行マイル数 (MPG) の線形混合効果モデルを近似します。加速度、馬力、気筒数は固定効果で、モデル年によってグループ化される切片と加速度については相関された変量効果の可能性があります。

最初に、線形混合効果モデルを近似するための計画行列を準備します。

X = [ones(406,1) Acceleration Horsepower];
Z = [ones(406,1) Acceleration];
Model_Year = nominal(Model_Year);
G = Model_Year;

次に、定義した計画行列とグループ化変数で fitlmematrix を使用してモデルを近似します。

lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept','Acceleration'}},'RandomEffectGroups',{'Model_Year'});

応答値を予測する対象データを含む計画行列を作成します。XnewX のように 3 つの列をもたなければなりません。最初の列名は列 1 でなければなりません。また、最後の 2 列の値はそれぞれ AccelerationHorsepower に一致しなければなりません。Znew の 1 列目は列 1 でなければならず、2 列目には Xnew と同じ Acceleration 値が含まれなければなりません。G の元のグループ化変数はモデル年です。そのため、Gnew にはモデル年の値が含まれなければなりません。Gnew にはノミナル値が含まれていなければなりません。

Xnew = [1,13.5,185; 1,17,205; 1,21.2,193];
Znew = [1,13.5; 1,17; 1,21.2];
Gnew = nominal([73 77 82]);

新しい計画行列のデータに対する応答を予測します。

yhat = predict(lme,Xnew,Znew,Gnew)
yhat =

    8.7063
    5.4423
   12.5384

次に、切片と加速度について変量効果が無相関な線形混合モデルに、同じ手順を繰り返します。最初に、元の変量効果計画と変量効果グループ化変数を変更します。次に、モデルを再近似します。

Z = {ones(406,1),Acceleration};
G = {Model_Year,Model_Year};

lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',....
{'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',...
{{'Intercept'},{'Acceleration'}},'RandomEffectGroups',{'Model_Year','Model_Year'})

ここで、新しい変量効果計画 Znew およびグループ化変数計画 Gnew を再作成します。これらのどちらかを使用して応答値を予測します。

Znew = {[1;1;1],[13.5;17;21.2]};
MY = nominal([73 77 82]);
Gnew = {MY,MY};

新しい計画行列を使用して応答を予測します。

yhat = predict(lme,Xnew,Znew,Gnew)
yhat =

    8.6365
    5.9199
   12.1247

予測の信頼区間の計算

標本データを読み込みます。

load carbig

ガロンあたりの走行マイル数 (MPG) の線形混合効果モデルを近似します。加速度、馬力、気筒数は固定効果で、モデル年によってグループ化される切片と加速度については相関された変量効果の可能性があります。最初に、変数をデータセット配列に保存します。

ds = dataset(MPG,Acceleration,Horsepower,Model_Year);

次に、定義した計画行列とグループ化変数で fitlme を使用してモデルを近似します。

lme = fitlme(ds,'MPG ~ Acceleration + Horsepower + (Acceleration|Model_Year)');

新しいデータを作成し、新しいデータセット配列に保存します。

dsnew = dataset();
dsnew.Acceleration = linspace(8,25)';
dsnew.Horsepower = linspace(nanmin(Horsepower),nanmax(Horsepower))';
dsnew.Model_Year = repmat(70,100,1);

linspace では、入力下限から入力上限までの 100 個の等距離値を作成します。Model_Year は 70 に固定されます。これを任意のモデル年に繰り返すことができます。

予測値および 95% の信頼限度 (非同時) を計算およびプロットします。

[ypred,yCI,DF] = predict(lme,dsnew);
figure(); 
h1 = line(dsnew.Acceleration,ypred);
hold on;
h2 = plot(dsnew.Acceleration,yCI,'g-.');

自由度を表示します。

DF(1)
ans =

   389

同時信頼限界を計算およびプロットします。

[ypred,yCI,DF] = predict(lme,dsnew,'Simultaneous',true);
h3 = plot(dsnew.Acceleration,yCI,'r--');

自由度を表示します。

DF
DF =

   389

サタースウェイト法を使用して同時信頼限界を計算し、自由度を計算します。

[ypred,yCI,DF] = predict(lme,dsnew,'Simultaneous',true,'DFMethod','Satterthwaite');
y4 = plot(dsnew.Acceleration,yCI,'k:');
hold off
xlabel('Acceleration')
ylabel('Response')
ylim([-50,60])
xlim([8,25])
legend([h1,h2(1),h3(1),h4(1)],'Predicted response','95%','95% Sim',...
'95% Sim-Satt','Location','Best')

自由度を表示します。

DF
DF =

    3.6001

定義

条件付き予測と限界予測

条件付き予測には、固定効果と変量効果両方からの寄与が含まれますが、限界モデルには固定効果のみからの寄与が含まれます。

線形混合効果モデル lme には、n 行 p 列の固定効果の計画行列 X と、n 行 q 列の変量効果の計画行列 Z があるものとします。また、推定される p 行 1 列の固定効果ベクトルは で、変量効果の q 行 1 列の推定最良線形不偏予測子 (BLUP) ベクトルは です。予測される条件付き応答は次のようになります。

これは、'Conditional','true''Prediction','curve' の名前と値のペア引数に相当します。観測誤差も含む予測される条件付き応答は次のようになります。

これは、'Conditional','true''Prediction','observation' の名前と値のペア引数に相当します。

予測される限界応答は次のようになります。

これは、'Conditional','false''Prediction','curve' の名前と値のペア引数に相当します。観測誤差も含む限界条件付き応答は次のようになります。

これは、'Conditional','false''Prediction','observation' の名前と値のペア引数に相当します。

予測を行う場合、特定のグループ化変数に新しいレベル (元のデータ内に存在していない 1) がある場合、そのグループ化変数に対する変量効果は、グループ化変数に新しいレベルが含まれる観測値での 'Conditional' 予測に寄与しません。

参考

| |

この情報は役に立ちましたか?