ドキュメンテーション

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

multcompare

説明

c = multcompare(stats) は、stats 構造体に保存された情報を使用して多重比較検定のペアを比較した結果の行列 c を返します。また、multcompare も推定および比較区間の対話型グラフを表示します。各グループの平均はシンボルで表示されます。また、区間はシンボルからの線により表示されます。区間が重なっていない場合は 2 つグループの平均には有意差があり、区間が重なっている場合は有意差はありません。マウスを使用して任意のグループ選択する場合、有意差があれば、グラフは有意差のあるその他すべてのグループを強調表示します。

c = multcompare(stats,Name,Value) は、1 つ以上の Name,Value のペア引数で指定される追加オプションを使用して、比較結果のペアの行列 c を返します。たとえば、信頼区間または多重比較で使用する棄却限界値の種類を指定できます。

[c,m] = multcompare(___) が返す行列 m には、グループごとの平均の推定値 (または比較対象の統計量) および対応する標準誤差が含まれます。前述の構文のいずれも使用できます。

[c,m,h] = multcompare(___) は、比較グラフのハンドル h も返します。

[c,m,h,gnames] = multcompare(___) は、グループ名が含まれる cell 配列 gnames も返します。

すべて折りたたむ

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

load carsmall

1 因子分散分析 (ANOVA) を実行し、生産国別の自動車の燃費に差があるかどうかを確認します。

[p,t,stats] = anova1(MPG,Origin,'off');

グループ平均の多重比較を実行します。

[c,m,h,nms] = multcompare(stats);

multcompare は推定値とその周辺の比較間隔を表示します。各国のグラフをクリックすると、その国の平均を他の国の平均の比較できます。

次に、平均の推定値と標準偏差を、該当するグループ名とあわせて表示します。

[nms num2cell(m)]
ans = 6x3 cell array
    {'USA'    }    {[21.1328]}    {[0.8814]}
    {'Japan'  }    {[31.8000]}    {[1.8206]}
    {'Germany'}    {[28.4444]}    {[2.3504]}
    {'France' }    {[23.6667]}    {[4.0711]}
    {'Sweden' }    {[22.5000]}    {[4.9860]}
    {'Italy'  }    {[     28]}    {[7.0513]}

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

load popcorn
popcorn
popcorn = 6×3

    5.5000    4.5000    3.5000
    5.5000    4.5000    4.0000
    6.0000    4.0000    3.0000
    6.5000    5.0000    4.0000
    7.0000    5.5000    5.0000
    7.0000    5.0000    4.5000

このデータは、ポップコーンのブランドと製造器具タイプに関する研究 (Hogg 1987) によるものです。行列 popcorn の列はブランド (Gourmet、National、および Generic) を示しています。行は製造器具のタイプ (オイルとエアー) です。この研究では、各製造器具で各ブランドのポップコーンを 3 回ずつ作りました。値は、ポップコーンの生産量をカップ単位で示しています。

2 因子 ANOVAを実行します。主効果について多重比較検定を実行するために必要な統計量も計算します。

[~,~,stats] = anova2(popcorn,3,'off')
stats = struct with fields:
      source: 'anova2'
     sigmasq: 0.1389
    colmeans: [6.2500 4.7500 4]
        coln: 6
    rowmeans: [4.5000 5.5000]
        rown: 9
       inter: 1
        pval: 0.7462
          df: 12

構造体 stats には次の情報が含まれています。

  • 平均二乗誤差 (sigmasq)

  • 各ポップコーン ブランドの平均生産量の推定値 (colmeans)

  • 各ポップコーン ブランドの観測数 (coln)

  • 各製造器具タイプの平均生産量の推定値 (rowmeans)

  • 各製造器具タイプの観測数 (rown)

  • 交互作用の数 (inter)

  • 交互作用項の有意水準を示す p 値 (pval)

  • 誤差自由度 (df)

多重比較検定を実行して、出来上がるポップコーンの量がポップコーン ブランド (列) のペア間で異なるかどうかを調べます。

c = multcompare(stats)
Note: Your model includes an interaction term.  A test of main effects can be 
difficult to interpret when the model includes interactions.

c = 3×6

    1.0000    2.0000    0.9260    1.5000    2.0740    0.0000
    1.0000    3.0000    1.6760    2.2500    2.8240    0.0000
    2.0000    3.0000    0.1760    0.7500    1.3240    0.0116

