メインコンテンツ

anova

反復測定モデルでの被験者間効果の分散分析

説明

anovatbl = anova(rm) は、反復測定モデル rm の分散分析結果を返します。

anovatbl = anova(rm,'WithinModel',WM) は、被験者内モデル WM で指定された応答 (1 つまたは複数) を使用して実行される分散分析の結果を返します。

すべて折りたたむ

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

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 = [1 2 3 4];

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

rm = fitrm(t,"meas1-meas4~species",WithinDesign=Meas);

分散分析を実行します。

anova(rm)
ans=3×7 table
     Within     Between     SumSq     DF     MeanSq       F         pValue   
    ________    ________    ______    ___    _______    ______    ___________

    Constant    constant    7201.7      1     7201.7     19650    2.0735e-158
    Constant    species     309.61      2      154.8    422.39     1.1517e-61
    Constant    Error       53.875    147    0.36649                         

150 件の観測値と 3 つの種類があります。種類の自由度は 3 - 1 = 2、誤差の自由度は 150 - 3 = 147 です。p 値が 1.1517e-61 という小さい値なので、種類によって測定値が有意に異なることがわかります。

パネル データを読み込んで表示します。

load panelTbl;
panelTbl
panelTbl=48×4 table
    Growth    City    Year    Employ
    ______    ____    ____    ______

    354.02     1       1      64.187
    352.05     1       2      65.094
     207.1     1       3      55.521
    328.17     1       4      63.594
    251.53     1       5      63.102
    341.74     1       6      53.252
    296.93     2       1       52.38
    330.16     2       2      59.967
    275.24     2       3      69.195
    289.41     2       4      56.808
    242.91     2       5      61.705
    350.68     2       6      54.476
    355.71     3       1      65.025
    307.06     3       2      55.102
    230.33     3       3      60.119
    332.27     3       4      63.982
      ⋮

table panelTbl には 6 年間の 8 つの都市に関する年間観測が含まれます。最初の変数 Growth では、経済成長 (応答変数) が測定されます。2 番目と 3 番目の引数は、それぞれ都市と年のインジケーターです。最後の変数 Employ は、雇用 (予測子変数) を測定します。このデータは、シミュレーションされたものです。

データを所定の形式に変換し、反復測定の解析を実行します。

panelTblNew = unstack(panelTbl(:,["City","Growth","Year"]),"Growth","Year",NewDataVariableNames=...
	["year1","year2","year3","year4","year5","year6"])
panelTblNew=8×7 table
    City    year1     year2     year3     year4     year5     year6 
    ____    ______    ______    ______    ______    ______    ______

     1      354.02    352.05     207.1    328.17    251.53    341.74
     2      296.93    330.16    275.24    289.41    242.91    350.68
     3      355.71    307.06    230.33    332.27    267.99    422.25
     4      335.78     302.9    199.29    289.92     266.1    348.24
     5      378.11     296.3    276.22    292.43     207.5    341.99
     6      354.62    307.09    222.17    339.27    254.71    366.67
     7      385.74    297.64     260.1    332.27    230.96    370.99
     8       304.3    265.08    236.25    330.61    287.85    316.02

複数年にわたる平均雇用水準を予測子変数として table panelTblNew に追加します。

meanEmploy = grpstats(panelTbl.Employ,panelTbl.City);
panelTblNew.meanEmploy = meanEmploy;

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

Year = [1 2 3 4 5 6]';

反復測定モデルを当てはめます。ここで、6 年間の成長率が応答となり、平均雇用水準が予測子変数となります。

rm = fitrm(panelTblNew,"year1-year6 ~ meanEmploy",WithinDesign=Year);

分散分析を実行します。

anovatbl = anova(rm,WithinModel=Year)
anovatbl=3×7 table
     Within       Between        SumSq       DF      MeanSq         F         pValue  
    _________    __________    __________    __    __________    ________    _________

    Contrast1    constant          588.17    1         588.17    0.038495      0.85093
    Contrast1    meanEmploy    3.7064e+05    1     3.7064e+05      24.258    0.0026428
    Contrast1    Error              91675    6          15279                         

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

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

