anova
線形回帰モデルの分散分析
説明
例
hospital データ セットの線形回帰モデルから成分 ANOVA 表を作成します。
hospital データ セットを読み込み、年齢および性別の関数として血圧のモデルを作成します。
load hospital tbl = table(hospital.Age,hospital.Sex,hospital.BloodPressure(:,2), ... 'VariableNames',{'Age','Sex','BloodPressure'}); tbl.Sex = categorical(tbl.Sex); mdl = fitlm(tbl,'BloodPressure ~ Sex + Age^2')
mdl =
Linear regression model:
BloodPressure ~ 1 + Age + Sex + Age^2
Estimated Coefficients:
Estimate SE tStat pValue
_________ ________ ________ _________
(Intercept) 63.942 19.194 3.3314 0.0012275
Age 0.90673 1.0442 0.86837 0.38736
Sex_Male 3.0019 1.3765 2.1808 0.031643
Age^2 -0.011275 0.013853 -0.81389 0.41772
Number of observations: 100, Error degrees of freedom: 96
Root Mean Squared Error: 6.83
R-squared: 0.0577, Adjusted R-Squared: 0.0283
F-statistic vs. constant model: 1.96, p-value = 0.125
モデルの ANOVA 表を作成します。
tbl = anova(mdl)
tbl=4×5 table
SumSq DF MeanSq F pValue
______ __ ______ _______ ________
Age 18.705 1 18.705 0.40055 0.52831
Sex 222.09 1 222.09 4.7558 0.031643
Age^2 30.934 1 30.934 0.66242 0.41772
Error 4483.1 96 46.699
この表には、定数 (切片) 項を除く各項について以下の列が示されています。
SumSq— 項によって説明される二乗和。DF— 自由度。この例では、DFはモデルの各項について 1、誤差項について n-p です。ここで、n は観測値の個数、p はモデル内の係数の個数 (切片を含む) です。たとえば、このモデルでは誤差項のDFは 100 – 4 = 96 です。モデル内のいずれかの変数がカテゴリカル変数である場合、その変数のDFはカテゴリに対して作成された指標変数の個数 (カテゴリ数 – 1) です。MeanSq—MeanSq = SumSq/DFによって定義される平均二乗。たとえば、誤差項の平均二乗、つまり平均二乗誤差 (MSE) は 4.4831e+03/96 = 46.6991 です。F— 対応する係数がゼロであるという帰無仮説を検定するための F 統計量の値。F = MeanSq/MSEによって計算されます。MSEは平均二乗誤差です。帰無仮説が真である場合、F 統計量は F 分布に従います。分子の自由度は対応する項のDFの値、分母の自由度は n - p です。この例では、各 F 統計量は 分布に従います。pValue— F 統計量の値の p 値。たとえば、Ageの p 値 0.5283 は、モデル内の他の項に対して 5% の有意水準ではAgeが有意ではないことを示します。
hospital データ セットの線形回帰モデルから要約 ANOVA 表を作成します。
hospital データ セットを読み込み、年齢および性別の関数として血圧のモデルを作成します。
load hospital tbl = table(hospital.Age,hospital.Sex,hospital.BloodPressure(:,2), ... 'VariableNames',{'Age','Sex','BloodPressure'}); tbl.Sex = categorical(tbl.Sex); mdl = fitlm(tbl,'BloodPressure ~ Sex + Age^2')
mdl =
Linear regression model:
BloodPressure ~ 1 + Age + Sex + Age^2
Estimated Coefficients:
Estimate SE tStat pValue
_________ ________ ________ _________
(Intercept) 63.942 19.194 3.3314 0.0012275
Age 0.90673 1.0442 0.86837 0.38736
Sex_Male 3.0019 1.3765 2.1808 0.031643
Age^2 -0.011275 0.013853 -0.81389 0.41772
Number of observations: 100, Error degrees of freedom: 96
Root Mean Squared Error: 6.83
R-squared: 0.0577, Adjusted R-Squared: 0.0283
F-statistic vs. constant model: 1.96, p-value = 0.125
モデルの要約 ANOVA 表を作成します。
tbl = anova(mdl,'summary')tbl=7×5 table
SumSq DF MeanSq F pValue
______ __ ______ _______ ________
Total 4757.8 99 48.059
Model 274.73 3 91.577 1.961 0.12501
. Linear 243.8 2 121.9 2.6103 0.078726
. Nonlinear 30.934 1 30.934 0.66242 0.41772
Residual 4483.1 96 46.699
. Lack of fit 1483.1 39 38.028 0.72253 0.85732
. Pure error 3000 57 52.632
この表には、Total、Model、Residual という項のグループに対する検定が示されています。
Total— この行には、二乗総和 (SumSq)、自由度 (DF) および平均二乗誤差 (MeanSq) が示されています。MeanSq = SumSq/DFであることに注意してください。Model— この行には、SumSq、DF、MeanSq、F 統計量の値 (F)、および p 値 (pValue) が含まれています。このモデルには非線形項 (Age^2) が含まれているので、anovaは線形項 (AgeおよびSex) によって説明されるSumSqおよび非線形項 (Age^2) によって説明されるSumSqという 2 つの部分にModelの二乗和 (SumSq) を分割します。対応する F 統計量は、線形項の有意性と非線形項の有意性を別々のグループとして検定するためのものです。非線形グループはAge^2の項のみから構成されているので、成分 ANOVA 表におけるAge^2の項と同じ p 値になります。Residual— この行には、SumSq、DF、MeanSq、FおよびpValueが含まれています。このデータ セットには反復が含まれているので、anovaは残差SumSqを反復の部分 (Pure error) と残りの部分 (Lack of fit) に分割します。anovaは、不適合を検定するため、反復について計算されたモデルに依存しない分散の推定値とモデルの残差を比較することにより、F 統計量の値を計算します。この F 統計量の値は、不適合の証拠を示していません。
カテゴリカル予測子が含まれている線形回帰モデルを当てはめます。モデルの基準水準を制御するため、カテゴリカル予測子のカテゴリの順序を並べ替えます。次に、anovaを使用してカテゴリカル変数の有意性を検定します。
カテゴリカル予測子をもつモデル
carsmall データ セットを読み込み、Model_Year の関数として MPG の線形回帰モデルを作成します。数値ベクトル Model_Year をカテゴリカル変数として扱うため、名前と値のペアの引数 'CategoricalVars' を使用して予測子を指定します。
load carsmall mdl = fitlm(Model_Year,MPG,'CategoricalVars',1,'VarNames',{'Model_Year','MPG'})
mdl =
Linear regression model:
MPG ~ 1 + Model_Year
Estimated Coefficients:
Estimate SE tStat pValue
________ ______ ______ __________
(Intercept) 17.69 1.0328 17.127 3.2371e-30
Model_Year_76 3.8839 1.4059 2.7625 0.0069402
Model_Year_82 14.02 1.4369 9.7571 8.2164e-16
Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531, Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15
この表示のモデル式 MPG ~ 1 + Model_Year は、次の式に対応します。
,
と は指標変数であり、それぞれ Model_Year の値が 76 および 82 である場合に値が 1 になります。変数 Model_Year には 3 種類の値が格納されます。これは、関数 unique を使用してチェックできます。
unique(Model_Year)
ans = 3×1
70
76
82
fitlm は、基準水準として Model_Year の最小値 ('70') を選択し、2 つの指標変数 および を作成します。3 つの指標変数 (各水準について 1 つ) と切片項をモデルに含めると計画行列がランク落ちとなるので、このモデルには 2 つの指標変数のみが含まれています。
すべての指標変数をもつモデル
mdl のモデル式は、3 つの指標変数があり切片項はない次のようなモデルとして解釈できます。
.
または、手動で指標変数を作成しモデル式を指定することにより、3 つの指標変数があり切片項はないモデルを作成できます。
temp_Year = dummyvar(categorical(Model_Year));
Model_Year_70 = temp_Year(:,1);
Model_Year_76 = temp_Year(:,2);
Model_Year_82 = temp_Year(:,3);
tbl = table(Model_Year_70,Model_Year_76,Model_Year_82,MPG);
mdl = fitlm(tbl,'MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82 - 1')mdl =
Linear regression model:
MPG ~ Model_Year_70 + Model_Year_76 + Model_Year_82
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ ______ __________
Model_Year_70 17.69 1.0328 17.127 3.2371e-30
Model_Year_76 21.574 0.95387 22.617 4.0156e-39
Model_Year_82 31.71 0.99896 31.743 5.2234e-51
Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
モデルの基準水準の選択
カテゴリカル変数のカテゴリの順序を変更することにより、基準水準を選択できます。まず、カテゴリカル変数 Year を作成します。
Year = categorical(Model_Year);
関数categoriesを使用して、カテゴリの順序をチェックします。
categories(Year)
ans = 3×1 cell
{'70'}
{'76'}
{'82'}
Year を予測子変数として使用する場合、fitlm は 1 番目のカテゴリ '70' を基準水準として選択します。関数reordercatsを使用して Year を並べ替えます。
Year_reordered = reordercats(Year,{'76','70','82'});
categories(Year_reordered)ans = 3×1 cell
{'76'}
{'70'}
{'82'}
Year_reordered の 1 番目のカテゴリは '76' です。Year_reordered の関数として MPG の線形回帰モデルを作成します。
mdl2 = fitlm(Year_reordered,MPG,'VarNames',{'Model_Year','MPG'})
mdl2 =
Linear regression model:
MPG ~ 1 + Model_Year
Estimated Coefficients:
Estimate SE tStat pValue
________ _______ _______ __________
(Intercept) 21.574 0.95387 22.617 4.0156e-39
Model_Year_70 -3.8839 1.4059 -2.7625 0.0069402
Model_Year_82 10.136 1.3812 7.3385 8.7634e-11
Number of observations: 94, Error degrees of freedom: 91
Root Mean Squared Error: 5.56
R-squared: 0.531, Adjusted R-Squared: 0.521
F-statistic vs. constant model: 51.6, p-value = 1.07e-15
mdl2 は、'76' を基準水準として使用し、2 つの指標変数 および を含めます。
カテゴリカル予測子の評価
mdl2 のモデル表示には、対応する係数がゼロに等しいかどうかをテストするための p 値が各項について含まれています。各 p 値は各指標変数を検定します。カテゴリカル変数 Model_Year を指標変数のグループとして調べるには、anovaを使用します。定数項を除くモデル内の各変数の ANOVA 統計量が含まれている成分 ANOVA 表を返すため、'components' (既定の設定) オプションを使用します。
anova(mdl2,'components')ans=2×5 table
SumSq DF MeanSq F pValue
______ __ ______ _____ __________
Model_Year 3190.1 2 1595.1 51.56 1.0694e-15
Error 2815.2 91 30.936
成分 ANOVA 表には変数 Model_Year の p 値が含まれており、指標変数の p 値より小さくなっています。
入力引数
線形回帰モデル オブジェクト。fitlm または stepwiselm を使用して作成した LinearModel オブジェクト、または compact を使用して作成した CompactLinearModel オブジェクトとして指定します。
各項の二乗和のタイプ。次の表のいずれかの値を指定します。
| 値 | 説明 |
|---|---|
1 | タイプ 1 の二乗和 — 先行する項が既に含まれている近似に項を追加した場合の残差二乗和の減少 |
2 | タイプ 2 の二乗和 — 他の項がすべて含まれているモデルに項を追加した場合の残差二乗和の減少 |
3 | タイプ 3 の二乗和 — 他の項がすべて含まれているモデル (ただし、モデルを推定可能にする通常の "シグマ制約" に従うように項の効果が制約されている) に項を追加した場合の残差二乗和の減少 |
'h' | 階層モデル — タイプ 2 に似ているが、連続的な因子とカテゴリカル因子の両方を使用して項の階層を決定 |
任意の項に対する二乗和は 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 となります。
タイプ 3 の二乗和の場合、次のようになります。
mdlがCompactLinearModelオブジェクトであり回帰モデルが非階層的である場合、anovaはエラーを返します。mdlがLinearModelオブジェクトであり回帰モデルが非階層的である場合、anovaは、タイプ 3 の二乗和を計算する必要があるときは常に、エフェクト コーディングを使用してモデルを再度当てはめます。mdl内の回帰モデルが階層的である場合、anovaはモデルの再当てはめを行わずに結果を計算します。
sstype は、anovatype が 'component' である場合のみ適用されます。
出力引数
ANOVA の要約統計量表。table として返されます。
tbl の内容は、anovatype で指定した ANOVA のタイプによって異なります。
anovatypeが'component'である場合、定数 (切片) 項を除くモデル内の各変数の ANOVA 統計量がtblに格納されます。この table には、各変数について以下の列が含まれています。列 説明 SumSq項によって説明される二乗和。
sstypeに応じて計算されます。DF自由度
数値変数の
DFは 1 です。カテゴリカル変数の
DFは、カテゴリに対して作成される指標変数の個数 (カテゴリ数 - 1) です。モデル表示では各指標変数に対して 1 つの行ですが、tblには各カテゴリカル変数に対して 1 つの行が格納されることに注意してください。カテゴリカル変数を指標変数のグループとして検定するには、anovaを使用します。誤差項の
DFは n – p です。n は観測値の個数、p はモデル内の係数の個数です。
MeanSqMeanSq=SumSq/DFによって定義される平均二乗。誤差項の
MeanSqは平均二乗誤差 (MSE) です。F対応する係数がゼロであるという帰無仮説を検定するための F 統計量の値。
F=MeanSq/MSEによって計算されます。帰無仮説が真である場合、F 統計量は F 分布に従います。分子の自由度は対応する項の
DFの値、分母の自由度は n – p です。pValueF 統計量の値の p 値
たとえば、成分 ANOVA 表を参照してください。
anovatypeが'summary'である場合、グループ化された項の要約統計量がtblの各行に格納されます。この table には、'component'と同じ列および以下の行が含まれています。行 説明 Total総統計
SumSq— 二乗総和。応答の平均に対する応答の偏差二乗和です。DF—ModelとResidualの自由度の合計
Modelモデル全体に対する統計
SumSq— モデルの二乗総和。応答の平均に対する近似値の偏差二乗和です。FおよびpValue— 定数項のみから構成される縮退したモデルよりモデル全体の方が有意に優れているかどうかを検定するための値を提供します。
線形項のみが
mdlに含まれている場合、anovaはModelをLinearとNonLinearに分解しません。Linear線形項の統計
SumSq— 線形項の二乗和。モデルの二乗和と非線形項の二乗和の差です。FおよびpValue— 定数項のみから構成される縮退したモデルより線形項のみから構成されるモデルの方が優れているかどうかを検定するための値を提供します。anovaは完全なモデルに基づく平均二乗誤差を使用してこの F 値を計算するので、非線形項を削除して検定を繰り返すことにより得られる F 値はこの行の値と同じではありません。
Nonlinear非線形項の統計
SumSq— 非線形 (高次または交互作用) 項の二乗和。線形項のみを保持し非線形項をすべて削除した場合の残差二乗和の増加です。FおよびpValue— 線形項のみから構成される小さいモデルより完全なモデルの方が有意に優れているかどうかを検定するための値を提供します。
Residual残差の統計
SumSq— 残差二乗和。残差の値の二乗の合計です。MeanSq— 平均二乗誤差。Model、LinearおよびNonLinearの F 統計量の値を計算するために使用されます。
mdlが完全なLinearModelオブジェクトであり、標本データに反復 (同じ予測子値を共有する複数の観測値) が含まれている場合、anovaは反復される観測値の二乗和 (Lack of fit) と残りの二乗和 (Pure error) に残差二乗和を分解します。Lack of fit不適合の統計
SumSq— 不適合による二乗和。残差の二乗和と反復の二乗和の差です。FおよびpValue— F 統計量の値は、純粋な誤差のMeanSqに対する不適合のMeanSqの比率です。この比率は、残差の変動が反復の変動より大きいかどうかを調べることにより、バイアスの検定を提供します。小さい p 値は、モデルに項を追加すると近似が改善される可能性があることを示します。
Pure error純粋な誤差の統計
SumSq— 反復の二乗和。予測子の値が同じである点の集合を探索し、各集合内で平均に対する偏差の二乗和を計算して、計算した値をプールすることにより得られます。MeanSq— 応答の、モデルに依存しない純粋な誤差の分散の推定値。
たとえば、要約 ANOVA 表を参照してください。
拡張機能
この関数は、GPU 配列を完全にサポートします。詳細は、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2012a で導入
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)