主要内容

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

stepwisefit

ステップワイズ回帰を使用して線形回帰モデルをあてはめる

説明

b= stepwisefit (Xyは、行列X内の予測子変数に対する応答ベクトルyのステップワイズ回帰の係数推定値が格納されているベクトルbを返します。stepwisefitは,初期定数モデルから開始して,停止条件が満たされるまでステップを進めたり戻したりして,変数を追加または削除します。

b= stepwisefit (Xy名称,值では1つ以上の名前と値のペアの引数を使用して追加オプションを指定します。たとえば,非定数の初期モデル,またはstepwisefitが受け入れ可能なステップの最大数を指定できます。

bsepval) = stepwisefit (___は,前の構文におけるいずれかの入力引数の組み合わせを使用して,係数推定値b、標準誤差se、および P値であるpvalを返します。

bsepvalfinalmodel统计数据) = stepwisefit (___は,最終回帰モデルfinalmodel内の変数の指定,および最終モデルについての統計値统计数据も返します。

bsepvalfinalmodel统计数据nextstep历史) = stepwisefit (___は,次の推奨ステップnextstep、およびそれまでのすべてのステップに関する情報历史も返します。

すべて折りたたむ

基本的なステップワイズ回帰を実行し,係数推定値を取得します。

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

负载哈尔德%检查工作区中加载的变量
名称大小字节类属性描述22x58 2552 char hald 13x5 520 double heat 13x1 104 double配料13x4 416 double

このデータセットには,4つのセメント原料から成るさまざまな混合物について,セメント硬化時に発生した熱の観測値が含まれています。応答変数はです。行列成分には、予測子の列が 4.つ含まれています。

モデル内の定数項のみで開始し、既定のエントリと終了許容誤差にそれぞれ 0.05および 0.10を使用してstepwisefitを実行します。

b = stepwisefit(成分、热)
步骤2,添加列1,p=1.10528e-06'}{“地位”}{“P”}{[1.4400]}{[0.1384]}{”“}{[1.1053 e-06]}{[0.4161]}{[0.1856]}{‘出来’}{[0.0517]}{[-0.4100]}{[0.1992]}{‘出来’}{[0.0697]}{[-0.6140]}{[0.0486]}{”“}{[1.8149 e-07]}
b=4×11.4400 0.4161 -0.4100 -0.6140

stepwisefit表示には列1および4が最終モデルに含まれることが示されます。出力bには,最終モデルに表示されないものであっても,すべての列に関する推定値が含まれます。stepwisefitは,最終モデルと列2(または3.)で構成されるモデルをあてはめることにより,列2(または3.)の推定値を計算します。

さまざまな自動車の測定値を含むcarsmallデータセットを読み込みます。

负载carsmall
名称大小字节类属性加速100x1 800双缸100x1 800双排量100x1 800双马力100x1 800双MPG 100x1 800双Mfg 100x13 2600 char Model 100x33 6600 char Model_Year 100x1 800双Origin 100x7 1400 char Weight 100x1 800 double

4.つの連続変数と応答変数MPGを使用して,ステップワイズ回帰を実行します。

X=[加速气缸排量马力];y=MPG;b4_默认值=逐步拟合(X,y)%带有默认参数的逐步回归
初始列包括:无步骤1 1,添加列2,p=1.590 01E-25 5步2,添加列4,p=0.003642666步骤3,添加列1,p=0.1,p=0.0 0.0161414 4最后列包括:1 2 4{Coeff'{{1 1步1步1步1,添加列2步1,添加列2.1,添加列2.1,1.1.1步1步1.1 1.1 1.1.1 1.1.1.1.1.1.1包括包括1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1包括包括1.1.1.1 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1{[-0.0772]}{[0.0204]}{'In'}{[2.6922e-04]}
b4_default =4×1-0.4517 -2.6407 0.0148 -0.0772

取代がモデルに入力されることはありません。項の相関行列を計算して、他の 3 つの項と高い相関関係があるかどうかを特定します。

柯柯夫(X,“行”“完成”%从计算中排除缺少值的行
ans =4×41.0000 -0.6438 -0.6968 -0.6968 -0.6438 1.0000 0.9517 0.8622 -0.6968 0.9517 1.0000 0.9134 0.6968 0.8622 0.9134 1.0000

相関行列の 3.行目は取代に対応します。この項は,他の3つの項,特に圆筒0.95)および马力0.91)と高い相関関係があります。

入力行列X重量を含むように再定義します。名前と値のペアの引数 'InModel”を使用して項取代および马力を含む初期モデルを指定します。

X =[加速气缸排量马力重量];Inmodel =[假假真真假];b5_inmodel = stepwisefit (X, y,“InModel”inmodel)
Step 2, add column 2, p=0.00410234最终列包括:234 5 {'Coeff'} {'Std.Err。'}{“地位”}{“P”}{[-0.0912]}{[0.2032]}{‘出来’}{[0.6548]}{[-2.3223]}{[0.7879]}{”“}{[0.0041]}{[0.0252]}{[0.0145]}{”“}{[0.0862]}{[-0.0449]}{[0.0231]}{”“}{[0.0555]}{[-0.0050]}{[0.0012]}{”“}{[1.0851 e-04]}
b5_模型=5×1-0.0912 -2.3223 0.0252 -0.0449 -0.0050

最終モデルは項2 - 5で構成されます。ただし、推定値取代および马力は,最終モデルにおいて0.05よりも大きい p 値をもちます。名前と値のペアの引数“PRemove”を使用すると,より保守的に動作するようにステップワイズアルゴリズムを調整することができます。たとえば,“PRemove”を(既定の0.1に代えて)0.05に設定することにより、それぞれが0.05よりも小さい p 値をもつ,項が2つだけのより小さい最終モデルが得られます。

b5_inmodel_premove = stepwisefit (X, y,“InModel”inmodel,“PRemove”, 0.05)
初始列包括:34步骤1,添加列5,p=1.06457e-06步骤2,添加列2,p=0.00410234步骤3,删除列3,p=0.0862131步骤4,删除列4,p=0.239239,最后列包括:2 5{Coeff'}{Std.Err.}{Status'}{p'}{-0.0115}{[0.1656]}{Out'}{[0.9449]}{-1.6037]}{0.5146}{{[0.0124]}{[0.4186]}{[-0.0234]}{[0.0198]}{[0.2392]}{[-0.0055]}{[0.0011]}{[3.9038e-06]}
b5_inmodel_premove =5×1-0.0115 -1.6037

名前と値のペアの引数“规模”を使用してあてはめる前に、各列をセンタリングし、スケーリングします (zスコアを計算します)。このスケーリングでは,選択したモデル,係数推定値の符号,またはその p 値は変更されません。ただし,係数推定値をスケーリングします。

b5_inmodel_premove_scale = stepwisefit (X, y,“InModel”inmodel,“PRemove”, 0.05,“规模”“上”
步骤1,添加列5,p=1.06457e-06步骤2,添加列2,p=0.00410234步骤3,删除列3,p=0.0862131步骤4,删除列4,p=0.239239最终列包括:'}{“地位”}{“P”}{[-0.0370]}{[0.5339]}{‘出来’}{[0.9449]}{[-2.8136]}{[0.9028]}{”“}{[0.0025]}{[1.1155]}{[1.3726]}{‘出来’}{[0.4186]}{[-1.0617]}{[0.8961]}{‘出来’}{[0.2392]}{[-4.4406]}{[0.9028]}{”“}{[3.9038 e-06]}
b5_inmodel_premove_scale =5×1-0.0370 -2.8136 1.1155 -1.0617 -4.4406

通常,スケーリングは,異なるスケール(马力重量など)で測定された項の推定値を比較するために行います。この場合は,马力の標準偏差を 1.ずつ大きくするとMPG1低下することが期待され,重量の標準偏差を 1.ずつ大きくするとMPG4.4低下することが期待されます。

进口- 85データセットを読み込みます。このデータセットには、1985年に取り込まれた自動車の特性が含まれています。すべての列名の一覧については、ワークスペースの変数描述を参照するか、コマンド ラインで描述と入力してください。

负载进口- 85
名称大小字节类属性描述9x79 1422 char X 205x26 42640 double

ステップワイズ回帰で使用する連続変数のサブセットを選択します。このサブセットは,予測子変数发动机的大小令人厌烦中风压缩比马力peak-rpmcity-mpg,およびhighway-mpgと,応答変数价格で構成されます。

varnames = [“引擎”“生”“中风”“压缩比”“马力”“peak-rpm”“城市mpg”“highway-mpg”“价格”];%在逐步回归中使用的变量名dataTbl=array2table(X(:,8:16),“VariableNames”, varnames);%使用变量名创建数据表Xstepw = dataTbl {: {发动机的大小的“生”“中风”“压缩比”“马力”“peak-rpm”“city-mpg”“highway-mpg”}};%的输入矩阵ystepw=dataTbl{:{“价格”}};%响应向量

他の8つの変数で変数价格stepwisefitを実行します。最初は既定の定数初期モデルを使用し,次にhighway-mpgを含む初期モデルを使用します。ステップ情報の表示を省略します。

[betahat_def, se_def pval_def、finalmodel_def stats_def] = stepwisefit (Xstepw ystepw,“显示”“关闭”);Inmodel =[假的假的假的假的假的假的真];[betahat_in, se_in pval_in、finalmodel_in stats_in] = stepwisefit (Xstepw ystepw,“InModel”inmodel,“显示”“关”);

stepwisefitによって返される最終モデルを検査します。

最终模型
finalmodel_def =1×8逻辑阵列1 0 1 1 0 1 1 0
最终模型
finalmodel_in =1×8逻辑阵列1 0 1 1 0 1 0 1

既定のモデルでは,モデルからhighway-mpg(項8)を削除し,代わりにcity-mpg(項7)を含めます。これら2つの最終モデルの平方根平均二乗誤差(RMSE)を比較します。

stats_def.rmse
ans = 3.3033 e + 03
stats_in.rmse
ans=3.3324e+03

既定の引数から得られたモデルではRMSEがわずかに小さくなります。完全な仕様の最終モデルは,項の推定値と切片の推定値で構成されることに注意してください。

betahat_def%术语估计
betahat_def =8×1103.× 0.1559 -0.2242 -2.8578 0.3904 0.0222 0.0024 -0.2414 0.0793
截获%拦截估计
ans = -7.3506 e + 03

stepwisefitの既定の実行履歴と、次の推奨ステップを取得します。ステップ情報の表示を省略します。

[~,~,~,~,~,下一步定义,历史定义]=逐步拟合(Xstepw,ystepw,“显示”“关闭”);nextstep_def
nextstep_def = 0

推奨ステップはこれ以上存在しません(nextstep_def0)。

history_def。(“在”
ans =7×8逻辑阵列1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 1 1 1 0 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 1 0 1 1 0 1 1 0

アルゴリズムは,合計で7つのステップを実行します。出力は,发动机的大小(項1)がステップ1に追加されることや,马力(項5)がステップ2に追加されることなどを示しています。

入力引数

すべて折りたたむ

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

stepwisefitは常にモデル内の定数項を含みます。そのため、1.の列をXに含めないでください。

データ型:|双重的

応答変数。N行 1.列の数値または 必然的のベクトルとして指定します。ここで、Nは観測値の数です。yの各エントリはXの対応する行に対する応答です。

データ型:|双重的|逻辑

メモ

stepwisefitは,Xまたはy値を欠損値として扱い、これらの値を含むすべての行を無視します。

名前と値のペアの引数

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

例:“囚禁”,0.10,“PRemove”,0.15,“麦克斯特”,8では,stepwisefitに対し,エントリと終了許容誤差にそれぞれ0.100.15を使用して、最大8つのステップを実行するように指示しています。

初期モデルの項。“InModel”と,初期モデルに含める項を指定する逻辑ベクトルで構成されるコンマ区切りのペアとして指定します。既定の設定では,どの項も含まれていません。

例:“InModel”,[真假假真]

データ型:逻辑

モデルに項を追加する許容誤差。“囚禁”と、追加する項の最大 P値を指定する正のスカラーで構成されるコンマ区切りペアとして指定します。既定値は 0.05です。

例:“囚禁”,0.10

データ型:|双重的

モデルから項を削除する許容誤差。“PRemove”と、削除する項の最小 P値を指定する正のスカラーで構成されるコンマ区切りペアとして指定します。既定値は被关闭的の最大値と0.10です。

メモ

PRemove被关闭的よりも小さくすることは許可されていません。その理由は,stepwisefitが無限ループに入り、変数のモデルへの追加とモデルからの削除が繰り返される可能性があるからです。

例:“PRemove”,0.15

データ型:|双重的

ステップ情報の表示用インジケーター。“显示”“上”または“关”から構成されるコンマ区切りのペアとして指定します。

  • “上”の場合,コマンドウィンドウの各ステップに関する情報を表示します(既定)。

  • “关”の場合、表示を省略します。

例:“显示”,“关闭”

最大ステップ数。“MaxIter”と正の整数またはInf(既定)から構成されるコンマ区切りのペアとして指定します。Infでは,単一のステップでモデルが改善しなくなるまでアルゴリズムの実行を許可します。

例:“麦克斯特”,12

データ型:双重的

初期状態で保持する項。“保持”と逻辑ベクトルで構成されるコンマ区切りのペアとして指定します。初期モデルに含まれる(または除外される)ように指定した項の値が真正的の場合、その項は強制的に最終モデルに残る (または除外される) ことになります。項の値がであれば、その項が強制的に最終モデルに残される (または除外される) ことはありません。既定の設定では、初期状態において項が保持されないように指定します。

例:“保留”[true-false]

データ型:逻辑

項のセンタリングおよびスケーリング用インジケーター。“规模”“关”または“上”で構成されるコンマ区切りのペアとして指定します。

  • “关”の場合、項のセンタリングとスケーリングを行いません (既定)。

  • “上”の場合,あてはめの前に,Xの各列をセンタリングし、スケーリングします (z)スコアを計算します)。

例:“规模”,“上”

出力引数

すべて折りたたむ

推定係数。Xの項に対応する数値ベクトルとして返されます。関数stepwisefitbの値を次のように計算します。

  • 最終モデルに項が含まれる場合,bの対応する値は,最終モデルのあてはめによって得られた推定値になります。

  • 最終モデルから項が除外される場合、bの対応する値は,最終モデルとその項のあてはめによって得られた推定値になります。

メモ

完全な仕様のあてはめられたモデルを取得するには、bに加えて,切片の推定値も必要です。切片の推定値は,出力引数统计数据のフィールドとして与えられます。詳細は,stepwisefitのあてはめられたモデルを参照してください。

標準誤差。b内の推定値に対応する数値ベクトルとして返されます。

p値。bの要素が0かどうかの検定から得られる数値ベクトルとして返されます。

最終モデル。最終モデルに含まれる項を示す、Xの列数に等しい長さの 必然的ベクトルとして返されます。

追加統計量。次のフィールドがある構造体として返されます。注意書きがなければ,すべての統計量は最終モデルに関するものです。

フィールド 説明

文字ベクトル“stepwisefit”

教育部

誤差に対する自由度

df0

回帰に対する自由度

SStotal

応答の二乗和の合計

SSresid

残差の二乗和

函数

最終モデルを (平均値だけの) 空のモデルと対比する検定に関する F統計量

pval

F統計量の P値

rmse

平方根平均二乗誤差

xr

最終モデルに含まれない項の残差。各項から最終モデルの予測応答を減算して計算する

最終モデルの予測子を使用した応答に対する残差

B

すべての項を最終モデルに追加したと仮定した場合に得られる,最終モデルの各項に対する係数

SE

係数推定値に対する標準誤差

TSTAT

係数推定値に対するt統計量

PVAL

係数推定値に対する P値

拦截

切片の推定値

wasnan

値を含むデータの行

次の推奨ステップ。モデルに追加または削除する次の項のインデックスに等しい非負の整数として返されます。推奨ステップがそれ以上ない場合は0として返されます。

実行するステップの情報。次のフィールドをもつ構造体として返されます。

フィールド 説明
B

各列が1つのステップで各行が1つの係数ベクトルである,回帰係数の行列

rmse

各ステップのモデルに対する平方根平均二乗誤差

df0

各ステップの回帰に対する自由度

ステップごとのモデル内予測子を示す 必然的配列。各行が 1.ステップ、各列が 1.つの予測子。

詳細

すべて折りたたむ

stepwisefitのあてはめられたモデル

最終的なstepwisefitのあてはめられたモデルは次のとおりです。

y 统计数据 拦截 + X :,最终模型 b finalmodel

ここで,

  • y は,予測された平均応答です。

  • stats.interceptは、切片の推定値です。

  • X(finalmodel:)は,最終モデルの項に対する入力行列です。

  • b (finalmodel)は,最終モデルの項についての係数推定値のベクトルです。

アルゴリズム

“ステップワイズ回帰”は、各項の統計的な重要性に基づき、多重線形モデルに項を追加したり削除したりするための方法です。この方法では、初期モデルから開始し、そこから連続的にステップを実行して項の追加または削除をして、モデルを改良します。各ステップで、追加可能項がある場合とない場合のモデルを検定するために、F統計量の P値が計算されます。ある項が現在はモデルにない場合、帰無仮説は、項がモデルに追加された場合に係数ゼロをもつということです。帰無仮説を棄却する十分な証拠があれば、その項がモデルに追加されます。逆に、ある項がモデルに現在ある場合、帰無仮説は、その項が係数ゼロをもつことです。帰無仮説を棄却する十分な証拠がなければ、その項がモデルから削除されます。この方法は、以下のように進めます。

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

  2. モデルにない任意の項が開始許容誤差よりも小さいp値をもつ場合,最小のp値をもつ項を追加し,このステップを繰り返します。たとえば,初期モデルが既定の定数モデルであり,開始許容誤差が既定値0.05であると仮定します。アルゴリズムでは,最初に、定数と別の項で構成されるすべてのモデルをあてはめ、最小の p 値をもつ項 (たとえば、項4)を特定します。項4のp値が0.05項より小さい場合4がモデルに追加されます。アルゴリズムでは,次に、定数である項4と別の項で構成されるすべてのモデルに対して検索を実行します。モデルにない項が0.05よりも小さいp値をもつ場合,最小のp値をもつ項をモデルに追加し,このプロセスを繰り返します。モデルに追加可能な項がそれ以上存在しない場合,アルゴリズムはステップ3に進みます。

  3. モデルの任意の項が,終了許容誤差よりも大きいp値をもつ場合,最大のp値をもつ項を削除してステップ2に進みます。それ以外の場合は終了します。

アルゴリズムの各ステップにおいて,stepwisefitは最小二乗法を使用してモデル係数を推定します。アルゴリズムは,前の段階でモデルに項を追加した後、後から追加した他の項との組み合わせに役立たなくなった場合、その項を削除する可能性があります。この方法は、1 つのステップがモデルを改良することがないと終了します。ただし、最終モデルが最適である (つまり、データに対する最適なあてはめをもつ) ことを保証するものではありません。異なる初期モデルまたは異なるステップの順序を使用すると、あてはめが向上する場合があります。この意味において、ステップワイズ モデルは、局所的には最適でも、大域的には必ずしも最適ではありません。

代替機能

  • fitlmを使用してモデルを作成し,次にaddTerms,およびremoveTermsを使用して手動でモデルを調整します。

  • テーブルにデータがあり,連続予測子とカテゴリカル予測子が混在している場合,または高次の交互作用項を潜在的に含む可能性があるモデル式を指定する場合は,逐步地を使用します。

  • stepwiseglmを使用して,ステップワイズ一般化線形モデルを作成します(たとえば,二項応答変数があり,分類モデルをあてはめる場合)。

参照

诺曼·R·德雷柏和哈里·史密斯。应用回归分析。霍博肯,新泽西州:威利国际科学出版社,1998年。307 - 312页。

R2006aより前に導入