anovan
多因子分散分析
構文
説明
は、1 つ以上の p = anovan(y,group,Name,Value)Name,Value ペア引数で指定された追加オプションを使用して、多因子 (n 因子) ANOVA の p 値のベクトルを返します。
たとえば、どの予測子変数が連続的であるかや、どのタイプの二乗和を使用するかを指定できます。
[ から返される構造体 p,tbl,stats] = anovan(___)stats を使用して、多重比較検定を実行できるようになります。これにより、どのグループ平均のペアが有意に異なるかを判別できます。このような検定を実行するには、構造体 stats を入力引数として指定し、関数 multcompare を使用します。
例
標本データを読み込みます。
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 は応答ベクトル、g1、g2 および g3 はグループ化変数 (因子) です。各因子には 2 つの水準があり、y のすべての観測値は因子の水準の組み合わせによって識別されます。たとえば、観測値 y(1) は、因子 g1 の水準 1、因子 g2 の水準 'hi' および因子 g3 の水準 'may' に関連付けられています。同様に、観測値 y(6) は、因子 g1 の水準 2、因子 g2 の水準 'hi' および因子 g3 の水準 'june' に関連付けられています。
すべての因子水準について応答が同じであるか検定します。
p = anovan(y,{g1,g2,g3})
p = 3×1
0.4174
0.0028
0.9140
ANOVA 表の X1、X2 および X3 は、それぞれ因子 g1、g2 および g3 に対応しています。0.4174 という p は、因子 g1 の水準 1 および 2 について平均応答が有意には異ならないことを示しています。同様に、0.914 という p 値は、因子 g3 の水準 'may' および 'june' について平均応答が有意には異ならないことを示しています。しかし、0.0028 という p 値は十分に小さいので、因子 g2 の 2 つの水準 'hi' および 'lo' について平均応答が有意に異なると結論づけることができます。既定の設定では、anovan は 3 つの主効果のみについて p 値を計算します。
2 因子の交互作用を検定します。今回は、変数名を指定します。
p = anovan(y,{g1 g2 g3},'model','interaction','varnames',{'g1','g2','g3'})
p = 6×1
0.0347
0.0048
0.2578
0.0158
0.1444
0.5000
交互作用項は、ANOVA 表で g1*g2、g1*g3 および g2*g3 によって表されています。p の初めの 3 つの項目は、主効果の p 値です。終わりの 3 つの項目は、2 次交互作用の p 値です。0.0158 という p 値は、g1 と g2 の交互作用が有意であることを示しています。0.1444 および 0.5 という p 値は、対応する交互作用が有意ではないことを示しています。
標本データを読み込みます。
load carbigこのデータには、406 台の自動車についての測定値が含まれています。変数 org は自動車の製造国、変数 when は自動車の製造時期を表しています。
自動車を製造した時期と国によって燃費効率がどのように変化するかを調べます。また、2 次交互作用をモデルに含めます。
p = anovan(MPG,{org when},'model',2,'varnames',{'origin','mfg date'})
p = 3×1
0.0000
0.0000
0.3059
名前と値のペアの引数 'model',2 は、2 次交互作用を表します。交互作用項の p 値は 0.3059 という小さくない値なので、製造時期 (mfg date) の効果が製造国 (origin) の影響を受けることを示す証拠はほとんどありません。しかし、製造国と製造時期の主効果は、どちらも p 値が 0 なので有意です。
標本データを読み込みます。
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 は応答ベクトル、g1、g2 および 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,~,~,gnames] = multcompare(stats,"Dimension",[1 2]);
対応するグループの比較区間をクリックすると、他のグループについて検定を行うことができます。クリックしたバーは青になります。有意に異なるグループのバーは、赤になります。有意には異ならないグループのバーは、灰色になります。たとえば、g1 の水準 1 と g2 の水準 lo の組み合わせの比較区間をクリックすると、g1 の水準 2 と g2 の水準 lo の組み合わせの比較区間は重なるので灰色になります。逆に、他の比較区間は赤になり、有意に異なることを示します。
多重比較の結果と該当するグループ名を table で表示します。
tbl = array2table(results,"VariableNames", ... ["Group A","Group B","Lower Limit","A-B","Upper Limit","P-value"]); tbl.("Group A")=gnames(tbl.("Group A")); tbl.("Group B")=gnames(tbl.("Group B"))
tbl=6×6 table
Group A Group B Lower Limit A-B Upper Limit P-value
______________ ______________ ___________ _____ ___________ _________
{'g1=1,g2=hi'} {'g1=2,g2=hi'} -6.8604 -4.4 -1.9396 0.027249
{'g1=1,g2=hi'} {'g1=1,g2=lo'} 4.4896 6.95 9.4104 0.016983
{'g1=1,g2=hi'} {'g1=2,g2=lo'} 6.1396 8.6 11.06 0.013586
{'g1=2,g2=hi'} {'g1=1,g2=lo'} 8.8896 11.35 13.81 0.010114
{'g1=2,g2=hi'} {'g1=2,g2=lo'} 10.54 13 15.46 0.0087375
{'g1=1,g2=lo'} {'g1=2,g2=lo'} -0.8104 1.65 4.1104 0.07375
関数 multcompare は、2 つのグループ化変数 g1 および g2 についてグループ (水準) の組み合わせを比較します。たとえば、この行列の 1 行目は、g1 の水準 1 と g2 の水準 hi の組み合わせが g1 の水準 2 と g2 の水準 hi の組み合わせと同じ平均応答値になっていることを示しています。この検定に対応する "p" 値は 0.0272 なので、平均応答が有意に異なっていることがわかります。この結果は、図からもわかります。青いバーは、g1 の水準 1 と g2 の水準 hi の組み合わせについて平均応答の比較区間を示しています。赤いバーは、他のグループの組み合わせについて平均応答の比較区間を示しています。どの赤いバーも青いバーと重なっていないので、g1 の水準 1 と g2 の水準 hi の組み合わせの平均応答が他のグループの組み合わせの平均応答と有意に異なっていることがわかります。
入力引数
標本データ。数値ベクトルを指定します。
データ型: single | double
グループ化変数 (y に含まれている観測値の因子と因子水準)。cell 配列を指定します。group の各セルには、y に含まれている観測値をいずれかの因子に関して識別する因子水準のリストを格納します。各セル内のリストは categorical 配列、数値ベクトル、文字行列、string 配列、または文字ベクトルが格納されている 1 列の cell 配列にすることができ、要素の数は y と同じでなければなりません。
既定の設定では、anovan はすべてのグループ化変数を固定効果として扱います。
たとえば、小学生の成績に対する性別、学校、教育方法の影響を調査する研究では、グループ化変数を次のように指定します。
例: {'Gender','School','Method'}
データ型: cell
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、名前と値をそれぞれコンマを使って区切り、Name を引用符で囲みます。
例: 'alpha',0.01,'model','interaction','sstype',2 は、タイプ II の二乗和を使用して主効果と 2 次交互作用の 99% 信頼限界および p 値を計算するよう anovan に指定します。
信頼限界の有意水準。'alpha' と 0 ~ 1 の範囲にあるスカラー値をコンマ区切りのペアとして指定します。値が α の場合、信頼水準は 100 × (1 – α)% です。
例: 'alpha',0.01 は 99% 信頼区間に対応します。
データ型: single | double
連続予測子のインジケーターは、どのグループ化変数を、カテゴリカル予測子ではなく連続予測子として処理すべきかを表します。'continuous' とインデックスのベクトルをコンマ区切りのペアとして指定します。
たとえば、3 つのグループ化変数があり、2 番目が連続の場合、次のように指定します。
例: 'continuous',[2]
データ型: single | double
ANOVA 表を表示するためのインジケーター。'display' と、'on' または 'off' をコンマ区切りのペアとして指定します。'display' が 'off' の場合、anovan は出力引数のみを返し、標準的な ANOVA 表を図としては表示しません。
例: 'display','off'
モデルのタイプ。'model' と次のいずれかのペアをコンマで区切って指定します。
'linear'—'linear'モデル (既定値) は、N 主効果に対する帰無仮説について、p 値のみを計算します。'interaction'―'interaction'モデルでは、N 個の主効果と の 2 因子交互作用に対する帰無仮説について p 値を計算します。'full'—'full'は、N 主効果とすべての水準の交互作用に対する帰無仮説について、p 値を計算します。整数 ― モデル タイプとして k ≤ N である整数値の k を指定します。
anovanでは、k 番目の水準までのすべての交互作用水準が計算されます。たとえば、3 という値は、主効果と 2 因子および 3 因子の交互作用を意味します。k = 1 および k = 2 という値は、それぞれ'linear'および'interaction'を指定することと同じです。k = N という値は、'full'を指定することと同じです。項の行列 ― 項定義の行列。関数
x2fxの入力と同じ形式を使用します。すべての入力は、(高次ではない)0または1でなければなりません。anovanで計算する主要項と交互作用項をより詳細に制御するため、主要項と交互作用項のそれぞれについて 1 つの行がある行列を ANOVA モデルに含めるように指定できます。N 個の 0 または 1 が含まれているベクトルを使用して、各行で 1 つの項を定義します。次の表に、因子 A、B および C がある 3 因子 ANOVA のコード化を示します。行列の行 分散分析項 [1 0 0]主要項 A
[0 1 0]主要項 B
[0 0 1]主要項 C
[1 1 0]交互作用項 AB
[1 0 1]交互作用項 AC
[0 1 1]交互作用項 BC
[1 1 1]交互作用項 ABC
たとえば、A、B、C という 3 つの因子がある場合に
'model',[0 1 0;0 0 1;0 1 1]を指定すると、anovanは主効果 B および C と交互作用効果 BC について検定を行います、。項の行列を簡単に生成するには、出力引数
termsを変更します。この出力引数では、上記の形式を使用して現在のモデルの項がコード化されています。たとえば、anovanがtermsに対して[0 1 0;0 0 1;0 1 1]を返した場合、交互作用 BC が有意でないとすると、modelに[0 1 0;0 0 1]を指定することで、主効果 B および C について ANOVA を再計算できます。
例: 'model',[0 1 0;0 0 1;0 1 1]
例: 'model','interaction'
データ型: char | string | single | double
グループ化変数間の入れ子関係。'nested' と行列 M のコンマ区切りのペアとして指定します。この行列は 0 と 1 で構成され、変数 i が変数 j で入れ子にされている場合に M(i,j) = 1 になっている必要があります。
連続変数で入れ子を指定することはできません。
たとえば、2 つのグループ化変数 District および School があり、School が District で入れ子にされている場合、この関係は次のように表すことができます。
例: 'nested',[0 0;1 0]
データ型: single | double
確率変数のインジケーターは、どのグループ化変数が変量効果をもつかを表します。'random' とインジケーターのベクトルをコンマ区切りのペアとして指定します。既定では、anovan はすべてのグループ化変数が固定効果をもつものとして扱います。
交互作用項における変数のいずれかが変量効果をもつ場合、anovan では交互作用項に変量効果があるとして扱います。
例: 'random',[3]
データ型: single | double
二乗和のタイプ。'sstype' と次のいずれかのコンマ区切りのペアとして指定します。
1 ― タイプ I の二乗和。その項を、それより前に列挙された項がすでに含まれている近似に加算することで取得される、残差の二乗和における減少分です。
2 ― タイプ II の二乗和。その項を、その項が含まれていない他のすべての項で構成されるモデルに加算することで取得される、残差の二乗和における減少分です。
3 ― タイプ III の二乗和。その項を、他のすべての項で構成されるモデルに加算することで取得される、残差の二乗和における減少分です。ただし、それらの効果は、モデルを推定可能にする通常の "シグマ制約" に限定されます。
'h'— 階層モデル。タイプ II に似ていますが、連続的な因子とカテゴリカル因子を使用して項の階層を決定します。
任意の項に対する二乗和は 2 つのモデルを比較することで決まります。主効果が含まれており交互作用は含まれていないモデルの場合、sstype の値は不均衡なデータに対する計算のみに影響を与えます。
2 つの因子およびそれらの交互作用をもつモデルを当てはめると仮定します。項は A、B、AB という順序で現れるとします。R(·) はモデルの残差二乗和を表すとします。したがって、R(A, B, AB) はモデル全体を当てはめた場合の残差二乗和、R(A) は A の主効果のみを当てはめた場合の残差二乗和、R(1) は平均値のみを当てはめた場合の残差二乗和です。3 種類の二乗和は次のようになります。
| 用語 | タイプ 1 の二乗和 | タイプ 2 の二乗和 | タイプ 3 の二乗和 |
|---|---|---|---|
A | R(1) – R(A) | R(B) – R(A, B) | R(B, AB) – R(A, B, AB) |
B | R(A) – R(A, B) | R(A) – R(A, B) | R(A, AB) – R(A, B, AB) |
AB | R(A, B) – R(A, B, AB) | R(A, B) – R(A, B, AB) | R(A, B) – R(A, B, AB) |
タイプ 3 の二乗和のモデルには、シグマ制約が付されています。したがって、R(B, AB) を当てはめるとき、AB 効果の配列は B の各値について A で合計 0 となり、A の各値について B で合計 0 となります。
例: 'sstype','h'
データ型: single | double | char | string
グループ化変数の名前。'varnames' と文字行列、string 配列、または文字ベクトルの cell 配列から構成されるコンマ区切りのペアとして指定します。
例: 'varnames',{'Gender','City'}
データ型: char | string | cell
出力引数
p 値。ベクトルとして返されます。
出力ベクトル p は、指定した N 個の主効果と交互作用項に対する帰無仮説についての p 値です。要素 p(1) には、因子 A のすべての水準にある標本が同じ母集団から抽出されたという帰無仮説についての p 値が格納されます。要素 p(2) には、因子 B のすべての水準にある標本が同じ母集団から抽出されたという帰無仮説についての p 値が格納されます。他の要素も同様です。
たとえば、3 つの因子 A、B、C および 'model',[0 1 0;0 0 1;0 1 1] を指定した場合、出力ベクトル p には、主効果 B と C および交互作用効果 BC に関する帰無仮説の p 値がそれぞれ含まれています。
ある因子に対応する p 値が十分に小さい場合、少なくとも 1 つのグループ平均が他のグループ平均と有意に異なることがわかります。つまり、その因子による主効果があることを意味します。p 値が 0.05 または 0.01 未満の場合、一般的に有意な結果であると言えます。
ANOVA 表。cell 配列として返されます。この ANOVA 表には、7 つの列があります。
| 列名 | 定義 |
|---|---|
source | 変動性の原因 |
SS | 各原因による二乗和 |
df | 各原因に関連付けられている自由度 |
MS | 各原因の平均二乗 (比率 SS/df) |
Singular? | 項の特異性の指標 |
F | F 統計量 (平均二乗の比率) |
Prob>F | p 値 (F 統計量が検定統計量の計算値より大きい値になる確率)。anovan では、F 分布の cdf からこれらの確率が導き出されます。 |
名前と値のペアの引数 random を使用して 1 つ以上のグループ化変数をランダムとして指定した場合、ANOVA 表には次の列も含まれます。
| 列名 | 定義 |
|---|---|
Type | 各ソースのタイプ。固定効果の場合は 'fixed'、変量効果の場合は 'random'。 |
Expected MS | 平均二乗について予想される値のテキスト表現。Q(source) は source の二次関数を、V(source) は source の分散を表す。 |
MS denom | F 統計量の分母。 |
d.f. denom | F 統計量の分母の自由度。 |
Denom. defn. | F 統計量の分母のテキスト表現。MS(source) は source の平均二乗を表す。 |
Var. est. | 分散成分の推定値。 |
Var. lower bnd | 分散成分推定値の 95% 信頼区間の下限。 |
Var. upper bnd | 分散成分推定値の 95% 信頼区間の上限。 |
関数 multcompare による多重比較検定で使用する統計量。構造体として返されます。
anovan では、ある因子 (より一般的には項) の複数のグループ (水準) が同じ効果をもつという仮説を、異なる効果をもつグループがあるという対立仮説に対して評価します。水準のどのペアで有意差があり、どのペアで有意差がないかを確認する検定を実行した方が良い場合もあります。このような検定は、関数 multcompare で stats 構造体を入力として指定することによって実行できます。
stats 構造帯には、関数 multcompare を使用して多重比較検定を行うために必要な他のフィールド数に加えて、以下のフィールドを含みます。
| フィールド | 説明 |
|---|---|
| 推定された係数 |
| 各係数に対する項目名 |
| 各項目に対するグループ化変数値の行列 |
| 当てはめられたモデルからの残差 |
名前と値のペアの引数 random を使用して 1 つ以上のグループ化変数をランダムとして指定した場合、構造体 stats には次のフィールドも含まれます。
| フィールド | 説明 |
|---|---|
| 期待された平均二乗 |
| 分母の定義 |
| 無作為な項目の名前 |
| 分散成分の推定 (無作為な項目に対して 1 つ) |
| 分散成分の信頼区間 |
主要項と交互作用項。行列として返されます。この項は、入力 model について上記で説明した形式と同じ形式で出力行列 terms にエンコードされます。この形式で model 自体を指定した場合、同じ行列が terms に返されます。
代替機能
anovan を使用する代わりに、関数 anova を使用して anova オブジェクトを作成できます。関数 anova には次の利点があります。
関数
anovaでは、ANOVA モデルのタイプ、二乗和のタイプ、カテゴリカルとして扱う因子を指定できます。anovaでは、table の予測子と応答の入力引数もサポートされます。anovaオブジェクトのプロパティには、anovanで返される出力に加えて以下が含まれます。ANOVA モデルの式
当てはめられる ANOVA モデルの係数
残差
因子と応答データ
anovaオブジェクトを当てはめた後に、anovaのオブジェクト関数を使用して追加の解析を実行できます。たとえば、ANOVA の平均の多重比較についての対話型プロットを作成したり、因子の各値の平均応答推定を取得したり、分散成分推定を計算したりできます。
参照
[1] Dunn, O.J., and V.A. Clark. Applied Statistics: Analysis of Variance and Regression. New York: Wiley, 1974.
[2] Goodnight, J.H., and F.M. Speed. Computing Expected Mean Squares. Cary, NC: SAS Institute, 1978.
[3] Seber, G. A. F., and A. J. Lee. Linear Regression Analysis. 2nd ed. Hoboken, NJ: Wiley-Interscience, 2003.
バージョン履歴
R2006a より前に導入
参考
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)