ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

stepwiselm

ステップワイズ回帰の使用による線形回帰モデルの作成

構文

  • mdl = stepwiselm(ds,modelspec)
  • mdl = stepwiselm(X,y,modelspec)
  • mdl = stepwiselm(___,Name,Value)

説明

mdl = stepwiselm(ds,modelspec) は、ステップワイズ回帰を使って予測子を追加または削除して、データセット配列 ds の変数に対して線形モデルを返します。stepwiselm はフォワードおよびバックワードのステップワイズ回帰を使用して、最終的なモデルを決定します。この関数では各ステップで 'Criterion' 引数の値に基づき、モデルに追加したり、モデルから削除する項を検索します。modelspec はステップワイズ法の開始モデルです。

mdl = stepwiselm(X,y,modelspec) は、予測子を追加または削除するステップワイズ回帰を使用して、X データ配列内の予測子変数に対して、応答 y の線形モデルを作成します。modelspec は、ステップワイズ法の開始モデルです。

mdl = stepwiselm(___,Name,Value) は、前述の構文に任意の入力に対する線形モデルを作成します。1 つまたは複数の Name,Value の引数のペアによって指定された追加オプションを使用します。

たとえば、カテゴリカル変数、モデルで使用する最小または最大の項集合、実行するステップの最大数または用途の追加または削除に stepwiselm が使用する基準を指定できます。

すべて展開する

ステップワイズ回帰を使用した線形モデル

標本データを読み込みます。

load hald

hald には、13 の異なるコンクリート化合物の硬化データが含まれています。heat は180 日経過した硬化の熱です。ingredients はセメント標本の異なる原料ごとのパーセントです。

データに線形モデルを近似するモデルを入力する基準値を 0.06 に設定します。

 mdl = stepwiselm(ingredients,heat,'PEnter',0.06)
1. Adding x4, FStat = 22.7985, pValue = 0.000576232
2. Adding x1, FStat = 108.2239, pValue = 1.105281e-06
3. Adding x2, FStat = 5.0259, pValue = 0.051687
4. Removing x4, FStat = 1.8633, pValue = 0.2054

mdl = 


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

既定では、開始モデルは定数モデルです。stepwiselm は前方選択を実行し、それぞれ x4x1 および x2 を選択します。これは対応する p の値が 0.06 の PEnter より小さいためです。次に、stepwiselm は後退消去を使用してモデルから x4 を消去します。これは、x2 がモデル内に存在している場合、x4 の p 値は 0.1 という PRemove の既定値より高くなるためです。

式を使用したモデルの指定と変数の指定

データセット配列内の変数を使って、ステップワイズ回帰を実行します。を使って開始モデルを指定し、オプションの引数を使って、応答変数と予測子変数を識別します。

標本データを読み込みます。

load hospital

hospital データセット配列には、患者の性別、年齢、体重、喫煙状態が含まれています。

線形モデルを、定数項の開始モデルと予測子変数としての Smoker に適合させます。応答変数 Weight、カテゴリカル予測子変数 SexAge および Smoker を指定します。

mdl = stepwiselm(hospital,'Weight~1+Smoker',...
'ResponseVar','Weight','PredictorVars',{'Sex','Age','Smoker'},...
'CategoricalVar',{'Sex','Smoker'})
1. Adding Sex, FStat = 770.0158, pValue = 6.262758e-48
2. Removing Smoker, FStat = 0.21224, pValue = 0.64605

mdl = 

Linear regression model:
    Weight ~ 1 + Sex

Estimated Coefficients:
                   Estimate    SE        tStat     pValue     
    (Intercept)    130.47      1.1995    108.77    5.2762e-104
    Sex_Male        50.06      1.7496    28.612     2.2464e-49

Number of observations: 100, Error degrees of freedom: 98
Root Mean Squared Error: 8.73
R-squared: 0.893,  Adjusted R-Squared 0.892
F-statistic vs. constant model: 819, p-value = 2.25e-49

