anova
説明
作成
構文
説明
は、aov = anova(tbl,responseVarName)tbl の変数を因子および応答データとして使用します。引数 responseVarName で、応答データが格納された変数を指定します。
は、ウィルキンソンの表記法で ANOVA モデルを指定します。aov = anova(tbl,formula)formula の項では、tbl の変数名のみを使用します。
では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、カテゴリカルまたはランダムにする因子を指定したり、二乗和のタイプを指定したりできます。aov = anova(___,Name=Value)
入力引数
応答データ。行列または数値ベクトルとして指定します。
yが行列の場合、anovaはyの各列を 1 因子 ANOVA の個別の因子の値として扱います。この形式では、各列の母集団平均が等しいかどうかが評価されます。この設計は、各グループに均等に分割されたデータに対して 1 因子 ANOVA を実行する場合 (平衡型 ANOVA) に使用します。
yが数値ベクトルの場合、入力引数factorsまたはtblも指定しなければなりません。1 因子 ANOVA の場合、factorsは、各要素がyの対応する要素の因子の値を表す文字ベクトルの cell 配列またはベクトルです。
多因子 ANOVA の場合、
factorsは、各 cell が個別の因子として扱われるベクトルの cell 配列です。あるいは、多因子 ANOVA の場合は、各変数が個別の因子として扱われる tabletblを指定できます。この設計は、2 因子 ANOVA または多因子 ANOVA を実行する場合、あるいは因子の値がyの異なる数の観測値に対応する場合 (不平衡な ANOVA) に使用します。
メモ
関数 anova は、y の NaN 値、<undefined> 値、空の文字、空の string を無視します。factors または tbl に NaN 値、<undefined> 値、空の文字、空の string が格納されている場合、関数は y の対応する観測値を無視します。関数で空または NaN の値を無視した後の観測値の数がそれぞれの因子の値で同じであれば、ANOVA は平衡型になります。それ以外の場合、関数は不平衡な ANOVA を実行します。
データ型: single | double
ANOVA の因子と因子の値。数値ベクトル、logical ベクトル、categorical ベクトル、string ベクトル、文字ベクトル、またはベクトルの cell 配列として指定します。因子と因子の値は、それぞれグループ化変数およびグループ名と呼ばれることもあります。
1 因子 ANOVA の場合、factors は、各要素が y の同じ位置にある観測値の因子の値を表す文字ベクトルのベクトルまたは cell 配列です。関数 anova は、ANOVA の実行時に y の観測値を因子の値ごとにグループ化します。factors の長さは y の長さと同じでなければなりません。

2 因子 ANOVA または多因子 ANOVA の場合、factors は、各 cell が異なる因子に対応するベクトルの cell 配列です。各ベクトルに対応する因子の値が格納され、その長さは y と同じでなければなりません。因子の値は y の観測値にインデックスで関連付けられます。
factors に NaN 値が含まれている場合、anova は y の対応する観測値を無視します。
因子の詳細については、グループ化変数を参照してください。
メモ
factors または tbl に NaN 値、<undefined> 値、空の文字、空の string が格納されている場合、関数 anova は y の対応する観測値を無視します。関数で空または NaN の値を無視した後の観測値の数がそれぞれの因子の値で同じであれば、ANOVA は平衡型になります。それ以外の場合、関数は不平衡な ANOVA を実行します。
例: [1,2,1,3,1,...,3,1]
例: ["white","red","white",...,"black","red"]
例: school=["Springfield","Springfield","Springfield","Arlington","Springfield","Arlington","Arlington"]; monthnumber=[6,12,1,9,4,6,2]; factors={school,monthnumber};
データ型: single | double | logical | categorical | char | string | cell
因子、因子の値、および応答データ。table として指定します。tbl の変数には、数値ベクトル、logical ベクトル、categorical ベクトル、文字ベクトル、string 要素、または文字の cell 配列を格納できます。tbl を指定する場合、応答データ y、responseVarName、または formula も指定しなければなりません。
yで応答データを指定する場合、table 変数は ANOVA の因子のみを表します。tblの変数の因子の値は、yの同じ位置にある観測値に対応します。tblの行数はyの長さと同じでなければなりません。tblにNaN値が含まれている場合、anovaはyの対応する観測値を無視します。yを指定しない場合は、入力引数responseVarNameまたはformulaを使用して、tblのどの変数に応答データが格納されているかを示さなければなりません。名前と値の引数FactorNamesを使用して、ANOVA で使用するtblの因子のサブセットを選択することもできます。関数anovaは、tblの因子変数の値を同じ行の応答データに関連付けます。
メモ
factors または tbl に NaN 値、<undefined> 値、空の文字、空の string が格納されている場合、関数 anova は y の対応する観測値を無視します。関数で空または NaN の値を無視した後の観測値の数がそれぞれの因子の値で同じであれば、ANOVA は平衡型になります。それ以外の場合、関数は不平衡な ANOVA を実行します。
例: mountain=table(altitude,temperature,soilpH); anova(mountain,"soilpH")
データ型: table
応答データの名前。string スカラーまたは文字ベクトルとして指定します。responseVarName は、tbl のどの変数に応答データが格納されているかを示します。responseVarName を指定する場合、入力引数 tbl も指定しなければなりません。
例: "r"
データ型: char | string
ANOVA モデル。ウィルキンソンの表記法による string スカラーまたは文字ベクトルとして指定します。anova では、かっことコンマを使用した入れ子になった因子の指定が formula でサポートされます。たとえば、formula に項 f1(f2) を含めることで、因子 f1 が因子 f2 の内部で入れ子になっていることを指定できます。f1 が 2 つの因子 f2 と f3 の内部で入れ子になっていることを指定するには、項 f1(f2,f3) を含めます。formula を指定する場合、tbl も指定しなければなりません。
例: "r ~ f1 + f2 + f3 + f1:f2:f3"
例: "MPG ~ Origin + Model(Origin)"
データ型: char | string
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: anova(factors,y,CategoricalFactors=[1 2],FactorNames=["school" "major" "age"],ResponseName="GPA") は、factors の最初の 2 つの因子をカテゴリカルとして指定し、因子の名前を "school"、"major"、および "age" と指定し、応答変数の名前を "GPA" と指定します。
カテゴリカルとして扱う因子。数値ベクトル、logical ベクトル、string ベクトル、または文字ベクトルの cell 配列として指定します。CategoricalFactors が既定値の "all" に設定されている場合、関数 anova はすべての因子をカテゴリカルとして扱います。
CategoricalFactors は次のいずれかとして指定します。
1 から N までのインデックスを使用する数値ベクトル。ここで、N は因子変数の数です。関数
anovaは、CategoricalFactorsのインデックスをもつ因子をカテゴリカルとして扱います。因子のインデックスは、行列yの列、factorsの cell、またはtblの列における順序です。長さ N の logical ベクトル。
trueというエントリは、対応する因子がカテゴリカルであることを意味します。因子の名前の string ベクトルまたは cell 配列。因子の名前は
tblまたはFactorNamesの名前に一致しなければなりません。
例: CategoricalFactors=["Location" "Smoker"]
例: CategoricalFactors=[1 3 4]
データ型: single | double | logical | char | string | cell
因子の名前。string ベクトルまたは文字ベクトルの cell 配列として指定します。
anovaの呼び出しでtblを指定する場合、FactorNamesはtblの table 変数のサブセットでなければなりません。anovaは、FactorNamesで指定された因子のみを使用します。この場合、FactorNamesの既定値はtblの因子変数の名前のコレクションです。anovaの呼び出しで行列yまたはfactorsを指定する場合、FactorNamesに任意の名前を指定できます。この場合、FactorNamesの既定値は["Factor1","Factor2",…,"FactorN"]です。ここで、N は因子の数です。
formula を指定した場合、anova は FactorNames を無視します。
例: FactorNames=["time","latitude"]
データ型: char | string | cell
当てはめる ANOVA モデルのタイプ。次の表のいずれかのオプションか、整数、string スカラー、文字ベクトル、または項の行列として指定します。ModelSpecification の既定値は "linear" です。
| オプション | ANOVA モデルに含まれる項 |
|---|---|
"linear" (既定の設定) | 主効果 (線形) 項 |
"interactions" | 主効果とペア単位の交互作用項 |
"purequadratic" | 主効果と 2 次主効果。このオプションを使用するには、すべての因子が連続でなければなりません。すべての因子を連続として指定するには CategoricalFactors = [] を設定します。 |
"quadratic" | 主効果、2 次主効果、およびペア単位の交互作用項。このオプションを使用するには、すべての因子が連続でなければなりません。 |
"polyIJK" | 1 番目の因子は次数 I まで、2 番目の因子は次数 J までの多項式の項。それ以降も同様です。交互作用項の次数が主要項の最大指数を超えることはありません。各因子の次数を指定する必要があります。 |
"full" | 主効果とすべての交互作用項 |
k 水準までのすべての主効果と交互作用水準を含めるには、ModelSpecification を k と等しく設定します。ModelSpecification が整数の場合、ANOVA モデルにおける交互作用項の最大水準は ModelSpecification と因子数のうちの小さい方になります。
formula を指定した場合、anova は ModelSpecification を無視します。
また、次のいずれかを使用して ANOVA 回帰モデルの項を指定できます。
因子ごとに 1 つの列をもつ二項行列または単項行列 T。ANOVA モデルの各項は T の行に対応する積です。行要素は対応する因子の指数です。たとえば、
T(i,:) = [1 2 1]は、項iが であることを意味します。関数anovaでは、ANOVA モデルの定数項は自動的に含まれるため、項の行列にゼロの行を含める必要はありません。1 つ以上の項を表すウィルキンソンの表記法による文字ベクトルまたは string スカラー式。
anovaでは、かっことコンマを使用した入れ子になった因子の指定がformulaで記述したとおりにサポートされます。式で使用する名前は、FactorNamesまたはResponseNameに格納されている名前か、tblを指定した場合は table 変数名でなければなりません。
例: ModelSpecification="poly3212"
例: ModelSpecification=3
例: ModelSpecification="r ~ c1*c2"
例: ModelSpecification=[0 0 0;1 0 0;0 1 0;0 0 1]
データ型: single | double | char | string
固定ではなくランダムとして扱う因子。数値ベクトル、logical ベクトル、string ベクトル、または文字ベクトルの cell 配列として指定します。関数 anova は、ランダム因子が 1 つでも格納されていれば、その交互作用項をランダムとして扱います。既定値は [] で、これはすべての因子が固定であることを意味します。すべての因子をランダムとして指定するには、RandomFactors を "all" に設定します。
RandomFactors は次のいずれかとして指定します。
1 から N までのインデックスを使用する数値ベクトル。ここで、N は因子変数の数です。関数
anovaは、RandomFactorsのインデックスをもつ因子をランダムとして扱います。因子のインデックスは、行列yの列、factorsの cell、またはtblの列における順序です。長さ N の logical ベクトル。
trueというエントリは、対応する因子がランダムであることを意味します。因子の名前の string ベクトルまたは cell 配列。因子の名前は
tblまたはFactorNamesの名前に一致しなければなりません。
例: RandomFactors=[1]
例: RandomFactors=[1 0 0]
データ型: single | double | logical | char | string | cell
応答変数の名前。string スカラーまたは文字ベクトルとして指定します。responseVarName または formula を指定した場合、anova は ResponseName を無視します。
例: ResponseName="soilpH"
データ型: char | string
ANOVA の実行に使用する二乗和のタイプ。"three"、"two"、"one"、または "hierarchical" として指定します。主効果が含まれていて交互作用は含まれていないモデルの場合、SumOfSquaresType の値は不平衡なデータの計算にのみ影響します。
項の二乗和 () は、その項を除くモデルに項を追加した場合の誤差二乗和 (SSE) の減少と定義されます。項 Term の二乗和の式は次のような形式になります。
ここで、n は観測値の数、 は応答データ、 は ANOVA の実行に使用される因子、 は Term を除くモデル、 は Term を含むモデルです。 と の両方が SumOfSquaresType で指定されます。変数 と は、それぞれ と の誤差二乗和です。 と は、次の表に示す SumOfSquaresType のオプションのいずれかを使用して指定できます。
| オプション | 二乗和のタイプ |
|---|---|
"three" (既定の設定) | は、プロパティ |
"two" | は、プロパティ |
"one" | は、プロパティ |
"hierarchical" | と の定義はタイプ II と同様ですが、Term のべき乗が Term を含む項として扱われます。 |
例: SumOfSquaresType="hierarchical"
データ型: char | string
プロパティ
このプロパティは読み取り専用です。
カテゴリカル因子のインデックス。数値ベクトルとして指定します。このプロパティは、名前と値の引数 CategoricalFactors で設定されます。
データ型: double
このプロパティは読み取り専用です。
当てはめられる ANOVA モデルの係数。double ベクトルとして指定します。関数 anova は、各カテゴリカル因子を F 個のダミー変数に展開します。ここで、F は因子の値の数です。各ダミー変数が ANOVA の実行時に異なる係数を使用して当てはめられます。連続する因子の係数は、すべての因子の値で一定になります。
たとえば、y が一連の応答データで、factor1 が連続する因子であるとします。factor2 は value1、value2、および value3 の値をもつカテゴリカル因子とします。式 "y ~ 1 + factor1 + factor2" は "y ~ 1 + factor1 + (factor2==value1) + (factor2==value2) + (factor2==value3)" に展開され、その展開された式が anova で係数を使用して当てはめられます。
データ型: single | double
このプロパティは読み取り専用です。
係数の名前。名前の string ベクトルとして指定します。関数 anova は、各カテゴリカル因子を F 個のダミー変数に展開します。ここで、F は因子の値の数です。ベクトル ExpandedFactorNames に各ダミー変数の名前が格納されます。詳細については、Coefficients を参照してください。
データ型: string
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される因子の名前。名前の string ベクトルとして指定します。このプロパティは、入力引数 tbl または名前と値の引数 FactorNames で設定されます。
データ型: string
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される因子の名前と値。table として指定します。table 変数の名前が因子の名前で、それぞれの変数に対応する因子の値が格納されます。モデルの当てはめに使用される因子が table として与えられていない場合、anova はそれらを因子ごとに 1 つの列をもつ table に変換します。
このプロパティは次のいずれかで設定されます。
入力引数
tbl行列の入力引数
yおよび名前と値の引数FactorNamesの組み合わせベクトルの入力引数
y、入力引数factors、および名前と値の引数FactorNamesの組み合わせ
データ型: table
このプロパティは読み取り専用です。
ANOVA モデル。LinearFormulaWithNesting オブジェクトとして指定します。このプロパティは、入力引数 formula または名前と値の引数 ModelSpecification で設定されます。
モデル メトリクス。table として指定します。table Metrics の変数は次のとおりです。
MSE — 平均二乗誤差。
RMSE — 平方根平均二乗誤差 (MSE の平方根)。
SSE — 誤差二乗和。
SSR — 回帰二乗和。
SST — 二乗総和。
RSquared — 決定係数 ()。
AdjustedRSquared — 係数の数に応じて調整された の値。この値は式 で与えられます。ここで、n は観測値の数、p は係数の数です。 の値が高いほど、ANOVA モデルの適合が高いことを意味します。
データ型: table
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される観測値の数。正の整数として指定します。
データ型: double
このプロパティは読み取り専用です。
ランダム因子のインデックス。数値ベクトルとして指定します。このプロパティは、名前と値の引数 RandomFactors で設定されます。
データ型: double
このプロパティは読み取り専用です。
残差の値。n 行 2 列の table として指定します。ここで、n は観測値の数です。Residuals には 2 つの変数があります。
Raw には、観測した値から当てはめた値を減算した値が格納されます。
Pearson には、生の残差を平方根平均二乗誤差 (RMSE) で除算した値が格納されます。
データ型: table
このプロパティは読み取り専用です。
ANOVA モデルを当てはめるときに使用される二乗和のタイプ。"three"、"two"、"one"、または "hierarchical" として指定します。このプロパティは、名前と値の引数 SumOfSquaresType で設定されます。
データ型: string
このプロパティは読み取り専用です。
応答変数の名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、入力引数 responseVarName または名前と値の引数 ResponseName で設定されます。
データ型: char | string
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される応答データ。数値ベクトルとして指定します。このプロパティは、入力引数 y、または入力引数 tbl と入力引数 responseVarName の組み合わせで設定されます。
データ型: single | double
オブジェクト関数
boxchart | 分散分析 (ANOVA) のボックス チャート (箱ひげ図) |
groupmeans | 分散分析 (ANOVA) の平均応答推定 |
multcompare | 分散分析 (ANOVA) の平均の多重比較 |
plotComparisons | 分散分析 (ANOVA) の平均の多重比較についての対話型プロット |
stats | 分散分析 (ANOVA) の表 |
varianceComponent | 分散分析 (ANOVA) の分散成分推定 |
例
ポップコーン生産量のデータを読み込みます。
load popcorn.mat 6 行 3 列の行列 popcorn の列に、3 つの異なるブランドについてのポップコーン生産量 (カップ数) の観測値が格納されています。1 因子 ANOVA を実行して、ポップコーンのブランドはポップコーン生産量に影響しないという帰無仮説を検定します。
aov = anova(popcorn)
aov =
1-way anova, constrained (Type III) sums of squares.
Y ~ 1 + Factor1
SumOfSquares DF MeanSquares F pValue
____________ __ ___________ ____ __________
Factor1 15.75 2 7.875 18.9 7.9603e-05
Error 6.25 15 0.41667
Total 22 17
Properties, Methods
aov は 1 因子 ANOVA の結果を格納する anova オブジェクトです。
ANOVA 表の Factor1 の行はモデル項 Factor1 についての統計、Error の行はモデル全体についての統計を示しています。SumOfSquares と DF の列で二乗和と自由度がそれぞれ与えられます。Total の自由度は、観測値の総数から 1 を減算した 18 – 1 = 17 です。Factor1 の自由度は、因子の値の数から 1 を減算した 3 – 1 = 2 です。Error の自由度は、全体の自由度から Factor1 の自由度を減算した 17 – 2 = 15 です。
MeanSquares の列で与えられる平均二乗は式 SumOfSquares/DF で計算されます。"F" 統計量は平均二乗の比率で、7.875/0.41667 = 18.9 です。"F" 統計量は自由度が 2 と 15 の "F" 分布に従います。"p" 値は累積分布関数 (cdf) を使用して計算されます。"F" 統計量の "p" 値が十分に小さく、帰無仮説を有意水準 0.01 で棄却できます。したがって、ポップコーンのブランドはポップコーン生産量に対して有意な影響を与えます。
ポップコーン生産量のデータを読み込みます。
load popcorn.mat6 行 3 列の行列 popcorn の列に、Gourmet、National、および Generic の各ブランドについてのポップコーン生産量 (カップ数) の観測値が格納されています。行列の最初の 3 行はオイル タイプの製造器具で製造したポップコーン、最後の 3 行はエアー タイプの製造器具で製造したポップコーンに対応しています。
ブランドと製造器具タイプの因子の値を格納する string ベクトルを作成します。関数 repmat を使用して string のコピーを繰り返します。
brand = [repmat("Gourmet",6,1);repmat("National",6,1);repmat("Generic",6,1)]; poppertype = [repmat("Air",3,1);repmat("Oil",3,1);repmat("Air",3,1);repmat("Oil",3,1);repmat("Air",3,1);repmat("Oil",3,1)]; factors = {brand,poppertype};
2 因子 ANOVA を実行して、ポップコーンのブランドや製造器具のタイプはポップコーン生産量に影響しないという帰無仮説を検定します。
aov = anova(factors,popcorn(:),FactorNames=["Brand" "PopperType"])
aov =
2-way anova, constrained (Type III) sums of squares.
Y ~ 1 + Brand + PopperType
SumOfSquares DF MeanSquares F pValue
____________ __ ___________ ___ __________
Brand 15.75 2 7.875 63 1e-07
PopperType 4.5 1 4.5 36 3.2548e-05
Error 1.75 14 0.125
Total 22 17
Properties, Methods
aov は 2 因子 ANOVA の結果を格納する anova オブジェクトです。"p" 値が小さいことから、ブランドと製造器具タイプの両方がポップコーン生産量に対して統計的に有意な影響を与えることがわかります。
平均応答推定を計算して、ポップコーン生産量が最も多いブランドと製造器具タイプの組み合わせを確認します。
groupmeans(aov,["Brand" "PopperType"])
ans=6×6 table
Brand PopperType Mean SE MeanLower MeanUpper
__________ __________ ____ _______ _________ _________
"Gourmet" "Air" 5.75 0.16667 5.0329 6.4671
"National" "Air" 4.25 0.16667 3.5329 4.9671
"Generic" "Air" 3.5 0.16667 2.7829 4.2171
"Gourmet" "Oil" 6.75 0.16667 6.0329 7.4671
"National" "Oil" 5.25 0.16667 4.5329 5.9671
"Generic" "Oil" 4.5 0.16667 3.7829 5.2171
平均応答推定とその標準誤差および 95% の信頼限界が表に表示されます。平均応答推定から、Gourmet のブランドとオイル タイプの製造器具の組み合わせでポップコーン生産量が最も多いことがわかります。
患者の標本データを読み込みます。
load patients.mat変数 Age と Smoker から因子の table を作成します。
tbl = table(Age,Smoker,VariableNames=["Age" "SmokingStatus"]);
因子 SmokingStatus はランダムにサンプリングされるカテゴリカル因子で、Age は連続する因子です。2 因子 ANOVA を実行して、年齢や喫煙状況は収縮期血圧に影響しないという帰無仮説を検定します。
aov = anova(tbl,Systolic,CategoricalFactors=2,RandomFactors=2)
aov =
2-way anova, constrained (Type III) sums of squares.
Y ~ 1 + Age + SmokingStatus
SumOfSquares DF MeanSquares F pValue
____________ __ ___________ ______ __________
Age 37.562 1 37.562 1.6577 0.20098
SmokingStatus 2182.9 1 2182.9 96.337 3.3613e-16
Error 2198 97 22.659
Total 4461.2 99
Properties, Methods
aov は 2 因子 ANOVA の結果を格納する anova オブジェクトです。Age の "p" 値は 0.05 より大きくなっています。95% の信頼水準では、年齢は収縮期血圧に対して統計的に有意な影響を与えないという帰無仮説を棄却するだけの十分な証拠がありません。SmokingStatus の "p" 値は 0.05 より小さく、喫煙状況は収縮期血圧に対して統計的に有意な影響を与えることを示しています。
ランダム因子 SmokingStatus の変動性が SmokingStatus の平均二乗に影響するかどうかを調べるために、オブジェクト関数 varianceComponent と stats を使用します。
v = varianceComponent(aov)
v=2×3 table
VarianceComponent VarianceComponentLower VarianceComponentUpper
_________________ ______________________ ______________________
SmokingStatus 48.31 9.0308 49707
Error 22.659 17.425 30.68
[~,ems] = stats(aov)
ems=3×5 table
Type ExpectedMeanSquares MeanSquaresDenominator DFDenominator FDenominator
________ ___________________________________ ______________________ _____________ ____________
Age "fixed" "5135.47*Q(Age)+V(Error)" 22.659 97 MS(Error)
SmokingStatus "random" "44.7172*V(SmokingStatus)+V(Error)" 22.659 97 MS(Error)
Error "random" "V(Error)"
VarianceComponent の値を ExpectedMeanSquares の SmokingStatus の式に挿入すると、44.7172*48.3098+22.6594 = 2.1829e+03 になります。SmokingStatus の分散成分が平均二乗の期待値にどの程度影響するかを確認するために、ExpectedMeanSquares の SmokingStatus の項を ExpectedMeanSquares で除算します。結果は 44.7172*48.3098/2.1829e+03 = 0.9896 になります。この計算から、SmokingStatus の平均二乗の期待値に対する SmokingStatus の分散成分の寄与がほぼ 99% であることがわかります。
120 人の学生が受けた 5 つの試験の結果を含むデータを読み込みます。
load examgrades.mat数学、生物、歴史、文学の各試験と複合科目の総合試験についての変数を含む table を作成します。
subject = ["math" "biology" "history" "literature" "comprehensive"]; grades = table(grades(:,1),grades(:,2),grades(:,3),grades(:,4),grades(:,5),VariableNames=subject)
grades=120×5 table
math biology history literature comprehensive
____ _______ _______ __________ _____________
65 77 69 75 69
61 74 70 66 68
81 80 71 74 79
88 76 80 88 79
69 77 74 69 76
89 93 78 77 80
55 64 60 50 63
84 83 80 77 78
86 75 81 87 79
84 82 86 92 85
71 70 73 81 79
81 88 80 79 83
84 78 80 74 80
81 77 81 83 79
78 66 90 84 75
67 74 73 76 72
⋮
連続する因子 math、biology、history、および literature と応答データ comprehensive について、4 因子 ANOVA を実行します。
aov = anova(grades,"comprehensive",CategoricalFactors = [])aov =
N-way anova, constrained (Type III) sums of squares.
comprehensive ~ 1 + math + biology + history + literature
SumOfSquares DF MeanSquares F pValue
____________ ___ ___________ ______ __________
math 58.973 1 58.973 6.1964 0.014231
biology 100.35 1 100.35 10.544 0.0015275
history 243.89 1 243.89 25.626 1.5901e-06
literature 152.22 1 152.22 15.994 0.00011269
Error 1094.5 115 9.5173
Total 3291 119
Properties, Methods
aov は 4 因子 ANOVA の結果を格納する anova オブジェクトです。すべての因子の "p" 値がいずれも 0.05 より小さく、各科目の試験を使用して学生の総合試験の成績を予測できることを示しています。ANOVA モデルの推定される係数を表示します。
coef = aov.Coefficients
coef = 5×1
21.9901
0.0997
0.1805
0.2563
0.1701
歴史の試験に対応する係数が最も大きくなっています。したがって、history が comprehensive の予測値に最も寄与します。
ポップコーン生産量のデータを読み込みます。
load popcorn.mat6 行 3 列の行列 popcorn の列に、Gourmet、National、および Generic の各ブランドについてのポップコーン生産量の観測値が格納されています。行列の最初の 3 行はオイル タイプの製造器具で製造したポップコーン、最後の 3 行はエアー タイプの製造器具で製造したポップコーンに対応しています。
関数repmatとtableを使用して、ブランド、製造器具タイプ、ポップコーン生産量を表す変数を含む table を作成します。
brand = [repmat("Gourmet",6,1);repmat("National",6,1);repmat("Generic",6,1)]; poppertype = [repmat("air",3,1);repmat("oil",3,1);repmat("air",3,1);repmat("oil",3,1);repmat("air",3,1);repmat("oil",3,1)]; tbl = table(brand,poppertype,popcorn(:),VariableNames=["Brand" "PopperType" "PopcornYield"]);
2 因子 ANOVA を実行して、3 つのブランドと 2 つの製造器具タイプのいずれでもポップコーン生産量が同じであるという帰無仮説を検定します。ウィルキンソンの表記法を使用して ANOVA モデルの式を指定します。
aovLinear = anova(tbl,"PopcornYield ~ Brand + PopperType")aovLinear =
2-way anova, constrained (Type III) sums of squares.
PopcornYield ~ 1 + Brand + PopperType
SumOfSquares DF MeanSquares F pValue
____________ __ ___________ ___ __________
Brand 15.75 2 7.875 63 1e-07
PopperType 4.5 1 4.5 36 3.2548e-05
Error 1.75 14 0.125
Total 22 17
Properties, Methods
aovLinear は 2 因子 ANOVA の結果を格納する anova オブジェクトです。aovLinear の ANOVA モデルは線形であり、交互作用項は含まれていません。"p" 値が小さいことから、ブランドと製造器具タイプの両方がポップコーン生産量に対して有意な影響を与えることがわかります。
ブランドと製造器具タイプの間の交互作用がポップコーン生産量に有意な影響を与えるかどうかを調べるために、交互作用項 Brand:PopperType を含むモデルで 2 因子 ANOVA を実行します。
aovInteraction = anova(tbl,"PopcornYield ~ Brand + PopperType + Brand:PopperType")aovInteraction =
2-way anova, constrained (Type III) sums of squares.
PopcornYield ~ 1 + Brand*PopperType
SumOfSquares DF MeanSquares F pValue
____________ __ ___________ ____ __________
Brand 15.75 2 7.875 56.7 7.679e-07
PopperType 4.5 1 4.5 32.4 0.00010037
Brand:PopperType 0.083333 2 0.041667 0.3 0.74622
Error 1.6667 12 0.13889
Total 22 17
Properties, Methods
anova オブジェクト aovInteraction の ANOVA モデルには、交互作用項 Brand:PopperType が含まれています。Brand:PopperType の項の "p" 値は 0.05 より大きくなっています。したがって、ブランドと製造器具タイプにポップコーン生産量に対する交互作用効果があると結論付けるだけの十分な証拠はありません。
anova オブジェクトの Metrics プロパティで、ANOVA モデルの当てはめに関する統計を確認できます。どちらのモデルが応答データにより適合するかを特定するために、aovLinear と aovInteraction の Metrics プロパティを表示します。
aovLinear.Metrics
ans=1×7 table
MSE RMSE SSE SSR SST RSquared AdjustedRSquared
_____ _______ ____ _____ ___ ________ ________________
0.125 0.35355 1.75 20.25 22 0.92045 0.88731
aovInteraction.Metrics
ans=1×7 table
MSE RMSE SSE SSR SST RSquared AdjustedRSquared
_______ _______ ______ ______ ___ ________ ________________
0.13889 0.37268 1.6667 20.333 22 0.92424 0.78535
メトリクスの table から、交互作用モデルよりも線形モデルの方が平均二乗誤差 (MSE) がわずかに小さいことがわかります。自由度調整済み決定係数の値は線形モデルの方が高くなっています。これらのメトリクスから、線形モデルの方が交互作用モデルよりもポップコーンのデータに適合すると考えられます。
自動車の標本データを読み込みます。
load carbig.mat変数 Model には自動車の型式のデータが格納され、変数 Origin には自動車が製造された国のデータが格納されています。Model と Origin を末尾に空白を含む文字配列から string ベクトルに変換します。
Model = strtrim(string(Model)); Origin = strtrim(string(Origin));
変数 MPG には自動車の燃費のデータが格納されています。日本と米国で製造された自動車の型式、生産国、および燃費のデータを含む table を作成します。
idxJapanUSA = (Origin=="Japan"|Origin=="USA"); tbl = table(Model(idxJapanUSA),Origin(idxJapanUSA),MPG(idxJapanUSA),VariableNames=["Origin" "Model" "MPG"]);
日本と米国で、それぞれ固有の一連の型式を製造しています。そのため、因子 Model は因子 Origin で入れ子になっています。入れ子形式の 2 因子 ANOVA を実行して、いずれの型式と生産国でも自動車の燃費が同じであるという帰無仮説を検定します。
aov = anova(tbl,"MPG ~ Origin + Model(Origin)")aov =
2-way anova, constrained (Type III) sums of squares.
MPG ~ 1 + Origin + Model(Origin)
SumOfSquares DF MeanSquares F pValue
____________ ___ ___________ ______ __________
Origin 18873 244 77.347 10.138 3.0582e-25
Model(Origin) 0 0 0 0 NaN
Error 633.26 83 7.6296
Total 19506 327
Properties, Methods
"p" 値が小さく、帰無仮説を 99% の信頼水準で棄却できることを示しています。自動車の型式と生産国が自動車の燃費に統計的に有意な影響を与えると結論付けるだけの十分な証拠が存在します。
アルゴリズム
ANOVA では、応答データの変動全体を次の 2 つの成分に分割します。
ANOVA モデルで記述される因子データと応答データの関係における変動。この変動は回帰二乗和 (SSR) と呼ばれます。SSR は方程式 で表されます。ここで、n は標本の観測値の数、 は観測値 i の予測値、 は標本平均です。
ANOVA モデルの誤差項によるデータの変動。これは誤差二乗和 (SSE) と呼ばれます。SSE は方程式 で表されます。ここで、 は観測値 i の値です。
上記の分割に基づいて、二乗総和 (SST) は次のように表されます。
関数 anova は、その項を比較モデルに追加した場合の SSE の減少を測定することにより、ANOVA モデルの項の二乗和 () を計算します。比較モデルは aov.SumOfSquaresType で与えられます (詳細については SumOfSquaresType を参照)。
ANOVA では、SSE と を使用して F 検定を実行します。カテゴリカルの主効果についての帰無仮説は、項の係数がすべてのグループで同じであることです。連続する項と交互作用項の帰無仮説は、項の係数がゼロであることです。係数がゼロであるということは、その項の値が応答データに影響を与えないことを意味します。F 統計量は次のように計算されます。
上記の式で、 は項の自由度、 は誤差の自由度、 と はそれぞれ項と誤差の平均二乗です。
関数 anova は、モデル項と誤差の行をもつ成分 ANOVA 表を表示します。ANOVA 表の列は次のとおりです。
| 列 | 定義 |
|---|---|
SumOfSquares | 二乗和 |
DF | 自由度 |
MeanSquares | 平均二乗 (比率 SumOfSquares/DF) |
F | F 統計量 (ソースの平均二乗と誤差の平均二乗の比率) |
pValue | p 値 (帰無仮説のもとで計算される F 統計量が検定統計量の計算値より大きい値になる確率)。anova では、F 分布の cdf からこの確率が導き出されます。 |
参照
[1] Wackerly, D. D., W. Mendenhall, III, and R. L. Scheaffer. Mathematical Statistics with Applications, 7th ed. Belmont, CA: Brooks/Cole, 2008.
[2] Dunn, O. J., and V. A. Clark Hoboken. Applied Statistics: Analysis of Variance and Regression. NJ: John Wiley & Sons, Inc., 1974.
バージョン履歴
R2022b で導入
参考
anova | anovan | anova2 | anova1 | 多因子 ANOVA | 1 因子 ANOVA | 2 因子 ANOVA
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)