Main Content

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 = dataset([1 2 3 4]','VarNames',{'Measurements'});

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

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('panelData.mat');

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

データを table 配列に保存し、都市をノミナル変数として定義します。

t = table(panelData.Growth,panelData.City,panelData.Year,...
	'VariableNames',{'Growth','City','Year'});

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

t = unstack(t,'Growth','Year','NewDataVariableNames',...
	{'year1','year2','year3','year4','year5','year6'});

複数年にわたる平均雇用水準を予測子変数としてテーブル t に追加します。

t(:,8) = table(grpstats(panelData.Employ,panelData.City));
t.Properties.VariableNames{'Var8'} = 'meanEmploy';

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

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

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

rm = fitrm(t,'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 スカラー。応答はそのモデルの項によって定義されます。anova は Y (反復測定モデル rm で使用する応答行列) をモデルの項で乗算し、その積の列を応答として使用します。

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

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

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

例: 'WithinModel','Time'

例: 'WithinModel','orthogonalcontrasts'

出力引数

すべて折りたたむ

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

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

詳細

すべて折りたたむ

ヴァンデルモンド行列

ヴァンデルモンド行列は、列がベクトル a のべき乗になっている行列です。すなわち、V(i,j) = a(i)(n — j) (n は a の長さ) となります。

QR 分解

m 行 n 列の行列 A の QR 分解とは、その行列を積 A = Q*R の形に因子分解することを指します。ここで R は m 行 n 列の上三角行列、Q は m 行 m 列のユニタリ行列です。

バージョン履歴

R2014a で導入