分散分析を実行します。

anovatbl = anova(rm)
anovatbl=3×7 table
     Within     Between     SumSq     DF    MeanSq      F         pValue  
    ________    ________    ______    __    ______    ______    __________

    Constant    constant     54702     1     54702    1079.2    1.1897e-14
    Constant    Gender      2251.7     1    2251.7    44.425    1.0693e-05
    Constant    Error        709.6    14    50.685                        

2 つの性別と 16 個の観測値があるので、性別の自由度は (2 - 1) = 1、誤差の自由度は (16 - 2) × (2 - 1) = 14 です。p 値が 1.0693e-05 という小さい値なので、性別が血圧に対して有意な影響を与えることがわかります。

直交対比を使用して分散分析を繰り返します。

anovatbl = anova(rm,'WithinModel','orthogonalcontrasts')
anovatbl=15×7 table
     Within     Between       SumSq       DF      MeanSq          F           pValue  
    ________    ________    __________    __    __________    __________    __________

    Constant    constant         54702     1         54702        1079.2    1.1897e-14
    Constant    Gender          2251.7     1        2251.7        44.425    1.0693e-05
    Constant    Error            709.6    14        50.685                            
    Time        constant        310.83     1        310.83        31.023    6.9065e-05
    Time        Gender          13.341     1        13.341        1.3315       0.26785
    Time        Error           140.27    14        10.019                            
    Time^2      constant        565.42     1        565.42        98.901    1.0003e-07
    Time^2      Gender          1.4076     1        1.4076       0.24621       0.62746
    Time^2      Error           80.039    14        5.7171                            
    Time^3      constant        2.6127     1        2.6127        1.4318       0.25134
    Time^3      Gender      7.8853e-06     1    7.8853e-06    4.3214e-06       0.99837
    Time^3      Error           25.546    14        1.8247                            
    Time^4      constant        2.8404     1        2.8404       0.47924       0.50009
    Time^4      Gender          2.9016     1        2.9016       0.48956       0.49559
    Time^4      Error           82.977    14        5.9269                            

入力引数

すべて折りたたむ

反復測定モデル。RepeatedMeasuresModel オブジェクトとして返します。

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

被験者内モデル。以下のいずれかとして指定します。

  • 'separatemeans': 応答は反復測定の平均 (被験者内モデル全体での平均) です。

  • 'orthogonalcontrasts': 被験者内モデルが単一の数値係数 T をもつ場合に有効です。応答は平均値、中心に位置する T の傾き、または一般的に最大 T^(p – 1) までの多項式のすべての直交対比です。ここで、p は被験者内モデルの行数です。anovaY (反復測定モデル rm で使用する応答) を直交対比で乗算し、その結果となる行列積を応答として使用します。

    anova は、ヴァンデルモンド行列QR 分解Q 係数を使用して T の直交対比を計算します。

  • 被験者内要因のモデル仕様を定義する文字ベクトルまたは string スカラー。応答はそのモデルの項によって定義されます。anovaY (反復測定モデル rm で使用する応答行列) をモデルの項で乗算し、その積の列を応答として使用します。

    たとえば、時間係数があり、'Time' がモデル仕様である場合、anova は定数項と中心化されていない時間項の 2 つの項を使用します。既定値は '1' で、平均応答に対して実行されます。

  • rnc 列の行列 Cr 件の反復測定間における nc 件の対比を指定します。Y が反復測定モデル rm 内で使用される反復測定の行列を表す場合、出力 tbl には Y*C の列ごとに個別の分散分析が格納されます。

anova table には、各応答の個別の一変量分散分析の結果が格納されます。

例: 'WithinModel','Time'

例: 'WithinModel','orthogonalcontrasts'

出力引数

すべて折りたたむ

被験者間効果の分散分析の結果。table として返します。被験者間モデルのすべての項と、次の各列が格納されています。

列名定義
Within被験者内要因
Between被験者間要因
SumSq二乗和
DF自由度
MeanSq平均二乗誤差
FF 統計量
pValueF 統計量に対応する p

詳細

すべて折りたたむ

バージョン履歴

R2014a で導入