Main Content

fitrm

反復測定モデルの当てはめ

説明

rm = fitrm(t,modelspec) は反復測定モデルを返します。このモデルは modelspec によって指定され、テーブルまたはデータセット配列 t の変数に近似されています。モデル rmRepeatedMeasuresModel オブジェクトとして返されます。このモデル オブジェクトのプロパティの詳細については、RepeatedMeasuresModel を参照してください。

rm = fitrm(t,modelspec,Name=Value) は、1 つ以上の名前と値の引数で指定された追加オプションを使用して反復測定モデルを返します。たとえば、被験者内要因の仮説を指定することができます。

すべて折りたたむ

fisheriris データ セットを読み込みます。

load fisheriris

列ベクトル species は、3 種類のアヤメ (setosa、versicolor、virginica) で構成されています。double 行列 meas は、花に関する 4 種類の測定値、がく片の長さと幅 (cm) と花弁の長さと幅 (cm) で構成されています。

データを table 配列に保存します。

t = table(species,meas(:,1),meas(:,2),meas(:,3),meas(:,4),...
VariableNames=["species","meas1","meas2","meas3","meas4"]);
Meas = table([1 2 3 4]',VariableNames="Measurements");

反復予測モデルを当てはめます。ここで、測定が応答、種類が予測子変数となります。

rm = fitrm(t,"meas1-meas4~species",WithinDesign=Meas)
rm = 
  RepeatedMeasuresModel with properties:

   Between Subjects:
         BetweenDesign: [150x5 table]
         ResponseNames: {'meas1'  'meas2'  'meas3'  'meas4'}
    BetweenFactorNames: {'species'}
          BetweenModel: '1 + species'

   Within Subjects:
          WithinDesign: [4x1 table]
     WithinFactorNames: {'Measurements'}
           WithinModel: 'separatemeans'

   Estimates:
          Coefficients: [3x4 table]
            Covariance: [4x4 table]

係数を表示します。

rm.Coefficients
ans=3×4 table
                           meas1       meas2      meas3      meas4  
                          ________    ________    ______    ________

    (Intercept)             5.8433      3.0573     3.758      1.1993
    species_setosa        -0.83733     0.37067    -2.296    -0.95333
    species_versicolor    0.092667    -0.28733     0.502     0.12667

fitrm では "effects" の対比を使用します。これは、係数の合計が 0 になることを意味します。rm.DesignMatrix は、切片を表す 1 が含まれている 1 つの列と、次の値をもつ他の 2 つの列 species_setosa および species_versicolor から構成されています。

species_setosa={1ifsetosa0ifversicolor-1ifvirginicaandspecies_versicolor={0ifsetosa1ifversicolor-1ifvirginica

共分散行列を表示します。

rm.Covariance
ans=4×4 table
              meas1       meas2       meas3       meas4  
             ________    ________    ________    ________

    meas1     0.26501    0.092721     0.16751    0.038401
    meas2    0.092721     0.11539    0.055244     0.03271
    meas3     0.16751    0.055244     0.18519    0.042665
    meas4    0.038401     0.03271    0.042665    0.041882

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

load('longitudinalData.mat');

行列 Y には 16 人の応答データが含まれています。応答は 5 つの時間点 (time = 0、2、4、6、8) で測定された薬の血中濃度です。Y の各行は 1 人の個人に対応し、各列は 1 つの時間点に対応します。最初の 8 人の被験者は女性で、次の 8 人の被験者は男性です。このデータは、シミュレーションされたものです。

性別情報を格納する変数を定義します。

Gender = ["F" "F" "F" "F" "F" "F" "F" "F" "M" "M" "M" "M" "M" "M" "M" "M"]';

反復測定の解析を実行するために table 配列形式でデータを保存します。

t = table(Gender,Y(:,1),Y(:,2),Y(:,3),Y(:,4),Y(:,5),...
VariableNames=["Gender","t0","t2","t4","t6","t8"]);

被験者内変数を定義します。

Time = [0 2 4 6 8]';

反復予測モデルを当てはめます。ここで、血中濃度が応答、性別が予測子変数となります。また、被験者内要因の仮説を定義します。

rm = fitrm(t,"t0-t8 ~ Gender",WithinDesign=Time,WithinModel="orthogonalcontrasts")
rm = 
  RepeatedMeasuresModel with properties:

   Between Subjects:
         BetweenDesign: [16x6 table]
         ResponseNames: {'t0'  't2'  't4'  't6'  't8'}
    BetweenFactorNames: {'Gender'}
          BetweenModel: '1 + Gender'

   Within Subjects:
          WithinDesign: [5x1 table]
     WithinFactorNames: {'Time'}
           WithinModel: 'orthogonalcontrasts'

   Estimates:
          Coefficients: [2x5 table]
            Covariance: [5x5 table]

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

load repeatedmeas

table between には、応答として 8 件の反復測定値 y1y8 が含まれており、さらに被験者間要因 GroupGenderIQAge が含まれています。IQAge は連続変数です。テーブル within には被験者内要因 w1w2 があります。

反復測定モデルを当てはめます。ここで、age、IQ、group、および gender は予測子変数です。また、モデルには group と gender の交互作用効果が含まれています。また、被験者内要因を定義します。

rm = fitrm(between,'y1-y8 ~ Group*Gender+Age+IQ','WithinDesign',within)
rm = 
  RepeatedMeasuresModel with properties:

   Between Subjects:
         BetweenDesign: [30x12 table]
         ResponseNames: {'y1'  'y2'  'y3'  'y4'  'y5'  'y6'  'y7'  'y8'}
    BetweenFactorNames: {'Age'  'IQ'  'Group'  'Gender'}
          BetweenModel: '1 + Age + IQ + Group*Gender'

   Within Subjects:
          WithinDesign: [8x2 table]
     WithinFactorNames: {'w1'  'w2'}
           WithinModel: 'separatemeans'

   Estimates:
          Coefficients: [8x8 table]
            Covariance: [8x8 table]

係数を表示します。

rm.Coefficients
ans=8×8 table
                                y1         y2         y3         y4          y5           y6         y7          y8   
                             ________    _______    _______    _______    _________    ________    _______    ________

    (Intercept)                141.38     195.25     9.8663    -49.154       157.77     0.23762    -42.462      76.111
    Age                       0.32042    -4.7672    -1.2748     0.6216      -1.0621     0.89927     1.2569    -0.38328
    IQ                        -1.2671    -1.1653    0.05862     0.4288      -1.4518    -0.25501    0.22867    -0.72548
    Group_A                   -1.2195    -9.6186     22.532     15.303       12.602      12.886     10.911      11.487
    Group_B                    2.5186      1.417    -2.2501    0.50181       8.0907      3.1957     11.591      9.9188
    Gender_Female              5.3957    -3.9719     8.5225     9.3403       6.0909       1.642    -2.1212      4.8063
    Group_A:Gender_Female      4.1046     10.064    -7.3053    -3.3085       4.6751      2.4907     -4.325     -4.6057
    Group_B:Gender_Female    -0.48486    -2.9202     1.1222    0.69715    -0.065945    0.079468     3.1832      6.5733

被験者間モデルの各項の関数として反復測定を近似するための係数が表示されます。

入力引数

すべて折りたたむ

入力データ。反復測定モデルで予測子として使用する応答変数の値と被験者間要因が含まれ、テーブルとして指定されます。

t の変数名は、有効な MATLAB® 識別子でなければなりません。関数 isvarname を使用して変数名を検証できます。変数名が有効でない場合、関数 matlab.lang.makeValidName を使用してそれらを変換できます。

データ型: table

モデル仕様の式。'y1-yk ~ terms' という形式の文字ベクトルまたは string スカラーとして指定します。応答と項はウィルキンソンの表記法によって指定されます。モデル項で使用される変数がカテゴリカル (ノミナルまたは順序) 配列、logical 配列、文字配列、string 配列、または文字ベクトルの cell 配列である場合、fitrm はこの変数をカテゴリカルとして扱います。

たとえば、応答として 4 つの反復測定があり、予測子変数として係数 x1x2x3 がある場合、反復測定モデルを次のように定義できます。

例: 'y1-y4 ~ x1 + x2 * x3'

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後ろにする必要がありますが、ペアの順序は関係ありません。

R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。

例: WithinDesign="W",WithinModel="w1+w2" は、行列 w を被験者内要因の計画行列として指定し、被験者内要因 w1 および w2 のモデルを "w1+w2" として指定します。

被験者内要因の計画。次のいずれかとして指定します。

  • 長さが r の数値ベクトル (r は反復測定の数)。

    この場合、fitrm はベクトルの値を連続値として扱います。これらの値は、通常は時間値です。

  • k 個の被験者内要因の値 (w1、w2、...、wk) が格納された、r 行 k 列の数値行列。

    この場合、fitrm は k 個の変数すべてを連続変数として扱います。

  • k 個の被験者内要因の値が格納された、r 行 k 列のテーブル。

    この場合、fitrm はすべての数値変数を連続変数、すべてのカテゴリカル変数をカテゴリカル変数として扱います。

たとえば、テーブル weeks に被験者内要因の値が格納されている場合、計画テーブルを次のように定義できます。

例: WithinDesign=weeks

データ型: single | double | table

被験者内仮説検定を指定するモデル。次のいずれかとして指定します。

  • 'separatemeans' — グループごとの平均を計算します。

  • 'orthogonalcontrasts' — この値は、被験者内モデルが単一の数値係数 T をもつ場合のみ有効です。応答は平均値、中心に位置する T の勾配、また一般的に最大 T^(p – 1) までの多項式のすべての直交対比です。ここで、p は被験者内モデルの行数です。

  • 被験者内要因のモデル仕様を定義する文字ベクトルまたは string スカラー。modelspecterms の規則に基づいてモデルを定義できます。

たとえば、被験者内要因が w1w2w3 の 3 つである場合、被験者内要因のモデルを次のように指定できます。

例: WithinModel="w1+w2+w2*w3"

データ型: char | string

詳細

すべて折りたたむ

ウィルキンソンの表記法によるモデルの指定

ウィルキンソンの表記法は、モデルに存在する因子を記述します。これらの因子の乗算器 (係数) は記述されません。

次の規則を使用して、modelspec の応答を指定します。

ウィルキンソンの表記法説明
Y1,Y2,Y3変数の特定のリスト
Y1-Y5Y1Y5 のすべてのテーブル変数

次の規則を使用して、modelspec の項を指定します。

ウィルキンソンの表記法標準表記の因子
1定数 (切片) 項
X^kk は正の整数X, X2, ..., Xk
X1 + X2X1, X2
X1*X2X1, X2, X1*X2
X1:X2X1*X2 のみ
-X2X2 は含めない
X1*X2 + X3X1, X2, X3, X1*X2
X1 + X2 + X3 + X1:X2X1, X2, X3, X1*X2
X1*X2*X3 - X1:X2:X3X1, X2, X3, X1*X2, X1*X3, X2*X3
X1*(X2 + X3)X1, X2, X3, X1*X2, X1*X3

Statistics and Machine Learning Toolbox™ 表記は、-1 を使用して項を明示的に削除しない限り、定数項を含みます。

バージョン履歴

R2014a で導入