各ステップで、stepwiselm は追加および削除する項を検索します。最初のステップで、ステップワイズ アルゴリズムは、p の値が 6.26e-48 になっているモデルにSex を追加し、モデルから Smoker を削除します。モデル内に Sex が与えられると、変数 Smoker が重複するためです。stepwiselm の最終的な線形モデルには Sex だけが含まれます。患者の体重は、年齢または喫煙状態に基づいた場合、有意な差異はありません。

入力引数

すべて展開する

ds - 入力データデータセット配列

データセット配列として指定される入力データ。modelspecformula の場合、予測子および応答として使用される変数が指定されます。それ以外の場合、予測子変数と応答変数を指定しないときは、既定では、最後の変数が応答変数で、その他の変数が予測子変数になります。

予測子変数は数値、あるいは論理またはカテゴリカルなどのグループ化変数の型にできます (「グループ化変数」を参照してください)。応答は数値または論理でなければなりません。

応答変数として異なる列を設定するには、名前と値のペア引数 ResponseVar を使用します。列のサブセットを予測子として使用するには、名前と値のペア引数 PredictorVars を使用します。

データ型:single | double | logical

X - 予測子変数行列

n 行 p 列の行列として指定される予測子変数。ここで、n は観測値の数、p は予測子変数の数です。X の各列が 1 つの変数を表し、各行が 1 つの観測値を表します。

既定では、明示的に削除しない限り、モデルには定数項があるので、1 の列を X に含めないでください。

データ型:single | double | logical

y - 応答変数ベクトル

n 行 1 列のベクトルとして指定される応答変数。ここで、n は観測値の数です。y の各エントリは X の対応する行に対する応答です。

データ型:single | double

modelspec - 開始モデルモデルを指定する文字列 | t 行 (p+1) 列の項行列 | 'Y ~ terms' の形式の文字列

以下のいずれかとして指定される、ステップワイズ回帰の開始モデル。

  • 開始モデルのタイプを指定する文字列。

    文字列モデル タイプ
    'constant'モデルは定数 (切片) 項だけを含みます。
    'linear'モデルは各予測子に対して切片と線形項を含みます。
    'interactions'モデルは、切片、線形項、異なる予測子のペアのすべての積 (二乗項なし) を含みます。
    'purequadratic'モデルは、切片、線形項、二乗項を含みます。
    'quadratic'モデルは、切片、線形項、交互作用、二乗項を含みます。
    'polyijk'モデルは、すべての項が最初の予測子で次数 i までで、2 番目の予測子で次数 j までであるといった多項式です。数字 0 から 9 までを使用します。たとえば、'poly2111' には、1 つの定数のほかにすべての線形項と積項があり、また、予測子 1 の二乗の項を含んでいます。

    モデル内の最小または最大の項集合を指定するには、LowerUpper の名前と値のペアの引数を使用します。

  • モデル内に含める項を指定する t 行 (p+1) 列の行列。つまり項行列であり、t は項の数、p は予測子変数の数、+1 は応答変数を示します。

  • 次の形式でを表す文字列。

    'Y ~ terms',

    termsウィルキンソンの表記法 で指定します。

名前/値のペアの引数

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

例: 'Criterion','aic','Upper',interactions,'Verbose',1stepwiselm に対して、赤池情報量基準を使用し、各ステップで実行するアクションを表示し、最大でモデル内の交互作用項を含むように指示します。

'CategoricalVars' - カテゴリカル変数文字列のセル配列 | 論理インデックス ベクトルまたは数値インデックス ベクトル

近似のカテゴリカル変数。'CategoricalVars' と、データセット配列 ds のカテゴリカル変数名の文字列のセル配列、あるいはどの列がカテゴリカルであるかを示す論理インデックス ベクトルまたは数値インデックス ベクトルで構成されるコンマ区切りのペアとして指定します。

  • データがデータセット配列 ds の場合、既定では、すべてのカテゴリカル変数または論理変数、文字配列、文字列のセル配列がカテゴリカル変数として扱われます。

  • データが行列 X の場合、この名前と値のペア引数の既定値は空の行列 [] になります。つまり、指定しない限り、カテゴリカルになる変数はありません。

