11/28/2006

11.13.2 步進迴歸stepwisefit

步進迴歸可以依自進變數之顯著性進行,篩選其指令為stepwisefit,語法如下:


b = stepwisefit(X, y)
[b,se,pval,inmodel,stats,nextstep,history] = stepwisefit(...)
[...] = stepwisefit(X, y, 'Param1',value1,'Param2',value2,...)
stepwise(X, y)
stepwise(X, y, inmodel, penter, premove)

步進迴歸stepwise是一個交談式之迴歸方式而stepwisefit則是直接迴歸曲線,並得到係數值。步進迴歸旨在利用設計之X參數矩陣預測Y向量值,以此獲得迴歸係數b 。在交談式迴歸中,沒有指定之輸出參數,但等到交談過程中得到滿意的結果後,即可將相關係數輸出。在stepwisefit指令之輸入項中,其相關參數說明如下:

  • b為計算得到之係數向量,se為其標準差。
  • pval為P值向量,檢驗是否 b=0?
  • inmodel為邏輯向量,其長度與X之行數相同,旨在說明留在模式之預測子。例如在j處之值為1表丕第j個預測值留在模式內;若為0時則否。
  • stats為其他統計資訊。
  • nextstep為建議下一步做法,說明那一個預測值要加入或移出。若結果為0時表示沒有意見。
  • history為記錄每一步驟資訊結構。

在輸入項中,有'Param1',value1之輸入項,其內容包括如下:

參數名稱 參數值
'inmodel' 邏輯向量,說明那一個預測子在最初迴歸時納入。若全為零,表示沒有預測子。
'penter' 加入新預測子之最大P值,預設值為0.05。
'premove' 移去預測子之最小P值,預設值為0.01。
'display' 步驟顯示關關:'on'為顯示資訊;'off'不顯示。
'maxiter' 步驟最高次數(預設值為無最大值)
'keep' 邏輯向量,說明那一個預測子在最初迴歸時要保留。若全為零,表示沒有預測子。
'scale' 'on' 在迴歸前就X中各行以標準差進行分格;'off'不不格。

例:就工具箱hald.mat之資料進行迴歸分析

load hald
stepwisefit(ingredients, heat, 'penter', .08)

Initial columns included: none
Step 1, added column 4, p=0.000576232
Step 2, added column 1, p=1.10528e-006
Step 3, added column 2, p=0.0516873
Step 4, removed column 4, p=0.205395
Final columns included: 1 2
ans =
'Coeff' 'Std.Err.' 'Status' 'P'
[ 1.4683] [ 0.1213] 'In' [2.6922e-007]
[ 0.6623] [ 0.0459] 'In' [5.0290e-008]
[ 0.2500] [ 0.1847] 'Out' [ 0.2089]
[-0.2365] [ 0.1733] 'Out' [ 0.2054]
ans =
1.4683
0.6623
0.2500
-0.2365

使用stepwise之交談式分析畫面: