このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
anovan
多因子分散分析
構文
説明
は、1 つ以上の p
= anovan(y
,group
,Name,Value
)Name,Value
ペア引数で指定された追加オプションを使用して、多因子 (n 因子) ANOVA の p 値のベクトルを返します。
たとえば、どの予測子変数が連続的であるかや、どのタイプの二乗和を使用するかを指定できます。
[
から返される構造体 p
,tbl
,stats
] = anovan(___)stats
を使用して、多重比較検定を実行できるようになります。これにより、どのグループ平均のペアが有意に異なるかを判別できます。このような検定を実行するには、構造体 stats
を入力引数として指定し、関数 multcompare
を使用します。
例
3 因子 ANOVA
標本データを読み込みます。
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 値は、対応する交互作用が有意ではないことを示しています。
不平衡な設計の 2 因子 ANOVA
標本データを読み込みます。
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 なので有意です。
3 因子 ANOVA の多重比較
標本データを読み込みます。
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
の組み合わせの平均応答が他のグループの組み合わせの平均応答と有意に異なっていることがわかります。
入力引数
y
— 標本データ
数値ベクトル
標本データ。数値ベクトルを指定します。
データ型: single
| double
group
— グループ化変数
cell 配列
グループ化変数 (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.05 (既定値) | 0 ~ 1 の範囲のスカラー値
信頼限界の有意水準。'alpha'
と 0 ~ 1 の範囲にあるスカラー値をコンマ区切りのペアとして指定します。値が α の場合、信頼度は 100 × (1 – α)% です。
例: 'alpha',0.01
は 99% 信頼区間に対応します。
データ型: single
| double
continuous
— 連続予測子のインジケーター
インデックスのベクトル
連続予測子のインジケーターは、どのグループ化変数を、カテゴリカル予測子ではなく連続予測子として処理すべきかを表します。'continuous'
とインデックスのベクトルをコンマ区切りのペアとして指定します。
たとえば、3 つのグループ化変数があり、2 番目が連続の場合、次のように指定します。
例: 'continuous',[2]
データ型: single
| double
display
— ANOVA 表を表示するためのインジケーター
'on'
(既定値) | 'off'
ANOVA 表を表示するためのインジケーター。'display'
と、'on'
または 'off'
をコンマ区切りのペアとして指定します。'display'
が 'off'
の場合、anovan
は出力引数のみを返し、標準的な ANOVA 表を図としては表示しません。
例: 'display','off'
model
— モデルのタイプ
'linear'
(既定値) | 'interaction'
| 'full'
| 整数値 | 項の行列
モデルのタイプ。'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
— 入れ子関係
0 と 1 から構成される行列
グループ化変数間の入れ子関係。'nested'
と行列 M のコンマ区切りのペアとして指定します。この行列は 0 と 1 で構成され、変数 i が変数 j で入れ子にされている場合に M(i,j) = 1 になっている必要があります。
連続変数で入れ子を指定することはできません。
たとえば、2 つのグループ化変数 District および School があり、School が District で入れ子にされている場合、この関係は次のように表すことができます。
例: 'nested',[0 0;1 0]
データ型: single
| double
random
— 変量効果をもつ変数のインジケーター
インデックスのベクトル
確率変数のインジケーターは、どのグループ化変数が変量効果をもつかを表します。'random'
とインジケーターのベクトルをコンマ区切りのペアとして指定します。既定では、anovan
はすべてのグループ化変数が固定効果をもつものとして扱います。
交互作用項における変数のいずれかが変量効果をもつ場合、anovan
では交互作用項に変量効果があるとして扱います。
例: 'random',[3]
データ型: single
| double
sstype
— 二乗和のタイプ
3 (既定値) | 1 | 2 | 'h'
二乗和のタイプ。'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
— グループ化変数の名前
X1,X2,...,XN
(既定値) | 文字行列 | string 配列 | 文字ベクトルの cell 配列
グループ化変数の名前。'varnames'
と文字行列、string 配列、または文字ベクトルの cell 配列から構成されるコンマ区切りのペアとして指定します。
例: 'varnames',{'Gender','City'}
データ型: char
| string
| cell
出力引数
p
— p 値
ベクトル
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 未満の場合、一般的に有意な結果であると言えます。
tbl
— ANOVA 表
cell 配列
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 の 2 次関数を、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% 信頼区間の上限。 |
stats
— 統計量
構造体
関数 multcompare
による多重比較検定で使用する統計量。構造体として返されます。
anovan
では、ある因子 (より一般的には項) の複数のグループ (レベル) が同じ効果をもつという仮説を、異なる効果をもつグループがあるという対立仮説に対して評価します。水準のどのペアで有意差があり、どのペアで有意差がないかを確認する検定を実行した方が良い場合もあります。このような検定は、関数 multcompare
で stats
構造体を入力として指定することによって実行できます。
stats
構造帯には、関数 multcompare
を使用して多重比較検定を行うために必要な他のフィールド数に加えて、以下のフィールドを含みます。
フィールド | 説明 |
---|---|
| 推定された係数 |
| 各係数に対する項目名 |
| 各項目に対するグループ化変数値の行列 |
| 近似されたモデルからの残差 |
名前と値のペアの引数 random
を使用して 1 つ以上のグループ化変数をランダムとして指定した場合、構造体 stats
には次のフィールドも含まれます。
フィールド | 説明 |
---|---|
| 期待された平均二乗 |
| 分母の定義 |
| 無作為な項目の名前 |
| 分散成分の推定 (無作為な項目に対して 1 つ) |
| 分散成分の信頼区間 |
terms
— 主要項と交互作用項
行列
主要項と交互作用項。行列として返されます。この項は、入力 model
について上記で説明した形式と同じ形式で出力行列 terms
にエンコードされます。この形式で model
自体を指定した場合、同じ行列が terms
に返されます。
参照
[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 コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)