たとえば、以下のいずれかの例を使用して、6 つの観測値のうち観測値 2 および 3 をカテゴリカルとして指定できます。

例: 'CategoricalVars',[2,3]

例: 'CategoricalVars',logical([0 1 1 0 0 0])

データ型:single | double | logical

'Criterion' - 項を追加または削除する基準'Deviance' | 'sse' | 'aic' | 'bic' | 'rsquared' | 'adjrsquared'

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

  • 'Deviance'stepwiseglm の既定値。項の追加または削除による逸脱度における変化に関する F 検定またはカイ二乗検定の p 値。F 検定は、単一モデルを検定します。カイ二乗検定は、2 つの異なるモデルを比較します。このオプションは、stepwiselm では無効です。

  • 'sse'stepwiselm の既定値。項の追加または削除による二乗誤差の総和における変化に関する F 検定の p 値。

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

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

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

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

例: 'Criterion','bic'

'Exclude' - 除外する観測値論理インデックス ベクトルまたは数値インデックス ベクトル

近似から除外する観測値。'Exclude' と、近似から除外する観測値を示す論理インデックス ベクトルまたは数値インデックス ベクトルで構成されるコンマ区切りのペアとして指定します。

たとえば、以下のいずれかの例を使用して、6 つの観測値のうち観測値 2 および 3 を除外できます。

例: 'Exclude',[2,3]

例: 'Exclude',logical([0 1 1 0 0 0])

データ型:single | double | logical

'Intercept' - 定数項のインジケーターtrue (既定の設定) | false

近似の定数項 (切片) のインジケーター。'Intercept' と、モデルに定数項を含める true またはモデルから定数項を削除する false で構成されるコンマ区切りのペアとして指定します。

式または行列ではなく、文字列を使用してモデルを指定する場合にのみ、'Intercept' を使用します。

例: 'Intercept',false

'Lower' - 近似において最小の項集合を記述するモデル仕様'constant' (既定の設定)

近似において最小の項集合を記述するモデル仕様。'Lower' と、モデルの名前を表す modelspec に対する文字列オプションの 1 つで構成されるコンマ区切りのペアとして指定します。

例: 'Lower','linear'

'NSteps' - 実行するステップの数1 (既定の設定) | 正の整数

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

データ型:single | double

'PEnter' - 項を追加するための改善手段スカラー値

項を追加するための改善手段。'PEnter' とスカラー値で構成されるコンマ区切りのペアとして指定します。既定値は次のようになります。

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

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

例: 'PEnter',0.075

'PredictorVars' - 予測子変数文字列のセル配列 | 論理インデックス ベクトルまたは数値インデックス ベクトル

近似で使用する予測子変数。'PredictorVars' と、データセット配列 ds の変数名の文字列のセル配列、あるいはどの列が予測子変数であるかを示す論理インデックス ベクトルまたは数値インデックス ベクトルで構成されるコンマ区切りのペアとして指定します。

文字列は、データセット配列 ds にある名前または名前と値のペア引数 'VarNames' を使用して指定した名前にしてください。

既定の設定は、X 内のすべての変数、または ResponseVar を除く、ds 内のすべての変数です。

たとえば、以下のいずれかの例を使用して、2 番目と 3 番目の変数を予測子変数として指定できます。

例: 'PredictorVars',[2,3]

例: 'PredictorVars',logical([0 1 1 0 0 0])

データ型:single | double | logical | cell

'PRemove' - 項を削除するための改善手段スカラー値

項を削除するための改善手段。'PRemove' とスカラー値で構成されるコンマ区切りのペアとして指定します。

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

各ステップでは、ステップワイズ アルゴリズムによって、項が現在のモデル内の他の項に対して冗長 (線形従属) かどうかもチェックされます。項が現在のモデルの他の項に線形従属している場合は、基準値に関係なく削除されます。

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