c の初めの 2 列には、比較したグループが示されています。4 列目には、推定したグループ平均の間の差が示されています。3 列目と 5 列目には、真の平均の差に関する 95% 信頼区間の下限と上限が示されています。6 列目には、対応する平均の差がゼロに等しいという仮説を検定するための p 値が含まれています。すべての p 値が非常に小さいので (0、0 および 0.0116)、3 つのブランドすべてで出来上がるポップコーンの量が異なることがわかります。

図には、平均の多重比較が示されています。既定では、グループ 1 の平均が強調表示され、比較区間が青になります。他の 2 つのグループの比較区間は、グループ 1 の平均の区間と重なっていないので、赤で強調表示されています。区間が重なっていないことから、どちらの平均もグループ 1 の平均と異なることがわかります。他のグループの平均を選択して、すべてのグループの平均が他と有意に異なることを確認します。

多重比較検定を実行して、出来上がるポップコーンの量が 2 種類の製造器具タイプ (行) の間で異なるかどうかを調べます。

c = multcompare(stats,'Estimate','row')
Note: Your model includes an interaction term.  A test of main effects can be 
difficult to interpret when the model includes interactions.

c = 1×6

    1.0000    2.0000   -1.3828   -1.0000   -0.6172    0.0001

p 値は 0.0001 という小さい値なので、出来上がるポップコーンの量は 2 つの製造器具タイプ (エアーとオイル) で異なることがわかります。図には同じ結果が示されています。比較区間が重なっていないので、グループの平均が互いに有意に異なることがわかります。

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

y = [52.7 57.5 45.9 44.5 53.0 57.0 45.9 44.0]';
g1 = [1 2 1 2 1 2 1 2];
g2 = {'hi';'hi';'lo';'lo';'hi';'hi';'lo';'lo'};
g3 = {'may';'may';'may';'may';'june';'june';'june';'june'};

y は応答ベクトル、g1g2 および g3 はグループ化変数 (因子) です。各因子には 2 つのレベルがあり、y のすべての観測値は因子のレベルの組み合わせによって識別されます。たとえば、観測値 y(1) は、因子 g1 のレベル 1、因子 g2 のレベル 'hi' および因子 g3 のレベル 'may' に関連付けられています。同様に、観測値 y(6) は、因子 g1 のレベル 2、因子 g2 のレベル 'hi' および因子 g3 のレベル 'june' に関連付けられています。

すべての因子レベルについて応答が同じであるか検定します。また、多重比較検定に必要な統計量も計算します。

[~,~,stats] = anovan(y,{g1 g2 g3},'model','interaction',...
    'varnames',{'g1','g2','g3'});

0.2578 という p 値は、因子 g3 のレベル 'may' および 'june' について平均応答が有意には異なっていないことを示しています。0.0347 という p 値は、因子 g1 のレベル 1 および 2 について平均応答が有意に異なっていることを示しています。同様に、0.0048 という p 値は、因子 g2 のレベル 'hi' および 'lo' について平均応答が有意に異なっていることを示しています。

多重比較検定を実行し、因子 g1 および g2 についてどのグループが有意に異なるかを調べます。

results = multcompare(stats,'Dimension',[1 2])

results = 6×6

    1.0000    2.0000   -6.8604   -4.4000   -1.9396    0.0280
    1.0000    3.0000    4.4896    6.9500    9.4104    0.0177
    1.0000    4.0000    6.1396    8.6000   11.0604    0.0143
    2.0000    3.0000    8.8896   11.3500   13.8104    0.0108
    2.0000    4.0000   10.5396   13.0000   15.4604    0.0095
    3.0000    4.0000   -0.8104    1.6500    4.1104    0.0745

multcompareは、2 つのグループ化変数 g1 および g2 についてグループ (レベル) の組み合わせを比較します。行列 results で、数値 1 は g1 のレベル 1g2 のレベル hi の組み合わせに、数値 2 は g1 のレベル 2g2 のレベル hi の組み合わせに対応しています。同様に、3 という数値は g1 のレベル 1g2 のレベル lo の組み合わせに、4 という数値は g1 のレベル 2g2 のレベル lo の組み合わせに対応しています。この行列の最後の列には、p 値が格納されています。

