ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

addTerms

線形回帰モデルに項を追加

説明

NewMdl = addTerms(mdl,terms) は、mdl の入力データおよび設定を使用し、terms の項を追加して、あてはめた線形回帰モデルを返します。

すべて折りたたむ

交互作用がない carsmall データセットの線形回帰モデルを作成してから、交互作用項を追加します。

carsmall データセットを読み込み、重量およびモデル年の関数として MPG のモデルを作成します。

load carsmall
tbl = table(MPG,Weight);
tbl.Year = categorical(Model_Year);
mdl = fitlm(tbl,'MPG ~ Year + Weight^2')
mdl = 
Linear regression model:
    MPG ~ 1 + Weight + Year + Weight^2

Estimated Coefficients:
                    Estimate         SE         tStat       pValue  
                   __________    __________    _______    __________

    (Intercept)        54.206        4.7117     11.505    2.6648e-19
    Weight          -0.016404     0.0031249    -5.2493    1.0283e-06
    Year_76            2.0887       0.71491     2.9215     0.0044137
    Year_82            8.1864       0.81531     10.041    2.6364e-16
    Weight^2       1.5573e-06    4.9454e-07      3.149     0.0022303


Number of observations: 94, Error degrees of freedom: 89
Root Mean Squared Error: 2.78
R-squared: 0.885,  Adjusted R-Squared: 0.88
F-statistic vs. constant model: 172, p-value = 5.52e-41

このモデルには、InterceptWeightYear_76Year_82Weight^2 という 5 つの項が含まれています。Year_76Year_82 は、3 つの異なる値をもつカテゴリカル変数 Year の指標変数です。

変数 Year と変数 Weight の間の交互作用項を mdl に追加します。

terms = 'Year*Weight';
NewMdl = addTerms(mdl,terms)
NewMdl = 
Linear regression model:
    MPG ~ 1 + Weight*Year + Weight^2

Estimated Coefficients:
                       Estimate          SE         tStat        pValue  
                      ___________    __________    ________    __________

    (Intercept)            48.045         6.779      7.0874    3.3967e-10
    Weight              -0.012624     0.0041455     -3.0454     0.0030751
    Year_76                2.7768        3.0538     0.90931        0.3657
    Year_82                16.416        4.9802      3.2962     0.0014196
    Weight:Year_76    -0.00020693    0.00092403    -0.22394       0.82333
    Weight:Year_82     -0.0032574     0.0018919     -1.7217      0.088673
    Weight^2           1.0121e-06      6.12e-07      1.6538       0.10177


Number of observations: 94, Error degrees of freedom: 87
Root Mean Squared Error: 2.76
R-squared: 0.89,  Adjusted R-Squared: 0.882
F-statistic vs. constant model: 117, p-value = 1.88e-39

NewMdl には、Weight*Year_76 および Weight*Year_82 という 2 つの項が追加されています。

入力引数

すべて折りたたむ

線形回帰モデル。fitlm または stepwiselm を使用して作成した LinearModel オブジェクトを指定します。

回帰モデル mdl に追加する項。次のいずれかを指定します。

  • 1 つ以上の項を表す、ウィルキンソンの表記法による式。

  • t 行 p 列の項行列。t は項の個数、p は mdl 内の予測子変数の個数です。T(i,j) の値は、項 i の変数 j の指数です。

    たとえば、AB および C という 3 つの変数がこの順序で mdl に含まれているとします。T の各行は 1 つの項を表します。

    • [0 0 0] — 定数項 (切片)

    • [0 1 0]B (A^0 * B^1 * C^0 と等価)

    • [1 0 1]A*C

    • [2 0 0]A^2

    • [0 1 2]B*(C^2)

addTerms は、カテゴリカル予測子の指標変数のグループを単一の変数として扱います。したがって、モデルに追加する指標変数を指定することはできません。モデルに追加するカテゴリカル予測子が指定された場合、addTerms は予測子の指標変数のグループを一度に追加します。指標変数を手動で作成してそれぞれを独立した変数として扱う方法を説明した例については、step の使用による線形回帰モデルの修正を参照してください。

出力引数

すべて折りたたむ

項が追加された線形回帰モデル。LinearModel オブジェクトとして返されます。NewMdl は、mdl の入力データおよび設定と共に terms で指定された追加項を使用して新しくあてはめたモデルです。

入力引数 mdl を上書きするには、新しくあてはめたモデルを mdl に代入します。

mdl = addTerms(mdl,terms);

詳細

すべて折りたたむ

ウィルキンソンの表記法

ウィルキンソンの表記法は、モデルに存在する項を記述します。この表記法は、モデルに存在する項に関係するものであり、それらの項の乗数 (係数) に関係するものではありません。

ウィルキンソンの表記法では、以下の記号を使用します。

  • + は、次の変数を含むことを意味します。

  • は、次の変数を含まないことを意味します。

  • : は、項の積である交互作用を定義します。

  • * は、交互作用と、より低い次数の項すべてを定義します。

  • ^ は、* を繰り返した場合とまったく同じ方法で予測子をべき乗にします。このため、^ には、より低い次数の項も含まれます。

  • () は、項をグループ化します。

次の表に、ウィルキンソンの表記法の代表的な例を示します。

ウィルキンソンの表記法標準表記の項
1定数 (切片) 項
A^kk は正の整数AA2、...、Ak
A + BAB
A*BABA*B
A:BA*B のみ
–BB は含めない
A*B + CABCA*B
A + B + C + A:BABCA*B
A*B*C – A:B:CABCA*BA*CB*C
A*(B + C)ABCA*BA*C

Statistics and Machine Learning Toolbox™ 表記は、–1 を使用して項を明示的に削除しない限り、常に定数項を含みます。

詳細は、ウィルキンソンの表記法を参照してください。

アルゴリズム

  • addTerms では、カテゴリカル予測子が次のように扱われます。

    • L 個のレベル (カテゴリ) があるカテゴリカル予測子をもつモデルには、L – 1 個の予測子変数が含まれています。1 番目のカテゴリが基準レベルとして使用されるので、基準レベルに対する指標変数はモデルに含まれません。カテゴリカル予測子のデータ型が categorical である場合、categories を使用してカテゴリの順序をチェックし、reordercats を使用してカテゴリを並べ替えることにより、基準レベルをカスタマイズできます。

    • addTerms は、L – 1 個の指標変数のグループを単一の変数として扱います。指標変数を個別の予測子変数として扱うには、dummyvar を使用して指標変数を手動で作成します。そして、モデルをあてはめるときに、カテゴリカル変数の基準レベルに対応するものを除く指標変数を使用します。カテゴリカル予測子 X について dummyvar(X) のすべての列と切片項を予測子として指定した場合、計画行列はランク落ちとなります。

    • L 個のレベルをもつカテゴリカル予測子と連続予測子の間の交互作用項は、L – 1 個の指標変数と連続予測子の要素単位の積から構成されます。

    • L 個のレベルをもつカテゴリカル予測子と M 個のレベルをもつカテゴリカル予測子の間の交互作用項は、2 つのカテゴリカル予測子のレベルについて可能なすべての組み合わせを含めるため、(L – 1)*(M – 1) 個の指標変数から構成されます。

    • 指標の二乗はそれ自体に等しいので、より次数が高い項をカテゴリカル予測子に対して指定することはできません。

代替機能

  • stepwiselm を使用して開始モデルの項を指定し、項を追加または削除しても有益ではなくなるまでモデルの改善を続けます。

  • 特定の項をモデルから削除するには、removeTerms を使用します。

  • 項の追加または削除によってモデルを最適に改善するには、step を使用します。

R2012a で導入