例: 'PRemove',0.05

'ResponseVar' - 応答変数データセット配列 ds の最後の列 (既定の設定) | 変数名の文字列 | 論理インデックス ベクトルまたは数値インデックス ベクトル

近似で使用する応答変数。'ResponseVar' と、データセット配列 ds の変数名の文字列、あるいはどの列が応答変数であるかを示す論理インデックス ベクトルまたは数値インデックス ベクトルで構成されるコンマ区切りのペアとして指定します。通常、データセット配列 ds を近似させる場合に 'ResponseVar' を使用する必要があります。

たとえば、以下のいずれかの方法を使用して、6 つの変数のうち 4 番目の変数、つまり yield を応答変数として指定できます。

例: 'ResponseVar','yield'

例: 'ResponseVar',[4]

例: 'ResponseVar',logical([0 0 0 1 0 0])

データ型:single | double | logical | char

'Upper' - 近似において最大の項集合を記述するモデル仕様'interaction' (既定の設定) | 文字列

近似において最大の項集合を記述するモデル仕様。'Upper' と、モデルの名前を表す modelspec に対する文字列オプションの 1 つで構成されるコンマ区切りのペアとして指定します。

例: 'Upper','quadratic'

'VarNames' - 近似の変数の名前{'x1','x2',...,'xn','y'} (既定の設定) | 文字列のセル配列

近似の変数の名前。'VarNames' と、X の列名を最初に含み、応答変数 y の名前を最後に含む文字列のセル配列で構成されるコンマ区切りのペアとして指定します。

'VarNames' は、データセット配列の変数には適用されません。それは、それらの変数には既に名前があるためです。

たとえば、データ内で、自動車の馬力、加速度、モデル年度が予測子変数であり、ガロンあたりの走行マイル数 (MPG) が応答変数である場合は、以下のように変数に名前を付けることができます。

例: 'VarNames',{'Horsepower','Acceleration','Model_Year','MPG'}

データ型:cell

'Verbose' - 情報の表示に関する制御1 (既定の設定) | 0 | 2

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

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

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

  • 2 — 各ステップで評価されるアクションも表示します。

例: 'Verbose',2

'Weights' - 観測の重みones(n,1) (既定の設定) | 非負のスカラー値の n 行 1 列のベクトル

観測値の重み。'Weights' と、非負のスカラー値の n 行 1 列のベクトル (n は観測値の数) で構成されるコンマ区切りのペアとして指定します。

データ型:single | double

出力引数

すべて展開する

mdl - 線形モデルLinearModel オブジェクト

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

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

代替機能

fitlm を使用してモデルを構築し、次に stepaddTerms または removeTerms を使用して手動でモデルを調整します。

詳細

すべて展開する

項の行列

項行列は、モデル内の項を指定する t 行 (p + 1) 列の行列です。t は項の数、p は予測子変数の数、+ 1 は応答変数を示します。T(i,j) の値は、項 i の変数 j の指数です。ABC の 3 つの予測子変数があると仮定します。

[0 0 0 0] % Constant term or intercept
[0 1 0 0] % B; equivalently, A^0 * B^1 * C^0
[1 0 1 0] % A*C
[2 0 0 0] % A^2
[0 1 2 0] % B*(C^2)

