Main Content

removeTerms

一般化線形回帰モデルからの項の削除

説明

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

すべて折りたたむ

予測子を 2 つ使用して一般化線形回帰モデルを作成した後、予測子を 1 つ削除します。

基となる 2 つの予測子 X(:,1) および X(:,2) のポアソン乱数を使って標本データを生成します。

rng('default') % For reproducibility
rndvars = randn(100,2);
X = [2 + rndvars(:,1),rndvars(:,2)];
mu = exp(1 + X*[1;2]);
y = poissrnd(mu);

ポアソン データの一般化線形回帰モデルを作成します。

mdl = fitglm(X,y,'y ~ x1 + x2','Distribution','poisson')
mdl = 
Generalized linear regression model:
    log(y) ~ 1 + x1 + x2
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE        tStat     pValue
                   ________    _________    ______    ______

    (Intercept)     1.0405      0.022122    47.034      0   
    x1              0.9968      0.003362    296.49      0   
    x2               1.987     0.0063433    313.24      0   


100 observations, 97 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 2.95e+05, p-value = 0

2 番目の予測子をモデルから削除します。

mdl1 = removeTerms(mdl,'x2')
mdl1 = 
Generalized linear regression model:
    log(y) ~ 1 + x1
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE        tStat     pValue
                   ________    _________    ______    ______

    (Intercept)     2.7784      0.014043    197.85      0   
    x1              1.1732     0.0033653     348.6      0   


100 observations, 98 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 1.25e+05, p-value = 0

入力引数

すべて折りたたむ

一般化線形回帰モデル。fitglm または stepwiseglm を使用して作成した GeneralizedLinearModel オブジェクトとして指定します。

回帰モデル mdl から削除する項。次のいずれかを指定します。

  • 1 つ以上の項を表す、ウィルキンソンの表記法による文字ベクトルまたは string スカラー式。式の変数名は、有効な MATLAB® 識別子でなければなりません。

  • t 行 p 列の項行列 T。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 は予測子の指標変数のグループを一度に削除します。

出力引数

すべて折りたたむ

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

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

mdl = removeTerms(mdl,terms);

詳細

すべて折りたたむ

ウィルキンソンの表記法

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

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

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

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

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

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

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

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

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

ウィルキンソンの表記法標準表記の項
1定数 (切片) 項
x1^kk は正の整数x1, x12, ..., x1k
x1 + x2x1, x2
x1*x2x1, x2, x1*x2
x1:x2x1*x2 のみ
–x2x2 は含めない
x1*x2 + x3x1, x2, x3, x1*x2
x1 + x2 + x3 + x1:x2x1, x2, x3, x1*x2
x1*x2*x3 – x1:x2:x3x1, x2, x3, x1*x2, x1*x3, x2*x3
x1*(x2 + x3)x1, x2, x3, x1*x2, x1*x3

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

アルゴリズム

  • 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) 個の指標変数から構成されます。

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

代替機能

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

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

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

拡張機能

バージョン履歴

R2012a で導入