ドキュメンテーション

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

step

クラス: GeneralizedLinearModel

項の追加または削除による一般化線形回帰モデルの改良

構文

mdl1 = step(mdl)
mdl1 = step(mdl,Name,Value)

説明

mdl1 = step(mdl) は、ステップワイズ回帰を使用して 1 つの予測子を追加または削除した、mdl に基づく一般化線形モデルを返します。

mdl1 = step(mdl,Name,Value) では、1 つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば、項の追加または削除に使用する基準や、実行する最大ステップ数を指定できます。

入力引数

すべて展開する

データに対する応答のリンクの最小二乗近似を表す一般化線形モデル。GeneralizedLinearModel オブジェクトとして返されます。

一般化線形モデル オブジェクト mdl のプロパティとメソッドについては、GeneralizedLinearModel クラスのページを参照してください。

名前と値のペアの引数

オプションの Name,Value 引数のコンマ区切りペアを指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を、任意の順番で指定できます。

項を追加または削除する基準。'Criterion' と以下のいずれかで構成される、コンマ区切りペアとして指定します。

  • 'Deviance' — 項の追加または削除による逸脱度の変化に対する F 検定またはカイ二乗検定の p 値。F 検定では、単一のモデルを検定します。カイ二乗検定は、2 つの異なるモデルを比較します。

  • 'sse' — 項の追加または削除による残差平方和の変化に対する F 検定の p 値。

  • 'aic' — AIC (赤池情報量基準) の値の変化。

  • 'bic' — BIC (ベイズ情報量基準) の値の変化。

  • 'rsquared' — R2 の値の増加。

  • 'adjrsquared' — 調整された R2 の値の増加。

例: 'Criterion','bic'

モデルから削除できない項を表すモデル仕様。'Lower' と、モデルの名前を表す modelspec に対するいずれかのオプションから構成されるコンマ区切りのペアとして指定します。

例: 'Lower','linear'

実行する最大ステップ数。'NSteps' と正の整数から構成されるコンマ区切りのペアとして指定します。

例: 'NSteps',5

データ型: single | double

項を追加する基準のしきい値。'PEnter' と次の表に記載されているスカラー値から構成されるコンマ区切りのペアとして指定します。

規範既定値判定
'Deviance'0.05F 統計量またはカイ二乗統計量の p 値が PEnter (追加に対する p 値) 未満である場合、項をモデルに追加します。
'SSE'0.05モデルの SSE が PEnter より小さい場合、項をモデルに追加します。
'AIC'0モデルの AIC の変化が PEnter より小さい場合、項をモデルに追加します。
'BIC'0モデルの BIC の変化が PEnter より小さい場合、項をモデルに追加します。
'Rsquared'0.1モデルの決定係数値の増加が PEnter より大きい場合、項をモデルに追加します。
'AdjRsquared'0モデルの自由度調整済み決定係数値の増加が PEnter より大きい場合、項をモデルに追加します。

詳細は、名前と値のペアの引数 Criterion を参照してください。

例: 'PEnter',0.075

項を削除する基準のしきい値。'PRemove' と次の表に記載されているスカラー値から構成されるコンマ区切りのペアとして指定します。

規範既定値判定
'Deviance'0.10F 統計量またはカイ二乗統計量の p 値が PRemove (削除に対する p 値) より大きい場合、項をモデルから削除します。
'SSE'0.10F 統計量の p 値が PRemove より大きい場合、項をモデルから削除します。
'AIC'0.01モデルの AIC の変化が PRemove より大きい場合、項をモデルから削除します。
'BIC'0.01モデルの BIC の変化が PRemove より大きい場合、項をモデルから削除します。
'Rsquared'0.05モデルの決定係数値の増加が PRemove より小さい場合、項をモデルから削除します。
'AdjRsquared'-0.05モデルの自由度調整済み決定係数値の増加が PRemove より小さい場合、項をモデルから削除します。

各ステップで、関数 step は項が現在のモデル内の他の項に対して冗長 (線形従属) であるかどうかもチェックします。項が現在のモデル内の他の項に線形従属している場合、関数 step は従属する項を基準値に関係なく削除します。

詳細は、名前と値のペアの引数 Criterion を参照してください。

例: 'PRemove',0.05

あてはめにおける最大の項集合を記述するモデル仕様。'Upper' とモデルを指定する modelspec のいずれかのオプションから構成されるコンマ区切りのペアとして指定します。

例: 'Upper','quadratic'

情報の表示に関する制御。'Verbose' と以下のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • 0 — すべての表示を抑制します。

  • 1 — 各ステップで実行されるアクションを表示します。

  • 2 — 評価プロセスと、各ステップで実行されるアクションを表示します。

例: 'Verbose',2

出力引数

すべて展開する

一般化線形モデル。GeneralizedLinearModel オブジェクトとして返されます。mdl を上書きするには、mdl1 として mdl を設定します。

すべて展開する

乱数データと 1 つの予測子を使用してポアソン回帰モデルに近似し、他の予測子は次のステップで処理します。

応答に予測子のうち 3 つを使用して、20 の予測子をもつ人為的なデータを生成します。

rng('default') % for reproducibility
X = randn(100,20);
mu = exp(X(:,[5 10 15])*[.4;.2;.3] + 1);
y = poissrnd(mu);

X(:,1) を唯一の予測子として使用して、一般化線形モデルを構築します。

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

Estimated Coefficients:
                   Estimate       SE       tStat       pValue  
                   ________    ________    ______    __________

    (Intercept)      1.1278    0.057487    19.618    1.0904e-85
    x1             0.061287     0.04848    1.2642       0.20617


100 observations, 98 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 1.59, p-value = 0.208

