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

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

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

randomEffects

クラス: LinearMixedModel

変量効果と関連する統計の推定

構文

  • B = randomEffects(lme)
  • [B,Bnames] = randomEffects(lme)
  • [B,Bnames,stats] = randomEffects(lme)
  • [B,Bnames,stats] = randomEffects(lme,Name,Value)

説明

B = randomEffects(lme) は、線形混合効果モデル lme における変量効果の最良線形不偏予測子 (BLUP) の推定を返します。

[B,Bnames] = randomEffects(lme) は、Bnames の係数の名前も返します。それぞれの名前は、B の係数に相当します。

[B,Bnames,stats] = randomEffects(lme) は、線形混合効果モデル lme における変量効果の推定された BLUP と、関連する統計を返します。

[B,Bnames,stats] = randomEffects(lme,Name,Value) は、1 つまたは複数の Name,Value のペアの引数で指定された追加オプションを使用して、線形混合効果モデル lme における変量効果の推定された BLUP と、関連する統計を返します。

入力引数

すべて展開する

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

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

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

名前/値のペアの引数

オプションの 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

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

変量効果係数を 0 に対して検定する t 統計での自由度の近似を計算する方法。'DFMethod' と次のいずれかで構成されるコンマ区切りのペアで指定します。

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

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

例: 'DFMethod','Satterthwaite'

出力引数

すべて展開する

B - 変量効果の推定最良線形不偏予測子列ベクトル

列ベクトルとして返される、線形混合効果モデル lme の変量効果の推定最良線形不偏予測子。

lme には R グループ化変数 g1、g2、...、gR があり、それぞれレベルが m1、m2、...、mR であると仮定します。また、q1、q2、...、qR は、それぞれ g1, g2、...、gR に関連付けられている変量効果の長さであるとします。B は、次の長さの列ベクトルです。q1*m1 + q2*m2 + ... + qR*mR.

randomEffects は、各グループ化変数の各レベルに対応する変量効果ベクトルの最良線形不偏予測子を [g1level1; g1level2; ...; g1levelm1; g2level1; g2level2; ...; g2levelm2; ...; gRlevel1; gRlevel2; ...; gRlevelmR]' として連結することによって作成され、B となります。

Bnames - 変量効果係数の名前データセット配列

データセット配列として返される B の変量効果係数の名前。

stats - 変量効果 BLUP と関連する統計の推定データセット配列

変量効果 BLUP と関連する統計の推定。固定効果ごとに 1 つの行および次の統計ごとに 1 つの列を含むデータセット配列として返されます。

Group変量効果に関連付けられているグループ化変数
Level変量効果に対応するグループ化変数内のレベル
Name変量効果係数の名前
Estimate変量効果の最良線形不偏予測子 (BLUP)
SEPred推定の標準誤差 (BLUP から変量効果を差し引いた値)
tStat変量効果が 0 である検定の t 統計
DFt 統計の推定自由度
pValuet 統計の p 値
Lower変量効果の 95% 信頼区間の下限
Upper変量効果の 95% 信頼区間の上限

すべて展開する

変量効果の推定と係数名の表示

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

load carbig

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

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

モデルを近似する。

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

変量効果係数の BLUP を計算し、対応する変量効果の名前を表示します。

[B,Bnames] = randomEffects(lme)
B =

    3.1270
   -0.2426
   -1.6532
   -0.0086
    1.2075
   -0.2179
    4.4107
   -0.4887
   -1.3103
   -0.0208
    2.8029
   -0.3790
    0.0865
   -0.1280
    0.4216
   -0.0259
   -2.3889
    0.1634
    0.9618
    0.0117
   -2.2345
    0.5020
   -2.1332
    0.3254
   -3.2979
    0.5090


