このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
fitlmematrix
線形混合効果モデルの当てはめ
説明
は、固定効果の計画行列 lme
= fitlmematrix(X
,y
,Z
,[])X
と Z
内の 1 つ以上の変量効果の計画行列を使用して、応答 y
の線形混合効果モデルを作成します。
[]
は、1 つのグループがあることを意味しています。つまり、グループ化変数 G
は ones(n,1)
になります。ここで、n は観測値の数です。共分散パターンを指定せずに fitlmematrix(X,Y,Z,[])
を使用すると、認識されないモデルになる可能性が高くなります。グループ化情報を変量効果計画 Z
にビルドし、名前と値のペアの引数 'CovariancePattern'
を使用して変量効果の共分散パターンを指定した場合にのみ、この構文は推奨されます。
また、
は、1 つ以上の lme
= fitlmematrix(___,Name,Value
)Name,Value
の引数のペアによって指定された追加オプションを使用して線形混合効果モデルを作成します。
たとえば、応答変数、予測子変数、グループ化変数の名前を指定できます。共分散パターン、近似法または最適化アルゴリズムを指定することもできます。
例
グループ化変数は指定されない
標本データを読み込みます。
load carsmall
線形混合効果モデルを当てはめます。ここで、ガロンあたりの走行マイル数 (MPG) が応答で、重みが予測子変数であり、切片はモデル年度に基づいて変化します。最初に、計画行列を定義します。次に、指定した計画行列を使用してモデルを当てはめます。
y = MPG; X = [ones(size(Weight)), Weight]; Z = ones(size(y)); lme = fitlmematrix(X,y,Z,Model_Year)
lme = Linear mixed-effects model fit by ML Model information: Number of observations 94 Fixed effects coefficients 2 Random effects coefficients 3 Covariance parameters 2 Formula: y ~ x1 + x2 + (z11 | g1) Model fit statistics: AIC BIC LogLikelihood Deviance 486.09 496.26 -239.04 478.09 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'x1'} 43.575 2.3038 18.915 92 1.8371e-33 39 48.151 {'x2'} -0.0067097 0.0004242 -15.817 92 5.5373e-28 -0.0075522 -0.0058672 Random effects covariance parameters (95% CIs): Group: g1 (3 Levels) Name1 Name2 Type Estimate Lower Upper {'z11'} {'z11'} {'std'} 3.301 1.4448 7.5421 Group: Error Name Estimate Lower Upper {'Res Std'} 2.8997 2.5075 3.3532
ここで、グループを行列 Z
にビルドすることにより、同じモデルを当てはめます。
Z = double([Model_Year==70, Model_Year==76, Model_Year==82]); lme = fitlmematrix(X,y,Z,[],'Covariancepattern','Isotropic')
lme = Linear mixed-effects model fit by ML Model information: Number of observations 94 Fixed effects coefficients 2 Random effects coefficients 3 Covariance parameters 2 Formula: y ~ x1 + x2 + (z11 + z12 + z13 | g1) Model fit statistics: AIC BIC LogLikelihood Deviance 486.09 496.26 -239.04 478.09 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'x1'} 43.575 2.3038 18.915 92 1.8371e-33 39 48.151 {'x2'} -0.0067097 0.0004242 -15.817 92 5.5373e-28 -0.0075522 -0.0058672 Random effects covariance parameters (95% CIs): Group: g1 (1 Levels) Name1 Name2 Type Estimate Lower Upper {'z11'} {'z11'} {'std'} 3.301 1.4448 7.5421 Group: Error Name Estimate Lower Upper {'Res Std'} 2.8997 2.5075 3.3532
共変量を使用した長期間の調査
標本データを読み込みます。
load('weight.mat');
weight
には長期間の調査によるデータが含まれています。そこには 20 人の被験者が 4 つの運動プログラム (A、B、C、D) にランダムに割り当てられ、体重の減少が 6 回の 2 週間の期間にわたって記録されています。このデータは、シミュレーションされたものです。
Subject
および Program
をカテゴリカル変数として定義します。線形混合効果モデルの計画行列を作成します。ここで、初期体重、プログラムの種類、週、週とプログラムの種類の間の交互作用は固定効果です。切片と週の係数は被験者ごとに異なります。
このモデルは以下に対応します。
ここで、 = 1、2、...、120、 = 1、2、...、20 です。 は固定効果係数 ( = 0、1、...、8)、 と は変量効果です。 は初期体重を表し、 はプログラムの種類を表すダミー変数です。たとえば、 はプログラムの種類 B を表すダミー変数です。変量効果と観測誤差の事前分布は次のとおりです。
Subject = nominal(Subject); Program = nominal(Program); D = dummyvar(Program); % Create dummy variables for Program X = [ones(120,1), InitialWeight, D(:,2:4), Week,... D(:,2).*Week, D(:,3).*Week, D(:,4).*Week]; Z = [ones(120,1), Week]; G = Subject;
モデルには切片があるので、プログラム B、C、D のダミー変数のみが必要です。これは、ダミー変数をコーディングする 'reference'
メソッドとも呼ばれます。
定義した計画行列とグループ化変数で fitlmematrix
を使用してモデルを当てはめます。
lme = fitlmematrix(X,y,Z,G,'FixedEffectPredictors',... {'Intercept','InitWeight','PrgB','PrgC','PrgD','Week','Week_PrgB','Week_PrgC','Week_PrgD'},... 'RandomEffectPredictors',{{'Intercept','Week'}},'RandomEffectGroups',{'Subject'})
lme = Linear mixed-effects model fit by ML Model information: Number of observations 120 Fixed effects coefficients 9 Random effects coefficients 40 Covariance parameters 4 Formula: y ~ Intercept + InitWeight + PrgB + PrgC + PrgD + Week + Week_PrgB + Week_PrgC + Week_PrgD + (Intercept + Week | Subject) Model fit statistics: AIC BIC LogLikelihood Deviance -22.981 13.257 24.49 -48.981 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'Intercept' } 0.66105 0.25892 2.5531 111 0.012034 0.14798 1.1741 {'InitWeight'} 0.0031879 0.0013814 2.3078 111 0.022863 0.00045067 0.0059252 {'PrgB' } 0.36079 0.13139 2.746 111 0.0070394 0.10044 0.62113 {'PrgC' } -0.033263 0.13117 -0.25358 111 0.80029 -0.29319 0.22666 {'PrgD' } 0.11317 0.13132 0.86175 111 0.39068 -0.14706 0.3734 {'Week' } 0.1732 0.067454 2.5677 111 0.011567 0.039536 0.30686 {'Week_PrgB' } 0.038771 0.095394 0.40644 111 0.68521 -0.15026 0.2278 {'Week_PrgC' } 0.030543 0.095394 0.32018 111 0.74944 -0.15849 0.21957 {'Week_PrgD' } 0.033114 0.095394 0.34713 111 0.72915 -0.15592 0.22214 Random effects covariance parameters (95% CIs): Group: Subject (20 Levels) Name1 Name2 Type Estimate Lower Upper {'Intercept'} {'Intercept'} {'std' } 0.18407 0.12281 0.27587 {'Week' } {'Intercept'} {'corr'} 0.66841 0.21076 0.88573 {'Week' } {'Week' } {'std' } 0.15033 0.11004 0.20537 Group: Error Name Estimate Lower Upper {'Res Std'} 0.10261 0.087882 0.11981
固定効果係数の表を確認します。'InitWeight'
というラベルの行は 値が 0.0228、'Week'
というラベルの行は 値が 0.0115 です。これらの 値は、被験者の初期体重と時間因子が体重の減少量に対して有意な影響を与えることを示しています。プログラム B の被験者の体重の減少は、プログラム A の被験者の体重の減少に対して有意差があります。変量効果の共分散パラメーターの下限または上限に 0 は含まれないため、この差は有意であるように見えます。compare
メソッドを使用して、変量効果の有意性をテストすることもできます。
ランダムな切片モデル
標本データを読み込みます。
load flu
データセット配列 flu
には、変数 Date
と、インフルエンザ推定罹患率 (Google® 検索から推定される 9 地域の値と疾病対策センター (CDC) による全国の推定値) に関する 10 個の変数が含まれています。
インフルエンザ罹患率を応答として線形混合効果モデルを当てはめるには、地域に対応する 9 個の列を結合して、単一の応答変数 FluRate
、ノミナル変数 Region
、各推定の元になっている地域を示す全国の推定値 WtdILI
、グループ化変数 Date
をもつ 1 つの配列にまとめます。
flu2 = stack(flu,2:10,'NewDataVarName','FluRate',... 'IndVarName','Region'); flu2.Date = nominal(flu2.Date);
ランダムな切片の線形混合効果モデルの計画行列を定義します。ここで、切片は Date
で変化します。対応するモデルは以下のとおりです。
ここで、 はグループ化変数 Date
の水準 に対する観測値 、 はグループ化変数 Date
の水準 に対する変量効果、 は観測値 の観測誤差です。変量効果の事前分布は次のようになります。
誤差項の分布は次のようになります。
y = flu2.FluRate; X = [ones(468,1) flu2.WtdILI]; Z = [ones(468,1)]; G = flu2.Date;
線形混合効果モデルを当てはめます。
lme = fitlmematrix(X,y,Z,G,'FixedEffectPredictors',{'Intercept','NationalRate'},... 'RandomEffectPredictors',{{'Intercept'}},'RandomEffectGroups',{'Date'})
lme = Linear mixed-effects model fit by ML Model information: Number of observations 468 Fixed effects coefficients 2 Random effects coefficients 52 Covariance parameters 2 Formula: y ~ Intercept + NationalRate + (Intercept | Date) Model fit statistics: AIC BIC LogLikelihood Deviance 286.24 302.83 -139.12 278.24 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'Intercept' } 0.16385 0.057525 2.8484 466 0.0045885 0.050813 0.27689 {'NationalRate'} 0.7236 0.032219 22.459 466 3.0502e-76 0.66028 0.78691 Random effects covariance parameters (95% CIs): Group: Date (52 Levels) Name1 Name2 Type Estimate Lower Upper {'Intercept'} {'Intercept'} {'std'} 0.17146 0.13227 0.22226 Group: Error Name Estimate Lower Upper {'Res Std'} 0.30201 0.28217 0.32324
変量効果項の標準偏差 の信頼限界 (0.13227, 0.22226) には 0 が含まれいないので、変量効果項が有意であることがわかります。compare
メソッドを使用して、変量効果の有意性をテストすることもできます。
観測値の推定値は、その観測値に対応するグループ化変数水準の固定効果値および変量効果値の合計です。たとえば、観測値 28 のインフルエンザ推定羅患率は次のようになります。
ここで、 は切片の変量効果の最良線形不偏予測量 (BLUP) です。この値を以下のように計算することもできます。
beta = fixedEffects(lme); [~,~,STATS] = randomEffects(lme); % compute the random effects statistics STATS STATS.Level = nominal(STATS.Level); y_hat = beta(1) + beta(2)*flu2.WtdILI(28) + STATS.Estimate(STATS.Level=='10/30/2005')
y_hat = 1.4674
fitted(lme)
メソッドを使用して、近似値を簡単に表示できます。
F = fitted(lme); F(28)
ans = 1.4674
乱塊法
標本データを読み込みます。
load('shift.mat');
このデータは 5 人の作業者が 3 つのシフトの間に製造した製品から計測された品質目標の特性の絶対偏差を示します。3 つのシフトとは朝、夕方、夜です。これは作業者をブロックとする乱塊法です。この実験は、シフトの時間によるパフォーマンスへの影響の調査を意図しています。パフォーマンスの測定基準は、目標値からの品質特性の偏差です。このデータは、シミュレーションされたものです。
作業者でグループ化されたランダムな切片と固定効果としてのシフトをもつ線形混合効果モデルの計画行列を定義します。'effects'
対比を使用します。'effects'
対比は係数の合計が 0 であることを意味します。2 つの対比コード化された変数 X1
および X2
を固定効果計画行列内に作成する必要があります。ここで
このモデルは以下に対応します。
ここで、 は観測値を、 は作業者を表します。 = 1、2、...、15 および = 1、2、...、5 です。変量効果と観測値の誤差の分布は次のとおりです。
および
S = shift.Shift; X1 = (S=='Morning') - (S=='Night'); X2 = (S=='Evening') - (S=='Night'); X = [ones(15,1), X1, X2]; y = shift.QCDev; Z = ones(15,1); G = shift.Operator;
指定した計画行列と制限付き最尤法を使用して、線形混合効果モデルを当てはめます。
lme = fitlmematrix(X,y,Z,G,'FitMethod','REML','FixedEffectPredictors',.... {'Intercept','S_Morning','S_Evening'},'RandomEffectPredictors',{{'Intercept'}},... 'RandomEffectGroups',{'Operator'},'DummyVarCoding','effects')
lme = Linear mixed-effects model fit by REML Model information: Number of observations 15 Fixed effects coefficients 3 Random effects coefficients 5 Covariance parameters 2 Formula: y ~ Intercept + S_Morning + S_Evening + (Intercept | Operator) Model fit statistics: AIC BIC LogLikelihood Deviance 58.913 61.337 -24.456 48.913 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'Intercept'} 3.6525 0.94109 3.8812 12 0.0021832 1.6021 5.703 {'S_Morning'} -0.91973 0.31206 -2.9473 12 0.012206 -1.5997 -0.23981 {'S_Evening'} -0.53293 0.31206 -1.7078 12 0.11339 -1.2129 0.14699 Random effects covariance parameters (95% CIs): Group: Operator (5 Levels) Name1 Name2 Type Estimate Lower Upper {'Intercept'} {'Intercept'} {'std'} 2.0457 0.98207 4.2612 Group: Error Name Estimate Lower Upper {'Res Std'} 0.85462 0.52357 1.395
変量効果の最良線形不偏予測量 (BLUP) の推定値を計算します。
B = randomEffects(lme)
B = 5×1
0.5775
1.1757
-2.1715
2.3655
-1.9472
夕方シフトで作業している 3 番目の作業者の場合、品質目標の特性の推定偏差は以下のとおりです。
この値を以下のように表示することもできます。
F = fitted(lme); F(shift.Shift=='Evening' & shift.Operator=='3')
ans = 0.9481
相関および無相関の変量効果の項
標本データを読み込みます。
load carbig
ガロンあたりの走行マイル数 (MPG) の線形混合効果モデルを当てはめます。ここで、加速度と馬力の固定効果と、モデル年によってグループ化される切片と加速度の無相関な変量効果を使用します。このモデルは以下に対応します。
変量効果項の事前分布は次のようになります。
ここで、 はモデル年を表します。
最初に、線形混合効果モデルを当てはめるための計画行列を準備します。
X = [ones(406,1) Acceleration Horsepower]; Z = {ones(406,1),Acceleration}; G = {Model_Year,Model_Year}; Model_Year = nominal(Model_Year);
次に、定義した計画行列とグループ化変数で fitlmematrix
を使用してモデルを当てはめます。
lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',.... {'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',... {{'Intercept'},{'Acceleration'}},'RandomEffectGroups',{'Model_Year','Model_Year'})
lme = Linear mixed-effects model fit by ML Model information: Number of observations 392 Fixed effects coefficients 3 Random effects coefficients 26 Covariance parameters 3 Formula: y ~ Intercept + Acceleration + Horsepower + (Intercept | Model_Year) + (Acceleration | Model_Year) Model fit statistics: AIC BIC LogLikelihood Deviance 2194.5 2218.3 -1091.3 2182.5 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'Intercept' } 49.839 2.0518 24.291 389 5.6168e-80 45.806 53.873 {'Acceleration'} -0.58565 0.10846 -5.3995 389 1.1652e-07 -0.7989 -0.3724 {'Horsepower' } -0.16534 0.0071227 -23.213 389 1.9755e-75 -0.17934 -0.15133 Random effects covariance parameters (95% CIs): Group: Model_Year (13 Levels) Name1 Name2 Type Estimate Lower Upper {'Intercept'} {'Intercept'} {'std'} 8.9592e-07 NaN NaN Group: Model_Year (13 Levels) Name1 Name2 Type Estimate Lower Upper {'Acceleration'} {'Acceleration'} {'std'} 0.18783 0.12523 0.28172 Group: Error Name Estimate Lower Upper {'Res Std'} 3.7258 3.4698 4.0007
切片と加速度の変量効果共分散パラメーターが個別に表示されています。切片の変量効果の標準偏差は有意ではないようです。
切片と加速度について相関する可能性がある変量効果でモデルを当てはめます。この場合、変量効果項の事前分布は次のようになります。
ここで、 はモデル年を表します。
最初に、変量効果の計画行列とグループ化変数を準備します。
Z = [ones(406,1) Acceleration]; G = Model_Year; lme = fitlmematrix(X,MPG,Z,G,'FixedEffectPredictors',.... {'Intercept','Acceleration','Horsepower'},'RandomEffectPredictors',... {{'Intercept','Acceleration'}},'RandomEffectGroups',{'Model_Year'})
lme = Linear mixed-effects model fit by ML Model information: Number of observations 392 Fixed effects coefficients 3 Random effects coefficients 26 Covariance parameters 4 Formula: y ~ Intercept + Acceleration + Horsepower + (Intercept + Acceleration | Model_Year) Model fit statistics: AIC BIC LogLikelihood Deviance 2193.5 2221.3 -1089.7 2179.5 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'Intercept' } 50.133 2.2652 22.132 389 7.7727e-71 45.679 54.586 {'Acceleration'} -0.58327 0.13394 -4.3545 389 1.7075e-05 -0.84661 -0.31992 {'Horsepower' } -0.16954 0.0072609 -23.35 389 5.188e-76 -0.18382 -0.15527 Random effects covariance parameters (95% CIs): Group: Model_Year (13 Levels) Name1 Name2 Type Estimate Lower Upper {'Intercept' } {'Intercept' } {'std' } 3.3475 1.2862 8.7119 {'Acceleration'} {'Intercept' } {'corr'} -0.87971 -0.98501 -0.29675 {'Acceleration'} {'Acceleration'} {'std' } 0.33789 0.1825 0.62558 Group: Error Name Estimate Lower Upper {'Res Std'} 3.6874 3.4298 3.9644
切片と加速の変量効果共分散パラメーターがあわせて表示され、さらに切片と加速度の間の相関も含まれています。標準偏差の信頼区間と、切片に対する変量効果と加速度の間の相関には 0 は含まれていません。そのため、これらは有意と考えられます。compare
メソッドを使用して、これらの 2 つのモデルを比較できます。
共分散パターンの指定
標本データを読み込みます。
load('weight.mat');
weight
には長期間の調査によるデータが含まれています。そこには 20 人の被験者が 4 つの運動プログラムにランダムに割り当てられ、体重の減少が 6 回の 2 週間の期間にわたって記録されています。このデータは、シミュレーションされたものです。
Subject
および Program
をカテゴリカル変数として定義します。
Subject = nominal(Subject); Program = nominal(Program);
初期体重、プログラムの種類および週を固定効果としてもつ線形混合効果モデルの計画行列を作成します。
D = dummyvar(Program); X = [ones(120,1), InitialWeight, D(:,2:4), Week]; Z = [ones(120,1) Week]; G = Subject;
このモデルは以下に対応します。
ここで、 = 1、2、...、120 および = 1、2、...、20 です。
は固定効果係数 ( = 0、1、...、8)、 と は変量効果です。 は初期体重を表し、 はプログラムの種類を表すダミー変数です。たとえば、 はプログラムの種類 B を表すダミー変数です。変量効果と観測誤差の事前分布は次のとおりです。
定義した計画行列とグループ化変数で fitlmematrix
を使用してモデルを当てはめます。1 人の被験者に関して繰り返し収集された観測値が対角線上の共通分散をもつと仮定します。
lme = fitlmematrix(X,y,Z,G,'FixedEffectPredictors',... {'Intercept','InitWeight','PrgB','PrgC','PrgD','Week'},... 'RandomEffectPredictors',{{'Intercept','Week'}},... 'RandomEffectGroups',{'Subject'},'CovariancePattern','Isotropic')
lme = Linear mixed-effects model fit by ML Model information: Number of observations 120 Fixed effects coefficients 6 Random effects coefficients 40 Covariance parameters 2 Formula: y ~ Intercept + InitWeight + PrgB + PrgC + PrgD + Week + (Intercept + Week | Subject) Model fit statistics: AIC BIC LogLikelihood Deviance -24.783 -2.483 20.391 -40.783 Fixed effects coefficients (95% CIs): Name Estimate SE tStat DF pValue Lower Upper {'Intercept' } 0.4208 0.28169 1.4938 114 0.13799 -0.13723 0.97883 {'InitWeight'} 0.0045552 0.0015338 2.9699 114 0.0036324 0.0015168 0.0075935 {'PrgB' } 0.36993 0.12119 3.0525 114 0.0028242 0.12986 0.61 {'PrgC' } -0.034009 0.1209 -0.28129 114 0.77899 -0.27351 0.2055 {'PrgD' } 0.121 0.12111 0.99911 114 0.31986 -0.11891 0.36091 {'Week' } 0.19881 0.037134 5.3538 114 4.5191e-07 0.12525 0.27237 Random effects covariance parameters (95% CIs): Group: Subject (20 Levels) Name1 Name2 Type Estimate Lower Upper {'Intercept'} {'Intercept'} {'std'} 0.16561 0.12896 0.21269 Group: Error Name Estimate Lower Upper {'Res Std'} 0.10272 0.088014 0.11987
入力引数
X
— 固定効果の計画行列
n 行 p 列の行列
n 行 p 列の行列として指定される固定効果の計画行列。ここで、n は観測値の数、p は固定効果の予測子変数の数です。X
の各行は 1 つの観測値に対応し、X
の各列は 1 つの変数に対応します。
データ型: single
| double
y
— 応答値
n 行 1 列のベクトル
n 行 1 列のベクトルとして指定された応答値。ここで、n は観測値の数です。
データ型: single
| double
Z
— 変量効果の計画
n 行 q 列の行列 | R n 行 q(r) 列の行列の cell 配列、r = 1, 2, ..., R
変量効果の計画。以下のいずれかとして指定します。
モデルに 1 個の変量効果項がある場合、
Z
は n 行 q 列の行列でなければなりません。n は観測値の数、q は変量効果項の変数の数です。R 個の変量効果項がある場合、
Z
は長さ R の cell 配列でなければなりません。Z
の各セルには、各変量効果項に対応する、n 行 q (r) 列の計画行列Z{r}
、r = 1, 2, ..., R が含まれています。ここで、q (r) は、r 番目の変量効果の計画行列Z{r}
の変量効果項の数です。
データ型: single
| double
| cell
G
— グループ化変数
n 行 1 列のベクトル | R n 行 1 列のベクトルの cell 配列
グループ化変数。次のいずれかとして指定します。
1 個の変量効果項がある場合、
G
は、M 個の水準またはグループをもつ単一のグループ化変数に対応する n 行 1 列のベクトルでなければなりません。G
は、categorical ベクトル、logical ベクトル、数値ベクトル、文字配列、string 配列、または文字ベクトルの cell 配列が可能です。複数の変量効果項がある場合、
G
は長さ R の cell 配列でなければなりません。G
の各セルには、M(r) 個の水準をもつグループ化変数G{r}
、r = 1, 2, ..., R が含まれています。G{r}
は、categorical ベクトル、logical ベクトル、数値ベクトル、文字配列、string 配列、または文字ベクトルの cell 配列が可能です。
データ型: categorical
| logical
| single
| double
| char
| string
| cell
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name
を引用符で囲みます。
例: 'CovariancePattern','Diagonal','DummyVarCoding','full','Optimizer','fminunc'
は、0 の非対角要素をもつ変量効果の共分散パターンを指定し、カテゴリカル変数の各水準に対してダミー変数を作成し、最適化アルゴリズム fminunc
を使用します。
FixedEffectPredictors
— 固定効果の計画行列の列名
{'x1','x2',...,'xP'}
(既定値) | 長さ p の string 配列または cell 配列
固定効果の計画行列 X
の列名。'FixedEffectPredictors'
と長さ p の string 配列または cell 配列から構成されるコンマ区切りのペアとして指定します。
たとえば、固定効果として、1 つの定数項と 2 つの予測子、つまり TimeSpent
および Gender
がある場合 (ここで、Female
は Gender
の基準水準です)、以下の方法で固定効果の名前を指定できます。Gender_Male
は、カテゴリ Male
に対して作成しなければならないダミー変数です。これらの変数に対して、別々の名前を選択できます。
例: 'FixedEffectPredictors',{'Intercept','TimeSpent','Gender_Male'}
,
データ型: string
| cell
RandomEffectPredictors
— 変量効果の計画行列の列名または cell 配列
長さ q の string 配列または cell 配列 | 長さ q(r) の要素をもつ長さ R の cell 配列、r = 1, 2, ..., R
変量効果の計画行列の列名または cell 配列 Z
。'RandomEffectPredictors'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
Z
が n 行 q 列の計画行列であるときは、長さ q の string 配列または cell 配列。この場合、既定の設定は{'z1','z2',...,'zQ'}
です。Z
が、長さ q(r)、r = 1, 2, ..., R の各要素Z{r}
をもつ長さ R の cell 配列であるときは、長さ R の cell 配列。この場合、既定の設定は{'z11','z12',...,'z1Q(1)'},...,{'zr1','zr2',...,'zrQ(r)'}
です。
たとえば、切片と Acceleration
という名前の変数に対する変量効果に相関があるとします。この場合、以下のように変量効果の予測子名を指定できます。
例: 'RandomEffectPredictors',{'Intercept','Acceleration'}
2 つの変量効果項、つまり変数 g1
によってグループ化された切片と変数 Acceleration
に対する変量効果項と、変数 g2
によってグループ化された切片に対する変量効果項がある場合、変量効果の予測子名を以下のように指定できます。
例: 'RandomEffectPredictors',{{'Intercept','Acceleration'},{'Intercept'}}
データ型: string
| cell
ResponseVarName
— 応答変数の名前
'y'
(既定値) | 文字ベクトル | string スカラー
応答変数の名前。'ResponseVarName'
と文字ベクトルまたは string スカラーから構成されるコンマ区切りのペアとして指定します。
たとえば、応答変数の名前が score
の場合、以下のように指定できます。
例: 'ResponseVarName','score'
データ型: char
| string
RandomEffectGroups
— 変量効果のグループ化変数の名前
'g'
または {'g1','g2',...,'gR'}
(既定値) | 文字ベクトル | string スカラー | string 配列 | 文字ベクトルの cell 配列
変量効果のグループ化変数の名前。'RandomEffectGroups'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
文字ベクトルまたは string スカラー — 変量効果項が 1 つしかない場合、つまり
G
がベクトルである場合、'RandomEffectGroups'
の値はグループ化変数G
の名前です。既定の設定は'g'
です。string 配列または文字ベクトルの cell 配列 — 複数の変量効果項がある場合、つまり
G
が長さ R の cell 配列である場合、'RandomEffectGroups'
の値は長さ R の string 配列または cell 配列です。各要素はグループ化変数G{r}
の名前です。既定の設定は{'g1','g2',...,'gR'}
です。
たとえば、グループ化変数 sex
および subject
でグループ化された 2 つの変量効果項 z1
および z2
がある場合、グループ化変数の名前を以下のように指定できます。
例: 'RandomEffectGroups',{'sex','subject'}
データ型: char
| string
| cell
CovariancePattern
— 共分散行列のパターン
'FullCholesky'
(既定値) | 文字ベクトル | string スカラー | 対称正方 logical 行列 | string 配列 | 文字ベクトルまたは logical 行列の cell 配列
変量効果の共分散行列のパターン。'CovariancePattern'
と文字ベクトル、string スカラー、対称正方 logical 行列、string 配列、文字ベクトルの cell 配列、または logical 行列の cell 配列から構成されるコンマ区切りのペアとして指定します。
変量効果の項が R 個ある場合、'CovariancePattern'
の値は長さ R の string 配列または cell 配列でなければなりません。配列の各要素 r では、r 番目の変量効果の項に関連付けられている変量効果ベクトルの共分散行列のパターンを指定します。各要素のオプションは以下のとおりです。
'FullCholesky' | 既定の設定。コレスキー パラメーター表現を使用したフルの共分散行列。fitlme は、共分散行列のすべての要素を推定します。 |
'Full' | 対数コレスキー パラメーター表現を使用したフルの共分散行列。fitlme は、共分散行列のすべての要素を推定します。 |
'Diagonal' | 対角共分散行列。つまり、共分散行列の非対角要素は 0 に制約されます。 |
'Isotropic' | 分散が等しい対角共分散行列。つまり、共分散行列の非対角要素は 0 に制約され、対角要素は等価に制約されます。たとえば、等方性共分散構造をもつ変量効果の項が 3 つある場合、この共分散行列は次のようになります。 σ2b は、変量効果項の共通分散です。 |
'CompSymm' | 複合対称構造。つまり、対角線上の共通分散とすべての変量効果間の等しい相関です。たとえば、複合対称構造の共分散行列をもつ変量効果の項が 3 つある場合、この共分散行列は次のようになります。 σ2b1 は変量効果項の共通分散、σb1,b2 は任意の 2 つの変量効果項の間の共通共分散です。 |
PAT | 対称正方 logical 行列。'CovariancePattern' が行列 PAT によって定義されており、PAT(a,b) = false の場合、対応する共分散行列の要素 (a,b) は 0 に制約されます。 |
例: 'CovariancePattern','Diagonal'
例: 'CovariancePattern',{'Full','Diagonal'}
データ型: char
| string
| logical
| cell
FitMethod
— パラメーターを推定するメソッド
'ML'
(既定値) | 'REML'
線形混合効果モデルのパラメーターを推定するメソッド。'FitMethod'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
'ML' | 既定の設定。最尤推定法 |
'REML' | 制限付き最尤推定法 |
例: 'FitMethod','REML'
Weights
— 観測値の重み
スカラー値のベクトル
観測値の重み。'Weights'
と、長さ n のベクトルで構成されるコンマ区切りのペアとして指定します。ここで、n は観測値の数です。
データ型: single
| double
Exclude
— 除外する行のインデックス
NaNs
を含まないすべての行を使用 (既定値) | 整数または論理値のベクトル
データ内の線形混合効果モデルから除外する行のインデックス。'Exclude'
と、整数または論理値のベクトルで構成されるコンマ区切りのペアとして指定します。
たとえば、以下のようにして、近似から 13 番目と 67 番目の行を除外できます。
例: 'Exclude',[13,67]
データ型: single
| double
| logical
DummyVarCoding
— ダミー変数に対して使用するコーディング
'reference'
(既定値) | 'effects'
| 'full'
カテゴリカル変数から作成されたダミー変数に対して使用するコーディング。'DummyVarCoding'
と次の表に記載された変数のいずれかで構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
'reference' (既定の設定) | fitlmematrix は、参照グループを使用してダミー変数を作成します。この方式では、最初のカテゴリを参照グループとして扱い、カテゴリの数よりも 1 つ少ないダミー変数を作成します。カテゴリカル変数のカテゴリの順序は、関数 categories を使用してチェックできます。順序を変更するには、関数 reordercats を使用します。 |
'effects' | fitlmematrix は、エフェクト コーディングを使用してダミー変数を作成します。この方式では、–1 を使用して最後のカテゴリを表します。この方式では、カテゴリの数よりも 1 つ少ないダミー変数を作成します。 |
'full' | fitlmematrix は、完全なダミー変数を作成します。この方式では、各カテゴリに対して 1 つのダミー変数を作成します。 |
ダミー変数の作成に関する詳細については、ダミー変数の自動作成を参照してください。
例: 'DummyVarCoding','effects'
Optimizer
— 最適化アルゴリズム
'quasinewton'
(既定値) | 'fminunc'
最適化アルゴリズム。'Optimizer'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
'quasinewton' | 既定の設定。信頼領域ベースの準ニュートン オプティマイザ―を使用します。statset('LinearMixedModel') を使用して、アルゴリズムのオプションを変更します。オプションを指定しない場合、LinearMixedModel は、statset('LinearMixedModel') の既定のオプションを使用します。 |
'fminunc' | このオプションを指定するには、Optimization Toolbox™ がなければなりません。optimoptions('fminunc') を使用して、アルゴリズムのオプションを変更します。オプションを指定しない場合、LinearMixedModel は、'Algorithm' が 'quasi-newton' に設定された optimoptions('fminunc') の既定のオプションを使用します。 |
例: 'Optimizer','fminunc'
OptimizerOptions
— 最適化アルゴリズムのオプション
statset
によって返される構造体 | optimoptions
によって返されるオブジェクト
最適化アルゴリズムのオプション。'OptimizerOptions'
と、statset('LinearMixedModel')
で返される構造体または optimoptions('fminunc')
で返されるオブジェクトで構成されるコンマ区切りのペアとして指定します。
'Optimizer'
が'fminunc'
の場合、optimoptions('fminunc')
を使用して、最適化アルゴリズムのオプションを変更します。'fminunc'
が使用するオプションについては、optimoptions
を参照してください。'Optimizer'
が'fminunc'
で、'OptimizerOptions'
を指定しない場合、LinearMixedModel
の既定の設定は、'Algorithm'
が'quasi-newton'
に設定されたoptimoptions('fminunc')
によって作成された既定のオプションになります。'Optimizer'
が'quasinewton'
の場合は、statset('LinearMixedModel')
を使用して、最適化パラメーターを変更します。最適化パラメーターを変更しない場合、LinearMixedModel
は、statset('LinearMixedModel')
によって作成された既定のオプションを使用します。
'quasinewton'
オプティマイザ―は、statset('LinearMixedModel')
によって作成された構造体の以下のフィールドを使用します。
TolFun
— 目的関数の勾配の相対許容誤差
1e-6
(既定値) | 正のスカラー値
目的関数の勾配の相対許容誤差。正のスカラー値として指定します。
TolX
— ステップ サイズの絶対許容誤差
1e-12
(既定値) | 正のスカラー値
ステップ サイズの絶対許容誤差。正のスカラー値として指定します。
MaxIter
— 許容される最大反復回数
10000
(既定値) | 正のスカラー値
許容される最大反復回数。正のスカラー値として指定します。
Display
— 表示のレベル
'off'
(既定値) | 'iter'
| 'final'
表示のレベル。'off'
、'iter'
、'final'
のいずれかとして指定します。
StartMethod
— 反復最適化を開始するメソッド
'default'
(既定値) | 'random'
反復最適化を開始するメソッド。'StartMethod'
と以下のいずれかで構成されるコンマ区切りのペアとして指定します。
値 | 説明 |
---|---|
'default' | 内部で定義される既定値 |
'random' | ランダムな初期値 |
例: 'StartMethod','random'
Verbose
— 画面に最適化プロセスを表示するインジケーター
false
(既定値) | true
画面に最適化プロセスを表示するインジケーター。'Verbose'
と、false
または true
で構成されるコンマ区切りのペアとして指定します。既定値は false
です。
'Verbose'
の設定は、'OptimizerOptions'
の 'Display'
フィールドをオーバーライドします。
例: 'Verbose',true
CheckHessian
— ヘッシアンの正定性をチェックするインジケーター
false
(既定値) | true
収束における制約のないパラメーターに関して、目的関数のヘッシアンの正定性をチェックするインジケーター。'CheckHessian'
と、false
または true
で構成されるコンマ区切りのペアとして指定します。既定値は false
です。
解の最適性を確認する場合や、共分散パラメーターの個数に関してモデルのパラメーターが多すぎるかどうかを判定する場合、'CheckHessian'
として true
を指定します。
例: 'CheckHessian',true
出力引数
lme
— 線形混合効果モデル
LinearMixedModel
オブジェクト
線形混合効果モデル。LinearMixedModel
オブジェクトとして返されます。
詳細
コレスキー パラメーター化
線形混合効果モデルの仮定の 1 つに、変量効果の事前分布が次のようになっているというものがあります。
ここで、D は分散成分ベクトル θ によってパラメーター表現された q 行 q 列の対称な半正定値行列、q は変量効果項の変数の数、σ2 は観測誤差の分散です。変量効果 D の共分散行列は対称なので、q(q+1)/2 の自由パラメーターをもちます。L が次の条件を満たす D(θ) の下三角コレスキー因子であるとします。
すると、制約がない q*(q+1)/2 行 1 列のパラメーター ベクトル θ が L の下三角部分にある要素から形成されます。
たとえば、次のようになっているとします。
この場合、次のようになります。
対数コレスキー パラメーター表現
コレスキー パラメーター表現の L の対角要素が正に制約されている場合、L の解は一意になります。対数コレスキー パラメーター表現は、一意のパラメーター表現を保証するために L の対角要素の対数を使用するという点を除いて、コレスキー パラメーター表現と同じです。
たとえば、3 行 3 列のコレスキー パラメーター表現の例では、Lii ≥ 0 を適用すると次のようになります。
代替機能
線形混合効果モデルの当てはめには、fitlme(tbl,formula)
も使用できます。ここで、tbl
は応答 y
、予測子変数 X
およびグループ化変数が含まれているテーブルまたはデータセット配列であり、formula
は 'y ~ fixed + (random1|g1) + ... + (randomR|gR)'
という形式の式です。
バージョン履歴
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)