step を使用してモデルに 1 つの変数を追加します。

mdl1 = step(mdl)
1. Adding x5, Deviance = 134.2976, Chi2Stat = 50.80176, PValue = 1.021821e-12
mdl1 = 
Generalized linear regression model:
    log(y) ~ 1 + x1 + x5
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE        tStat       pValue  
                   ________    ________    _______    __________

    (Intercept)      1.0418    0.062341     16.712      1.07e-62
    x1             0.018803    0.049916    0.37671       0.70639
    x5              0.47881    0.067875     7.0542    1.7357e-12


100 observations, 97 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 52.4, p-value = 4.21e-12

step を使用してモデルに別の変数を追加します。

mdl1 = step(mdl1)
2. Adding x15, Deviance = 105.9973, Chi2Stat = 28.30027, PValue = 1.038814e-07
mdl1 = 
Generalized linear regression model:
    log(y) ~ 1 + x1 + x5 + x15
    Distribution = Poisson

Estimated Coefficients:
                   Estimate       SE        tStat       pValue  
                   ________    ________    _______    __________

    (Intercept)      1.0459      0.0627     16.681    1.7975e-62
    x1             0.026907     0.05003    0.53782        0.5907
    x5               0.3983    0.068376     5.8251    5.7073e-09
    x15             0.28949    0.053992     5.3618    8.2375e-08


100 observations, 96 error degrees of freedom
Dispersion: 1
Chi^2-statistic vs. constant model: 80.7, p-value = 2.18e-17

ヒント

  • モデルに入力または削除する項を正確に制御するには、addTerms または removeTerms を使用します。

アルゴリズム

  • "ステップワイズ回帰" は、応答変数の説明としての各項の統計的な重要性に基づき、線形または一般化線形モデルの項を追加したり削除するための体系的な方法です。この方法は、まず modelspec を使用して指定される初期モデルから開始して、徐々により大きいまたはより小さいモデルの説明能力を比較していきます。

    関数 step は、変数増減法のステップワイズ回帰を使用して、最終的なモデルを決定します。各ステップで、名前と値のペアの引数 'Criterion' の値に基づいて、モデルに追加する項またはモデルから削除する項が探索されます。

    線形回帰モデルでは、'Criterion' の既定値は 'sse' です。この場合、LinearModelstepstepwiselm は、各ステップで F 統計量の p 値を使用して、ある項が存在する場合と存在しない場合のモデルを検定します。ある項が現在はモデルにない場合、帰無仮説は、項がモデルに追加された場合に係数ゼロをもつということです。帰無仮説を棄却する十分な証拠がある場合、その項がモデルに追加されます。逆に、ある項がモデルに現在ある場合、帰無仮説は、その項が係数ゼロをもつことです。帰無仮説を棄却する十分な証拠がない場合、その項がモデルから削除されます。

    'Criterion''sse' である場合、ステップワイズ回帰では以下のステップが実行されます。

    1. 初期モデルで近似します。

    2. 使用可能な一連の項の中でモデルに含まれていないものを調べます。いずれかの項に対する p 値が開始許容誤差より小さい場合 (つまり、モデルに追加すると係数がゼロになる可能性が低い場合)、p 値が最小である項を追加し、このステップを繰り返します。それ以外の場合、ステップ 3 を実行します。

    3. モデルに含まれている使用可能な項のいずれかに対する p 値が終了許容誤差より大きい場合 (つまり、係数がゼロになるという仮説を棄却できない場合)、p 値が最大である項を削除してステップ 2 に戻ります。それ以外の場合、このプロセスを終了します。

    高い次数の項は、その項のサブセットである低い次数の項のすべてもモデルに含まれている場合を除き、どの段階でも追加されません。たとえば、X1X2^2 の両方が既にモデルに含まれている場合を除き、X1:X2^2 という項の追加は試行されません。同様に、高い次数の項がモデルに残っている場合、そのサブセットである低い次数の項は削除されません。たとえば、X1:X2^2 がモデルに残っている場合、X1 または X2^2 の削除は試行されません。

    一般化線形モデルでは、'Criterion' の既定値は 'Deviance' です。GeneralizedLinearModelstepstepwiseglm は、同様の手順に従って項を追加または削除します。

    名前と値のペアの引数 'Criterion' を使用して、他の基準を指定できます。たとえば、赤池情報量基準、ベイズ情報量基準、決定係数または自由度調整済み決定係数の値の変化を、項の追加または削除の基準として指定できます。

    初期モデルに含まれている項と、項の追加および削除を行う順序によって、同じ一連の項から異なるモデルが構築される可能性があります。どのステップでもモデルが改良されなくなると、この関数は終了します。ただし、異なる初期モデルまたはステップの順序を使用しても、近似が向上するという保証はありません。この意味において、ステップワイズ モデルは、局所的には最適でも大域的には最適ではないことがあります。

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

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

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

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

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

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

    したがって、step がカテゴリカル予測子を追加または削除する場合、実際には指標変数のグループが一度に追加または削除されます。同様に、カテゴリカル予測子が含まれている交互作用項を step が追加または削除する場合、実際には、カテゴリカル予測子が含まれている交互作用項のグループが追加または削除されます。

  • step は、tblX および Y に含まれている NaN'' (空の文字ベクトル)、"" (空の string)、<missing>、および <undefined> 値を欠損値と見なします。step は、欠損値がある観測値をあてはめで使用しません。あてはめたモデルの ObservationInfo プロパティは、step が各観測値をあてはめで使用したかどうかを示します。

代替方法

stepwiseglm を使用して、開始モデルからモデルを選択し、どのステップも有益ではなくなるまで続行します。

addTerms または removeTerms を使用して、特定の項を追加または削除します。