各項の最後の 0 は、応答変数を表します。一般に、以下のようになります。

  • データセット配列に変数がある場合、データセット配列内の応答変数の位置に応じて 0 で応答変数を表さなければなりません。次の例はこれを説明します。

    標本データを読み込み、データセット配列を定義します。

    load hospital
    ds = dataset(hospital.Sex,hospital.BloodPressure(:,1),hospital.Age,...
    hospital.Smoker,'VarNames',{'Sex','BloodPressure','Age','Smoker'});

    線形モデル 'BloodPressure ~ 1 + Sex + Age + Smoker' を項行列で表します。応答変数はデータセット配列の 2 列目にあるので、応答変数を示す 0 の列が項行列の 2 列目になければなりません。

    T = [0 0 0 0;1 0 0 0;0 0 1 0;0 0 0 1]
    
    T =
    
         0     0     0     0
         1     0     0     0
         0     0     1     0
         0     0     0     1

    データセット配列を再定義します。

    ds = dataset(hospital.BloodPressure(:,1),hospital.Sex,hospital.Age,...
    hospital.Smoker,'VarNames',{'BloodPressure','Sex','Age','Smoker'});
    

    これで、応答変数はデータセット配列の最初の項になりました。項行列を使用して、同じ線形モデル 'BloodPressure ~ 1 + Sex + Age + Smoker' を指定します。

    T = [0 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]
    T =
    
         0     0     0     0
         0     1     0     0
         0     0     1     0
         0     0     0     1
  • 行列および列ベクトルに予測子と応答変数がある場合、各項の最後に応答変数を示す 0 がなければなりません。次の例はこれを説明します。

    標本データを読み込み、予測子の行列を定義します。

    load carsmall
    X = [Acceleration,Weight];
    

    項行列を使用してモデル 'MPG ~ Acceleration + Weight + Acceleration:Weight + Weight^2' を指定し、このモデルをデータに近似します。このモデルには、変数 Acceleration および Weight の主効果および 2 因子交互作用項、変数 Weight の 2 次の項が含まれます。

    T = [0 0 0;1 0 0;0 1 0;1 1 0;0 2 0]
    
    T =
    
         0     0     0
         1     0     0
         0     1     0
         1     1     0
         0     2     0
    

    線形モデルを近似します。

    mdl = fitlm(X,MPG,T)
    mdl = 
    
    Linear regression model:
        y ~ 1 + x1*x2 + x2^2
    
    Estimated Coefficients:
                       Estimate       SE            tStat      pValue    
        (Intercept)         48.906        12.589     3.8847    0.00019665
        x1                 0.54418       0.57125    0.95261       0.34337
        x2               -0.012781     0.0060312    -2.1192      0.036857
        x1:x2          -0.00010892    0.00017925    -0.6076         0.545
        x2^2            9.7518e-07    7.5389e-07     1.2935       0.19917
    
    Number of observations: 94, Error degrees of freedom: 89
    Root Mean Squared Error: 4.1
    R-squared: 0.751,  Adjusted R-Squared 0.739
    F-statistic vs. constant model: 67, p-value = 4.99e-26

    変数 Weight に対応する切片および x2 の項のみが 5% の有意水準を示しています。

    ここで、定数モデルを開始モデルとし、交互作用項をもつ線形モデルを上位モデルとして、ステップワイズ回帰を実行します。

    T = [0 0 0;1 0 0;0 1 0;1 1 0];
    mdl = stepwiselm(X,MPG,[0 0 0],'upper',T)
    1. Adding x2, FStat = 259.3087, pValue = 1.643351e-28
    
    mdl = 
    
    Linear regression model:
        y ~ 1 + x2
    
    Estimated Coefficients:
                       Estimate      SE           tStat      pValue    
        (Intercept)        49.238       1.6411     30.002    2.7015e-49
        x2             -0.0086119    0.0005348    -16.103    1.6434e-28
    
    Number of observations: 94, Error degrees of freedom: 92
    Root Mean Squared Error: 4.13
    R-squared: 0.738,  Adjusted R-Squared 0.735
    F-statistic vs. constant model: 259, p-value = 1.64e-28

    ステップワイズ回帰の結果は、前の手順の fitlm の結果と整合性があります。

モデル仕様の式は次のような形式の文字列です

'Y ~ terms',

ここで

  • Y は応答名です。

  • terms 次のものを含みます

    • 変数名

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

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

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

    • * は、交互作用と "すべての低い順序の項" を定義します

    • ^ は、* で繰り返されるとおりに予測子をべき乗にし、^ は低い次数の項も含みます

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

    メモ:   式には既定で定数 (切片) 項が含まれます。モデルから定数項を除外するには、式に -1 を含めます。

