主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

stepwiselm

ステップワイズ回帰の実行

説明

mdl= stepwiselm (资源描述は,定数モデルから開始し,ステップワイズ回帰を使用して予測子を追加または削除することにより,表またはデータセット配列资源描述内の変数に対する線形モデルを作成します。stepwiselmは,资源描述の最後の変数を応答変数として使用します。stepwiselmは,変数増減法のステップワイズ回帰を使用して,最終的なモデルを決定します。各ステップで,引数“标准”の値に基づいて,モデルに対して追加または削除する項が探索されます。

mdl= stepwiselm (Xyは,データ行列X内の予測子変数に対する応答yの線形モデルを作成します。

mdl= stepwiselm (___modelspecは,前の構文におけるいずれかの入力引数の組み合わせを使用して,開始モデルmodelspecを指定します。

mdl= stepwiselm (___名称,值では1つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば,カテゴリカル変数、モデルで使用する最小または最大の項集合、実行する最大ステップ数、stepwiselmが項の追加または削除に使用する基準などを指定できます。

すべて折りたたむ

哈尔德データセットを読み込みます。これは,セメントの硬化熱に対してセメントの組成が与える影響を測定したデータです。

负载哈尔德

このデータセットには,変数成分およびが含まれています。行列成分には,セメントに含まれている4種類の化学物質の組成率が格納されています。ベクトルには,各セメント標本に対する180日後の硬化熱の値が格納されています。

ステップワイズ線形回帰モデルをデータにあてはめます。モデルに項を追加する基準のしきい値として 0.06 を指定します。

mdl = stepwiselm(成分、热、“囚禁”, 0.06)
1.添加x4, FStat = 22.7985, pValue = 0.000576232添加x1, FStat = 108.2239, pValue = 1.105281e-063 .添加x2, FStat = 5.0259, pValue = 0.051687移除x4, FStat = 1.8633, pValue = 0.2054
mdl =线性回归模型:y ~ 1 + x1 + x2估计系数:估计SE tStat pValue  ________ ________ ______ __________ ( 拦截)52.577 2.2862 22.998 5.4566平台以及x1 e-07 x2 0.66225 0.045855 14.442 2.6922 1.4683 0.1213 12.105 5.029 e-08数量的观察:13日误差自由度:10根均方误差:2.41平方:0.979,调整后的R-Squared: 0.974 F-statistic vs. constant model: 230, p-value = 4.41e-09

既定では,開始モデルは定数モデルです。stepwiselmは前方選択を実行し,x4x1およびx2の各項を(この順番で)追加します。これは対応するp値が被关闭的0.06の値より小さいためです。その後,stepwiselmは後退消去を使用してx4をモデルから削除します。これは,x2がモデル内にあると,PRemove0.1の既定値であるよりx4p値が大きくなるためです。

データセット配列に格納されている変数を使用してステップワイズ回帰を実行します。ウィルキンソンの表記法を使用して開始モデルを指定し、オプションの引数を使用して応答変数と予測子変数を指定します。

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

负载医院

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

線形モデルを,定数項の開始モデルと予測子変数としての吸烟者に適合させます。応答変数重量,カテゴリカル予測子変数年龄および吸烟者を指定します。

mdl = stepwiselm(医院,的体重~ 1 +抽烟'...“ResponseVar”“重量”“PredictorVars”, {“性”“年龄”“抽烟”},...“CategoricalVar”, {“性”“抽烟”})
1.添加性别,FStat = 770.0158, pValue = 6.262758e-48移除吸烟者,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观测数:100,误差自由度:98均方根误差:8.73 r²:0.893,校正r²:0.892 F-statistic vs. constant model: 819, p-value = 2.25e-49

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

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

负载carsmallX =(加速度、重量);

項行列を使用して,開始モデルと上限モデルを定義します。

t_start = [0 0 0]常数模型
T_starting =1×30 0 0
T_upper = [0 0 0;1 0 0;1 1 0]%具有相互作用的线性模型
T_upper =4×30 0 0 1 0 0 1 0 0 1 1 0 1 1 1 0

ステップワイズ回帰を使用して線形回帰モデルを作成します。項行列を使用して,開始モデルと上限のモデルを指定します。評価プロセスおよび各ステップで行われた決定を表示するため,“详细”として2を指定します。

T_starting mdl = stepwiselm (X,英里/加仑,“上”T_upper,“详细”, 2)
添加x1的pValue为4.0973e-06添加x2的pValue为1.6434e-28 1。添加x1的pValue是0.18493没有候选项要删除
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观测数:94,误差自由度:92均方根误差:4.13 r平方:0.738,校正r平方:0.735 F-statistic vs. constant model: 259, p-value = 1.64e-28

ステップワイズ回帰を使用して,カテゴリカル予測子がある線形回帰モデルをあてはめます。stepwiselmは,指標変数のグループを一度に追加または削除してカテゴリカル予測子を追加または削除します。この例では,stepwiselmが各指標変数を個別の予測子として扱うようにするため,指標変数を手動で作成してstepwiselmに渡す方法も示します。

carsmallデータセットを読み込み,変数重量Model_Yearおよび英里/加仑を使用して表を作成します。

负载carsmall年=分类(Model_Year);tbl1 =表(MPG、重量、年);

ステップワイズ回帰を使用して,英里/加仑の線形回帰モデルをあてはめます。開始モデルとして,重量の関数を指定します。モデルの上限を“poly21”に設定します。これは,(最大で)定数と項重量体重^ 2一年および重量*年をモデルに含めることができることを意味します。評価プロセスと,各ステップで行われた決定を表示するため,“详细”として2を指定します。

mdl1 = stepwiselm (tbl1,英里/加仑~体重的“上”“poly21”“详细”, 2)
添加Year的pValue为8.2284e-15。添加Weight^2的pValue为0.15454 1。添加年份,FStat = 47.5136, pValue = 8.22836e-15添加重量^2的pValue为0.0022303 pValue为添加重量:年份为0.0071637 2。添加Weight^2, FStat = 9.9164, pValue = 0.0022303添加Weight的pValue:Year为0.19519 pValue删除Year为2.9042e-16
mdl1 =线性回归模型:MPG ~ 1 +权重+年+权重^2Estimate 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.5573 -06 4.9454e-07 3.149 0.0022303观测数:94、误差自由度:89均方根误差:2.78 r平方:0.885,校正r平方:0.88 f统计量与常数模型:172,p-value = 5.52 -41

一年には3つの異なる値が含まれているので,stepwiselmは2つの指標変数Year_76およびYear_82を作成します。

“详细”が2なので,stepwiselmは評価プロセスを表示します。

  • stepwiselmは,重量の関数としてモデルを作成します。

  • stepwiselmは,一年または体重^ 2の追加に対するp値を計算します。一年p値は体重^ 2p値および既定のしきい値0.05の両方より小さいので,stepwiselm一年をモデルに追加します。

  • stepwiselmは,重量:一年または体重^ 2の追加に対するp値を計算します。体重^ 2p値は重量:一年p値より小さいので,関数stepwiselm体重^ 2をモデルに追加します。

  • 2次の項を追加した後で,stepwiselm重量:一年の追加に対するp値を再度計算しますが,p値はしきい値より大きくなっています。したがって,stepwiselmは項をモデルに追加しません。名前と値のペアの引数“上”によって指定された上限のため,stepwiselm体重^ 3の追加を検討しません。

  • stepwiselmは,削除する項を探します。stepwiselmは既に体重^ 2を検討したので,一年の削除に対するp値のみを計算します。p値が既定のしきい値0.10より小さいので,stepwiselmは項を削除しません。

  • 許容される最大ステップ数は5ですが,項の追加または削除を行ってもモデルが改善されないので,stepwiselmは2ステップ後に処理を停止します。

stepwiselmは2つの指標変数を1つの予測子変数として扱い,一年を一度に追加します。2つの指標変数を 2 つの異なる予測子変数として扱うには、dummyvarを使用して別々のカテゴリカル変数を作成します。

temp_Year = dummyvar(年);Year_76 =逻辑(temp_Year (:, 2));Year_82 =逻辑(temp_Year (:, 3));

英里/加仑重量Year_76およびYear_82が含まれている表を作成します。

tbl2 =表(MPG、重量、Year_76 Year_82);

mdl1に使用したものと同じ開始モデルから,ステップワイズ線形回帰モデルを作成します。

mdl2 = stepwiselm (tbl2,英里/加仑~体重的“上”“poly211”
1.添加Year_82, FStat = 83.1956, pValue = 1.76163e-14添加重量:Year_82, FStat = 8.0641, pValue = 0.0055818添加Year_76, FStat = 8.1284, pValue = 0.0054157
mdl2 =线性回归模型:MPG ~ 1 + Year_76 + Weight*Year_82Estimate SE tStat pValue __________ __________ _______ __________ (Intercept) 38.844 1.5294 25.397 1.503e-42 Weight -0.006272 0.00042673 -14.698 1.5622e-25 Year_76_1 2.0395 0.71537 2.851 0.0054157 Year_82_1 19.607 3.8731 5.0623 2.2163e-06 Weight:Year_82_1 -0.0046268 0.0014979 -3.0888 0.0026806观测数:94、误差自由度:89均方根误差:2.79 R-squared: 0.885,调整R-squared: 0.88 F-statistic vs. constant model: 171, p-value = 6.54e-41

モデルmdl2には,mdl1に含まれていた項体重^ 2の代わりに交互作用項重量:Year_82_1が含まれています。

入力引数

すべて折りたたむ

予測子変数と応答変数を含む入力データ。テーブルまたはデータセット配列として指定します。予測子変数は、数値、logical、categorical、文字または string にすることができます。応答変数は、数値または logical でなければなりません。

  • 既定では,stepwiselmは最後の変数を応答変数として,それ以外の変数を予測子変数として取ります。

  • 応答変数として異なる列を設定するには,名前と値のペア引数ResponseVarを使用します。

  • 列のサブセットを予測子として使用するには,名前と値のペア引数PredictorVarsを使用します。

  • モデル仕様を定義するには,式または項行列を使用して引数modelspecを設定します。式または項行列は,予測子または応答変数として使用する列を指定します。

テーブルの変数名は,有効なMATLAB®識別子である必要はありません。ただし,名前が有効ではない場合,モデルをあてはめるまたは調整するときに式を使用することはできません。以下に例を示します。

  • 式を使用してmodelspecを指定することはできません。

  • 関数addTermsまたは関数removeTermsをそれぞれ使用するときに,式を使用して追加または削除する項を指定することはできません。

  • 名前と値のペアの引数“低”“上”を使用して関数一步または関数stepwiselmをそれぞれ使用するときに,式を使用してモデルの下限と上限を指定することはできません。

関数isvarnameを使用して资源描述の変数名を検証できます。変数名が有効でない場合,関数matlab.lang.makeValidNameを使用してそれらを変換できます。

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

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

データ型:|

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

データ型:||逻辑

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

  • モデルを指定する文字ベクトルまたは字符串スカラー。

    モデルタイプ
    “不变” モデルは定数(切片)項だけを含みます。
    “线性” 切片と各予測子の線形項がモデルに含まれます。
    “互动” 切片,各予測子の線形項,および異なる予測子のペアすべての積がモデルに含まれます(二乗項はありません)。
    “purequadratic” 切片項と各予測子の線形項および二乗項がモデルに含まれます。
    “二次” 切片項,各予測子の線形項,二乗項,および異なる予測子のペアすべての積がモデルに含まれます。
    “聚ijk モデルは多項式であり,1番目の予測子における次数までのすべての項2番目の予測子における次数jまでのすべての項が含まれます。3.番目以降の項についても同様です。0 ~ 9 の数値を使用して、各予測子の最大次数を指定します。モデルには交互作用項が含まれますが、各交互作用項の次数は、指定された次数の最大値を超えません。たとえば、“poly13”には,切片x1, x2, x22, x23., x1* x2およびx1* x22の各項が含まれます。x1およびx2はそれぞれ1番目および2番目の予測子です。
  • モデル内の項を指定するt行(p + 1)列の行列,つまり項の行列。tは項の個数,pは予測子変数の個数であり,+ 1は応答変数に相当します。項行列は,予測子の個数が多いときに項をプログラムで生成する場合に便利です。

  • 次の形式の文字ベクトルまたは字符串スカラー

    “y ~条款”

    ここで,条款ウィルキンソンの表記法で表されます。式の変数名は资源描述の変数名またはVarnamesによって指定された変数名でなければなりません。また,変数名は有効なMATLAB識別子でなければなりません。

    资源描述またはXの項の順序によって,あてはめたモデルの項の順序が決定されます。そのため,モデルの項の順序は,指定した式での項の順序とは異なる場合があります。

stepwiselmで近似するモデルに含まれている最小または最大の項の集合を指定するには,名前と値のペアの引数较低的およびを使用します。

データ型:字符|字符串||

名前と値のペアの引数

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

例:另类投资会议”、“标准”、“‘上’,‘互动’,‘详细’,1stepwiselmに対して,赤池情報量基準を使用し,各ステップで実行するアクションを表示し,最大でモデル内の交互作用項を含むように指示します。

カテゴリカル変数のリスト。“CategoricalVars”と,テーブルまたはデータセット配列资源描述内のカテゴリカル変数名が含まれている文字ベクトルの细胞配列または字符串配列,またはどの列がカテゴリカルであるかを示す論理インデックスベクトルまたは数値インデックスベクトルから構成されるコンマ区切りのペアとして指定します。

  • データがテーブルまたはデータセット配列资源描述に格納されている場合の既定では,stepwiselmはカテゴリカル値,論理値,文字配列,字符串配列,および文字ベクトルの细胞配列をすべてカテゴリカル変数として扱います。

  • データが行列Xに格納されている場合,“CategoricalVars”の既定値は空の行列[]です。つまり,カテゴリカルとして指定しない限り,カテゴリカルになる変数はありません。

たとえば,以下のいずれかを使用して,6つのうちの2番目と3番目の変数をカテゴリカルとして指定できます。

例:“CategoricalVars”,[2,3]

例:'CategoricalVars',逻辑([0 1 1 0 0])

データ型:||逻辑|字符串|细胞

項を追加または削除する基準。“标准”と以下のいずれかの値から構成されるコンマ区切りのペアとして指定します。

  • 上交所的——項の追加または削除によって生じる残差平方和の変化に対するF検定のp値。

  • “另类投资会议”——赤池情報量基準(AIC)の値の変化

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

  • “rsquared”- R2の値の増加

  • “adjrsquared”——自由度調整済みR2の値の増加

例:“标准”、“bic”

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

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

例:“排除”,[2,3]

例:'排除',逻辑([0 1 1 0 0])

データ型:||逻辑

あてはめにおける定数項(切片)のインジケーター。“拦截”と,モデルに定数項を含める真正的またはモデルから定数項を削除するで構成されるコンマ区切りのペアとして指定します。

式または行列ではなく文字ベクトルまたは字符串スカラーを使用してモデルを指定する場合のみ,“拦截”を使用します。

例:“拦截”,假的

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

例:“低”,“线性”

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

例:“NSteps”,5

データ型:|

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

規範 既定値 判定
上交所的 0.05 F統計量のp値が被关闭的(入力に対するp値)より小さい場合,項をモデルに追加します。
“另类投资会议” 0 モデルのAICの変化が被关闭的より小さい場合,項をモデルに追加します。
“BIC” 0 モデルのBICの変化が被关闭的より小さい場合,項をモデルに追加します。
“Rsquared” 0.1 モデルの決定係数値の増加が被关闭的より大きい場合,項をモデルに追加します。
“AdjRsquared” 0 モデルの自由度調整済み決定係数値の増加が被关闭的より大きい場合,項をモデルに追加します。

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

例:“囚禁”,0.075

あてはめで使用する予測子変数。“PredictorVars”と,テーブルまたはデータセット配列资源描述に格納されている変数の名前を表す文字ベクトルの细胞配列または字符串配列,またはどの列が予測子変数であるかを示す論理インデックスベクトルまたは数値インデックスベクトルから構成されるコンマ区切りのペアとして指定します。

字符串値または文字ベクトルは,资源描述に含まれている名前,または名前と値のペアの引数“VarNames”を使用して指定した名前でなければなりません。

既定の設定は,X内のすべての変数,またはResponseVarを除く,资源描述内のすべての変数です。

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

例:“PredictorVars”,[2,3]

例:'PredictorVars',逻辑([0 1 1 0 0])

データ型:||逻辑|字符串|细胞

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

規範 既定値 判定
上交所的 0.10 F統計量のp値がPRemove(削除するp値)より大きい場合,項をモデルから削除します。
“另类投资会议” 0.01 モデルのAICの変化がPRemoveより大きい場合,項をモデルから削除します。
“BIC” 0.01 モデルのBICの変化がPRemoveより大きい場合,項をモデルから削除します。
“Rsquared” 0.05 モデルの決定係数値の増加がPRemoveより小さい場合,項をモデルから削除します。
“AdjRsquared” -0.05 モデルの自由度調整済み決定係数値の増加がPRemoveより小さい場合,項をモデルから削除します。

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

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

例:“PRemove”,0.05

あてはめで使用する応答変数。“ResponseVar”と,テーブルまたはデータセット配列资源描述内の変数名が格納されている文字ベクトルまたは字符串配列,またはどの列が応答変数であるかを示す論理インデックスベクトルまたは数値インデックスベクトルから構成されるコンマ区切りのペアとして指定します。通常,テーブルまたはデータセット配列资源描述を近似させる場合に“ResponseVar”を使用する必要があります。

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

例:“ResponseVar”、“收益”

例:“ResponseVar”,[4]

例:'ResponseVar',逻辑([0 0 0 1 0 0])

データ型:||逻辑|字符|字符串

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

例:“上”、“二次”

変数の名前。“VarNames”と,Xの列名が最初に,応答変数yの名前が最後に含まれている文字ベクトルの细胞配列または字符串配列から構成されるコンマ区切りのペアとして指定します。

テーブルまたはデータセット配列の変数には既に名前が設定されているため,“VarNames”はこれらの配列には適用されません。

変数名は,有効なMATLAB識別子である必要はありません。ただし,名前が有効ではない場合,モデルをあてはめるまたは調整するときに式を使用することはできません。以下に例を示します。

  • 関数addTermsまたは関数removeTermsをそれぞれ使用するときに,式を使用して追加または削除する項を指定することはできません。

  • 名前と値のペアの引数“低”“上”を使用して関数一步または関数stepwiselmをそれぞれ使用するときに,式を使用してモデルの下限と上限を指定することはできません。

VarNames, VarNamesを指定する前に,関数isvarnameを使用してvarNamesの変数名を検証できます。変数名が有効でない場合,関数matlab.lang.makeValidNameを使用してそれらを変換できます。

例:VarNames,{“马力”,“加速”,“Model_Year”,“英里”}

データ型:字符串|细胞

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

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

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

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

例:“详细”,2

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

データ型:|

出力引数

すべて折りたたむ

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

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

詳細

すべて折りたたむ

項の行列

項行列Tは,モデル内の項を指定するt行(p + 1)列の行列です。tは項の数,pは予測子変数の数であり,+ 1は応答変数に相当します。T (i, j)の値は項の変数jの指数です。

たとえば3つの予測子変数x1x2x3と応答変数yx1x2x3yという順序で入力に含まれていると仮定します。Tの各行は1つの項を表します。

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

  • [0 1 0 0]- - - - - -x2X1 ^0 * x2^1 * x3^0と等価)

  • [1 0 1 0]- - - - - -x1 * x3

  • [2 0 0]- - - - - -x1 ^ 2

  • [0 1 2 0]- - - - - -x2 * (x3 ^ 2)

各項の最後の0は,応答変数を表します。一般に,項行列内のゼロの列ベクトルは,応答変数の位置を表します。行列と列ベクトルに予測子と応答変数がある場合、各行の最後の列に応答変数を示す0を含めなければなりません。

モデル仕様の式はy条款という形式の文字ベクトルまたは字符串スカラーです。

  • yは応答名です。

  • 条款は,ウィルキンソンの表記法を使用してモデル内の予測子の項を表します。

予測子と応答変数を表現するには,表入力资源描述の変数名,またはVarNamesを使用して指定された変数名を使用します。VarNamesの既定値は{x1, x2,…,‘xn’,‘y’}です。

以下に例を示します。

  • 'y ~ x1 + x2 + x3'は,切片がある3変数の線形モデルを指定します。

  • 'y ~ x1 + x2 + x3 - 1'は,切片がない3変数の線形モデルを指定します。既定では式に定数(切片)項が含まれることに注意してください。モデルから定数項を除外するには,1を式に含めなければなりません。

1を使用して項を明示的に削除しない限り,式は定数項を含みます。

ウィルキンソンの表記法

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

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

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

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

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

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

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

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

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

ウィルキンソンの表記法 標準表記の項
1 定数 (切片) 項
x1 ^ kkは正の整数 x1x12、……x1k
x1 + x2 x1x2
x1 * x2 x1x2x1 * x2
x1, x2 x1 * x2のみ
x2 x2は含めない
x1 * x2 + x3 x1x2x3x1 * x2
X1 + x2 + x3 + X1:x2 x1x2x3x1 * x2
x1 * x2 * x3 - x1, x2, x3 x1x2x3x1 * x2x1 * x3x2 * x3
x1 * (x2 + x3) x1x2x3x1 * x2x1 * x3

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

ヒント

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

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

  • モデルに学習をさせた後で,新しいデータについて応答を予測するC / c++コードを生成できます。C / c++コードの生成にはMATLAB编码器™が必要です。詳細については,コード生成の紹介を参照してください。

アルゴリズム

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

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

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

    “标准”上交所的である場合,ステップワイズ回帰では以下のステップが実行されます。

    1. 初期モデルをあてはめます。

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

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

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

    一般化線形モデルでは,“标准”の既定値は“异常”です。GeneralizedLinearModel一步stepwiseglmは,同様の手順に従って項を追加または削除します。

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

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

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

    • L個のレベル(カテゴリ)があるカテゴリカル予測子をもつモデルには,L - 1個の指標変数が含まれています。1番目のカテゴリが基準レベルとして使用されるので、基準レベルに対する指標変数はモデルに含まれません。カテゴリカル予測子のデータ型が分类である場合,类别を使用してカテゴリの順序をチェックし,reordercatsを使用してカテゴリを並べ替えることにより,基準レベルをカスタマイズできます。指標変数の作成の詳細については,ダミー変数の自動作成を参照してください。

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

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

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

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

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

  • stepwiselmは,资源描述XおよびYに含まれている(空の文字ベクトル),""(空の字符串),< >失踪,および<定义>値を欠損値と見なします。stepwiselmは,欠損値がある観測値をあてはめで使用しません。あてはめたモデルのObservationInfoプロパティは,stepwiselmが各観測値をあてはめで使用したかどうかを示します。

代替機能

R2013bで導入