ドキュメンテーション

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

removeTerms

線形回帰モデルから項を削除

説明

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

すべて折りたたむ

hald データセットを使用して、線形回帰モデルを作成します。p 値が大きい項を削除します。

データセットを読み込みます。

load hald
X = ingredients; % predictor variables
y = heat; % response variable

線形回帰モデルをデータにあてはめます。

mdl = fitlm(X,y)
mdl = 
Linear regression model:
    y ~ 1 + x1 + x2 + x3 + x4

Estimated Coefficients:
                   Estimate      SE        tStat       pValue 
                   ________    _______    ________    ________

    (Intercept)      62.405     70.071      0.8906     0.39913
    x1               1.5511    0.74477      2.0827    0.070822
    x2              0.51017    0.72379     0.70486      0.5009
    x3              0.10191    0.75471     0.13503     0.89592
    x4             -0.14406    0.70905    -0.20317     0.84407


Number of observations: 13, Error degrees of freedom: 8
Root Mean Squared Error: 2.45
R-squared: 0.982,  Adjusted R-Squared: 0.974
F-statistic vs. constant model: 111, p-value = 4.76e-07

p 値が大きい項 x3 および x4 を削除します。

terms = 'x3 + x4'; % terms to remove
NewMdl = removeTerms(mdl,terms)
NewMdl = 
Linear regression model:
    y ~ 1 + x1 + x2

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)     52.577       2.2862    22.998    5.4566e-10
    x1              1.4683       0.1213    12.105    2.6922e-07
    x2             0.66225     0.045855    14.442     5.029e-08


Number of observations: 13, Error degrees of freedom: 10
Root Mean Squared Error: 2.41
R-squared: 0.979,  Adjusted R-Squared: 0.974
F-statistic vs. constant model: 230, p-value = 4.41e-09

NewMdl の自由度調整済み決定係数の値は前のモデルと同じ (0.974) なので、新しいモデルでもあてはめが適切であることがわかります。新しいモデルのすべての項で、p 値が非常に小さくなっています。

入力引数

すべて折りたたむ

線形回帰モデル。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)

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

出力引数

すべて折りたたむ

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

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

mdl = removeTerms(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 を使用して項を明示的に削除しない限り、常に定数項を含みます。

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

アルゴリズム

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

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

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

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

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

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

代替機能

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

  • 特定の項をモデルに追加するには、addTerms を使用します。

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

R2012a で導入