次に例を示します。

'Y ~ A + B + C' は切片のある 3 変数線形モデルを意味します。
'Y ~ A + B + C - 1' は切片のない 3 変数線形モデルです。
'Y ~ A + B + C + B^2' は切片と B^2 項のある 3 変数モデルです。
'Y ~ A + B^2 + C' は、B^2B 項を含むので、前の例と同じです。
'Y ~ A + B + C + A:B'A*B 項を含みます。
'Y ~ A*B + C'A*B = A + B + A:B なので前の例と同じです。
'Y ~ A*B*C - A:B:C' には 3 因子交互作用を除き、ABC 間のすべての交互作用があります。
'Y ~ A*(B + C + D)' には線形項があり、さらに他の変数のそれぞれとの A の積があります。

ウィルキンソンの表記法

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

ウィルキンソンの表記法標準表記の因子
1定数 (切片) 項
A^kk は正の整数A, A2, ..., Ak
A + BA, B
A*BA, B, A*B
A:BA*B のみ
-BB は含めないでください
A*B + CA, B, C, A*B
A + B + C + A:BA, B, C, A*B
A*B*C - A:B:CA, B, C, A*B, A*C, B*C
A*(B + C)A, B, C, A*B, A*C

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

ヒント

  • ロバスト回帰をステップワイズ回帰と併用することはできません。stepwiselm を使用する前にデータの外れ値をチェックしてください。

  • anova などの他のメソッドや、LinearModel オブジェクトのプロパティについては、LinearModel を参照してください。

アルゴリズム

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

MATLAB® ではフォワードおよびバックワードのステップワイズ回帰を使用して最終的なモデルを決定します。この方法では各ステップで 'Criterion' 引数の値に基づきモデルに追加したりモデルから削除する項を探します。'Criterion' の既定値は 'sse' で、この場合 stepwiselm は F 統計量の p 値を使用して、各ステップで追加可能項がある場合とない場合のモデルを検定します。ある項が現在はモデルにない場合、帰無仮説は、項がモデルに付加された場合に係数ゼロをもつということです。帰無仮説を棄却する十分な証拠があれば、その項がモデルに追加されます。逆に、ある項がモデルに現在ある場合、帰無仮説は、その項が係数ゼロをもつことです。帰無仮説を棄却する十分な証拠がなければ、その項がモデルから削除されます。

以下に、'Criterion''sse' である場合のステップワイズの処理方法を示します。

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

  2. モデルにない任意の項が開始許容誤差よりも小さい p 値をもつ場合 (すなわち、モデルに加えられた場合にゼロ係数をもつ可能性がない場合)、最小の p 値をもつ項を追加し、この手順を繰り返します。そうでない場合、手順 3 に進みます。

  3. モデルの任意の項が、終了許容誤差よりも大きい p 値をもつ場合 (つまり、係数ゼロをもつという仮説が棄却されない場合)、最大の p 値をもつ項を削除して手順 2 に移動します。そうでない場合は終了します。

stepwiseglm の既定値は 'Deviance' で、項を追加または削除するための同様の手順に従います。

ほかにもいくつかの基準を使用できます。基準は 'Criterion' 引数を使用して指定できます。赤池情報量基準、ベイズ情報量基準、決定係数、自由度調整済み決定係数の値の変量を、項の追加や削除の基準として使用できます。

この方法では、初期モデルに含まれる項と、項が出入りする順序に依存して、追加可能項の同じ集合から異なるモデルが作成されることがあります。この方法は、1 つのステップがモデルを改良することがないと終了します。しかし、初期モデルが異なる場合またはステップの順序が異なる場合に、より良い近似にならないという保証はありません。この意味において、ステップワイズ モデルは、局所的には最適でも大域的には最適ではないことがあります。

参考

| |

この情報は役に立ちましたか?