Bnames = 

    Group               Level       Name              
    'Model_Year'        '70'        '(Intercept)'     
    'Model_Year'        '70'        'Acceleration'    
    'Model_Year'        '71'        '(Intercept)'     
    'Model_Year'        '71'        'Acceleration'    
    'Model_Year'        '72'        '(Intercept)'     
    'Model_Year'        '72'        'Acceleration'    
    'Model_Year'        '73'        '(Intercept)'     
    'Model_Year'        '73'        'Acceleration'    
    'Model_Year'        '74'        '(Intercept)'     
    'Model_Year'        '74'        'Acceleration'    
    'Model_Year'        '75'        '(Intercept)'     
    'Model_Year'        '75'        'Acceleration'    
    'Model_Year'        '76'        '(Intercept)'     
    'Model_Year'        '76'        'Acceleration'    
    'Model_Year'        '77'        '(Intercept)'     
    'Model_Year'        '77'        'Acceleration'    
    'Model_Year'        '78'        '(Intercept)'     
    'Model_Year'        '78'        'Acceleration'    
    'Model_Year'        '79'        '(Intercept)'     
    'Model_Year'        '79'        'Acceleration'    
    'Model_Year'        '80'        '(Intercept)'     
    'Model_Year'        '80'        'Acceleration'    
    'Model_Year'        '81'        '(Intercept)'     
    'Model_Year'        '81'        'Acceleration'    
    'Model_Year'        '82'        '(Intercept)'     
    'Model_Year'        '82'        'Acceleration'  

切片と加速度は、潜在的に相関性のある変量効果をもつため、車のモデル年でグループ化されます。また、randomEffects はグループ化変数の各レベルにおいて切片と加速度に個別の行を作成します。

変量効果の共分散パラメーターを計算します。

[~,~,stats] = covarianceParameters(lme)
stats{1}
ans = 


    Covariance Type: FullCholesky

    Group         Name1                Name2                Type          Estimate     Lower         Upper    
    Model_Year    '(Intercept)'        '(Intercept)'        'std'            6.6672        3.0377       14.633
    Model_Year    'Weight'             '(Intercept)'        'corr'               -1            -1          NaN
    Model_Year    'Weight'             'Weight'             'std'         0.0014668    0.00057348    0.0037515

相関値は、変量効果が負の相関関係に見えることを示しています。切片と加速度に対する変量効果をプロットし、これを確認します。

plot(B(1:2:end),B(2:2:end),'r*')

変量効果の推定値および関連する統計の計算

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

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)');

変量効果の BLUP と関連する統計を計算します。

[~,~,stats] = randomEffects(lme)
stats = 


    Random effect coefficients: DFMethod = 'Residual', Alpha = 0.05

    Group                Level                   Name                 Estimate    SEPred    tStat       DF    pValue      Lower      Upper  
    'Soil'               'Loamy'                 '(Intercept)'         1.0061     2.3374     0.43044    40     0.66918     -3.718     5.7303
    'Soil'               'Sandy'                 '(Intercept)'        -1.5236     2.3374    -0.65181    40     0.51825    -6.2477     3.2006
    'Soil'               'Silty'                 '(Intercept)'        0.51744     2.3374     0.22137    40     0.82593    -4.2067     5.2416
    'Soil:Tomato'        'Loamy Cherry'          '(Intercept)'          12.46     7.1765      1.7362    40    0.090224    -2.0443     26.964
    'Soil:Tomato'        'Loamy Grape'           '(Intercept)'        -2.6429     7.1765    -0.36827    40     0.71461    -17.147     11.861
    'Soil:Tomato'        'Loamy Heirloom'        '(Intercept)'         16.681     7.1765      2.3244    40    0.025269     2.1766     31.185
    'Soil:Tomato'        'Loamy Plum'            '(Intercept)'        -5.0172     7.1765    -0.69911    40     0.48853    -19.522     9.4872
    'Soil:Tomato'        'Loamy Vine'            '(Intercept)'        -4.6874     7.1765    -0.65316    40     0.51739    -19.192     9.8169
    'Soil:Tomato'        'Sandy Cherry'          '(Intercept)'        -17.393     7.1765     -2.4235    40    0.019987    -31.897    -2.8882
    'Soil:Tomato'        'Sandy Grape'           '(Intercept)'        -7.3679     7.1765     -1.0267    40     0.31075    -21.872     7.1364
    'Soil:Tomato'        'Sandy Heirloom'        '(Intercept)'         -8.621     7.1765     -1.2013    40     0.23671    -23.125     5.8833
    'Soil:Tomato'        'Sandy Plum'            '(Intercept)'          7.669     7.1765      1.0686    40     0.29165    -6.8353     22.173
    'Soil:Tomato'        'Sandy Vine'            '(Intercept)'        0.28246     7.1765    0.039359    40      0.9688    -14.222     14.787
    'Soil:Tomato'        'Silty Cherry'          '(Intercept)'         4.9326     7.1765     0.68732    40     0.49585    -9.5718     19.437
    'Soil:Tomato'        'Silty Grape'           '(Intercept)'         10.011     7.1765      1.3949    40     0.17073    -4.4935     24.515
    'Soil:Tomato'        'Silty Heirloom'        '(Intercept)'        -8.0599     7.1765     -1.1231    40      0.2681    -22.564     6.4444
    'Soil:Tomato'        'Silty Plum'            '(Intercept)'        -2.6519     7.1765    -0.36952    40     0.71369    -17.156     11.852
    'Soil:Tomato'        'Silty Vine'            '(Intercept)'          4.405     7.1765      0.6138    40     0.54282    -10.099     18.909

最初の 3 つの行には、グループ化変数 Soil の 3 つのレベル LoamySandy および Silty の変量効果の推定と統計が含まれています。対応する p 値 0.66918、0.51825 および 0.82593 は、これらの変量効果が 0 と大きな有意差がないことを示しています。次の 15 行には、Soil に入れ子になっている変数 Tomato でグループ化されている切片、つまり TomatoSoil の相互作用に対する変動効果推定の BLUPが含まれます。

オプションを指定した信頼区間の計算

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

load carsmall

Shift および Operator はノミナル変数です。

shift.Shift = nominal(shift.Shift);
shift.Operator = nominal(shift.Operator);

シフトの時間によってパフォーマンスに有意差があるかどうかを評価するために、作業者でグループ化されたランダムな切片をもつ線形混合効果モデルに近似します。制限付き最尤法を使用します。

lme = fitlme(shift,'QCDev ~ Shift + (1|Operator)');

自由度の計算に残差オプションを使用して、変量効果に対する 99% の信頼区間を計算します。これは既定のメソッドです。

[~,~,stats] = randomEffects(lme,'alpha',0.01)

stats = 


    Random effect coefficients: DFMethod = 'Residual', Alpha = 0.01

    Group             Level      Name                 Estimate    SEPred     tStat      DF    pValue      Lower       Upper  
    'Operator'        '1'        '(Intercept)'        0.57753     0.90378    0.63902    12     0.53482     -2.1831     3.3382
    'Operator'        '2'        '(Intercept)'         1.1757     0.90378     1.3009    12     0.21772     -1.5849     3.9364
    'Operator'        '3'        '(Intercept)'        -2.1715     0.90378    -2.4027    12    0.033352     -4.9322    0.58909
    'Operator'        '4'        '(Intercept)'         2.3655     0.90378     2.6174    12    0.022494    -0.39511     5.1261
    'Operator'        '5'        '(Intercept)'        -1.9472     0.90378    -2.1546    12    0.052216     -4.7079    0.81337

自由度の計算にサタースウェイトの近似法を使用して、変量効果に対する 99% の信頼区間を計算します。

[~,~,stats] = randomEffects(lme,'DFMethod','Satterthwaite','alpha',0.01)
stats = 


    Random effect coefficients: DFMethod = 'Satterthwaite', Alpha = 0.01

    Group             Level      Name                 Estimate    SEPred     tStat      DF        pValue      Lower       Upper 
    'Operator'        '1'        '(Intercept)'        0.57753     0.90378    0.63902    6.4253      0.5449      -2.684     3.839
    'Operator'        '2'        '(Intercept)'         1.1757     0.90378     1.3009    6.4253     0.23799     -2.0858    4.4372
    'Operator'        '3'        '(Intercept)'        -2.1715     0.90378    -2.4027    6.4253    0.050386      -5.433      1.09
    'Operator'        '4'        '(Intercept)'         2.3655     0.90378     2.6174    6.4253    0.037302    -0.89598     5.627
    'Operator'        '5'        '(Intercept)'        -1.9472     0.90378    -2.1546    6.4253    0.071626     -5.2087    1.3142

通常、サタースウェイト法では自由度 (DF) に対して小さい値が算出されるため、p 値 (pValue) は大きくなり、変量効果推定に対する信頼区間 (LowerUpper) も大きくなります。

参考

| | | |

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