predict
線形混合効果モデルの応答予測
構文
説明
は、線形混合効果モデル ypred
= predict(lme
)lme
の当てはめに使用される元の予測子の条件付きの予測された応答 ypred
を返します。
は、1 つ以上の ypred
= predict(___,Name,Value
)Name,Value
のペアの引数で指定された追加のオプションにより、近似線形混合効果モデル lme
から予測応答 ypred
のベクトルを返します。
たとえば、信頼水準、同時信頼限界または固定効果のみからの寄与を指定できます。
例
元の計画値での応答の予測
標本データを読み込みます。
load('fertilizer.mat');
このデータセット配列には土壌の種類に基づいて土壌が 3 つのブロックに分けられている分割プロット試験のデータが含まれています。土壌の種類は砂質、シルトおよび粘土質です。各ブロックは 5 つのプロットに分割され、5 種類のトマトの苗木 (チェリー、エアルーム、グレープ、枝付き、プラム) がランダムにこれらのプロットに割り当てられます。その後、プロット内のトマトの苗木はサブプロットに分割され、それぞれのサブプロットが 4 つの肥料の中の 1 つにより処置されます。このデータは、シミュレーションされたものです。
実用目的でこのデータを ds
という名前のデータセット配列に保存し、Tomato
、Soil
および 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 = 5×2
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
でグループ化されたランダム切片で、線形混合効果モデルを当てはめます。まず、データをテーブルに保存します。
tbl = table(MPG,Weight,Model_Year);
lme = fitlme(tbl,'MPG ~ Weight + (1|Model_Year)');
データに対する予測された応答を作成します。
yhat = predict(lme,tbl);
元の応答と予測された応答をプロットして、相違点を確認します。それらをモデル年別にグループ化します。
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
新しいデータセット配列の値での応答の予測
標本データを読み込みます。
load('fertilizer.mat');
このデータセット配列には土壌の種類に基づいて土壌が 3 つのブロックに分けられている分割プロット試験のデータが含まれています。土壌の種類は砂質、シルトおよび粘土質です。各ブロックは 5 つのプロットに分割され、5 種類のトマトの苗木 (チェリー、エアルーム、グレープ、枝付き、プラム) がランダムにこれらのプロットに割り当てられます。その後、プロット内のトマトの苗木はサブプロットに分割され、それぞれのサブプロットが 4 つの肥料の中の 1 つにより処置されます。このデータは、シミュレーションされたものです。
実用目的でこのデータを ds
という名前のデータセット配列に保存し、Tomato
、Soil
および 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 = 2×2
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'});
応答値を予測する対象データを含む計画行列を作成します。Xnew
は X
のように 3 つの列をもたなければなりません。最初の列は 1 の列でなければなりません。また、最後の 2 列の値はそれぞれ Acceleration
と Horsepower
に一致しなければなりません。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]; % alternatively Znew = Xnew(:,1:2);
Gnew = nominal([73 77 82]);
新しい計画行列のデータに対する応答を予測します。
yhat = predict(lme,Xnew,Znew,Gnew)
yhat = 3×1
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 = 3×1
8.6365
5.9199
12.1247
予測の信頼区間の計算
標本データを読み込みます。
load carbig
ガロンあたりの走行マイル数 (MPG) の線形混合効果モデルを当てはめます。加速度、馬力、気筒数は固定効果で、モデル年によってグループ化される切片と加速度については相関された変量効果の可能性があります。まず、変数をテーブルに格納します。
tbl = table(MPG,Acceleration,Horsepower,Model_Year);
次に、定義した計画行列とグループ化変数で fitlme
を使用してモデルを当てはめます。
lme = fitlme(tbl,'MPG ~ Acceleration + Horsepower + (Acceleration|Model_Year)');
新しいデータを作成し、新しいテーブルに格納します。
tblnew = table(); tblnew.Acceleration = linspace(8,25)'; tblnew.Horsepower = linspace(min(Horsepower),max(Horsepower))'; tblnew.Model_Year = repmat(70,100,1);
linspace
は、入力値の下限と上限の間で 100 個の等間隔の値を作成します。Model_Year
は 70 で固定されています。これは、任意のモデル年について繰り返すことができます。
予測値および 95% の信頼限界 (非同時) を計算およびプロットします。
[ypred,yCI,DF] = predict(lme,tblnew); figure(); h1 = line(tblnew.Acceleration,ypred); hold on; h2 = plot(tblnew.Acceleration,yCI,'g-.');
自由度を表示します。
DF(1)
ans = 389
同時信頼限界を計算およびプロットします。
[ypred,yCI,DF] = predict(lme,tblnew,'Simultaneous',true); h3 = plot(tblnew.Acceleration,yCI,'r--');
自由度を表示します。
DF
DF = 389
サタースウェイト法を使用して同時信頼限界を計算し、自由度を計算します。
[ypred,yCI,DF] = predict(lme,tblnew,'Simultaneous',true,'DFMethod','satterthwaite'); h4 = plot(tblnew.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
— 線形混合効果モデル
LinearMixedModel
オブジェクト
線形混合効果モデル。fitlme
または fitlmematrix
を使用して構築した LinearMixedModel
オブジェクトとして指定します。
tblnew
— 新しい入力データ
テーブル | dataset
配列
応答変数、予測変数およびグループ化変数が含まれる新規入力データ。テーブルまたはデータセット配列として指定します。予測変数は連続変数またはグループ化変数にすることができます。tblnew
は、線形混合効果モデル lme
の当てはめに使用される元のテーブルまたはデータセット配列と同じ変数をもっていなければなりません。
Xnew
— 新しい固定効果の計画行列
n 行 p 列の行列
n 行 p 列の行列で指定される新しい固定効果の計画行列。ここで n は観測値の数、p は固定予測子変数の数です。X
の各行は 1 つの観測値に対応し、X
の各列は 1 つの変数に対応します。
データ型: single
| double
Znew
— 新しい変量効果の計画行列
n 行 q 列の行列 | 長さ R の cell 配列
n 行 q 列の行列または R 計画行列 Z{r}
の cell 配列として指定される新しい変量効果計画。ここで、r = 1, 2, ..., R となります。Znew
が cell 配列の場合、各 Z{r}
は n 行 q(r) 列の行列になります。ここで n は観測値の数、q(r) は無作為な予測子変数の数です。
データ型: single
| double
| cell
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: ypred = predict(lme,'Conditional',false);
Alpha
— 有意水準
0.05 (既定値) | 0 ~ 1 の範囲のスカラー値
有意水準。'Alpha'
と 0 ~ 1 の範囲にあるスカラー値から構成されるコンマ区切りのペアとして指定します。値が α の場合、信頼水準は 100 × (1 – α)% です。
たとえば、99% の信頼区間の場合は、次のように信頼水準を指定できます。
例: 'Alpha',0.01
データ型: single
| double
Conditional
— 条件付き予測のインジケーター
true
(既定値) | false
条件付き予測のインジケーター。'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
はスカラー値になります。
詳細
条件付き予測と限界予測
条件付き予測には固定効果と変量効果の両方からの寄与が含まれますが、限界モデルには固定効果のみからの寄与が含まれます。
線形混合効果モデル lme
には、n 行 p 列の固定効果の計画行列 X
と、n 行 q 列の変量効果の計画行列 Z
があるものとします。また、推定した固定効果が含まれている p 行 1 列のベクトルが 、変量効果について推定した最良線形不偏予測量 (BLUP) が含まれている q 行 1 列のベクトルが であるとします。予測される条件付き応答は次のようになります。
これは、名前と値のペアの引数 'Conditional','true'
に対応します。
予測される限界応答は次のようになります。
これは、名前と値のペアの引数 'Conditional','false'
に対応します。
予測を行う場合、特定のグループ化変数に新しい水準 (元のデータ内に存在していない 1) がある場合、そのグループ化変数に対する変量効果は、グループ化変数に新しい水準が含まれる観測値での 'Conditional'
予測に寄与しません。
バージョン履歴
R2013b で導入
参考
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)