Matlab統計工具箱應用(III)
2011 年 07 月 18 日
本節討論統計工具箱在線性回歸與回歸分析中的應用。
1. 回歸分析的主要研究內容
a. 建立因變量y與自變量x_1,x_2,…x_n之間的回歸模型(經驗公式)
b. 對回歸模型的可信度進行分析
c. 判斷每個自變量x_i對y的影響是否明顯(方差分析)
d. 診斷回歸模型是否適合這組數據;
e. 利用回歸模型對y進行預測和分析
2. 數據的標准化處理
對數據進行標准化處理,一則不會改變數據之間的相關關系,卻可以為后續的處理提供便利;二則可以對數據進行無量綱化處理,使每個變量都有等同的表現力。
Undefined control sequence \farc
其中,x ij 是原始數據,x − 是每個變量在n個觀測點上的均值,即x − =sum n i=1 n+1 ,s j 是每個變量組間標准差,即為x j =sqrt1 n+1 sum n i=1 x ij −x j − − .
3. 一元線性回歸模型分析
形如y=β 0 +β 1 x+δ 即為一元線性回歸模型,即y僅與一個變量x有關,式子最后一項為隨機變量。根據最小二乘法(過程省略),可以得到Undefined control sequence \bata 和β 1 的估計值如下:
{β 1 =s y s x r xy β 0 =y − −β 1 x −
又由於之前對數據做了標准化處理,所以有s y =1 ,s x =1 ,
y=r xy x
4.顯著性檢驗
對於一元線性回歸模型,顯著性檢驗包含兩個方面,一是檢驗因變量與自變量之間是否具有顯著的線性關系,即對模型的檢驗,這是由F檢驗完成的,對於給定的置信水平α ,按自由度n1=1,n2 = n-2查F的分布表,若大於則認為模型可接受;二是檢驗回歸參數是否合理,這是由t檢驗完成的,對於給定的置信水平α ,按自由度n-2查t分布表,若大於則認為β 1 顯著不為零。
5.多元線性回歸
過程與原理與一元線性回歸過程類似,但是F檢驗的自由度變為(m,n-m-1),並且還有一些衡量y與各個分量之間是否存在相關性的指標,如R 2 =U S ,這是回歸平方和在總平方和中的比值,稱為復判定系數,其開方值為復相關系數,通常認為R>0.8(或0.9)才認為相關關系成立。
6.Matlab統計工具箱相關函數
6.1多元線性回歸
函數為regress,輸入輸出如下:
[b,bint,r,rint,stats]=regress(X,Y,alpha)
X是對m個元素進行的n次觀測值,其中X的行向量是一次觀測值,但第一個元素為1,即為[1,x_1,x_2…x_m]。Y是因變量的n次觀測值。
b返回回歸參數的點估計值,bint返回回歸參數的區間估計值,r為殘差(向量)以及r的置信區間,stat是用於檢驗模型的統計量,四個統計量分別為R 2 ,F,F對應的概率p,p<α 時認為線性關系成立,第四個是殘差的方差s 2 。殘差及其置信區間可以用函數rcoplot(r,rint)畫出。觀察殘差的置信區間,如果不包含零點,則認為觀測點有異常,剔除后重新計算。
6.2多項式回歸
如果用散點圖可以觀測出因變量與自變量之間存在明顯的二次或者高次關系,或者用線性模型回歸的效果不是很好,則可以選用多項式回歸。
函數:[p,s]=polyfit(x0,y0,m)
輸入中的n代表了多項式的最高次數,x0是n*(m-1)維的觀測值,如果自變量只有一個,則x0的每個列向量都是相等的,y0是對應的因變量觀測值。
輸出p是從高次到低次的回歸參數,包括了常數項。s是一個數據結構,可以用來計算函數值,計算方法為[y,delta] = polyconf(p,x0,s),其中y是擬合值,delta是y的置信區間半徑。也可以采用polytool(x0,y0,2),采用一個交互式界面,可以給出任意位置的y預測值。
Matlab中提供了一個專門的函數rstool完成多元二項式回歸,這個函數也產生一個交互式的界面,用法是rstool(x,y,model,alpha),x,y分別是n*m維矩陣和n維向量,model可以取以下幾個值”linear”、”purequadratic”、”interaction”和”quadratic”四個值。界面上有一個export菜單,用於向命令窗口傳遞數據,包括回歸參數,剩余標准差以及殘差,可以通過修改model的值比較多個模型的標准差來確定哪個最好。
6.3非線性回歸
非線性回歸是指因變量對回歸系數(而不是自變量,否則應該是多項式回歸)是非線性的。
已知模型的函數,但是不知道回歸系數,首先,將模型函數輸入,然后,用nlinfit計算回歸系數,用nlparci計算回歸系數的置信區間,nlpredci計算預測值以及置信區間。
編程時,先任意生成一個beta的初值,然后[betahat,r,j]=nlinfit(x0,y0,’functionname’,beta),其中返回值r,j是下面命令需要用到的信息,betaci=nlparci(betahat,r,'jacobian',j)計算beta的區間估計,組合為betaa=[betahat,betaci],表示回歸系數及其置信區間[yhat,delta]=nlpredci(@huaxue,x,betahat,r,'jacobian',j),delta是預測值的半徑,置信區間為yhat±delta。用nlintool可以生成一個交互式界面,與rstool有些類似,命令為nlintool(x,y,’functionname’,beta)。
6.4逐步回歸
實際中影響因變量的因素可能有很多,所以需要選取影響最為顯著的幾項進行擬合,也就是變量的選擇。
Matlab中用於逐步回歸的函數為stepwise,用法是stepwise(x,y,inmodel,alpha) ,inmodel是矩陣x的列數的指標,給出初始模型中包括的子集(可缺省).界面中綠色的表示留在模型中的自變量,紅色代表從模型中移去的變量。