anova
説明
作成
構文
説明
は、aov
= anova(tbl
,responseVarName
)tbl
の変数を因子および応答データとして使用します。引数 responseVarName
で、応答データが格納された変数を指定します。
は、ウィルキンソンの表記法で ANOVA モデルを指定します。aov
= anova(tbl
,formula
)formula
の項では、tbl
の変数名のみを使用します。
では、1 つ以上の名前と値の引数を使用して追加オプションを指定します。たとえば、カテゴリカルまたはランダムにする因子を指定したり、二乗和のタイプを指定したりできます。aov
= anova(___,Name=Value
)
入力引数
y
— 応答データ
行列 | 数値ベクトル
応答データ。行列または数値ベクトルとして指定します。
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
factors
— 因子と因子の値
数値ベクトル | logical ベクトル | categorical ベクトル | string ベクトル | 文字ベクトル | ベクトルの cell 配列
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
tbl
— 因子、因子の値、および応答データ
テーブル
因子、因子の値、および応答データ。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
responseVarName
— 応答データの名前
string スカラー | 文字ベクトル
応答データの名前。string スカラーまたは文字ベクトルとして指定します。responseVarName
は、tbl
のどの変数に応答データが格納されているかを示します。responseVarName
を指定する場合、入力引数 tbl
も指定しなければなりません。
例: "r"
データ型: char
| string
formula
— ANOVA モデル
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"
と指定します。
CategoricalFactors
— カテゴリカルとして扱う因子
"all"
(既定値) | 数値ベクトル | logical ベクトル | string ベクトル | 文字ベクトルの cell 配列
カテゴリカルとして扱う因子。数値ベクトル、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
FactorNames
— 因子の名前
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
ModelSpecification
— 当てはめる ANOVA モデルのタイプ
"linear"
(既定値) | "interactions"
| "purequadratic"
| "quadratic"
| "polyIJK"
| "full"
| 整数 | string スカラー | 文字ベクトル | 項の行列
当てはめる 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
RandomFactors
— ランダムとして扱う因子
"all"
| 数値ベクトル | logical ベクトル | string ベクトル | 文字ベクトルの cell 配列
固定ではなくランダムとして扱う因子。数値ベクトル、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
ResponseName
— 応答変数の名前
string スカラー | 文字ベクトル
応答変数の名前。string スカラーまたは文字ベクトルとして指定します。responseVarName
または formula
を指定した場合、anova
は ResponseName
を無視します。
例: ResponseName="soilpH"
データ型: char
| string
SumOfSquaresType
— 二乗和のタイプ
"three"
(既定値) | "two"
| "one"
| "hierarchical"
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
— カテゴリカル因子のインデックス
数値ベクトル
このプロパティは読み取り専用です。
カテゴリカル因子のインデックス。数値ベクトルとして指定します。このプロパティは、名前と値の引数 CategoricalFactors
で設定されます。
データ型: double
Coefficients
— 当てはめられる ANOVA モデルの係数
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
ExpandedFactorNames
— 係数の名前
string ベクトル
このプロパティは読み取り専用です。
係数の名前。名前の string ベクトルとして指定します。関数 anova
は、各カテゴリカル因子を F 個のダミー変数に展開します。ここで、F は因子の値の数です。ベクトル ExpandedFactorNames
に各ダミー変数の名前が格納されます。詳細については、Coefficients を参照してください。
データ型: string
FactorNames
— 因子の名前
string ベクトル
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される因子の名前。名前の string ベクトルとして指定します。このプロパティは、入力引数 tbl
または名前と値の引数 FactorNames
で設定されます。
データ型: string
Factors
— 因子の名前と値
テーブル
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される因子の名前と値。table として指定します。table 変数の名前が因子の名前で、それぞれの変数に対応する因子の値が格納されます。モデルの当てはめに使用される因子が table として与えられていない場合、anova
はそれらを因子ごとに 1 つの列をもつ table に変換します。
このプロパティは次のいずれかで設定されます。
入力引数
tbl
行列の入力引数
y
および名前と値の引数FactorNames
の組み合わせベクトルの入力引数
y
、入力引数factors
、および名前と値の引数FactorNames
の組み合わせ
データ型: table
Formula
— ANOVA モデル
LinearFormulaWithNesting
オブジェクト
このプロパティは読み取り専用です。
ANOVA モデル。LinearFormulaWithNesting
オブジェクトとして指定します。このプロパティは、入力引数 formula
または名前と値の引数 ModelSpecification
で設定されます。
Metrics
— モデル メトリクス
テーブル
モデル メトリクス。table として指定します。table Metrics
の変数は次のとおりです。
MSE — 平均二乗誤差。
RMSE — 平方根平均二乗誤差 (MSE の平方根)。
SSE — 誤差二乗和。
SSR — 回帰二乗和。
SST — 二乗総和。
RSquared — 決定係数 ()。
AdjustedRSquared — 係数の数に応じて調整された の値。この値は式 で与えられます。ここで、n は観測値の数、p は係数の数です。 の値が高いほど、ANOVA モデルの適合が高いことを意味します。
データ型: table
NumObservations
— 観測値の数
正の整数
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される観測値の数。正の整数として指定します。
データ型: double
RandomFactors
— ランダム因子のインデックス
数値ベクトル
このプロパティは読み取り専用です。
ランダム因子のインデックス。数値ベクトルとして指定します。このプロパティは、名前と値の引数 RandomFactors
で設定されます。
データ型: double
Residuals
— 残差の値
n 列 2 行の table
このプロパティは読み取り専用です。
残差の値。n 行 2 列の table として指定します。ここで、n は観測値の数です。Residuals
には 2 つの変数があります。
Raw には、観測した値から当てはめた値を減算した値が格納されます。
Pearson には、生の残差を平方根平均二乗誤差 (RMSE) で除算した値が格納されます。
データ型: table
SumOfSquaresType
— 二乗和のタイプ
"three" (既定値) | "two" | "one" | "hierarchical"
このプロパティは読み取り専用です。
ANOVA モデルを当てはめるときに使用される二乗和のタイプ。"three"、"two"、"one"、または "hierarchical" として指定します。このプロパティは、名前と値の引数 SumOfSquaresType
で設定されます。
データ型: string
ResponseName
— 応答変数の名前
string スカラー | 文字ベクトル
このプロパティは読み取り専用です。
応答変数の名前。string スカラーまたは文字ベクトルとして指定します。このプロパティは、入力引数 responseVarName
または名前と値の引数 ResponseName
で設定されます。
データ型: char
| string
Y
— 応答データ
数値ベクトル
このプロパティは読み取り専用です。
ANOVA モデルの当てはめに使用される応答データ。数値ベクトルとして指定します。このプロパティは、入力引数 y
、または入力引数 tbl
と入力引数 responseVarName
の組み合わせで設定されます。
データ型: single
| double
オブジェクト関数
boxchart | 分散分析 (ANOVA) のボックス チャート (箱ひげ図) |
groupmeans | 分散分析 (ANOVA) の平均応答推定 |
multcompare | 分散分析 (ANOVA) の平均の多重比較 |
plotComparisons | 分散分析 (ANOVA) の平均の多重比較についての対話型プロット |
stats | 分散分析 (ANOVA) の表 |
varianceComponent | 分散分析 (ANOVA) の分散成分推定 |
例
行列データについての 1 因子 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 で棄却できます。したがって、ポップコーンのブランドはポップコーン生産量に対して有意な影響を与えます。
ベクトル データについての 2 因子 ANOVA の実行
ポップコーン生産量のデータを読み込みます。
load popcorn.mat
6 行 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 のブランドとオイル タイプの製造器具の組み合わせでポップコーン生産量が最も多いことがわかります。
変量効果がある 2 因子 ANOVA の実行
患者の標本データを読み込みます。
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% であることがわかります。
table のデータについての ANOVA の実行
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
の予測値に最も寄与します。
table を使用して作成された 2 つの anova
オブジェクトの比較
ポップコーン生産量のデータを読み込みます。
load popcorn.mat
6 行 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) がわずかに小さいことがわかります。自由度調整済み決定係数の値は線形モデルの方が高くなっています。これらのメトリクスから、線形モデルの方が交互作用モデルよりもポップコーンのデータに適合すると考えられます。
入れ子形式の 2 因子 ANOVA の実行
自動車の標本データを読み込みます。
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 コマンド
次の 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)