たとえば、この行列の 1 行目は、g1 のレベル 1g2 のレベル hi の組み合わせが g1 のレベル 2g2 のレベル hi の組み合わせと同じ平均応答値になっていることを示しています。この検定に対応する p 値は 0.0280 なので、平均応答が有意に異なっていることがわかります。この結果は、図からもわかります。青いバーは、g1 のレベル 1g2 のレベル hi の組み合わせについて平均応答の比較区間を示しています。赤いバーは、他のグループの組み合わせについて平均応答の比較区間を示しています。どの赤いバーも青いバーと重なっていないので、g1 のレベル 1g2 のレベル hi の組み合わせの平均応答が他のグループの組み合わせの平均応答と有意に異なっていることがわかります。

対応するグループの比較区間をクリックすると、他のグループについて検定を行うことができます。クリックしたバーは青になります。有意に異なるグループのバーは、赤になります。有意には異ならないグループのバーは、灰色になります。たとえば、g1 のレベル 1g2 のレベル lo の組み合わせの比較区間をクリックすると、g1 のレベル 2g2 のレベル lo の組み合わせの比較区間は重なるので灰色になります。逆に、他の比較区間は赤になり、有意に異なることを示します。

入力引数

すべて折りたたむ

検定データ。構造体として指定します。以下の関数のいずれかを使用して構造体を作成できます。

multcompare は、変量効果または入れ子形式の効果を含むモデルに anovan 出力を使用する多重比較をサポートしません。変量効果モデルでの計算は、すべての効果が固定として処理される警告を生成します。入れ子形式のモデルは受け入れません。

データ型: 構造体

名前と値のペアの引数

オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

例: 'Alpha',0.01,'CType','bonferroni','Display','off' はボンフェローニの棄却限界値を計算し、1% の有意水準で仮説検定を行い、対話型表示を行ないません。

多重比較検定の有意水準。'Alpha' と (0,1) の範囲内のスカラー値で構成されるコンマ区切りのペアとして指定します。'Alpha' について指定された値は、行列 c に返された区間および Figure における区間に対する 100 × (1 – α)% の信頼度を決定します。

例: 'Alpha',0.01

データ型: single | double

多重比較に使用する棄却限界値の種類。'CType' と、以下のいずれかで構成されるコンマ区切りのペアとして指定します。

例: 'CType','bonferroni'

表示切り替え。'Display' と、'on' または 'off' のいずれかで構成されるコンマ区切りのペアとして指定します。'on' を指定する場合、multcompare は推定値のグラフおよびその比較区間を表示します。'off' を指定する場合、multcompare はグラフの表示を省略します。

例: 'Display','off'

次元または母集団周辺平均を計算する次元を指定するベクトル。正の整数値またはそのような値のベクトルとして指定します。関数 anovan を使用して入力構造体 stats を作成する場合のみ、名前と値のペア 'Dimension' を使用します。

たとえば、'Dimension'1 と指定する場合、multcompare は第 1 グループ化変数の各値の平均を比較し、他のグループ化変数の効果を除去することで、設計が平衡化されているかのように調整します。'Dimension'[1,3] と指定する場合、multcompare は、第 1 および第 3 のグループ化変数のそれぞれの組み合わせに対応する母集団周辺平均を計算しますが、第 2 のグループ化変数の効果を除去します。特異なモデルを近似する場合、一部のセルの平均は推定できない場合があり、その場合、これらのセル平均に依存する母集団周辺平均はすべて、値 NaN をもちます。

母集団周辺平均については、Milliken, Johnson (1992)、および、Searle, Speed, Milliken (1980) によって述べられています。母集団周辺平均の背景となるアイデアは、'Dimension' で指定される因子の値を固定し、各因子の組み合わせが同じ回数起こるかのように、他の因子の効果を平均化することにより、不平衡な設計の影響をすべて除くことです。母集団周辺平均の定義は、各因子の組み合わせでの観測の数に依存していません。各因子の組み合わせでの観測の数が意味をもたないように設定されている実験では、母集団周辺平均は、他の因子を無視した単純な平均よりも解釈が容易である可能性があります。因子の各組み合わせでの観測数が意味をもつ調査や研究では、母集団周辺平均は解釈が難しい場合があります。

例: 'Dimension',[1,3]

データ型: single | double

比較する推定。'Estimate' および許容値により構成されるコンマ区切りのペアとして指定します。'Estimate' の許容値は入力構造体 stats の生成に使用する関数により異なり、以下の表に従います。

ソース
anova1

なし。名前と値のペアは無視されます。また、multcompare はグループ平均を常に比較します。

anova2

列平均を比較する 'column' または行平均を比較する 'row' のいずれか。

anovan

なし。名前と値のペアは無視されます。また、multcompare は、名前と値のペア引数 'Dimension' で指定された母集団周辺平均を常に比較します。

aoctool

傾き、切片または母集団周辺平均をそれぞれ比較するために、'slope''intercept''pmm' のいずれかを使用します。共分散モデルの解析が別個の傾きを含まなければ、'slope' は使用できません。別個の切片を含まなければ、比較はできません。

friedman

なし。名前と値のペアは無視されます。また、multcompare は列のランクの平均を常に比較します。

kruskalwallis

なし。名前と値のペアは無視されます。また、multcompare はグループ ランクの平均を常に比較します。

例: 'Estimate','row'

出力引数

すべて折りたたむ

多重比較の結果の行列。p 行 6 列のスカラー値の行列として返します。ここで p はグループのペア数です。行列の各行には、1 組の比較検定の結果が含まれます。列 1 および 2 には、比較する 2 つの標本のインデックスが含まれます。列 3 には、信頼区間の下限が含まれ、列 4 には推定が含まれます。列 5 には信頼区間の上限が含まれます。列 6 には、対応する平均との差が 0 ではないことを仮説検定する p 値が含まれます。

たとえば、1 つの行が次の要素を含むとします。

2.0000  5.0000  1.9442  8.2206  14.4971 0.0432

これらの数値は、グループ 2 の平均から グループ 5 の平均を引くと、8.2206 と推定され、真の差の平均に対する 95% の信頼区間は、[1.9442, 14.4971] であることを示しています。グループ 2 と グループ 5 の平均の差が 0 から大きく離れているという仮説検定の p 値は 0.0432 です。

この例では、信頼区間は 0 を含みません。したがって、差は 5% の有意水準で有意になります。信頼区間が 0 を含む場合、差は有意ではありません。p 値 0.0432 も、グループ 2 と グループ 5 の平均の差が 0 から大きく離れていることを示しています。

推定の行列。スカラー値の行列として返します。m の 1 列目は、各グループの平均の推定値 (または、比較対象の統計量) を含みます。そして、2 列目は、それらの標準誤差を含みます。

対話型グラフを含む Figure のハンドル。ハンドルとして返します。このグラフのタイトルは、グラフとの対話に関する命令を含み、x 軸ラベルは、選択される平均と比べてどの平均に有意差があるかについての情報を含みます。このグラフをプレゼンテーションに使用する場合、タイトルと x 軸ラベルを省略することをお勧めします。グラフ ウィンドウの 対話型機能を使用するか、次のコマンドを使用すると、それらを除去できます。

title('')
xlabel('')

グループ名。文字ベクトルの cell 配列として返されます。gnames の各行にはグループ名が含まれます。

詳細

すべて折りたたむ

多重比較検定

分散分析では複数のグループの平均を比較して、グループの平均が必ずしも等しくないという一般的な対立仮説に対して、すべてが等しいという仮説を検定します。この対立仮説では、一般的すぎる場合もあります。平均のどのペアに有意差があり、どのペアがそうでないかに関しての情報が必要となることもあります。多重比較検定 はこの情報を提供できます。

他のグループに対して 1 つのグループの平均に関する単純な t 検定を実行するとき、t 統計量のカットオフの値を決定する有意水準を指定します。たとえば、実際の差がない場合に有意差を誤って求める確率を 5% 以下にするには、alpha = 0.05 という値を指定します。多数のグループ平均がある場合、比較するペアも多くなります。この状況で、通常の t 検定を適用する場合、alpha の値は各比較に適用されるため、有意差を誤って見つけるという可能性は、比較の数の増加と共に増えます。多重比較のアルゴリズムは、"任意の" 比較を 誤って有意であるとしてしまう確率に、上界を与えるように設定されます。

参照

[1] Hochberg, Y., and A. C. Tamhane. Multiple Comparison Procedures. Hoboken, NJ: John Wiley & Sons, 1987.

[2] Milliken, G. A., and D. E. Johnson. Analysis of Messy Data, Volume I: Designed Experiments. Boca Raton, FL: Chapman & Hall/CRC Press, 1992.

[3] Searle, S. R., F. M. Speed, and G. A. Milliken. “Population marginal means in the linear model: an alternative to least-squares means.” American Statistician. 1980, pp. 216–221.

R2006a より前に導入