《matlab語(yǔ)言》課程論文-matlab解決線性回歸問(wèn)題_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  《Matlab語(yǔ)言》課程論文</p><p>  Matlab解決線性回歸問(wèn)題</p><p><b>  姓名:</b></p><p><b>  學(xué)號(hào):</b></p><p><b>  專業(yè):電子信息工程</b></p><p

2、>  班級(jí):2010級(jí)電子信息工程班</p><p><b>  指導(dǎo)老師:</b></p><p>  學(xué)院:物理電氣信息學(xué)院</p><p>  完成日期:2011年12月12日</p><p>  Matlab解決線性回歸問(wèn)題</p><p>  (劉欣然 12010245347 20

3、10級(jí)電子信息工程班)</p><p>  【摘要】MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。回歸分析,是對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行處理、從中發(fā)現(xiàn)有用信息的一種重要手

4、段。而線性回歸,特別是一元線性回歸分析更是人們優(yōu)先考慮采用的方式?;诖?,本文就一元線性回歸的MATLAB實(shí)現(xiàn)作了一番探討,給出了多種實(shí)現(xiàn)方式,并通過(guò)一個(gè)實(shí)例加以具體展示,在數(shù)據(jù)處理時(shí)可根據(jù)自己的需要靈活地加以選用。</p><p>  【關(guān)鍵詞】MATLAB程序、一元線性回歸、多元線性回歸問(wèn)題、線性回歸擬合問(wèn)題、Subplot、三次樣條插值函數(shù)。</p><p><b>  一

5、、提出問(wèn)題</b></p><p>  在回歸分析中,如果有兩個(gè)或兩個(gè)以上的自變量,就稱為多元回歸。事實(shí)上,一種現(xiàn)象常常是與多個(gè)因素相聯(lián)系的,由多個(gè)自變量的最優(yōu)組合共同來(lái)預(yù)測(cè)或估計(jì)因變量,比只用一個(gè)自變量進(jìn)行預(yù)測(cè)或估計(jì)更有效,更符合實(shí)際。</p><p><b>  二、簡(jiǎn)述原理</b></p><p><b> ?。ㄒ唬?/p>

6、一元線性回歸</b></p><p>  1.命令 polyfit最小二乘多項(xiàng)式擬合</p><p>  [p,S]=polyfit(x,y,m)</p><p>  多項(xiàng)式y(tǒng)=a1xm+a2xm-1+…+amx+am+1</p><p>  其中x=(x1,x2,…,xm)x1…xm為(n*1)的矩陣;</p>&

7、lt;p>  y為(n*1)的矩陣;</p><p>  p=(a1,a2,…,am+1)是多項(xiàng)式y(tǒng)=a1xm+a2xm-1+…+amx+am+1的系數(shù);</p><p>  S是一個(gè)矩陣,用來(lái)估計(jì)預(yù)測(cè)誤差.</p><p>  2.命令 polyval多項(xiàng)式函數(shù)的預(yù)測(cè)值</p><p>  Y=polyval(p,x)求polyfit

8、所得的回歸多項(xiàng)式在x處的預(yù)測(cè)值Y;</p><p>  p是polyfit函數(shù)的返回值;</p><p>  x和polyfit函數(shù)的x值相同。</p><p>  3.命令 polyconf 殘差個(gè)案次序圖</p><p>  [Y,DELTA]=polyconf(p,x,S,alpha)求polyfit所得的回歸多項(xiàng)式在x處的預(yù)測(cè)值Y及預(yù)

9、測(cè)值的顯著性為1-alpha的置信區(qū)間DELTA;alpha缺省時(shí)為0.05。</p><p>  p是polyfit函數(shù)的返回值;</p><p>  x和polyfit函數(shù)的x值相同;</p><p>  S和polyfit函數(shù)的S值相同。</p><p>  4. 命令 polytool(x,y,m)一元多項(xiàng)式回歸命令</p>

10、;<p>  5.命令regress多元線性回歸(可用于一元線性回歸)</p><p>  b=regress( Y, X )</p><p>  [b, bint,r,rint,stats]=regress(Y,X,alpha)</p><p><b>  b 回歸系數(shù)</b></p><p>  bi

11、nt 回歸系數(shù)的區(qū)間估計(jì)</p><p><b>  r 殘差</b></p><p>  rint 殘差置信區(qū)間</p><p>  stats 用于檢驗(yàn)回歸模型的統(tǒng)計(jì)量,有三個(gè)數(shù)值:相關(guān)系數(shù)R2、F值、與F對(duì)應(yīng)的概率p,相關(guān)系數(shù)R2越接近1,說(shuō)明回歸方程越顯著;F > F1-α(k,n-k-1)時(shí)拒絕H0,F(xiàn)越大,說(shuō)明回歸方程越顯著;

12、與F對(duì)應(yīng)的概率p 時(shí)拒絕H0,回歸模型成立。</p><p><b>  Y為n*1的矩陣;</b></p><p>  X為(ones(n,1),x1,…,xm)的矩陣;</p><p>  alpha顯著性水平(缺省時(shí)為0.05)。</p><p><b>  (二)多元線性回歸</b><

13、/p><p>  1.命令 regress</p><p>  2.命令 rstool 多元二項(xiàng)式回歸</p><p>  命令:rstool(x,y,’model’, alpha)</p><p><b>  x 為n*m矩陣</b></p><p><b>  y為 n維列向量</

14、b></p><p>  model 由下列4個(gè)模型中選擇1個(gè)(用字符串輸入,缺省時(shí)為線性模型):</p><p>  linear(線性):</p><p>  purequadratic(純二次): </p><p>  interaction(交叉):</p><p>  quadratic(完全二次):&

15、lt;/p><p>  alpha 顯著性水平(缺省時(shí)為0.05)</p><p>  返回值beta 系數(shù)</p><p>  返回值rmse剩余標(biāo)準(zhǔn)差</p><p>  返回值residuals殘差</p><p><b>  非線性回歸</b></p><p>  1.

16、命令 nlinfit</p><p>  [beta,R,J]=nlinfit(X,Y,’’model’,beta0)</p><p><b>  X 為n*m矩陣</b></p><p><b>  Y為 n維列向量</b></p><p>  model為自定義函數(shù)</p><

17、;p>  beta0為估計(jì)的模型系數(shù)</p><p><b>  beta為回歸系數(shù)</b></p><p><b>  R為殘差</b></p><p>  2.命令 nlintool</p><p>  nlintool(X,Y,’model’,beta0,alpha)</p>

18、<p><b>  X 為n*m矩陣</b></p><p><b>  Y為 n維列向量</b></p><p>  model為自定義函數(shù)</p><p>  beta0為估計(jì)的模型系數(shù)</p><p>  alpha顯著性水平(缺省時(shí)為0.05)</p><p

19、>  3.命令 nlparci</p><p>  betaci=nlparci(beta,R,J)</p><p><b>  beta為回歸系數(shù)</b></p><p><b>  R為殘差</b></p><p>  返回值為回歸系數(shù)beta的置信區(qū)間</p><p&

20、gt;  4.命令 nlpredci</p><p>  [Y,DELTA]=nlpredci(‘model’,X,beta,R,J)</p><p><b>  Y為預(yù)測(cè)值</b></p><p>  DELTA為預(yù)測(cè)值的顯著性為1-alpha的置信區(qū)間;alpha缺省時(shí)為0.05。</p><p><b>

21、  X 為n*m矩陣</b></p><p>  model為自定義函數(shù)</p><p><b>  beta為回歸系數(shù)</b></p><p><b>  R為殘差</b></p><p>  三、多元線性回歸問(wèn)題</p><p>  在實(shí)際經(jīng)濟(jì)問(wèn)題中,一個(gè)變量

22、往往受到多個(gè)變量的影響。例如,家庭消費(fèi)支出,除了受家庭可支配收入的影響外,還受諸如家庭所有的財(cái)富、物價(jià)水平、金融機(jī)構(gòu)存款利息等多種因素的影響,表現(xiàn)在線性回歸模型中的解釋變量有多個(gè)。這樣的模型被稱為多元線性回歸模型。(multivariable linear regression model )</p><p>  1、多元線性回歸模型的一般形式</p><p>  多元線性回歸模型的一般形

23、式為:</p><p>  Y =0 +1X1i+2X2i++kXki +i, i=1,2,,n (1)</p><p>  其中 k 為解釋變量的數(shù)目,j (j1,2,k ) 稱為回歸系(regressioncoefficient)。式也被稱為總體回歸函數(shù)的隨機(jī)表達(dá)式。它的非隨機(jī)表達(dá)式為:</p><p>  Y =0+1X1i +2X2i ++ k X

24、ki , i=1,2,n (2)</p><p>  ? j 也被稱為偏回歸系數(shù)(partial regression coefficient)。</p><p>  2、 多元線性回歸計(jì)算模型</p><p>  Y=0+1x1+2x2+kxk +~N (0,2 ) (3)</p><p>  多元性回歸模型

25、的參數(shù)估計(jì),同一元線性回歸方程一樣,也是在要求誤差平方和(Σe)為最小的前提下,用最小二乘法或最大似然估計(jì)法求解參數(shù)。</p><p>  設(shè) ( x11, x12 , x1 p , y1 ),, ( xn1, xn 2 , xnp , yn ) 是一個(gè)樣本,用最大似然估計(jì)法估計(jì)參數(shù):</p><p>  取 b0 , b1 bp ,當(dāng) b0b0 , b1b1,b? b 達(dá)到最小。<

26、/p><p><b>  例1</b></p><p><b>  輸入以下程序:</b></p><p>  輸出結(jié)果如圖1所示:</p><p>  在 Matlab 命令窗口輸入</p><p>  z=b(1)+b(2)*x %運(yùn)算</p><p&g

27、t;  plot(x,Y,‘k+',x,z,'r') %輸出運(yùn)算</p><p>  得到預(yù)測(cè)比較圖如圖2、3所示:</p><p>  例 2:(多元線性回歸)</p><p>  水泥凝固時(shí)放出的熱量 y 與水泥中的四種化學(xué)成分 x1, x2, x3, x4 有關(guān), 今測(cè)得一組數(shù)據(jù)如下, 試確定多元線性模型</p><

28、p>  輸出結(jié)果如圖4所示:</p><p><b>  結(jié)果如圖5所示:</b></p><p>  在matlab命令框中輸入</p><p><b>  得到如圖6所示:</b></p><p><b>  四、線性回歸擬合</b></p><p

29、>  對(duì)于多元線性回歸模型:</p><p>  設(shè)變量的n組觀測(cè)值為</p><p><b> ?。?lt;/b></p><p>  記 ,,則 的估計(jì)值為</p><p><b>  (11.2)</b></p><p>  在Matlab中,用regress函數(shù)進(jìn)行多

30、元線性回歸分析,應(yīng)用方法如下:</p><p>  語(yǔ)法:b = regress(y, x)</p><p>  [b, bint,r,rint,stats]=regress(y,x)</p><p>  [b, bint,r,rint,stats]=regress(y,x,alpha)</p><p>  b = regress(y,x)得

31、到的維列向量b即為(11.2)式給出的回歸系數(shù)的估計(jì)值.</p><p>  [b,bint,r,rint,stats]=regress(y,x)給出回歸系數(shù)的估計(jì)值b,的95%置信區(qū)間(向量)bint,殘差r以及每個(gè)殘差的95%置信區(qū)間(向量)rint;向量stats給出回歸的R2統(tǒng)計(jì)量和F以及臨界概率p的值.</p><p>  如果的置信區(qū)間(bint的第行)不包含0,則在顯著水平為

32、時(shí)拒絕的假設(shè),認(rèn)為變量是顯著的.</p><p>  [b, bint,r,rint,stats]=regress(y,x,alpha) 給出了bint和rint的100(1-alpha)%的置信區(qū)間.</p><p>  三次樣條插值函數(shù)的MATLAB程序</p><p>  matlab的spline x = 0:10; y = sin(x);

33、%插值點(diǎn)xx = 0:.25:10; %繪圖點(diǎn)yy = spline(x,y,xx); plot(x,y,'o',xx,yy)</p><p><b>  結(jié)果如圖7所示</b></p><p><b>  五、非線性擬合</b></p><p>  非線性擬合可以用以下命令(

34、同樣適用于線形回歸分析):1.beta = nlinfit(X,y,fun,beta0) X給定的自變量數(shù)據(jù),Y給定的因變量數(shù)據(jù),fun要擬合的函數(shù)模型(句柄函數(shù)或 者內(nèi)聯(lián)函數(shù)形式), beta0函數(shù)模型中系數(shù)估計(jì)初值,beta返回?cái)M合后的系數(shù) 2.x = lsqcurvefit(fun,x0,xdata,ydata) fun要擬合的目標(biāo)函數(shù),x0目標(biāo)函數(shù)中的系數(shù)估計(jì)初值,xdata自變量數(shù)據(jù),ydata函數(shù)值數(shù)據(jù)

35、 X擬合返回的系數(shù)(擬合結(jié)果) </p><p><b>  nlinfit</b></p><p>  格式:[beta,r,J]=nlinfit(x,y,’model’, beta0)</p><p>  Beta估計(jì)出的回歸系數(shù)</p><p><b>  r 殘差</b></p&

36、gt;<p>  J Jacobian矩陣</p><p>  x,y 輸入數(shù)據(jù)x、y分別為n*m矩陣和n維列向量,對(duì)一元非線性回歸,x為n維列向量。</p><p>  model是事先用m-文件定義的非線性函數(shù)</p><p>  beta0 回歸系數(shù)的初值</p><p><b>  例1已知數(shù)據(jù):</b

37、></p><p>  x1=[0.5,0.4,0.3,0.2,0.1]; </p><p>  x2=[0.3,0.5,0.2,0.4,0.6]; </p><p>  x3=[1.8,1.4,1.0,1.4,1.8];</p><p>  y=[0.785,0.703,0.583,0.571,0.126]’;</p&

38、gt;<p>  且y與x1,x2 , x3關(guān)系為多元非線性關(guān)系(只與x2,x3相關(guān))為:</p><p>  y=a+b*x2+c*x3+d*(x2.^2)+e*(x3.^2)</p><p>  求非線性回歸系數(shù)a , b , c , d , e 。</p><p>  (1)對(duì)回歸模型建立M文件model.m如下:</p><

39、p>  function yy=myfun(beta,x)</p><p>  x1=x(:,1); %數(shù)據(jù)</p><p>  x2=x(:,2); %數(shù)據(jù)</p><p>  x3=x(:,3); %數(shù)據(jù)</p><p>  yy=beta(1)+beta(2)*x2+beta(3)*x3+beta(4)*(x2.^2)+beta(

40、5)*(x3.^2); %運(yùn)算出圖</p><p><b>  (2)主程序如下:</b></p><p>  x=[0.5,0.4,0.3,0.2,0.1;0.3,0.5,0.2,0.4,0.6;1.8,1.4,1.0,1.4,1.8]; %數(shù)據(jù)</p><p>  y=[0.785,0.703,0.583,0.571,0.126];%數(shù)據(jù)&

41、lt;/p><p>  beta0=[1,1, 1,1, 1];%數(shù)據(jù)</p><p>  [beta,r,j] = nlinfit(x,y,@myfun,beta0)%運(yùn)算出圖</p><p><b>  輸出結(jié)果如圖8所示</b></p><p>  例題2:混凝土的抗壓強(qiáng)度隨養(yǎng)護(hù)時(shí)間的延長(zhǎng)而增加,現(xiàn)將一批混凝土作成12

42、個(gè)試塊,記錄了養(yǎng)護(hù)日期(日)及抗壓強(qiáng)度y(kg/cm2)的數(shù)據(jù): 養(yǎng)護(hù)時(shí)間:x =[2 3 4 5 7 9 12 14 17 21 28 56 ] 抗壓強(qiáng)度:y =[35+r 42+r 47+r 53+r 59+r 65+r 68+r 73+r 76+r 82+r 86+r 99+r ] 建立非線性回歸模型,對(duì)得到的模型和系數(shù)進(jìn)行檢驗(yàn)。 注明:此題中的+r代表加上一個(gè)[-0.5,0.5]之間的隨機(jī)數(shù) 模型為:y=a+k1*ex

43、p(m*x)+k2*exp(-m*x); </p><p>  Matlab程序:x=[2 3 4 5 7 9 12 14 17 21 28 56]; %數(shù)據(jù)r=rand(1,12)-0.5; y1=[35 42 47 53 59 65 68 73 76 82 86 99]; %數(shù)據(jù)y=y1+r ; %運(yùn)算路徑myfunc=inline('beta(1)+beta(2)*exp(beta(4)*

44、x)+beta(3)*exp(-beta(4)*x)','beta','x');%運(yùn)算路徑 beta=nlinfit(x,y,myfunc,[0.5 0.5 0.5 0.5]);%運(yùn)算方法 a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) %數(shù)據(jù)%test the model%運(yùn)算方法xx=min(x):max(x); %運(yùn)算方法yy=a+k1*exp(

45、m*xx)+k2*exp(-m*xx);%運(yùn)算方法 plot(x,y,'o',xx,yy,'r') </p><p><b>  結(jié)果如圖9所示:</b></p><p><b>  lsqnonlin</b></p><p>  非線性最小二乘(非線性數(shù)據(jù)擬合)的標(biāo)準(zhǔn)形式為</p

46、><p><b>  其中:L為常數(shù)</b></p><p>  在MATLAB5.x中,用函數(shù)leastsq解決這類問(wèn)題,在6.0版中使用函數(shù)lsqnonlin。</p><p><b>  設(shè)</b></p><p><b>  則目標(biāo)函數(shù)可表達(dá)為</b></p>

47、<p>  其中:x為向量,F(xiàn)(x)為函數(shù)向量。</p><p>  函數(shù) lsqnonlin</p><p>  格式x = lsqnonlin(fun,x0) %x0為初始解向量;fun為,i=1,2,…,m,fun返回向量值F,而不是平方和值,平方和隱含在算法中,fun的定義與前面相同。</p><p>  x = lsqnonlin(fun,x0

48、,lb,ub)%lb、ub定義x的下界和上界:。</p><p>  x = lsqnonlin(fun,x0,lb,ub,options)%options為指定優(yōu)化參數(shù),若x沒(méi)有界,則lb=[ ],ub=[ ]。</p><p>  [x,resnorm] = lsqnonlin(…)% resnorm=sum(fun(x).^2),即解x處目標(biāo)函數(shù)值。</p><p

49、>  [x,resnorm,residual] = lsqnonlin(…)% residual=fun(x),即解x處fun的值。</p><p>  [x,resnorm,residual,exitflag] = lsqnonlin(…)%exitflag為終止迭代條件。</p><p>  [x,resnorm,residual,exitflag,output] = lsqno

50、nlin(…)%output輸出優(yōu)化信息。</p><p>  [x,resnorm,residual,exitflag,output,lambda]=lsqnonlin(…) %lambda為L(zhǎng)agrage乘子。</p><p>  [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqnonlin(…) %fun在解x

51、處的Jacobian矩陣。</p><p>  例 求下面非線性最小二乘問(wèn)題初始解向量為x0=[0.3, 0.4]。</p><p>  解:先建立函數(shù)文件,并保存為myfun.m,由于lsqnonlin中的fun為向量形式而不是平方和形式,因此,myfun函數(shù)應(yīng)由建立:</p><p>  k=1,2,…,10</p><p>  fun

52、ction F = myfun(x)</p><p><b>  k = 1:10;</b></p><p>  F = 2 + 2*k-exp(k*x(1))-exp(k*x(2));</p><p><b>  然后調(diào)用優(yōu)化程序:</b></p><p>  x0 = [0.3 0.4];&l

53、t;/p><p>  [x,resnorm] = lsqnonlin(@myfun,x0) %主運(yùn)算方法</p><p><b>  結(jié)果為:</b></p><p>  Optimization terminated successfully:</p><p>  Norm of the current step is l

54、ess than OPTIONS.TolX</p><p><b>  x =</b></p><p>  0.2578 0.2578</p><p>  resnorm =%求目標(biāo)函數(shù)值</p><p>  lsqcurvefit</p><p>  非線性曲線擬合是已知輸入向量xdata

55、和輸出向量ydata,并且知道輸入與輸出的函數(shù)關(guān)系為ydata=F(x, xdata),但不知道系數(shù)向量x。今進(jìn)行曲線擬合,求x使得下式成立:</p><p>  在MATLAB5.x中,使用函數(shù)curvefit解決這類問(wèn)題。</p><p>  函數(shù) lsqcurvefit</p><p>  格式 x = lsqcurvefit(fun,x0,xdata,y

56、data) %運(yùn)算方法</p><p>  x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub)</p><p>  x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)</p><p>  [x,resnorm] = lsqcurvefit(…) %運(yùn)算方法</p><

57、p>  [x,resnorm,residual] = lsqcurvefit(…) %運(yùn)算方法</p><p>  [x,resnorm,residual,exitflag] = lsqcurvefit(…) %運(yùn)算方法</p><p>  [x,resnorm,residual,exitflag,output] = lsqcurvefit(…)</p><p&g

58、t;  [x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…) %運(yùn)算方法</p><p>  [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…) %運(yùn)算方法</p><p><b>  參數(shù)說(shuō)明:</b></p

59、><p>  x0為初始解向量;xdata,ydata為滿足關(guān)系ydata=F(x, xdata)的數(shù)據(jù);</p><p>  lb、ub為解向量的下界和上界,若沒(méi)有指定界,則lb=[ ],ub=[ ];</p><p>  options為指定的優(yōu)化參數(shù);fun為擬合函數(shù),其定義方式為:x = lsqcurvefit(@myfun,x0,xdata,ydata),&l

60、t;/p><p>  其中myfun已定義為 function F = myfun(x,xdata)</p><p>  F = …% 計(jì)算x處擬合函數(shù)值fun的用法與前面相同;</p><p>  resnorm=sum ((fun(x,xdata)-ydata).^2),即在x處殘差的平方和;</p><p>  residual=f

61、un(x,xdata)-ydata,即在x處的殘差;</p><p>  exitflag為終止迭代的條件;</p><p>  output為輸出的優(yōu)化信息;</p><p>  lambda為解x處的Lagrange乘子;</p><p>  jacobian為解x處擬合函數(shù)fun的jacobian矩陣。</p><p

62、>  例 求解如下最小二乘非線性擬合問(wèn)題</p><p>  已知輸入向量xdata和輸出向量ydata,且長(zhǎng)度都是n,擬合函數(shù)為</p><p><b>  即目標(biāo)函數(shù)為</b></p><p><b>  其中:</b></p><p>  初始解向量為x0=[0.3, 0.4, 0.1

63、]。</p><p>  解:先建立擬合函數(shù)文件,并保存為myfun.m</p><p>  function F = myfun(x,xdata)</p><p>  F = x(1)*xdata.^2 + x(2)*sin(xdata) + x(3)*xdata.^3;</p><p>  然后給出數(shù)據(jù)xdata和ydata</p&

64、gt;<p>  >>xdata = [3.6 7.7 9.3 4.1 8.6 2.8 1.3 7.9 10.0 5.4];</p><p>  >>ydata = [16.5 150.6 263.1 24.7 208.5 9.9 2.7 163.9 325.0 54.3];</p><p>  >>x0 = [10, 10, 10];

65、 %初始估計(jì)值</p><p>  >>[x,resnorm] = lsqcurvefit(@myfun,x0,xdata,ydata)</p><p><b>  結(jié)果為:</b></p><p>  Optimization terminated successfully:</p><p>  Rela

66、tive function value changing by less than OPTIONS.TolFun</p><p>  x = 0.2269 0.3385 0.3021</p><p>  resnorm = 6.2950</p><p>  對(duì)于上述這些可化為線性模型的回歸問(wèn)題,一般先將其化為線性模型,然后再用最小二乘法求出參數(shù)的估計(jì)值,

67、最后再經(jīng)過(guò)適當(dāng)?shù)淖儞Q,得到所求回歸曲線。 </p><p>  在熟練掌握最小二乘法的情況下,解決上述問(wèn)題的關(guān)鍵是確定曲線類型和怎樣將其轉(zhuǎn)化為線性模型。 </p><p><b>  如圖10所示</b></p><p>  確定曲線類型一般從兩個(gè)方面考慮:一是根據(jù)專業(yè)知識(shí),從理論上推導(dǎo)或憑經(jīng)驗(yàn)推測(cè)、二是在專業(yè)知識(shí)無(wú)能為力的情況下,通過(guò)繪制和觀

68、測(cè)散點(diǎn)圖確定曲線大體類型。</p><p>  六、Subplot問(wèn)題</p><p><b>  程序:</b></p><p>  x1=[1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 6 6 6 6 7 8 8 8 8 10 10 10 10 11 11 12 12 13 13 14 15 16 16 1

69、6 17 20]';%數(shù)據(jù)</p><p>  x2=[1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0 1 0 1 0 1 1 0 0 0 0]';%數(shù)據(jù)</p><p>  x5=[1,3,3,2,3,2,2,1,3,2,1,2,3,1,3,3,2,2,3,1,1,3,2,2,

70、1,2,1,3,1,1,2,3,2,2,1,2,3,1,2,2,3,2,2,1,2,1]';%數(shù)據(jù)</p><p>  x3=[1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1]';%數(shù)據(jù)</p><p>  x4=[0 0 0 1 0 1

71、1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0]';%數(shù)據(jù)</p><p>  y=[13876 11608 18701 11283 11767 20872 11772 10535 12195 12313 14975 21371 19800 11417 20263 13231 12884 132

72、45 13677 15965 12366 21352 13839 22884 16978 14803 17404 22184 13548 14467 15942 23174 23780 25410 14861 16882 24170 15990 26330 17949 25685 27837 18838 17483 19207 19346];%數(shù)據(jù)</p><p><b>  size(x5)</

73、b></p><p>  x = [ones(46,1),x1,x2,x3,x4]</p><p>  [b,bint,r,rint,stats]=regress(y,x,0.05)%運(yùn)算方法</p><p>  plot(x1,r,'r+')</p><p><b>  hold on</b>&l

74、t;/p><p>  for i=1:1:46</p><p>  if(x2(i,1)==0 & x5(i,1)==1)</p><p>  k(i)=1;%交替運(yùn)算</p><p>  elseif(x2(i,1)==1&x5(i,1)==1)</p><p>  k(i)=2;%交替運(yùn)算</p&

75、gt;<p>  elseif(x2(i,1)==0&x5(i,1)==2)</p><p>  k(i)=3;%交替運(yùn)算</p><p>  elseif(x2(i,1)==1&x5(i,1)==2)</p><p>  k(i)=4; %交替運(yùn)算</p><p>  elseif(x2(i,1)==0&

76、;x5(i,1)==3)</p><p>  k(i)=5; %交替運(yùn)算</p><p><b>  else</b></p><p><b>  k(i)=6;</b></p><p><b>  end</b></p><p><b>  

77、end</b></p><p><b>  k;</b></p><p>  plot(k,r,'g+')</p><p><b>  輸出如圖11所示</b></p><p><b>  第二個(gè)</b></p><p>  

78、x1=[1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 6 6 6 6 7 8 8 8 8 10 10 10 10 11 11 12 12 13 13 14 15 16 16 16 17 20]';%數(shù)據(jù)</p><p>  x2=[1 0 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 0

79、 1 0 1 0 1 1 0 0 0 0]';%數(shù)據(jù)</p><p>  x5=[1,3,3,2,3,2,2,1,3,2,1,2,3,1,3,3,2,2,3,1,1,3,2,2,1,2,1,3,1,1,2,3,2,2,1,2,3,1,2,2,3,2,2,1,2,1]';%數(shù)據(jù)</p><p>  x3=[1 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0

80、 0 1 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1]';%數(shù)據(jù)</p><p>  x4=[0 0 0 1 0 1 1 0 0 1 0 1 0 0 0 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 1 0 1 1 0 1 0 0 1 1 0 1 1 0 1 0]';%數(shù)據(jù)</p><p>  y=[

81、13876 11608 18701 11283 11767 20872 11772 10535 12195 12313 14975 21371 19800 11417 20263 13231 12884 13245 13677 15965 12366 21352 13839 22884 16978 14803 17404 22184 13548 14467 15942 23174 23780 25410 14861 16882 2417

82、0 15990 26330 17949 25685 27837 18838 17483 19207 19346]';%數(shù)據(jù)</p><p><b>  size(x5)</b></p><p>  x = [ones(46,1),x1,x2,x3,x4,x2.*x3,x2.*x4]</p><p>  [b,bint,r,rint,st

83、ats]=regress(y,x,0.05)%運(yùn)算方法</p><p>  plot(x1,r,'r+')</p><p><b>  hold on</b></p><p>  for i=1:1:46</p><p>  if(x2(i,1)==0 & x5(i,1)==1)</p>

84、;<p>  k(i)=1; %交替運(yùn)算</p><p>  elseif(x2(i,1)==1&x5(i,1)==1)</p><p>  k(i)=2; %交替運(yùn)算</p><p>  elseif(x2(i,1)==0&x5(i,1)==2)</p><p>  k(i)=3; %交替運(yùn)算</p>

85、;<p>  elseif(x2(i,1)==1&x5(i,1)==2)</p><p>  k(i)=4; %交替運(yùn)算</p><p>  elseif(x2(i,1)==0&x5(i,1)==3)</p><p>  k(i)=5; %交替運(yùn)算</p><p><b>  else</b>

86、;</p><p><b>  k(i)=6;</b></p><p><b>  end</b></p><p><b>  end</b></p><p><b>  k;</b></p><p>  plot(k,r,'

87、;g+')</p><p><b>  輸出如圖12所示</b></p><p><b>  七、設(shè)計(jì)總結(jié)</b></p><p>  使用Matlab解決線性回歸問(wèn)題,解決多元線性回歸中自變量之間的多重共線性問(wèn)題,常用的有三種方法: 嶺回歸、主成分回歸和偏最小二乘回歸。本文利用三種方法的sas程序進(jìn)行了回歸分析,

88、根據(jù)分析結(jié)果總結(jié)出三種方法的優(yōu)缺點(diǎn),結(jié)果表明如果能夠使用定性分析和定量分析結(jié)合的方法確定一個(gè)合適的k值,則嶺回歸可以很好地消除共線性影響;主成分回歸和偏最小二乘回歸采用成份提取的方法進(jìn)行回歸建模,由于偏最小二乘回歸考慮到與因變量的關(guān)系,因而比主成分回歸更具優(yōu)越性。</p><p><b>  八、課程體會(huì)</b></p><p>  本次MATLAB課程設(shè)計(jì)主要任務(wù)是

89、完成與線性回歸問(wèn)題的結(jié)合,對(duì)我來(lái)說(shuō)這個(gè)題目還是很有挑戰(zhàn)性的,因?yàn)樽约簩?duì)MATLAB中有制圖知識(shí)了解較少,但正是這種有挑戰(zhàn)性的題目才能提高自己的能力,才有研究?jī)r(jià)值,入手這個(gè)題目后我查閱了相關(guān)的資料,也從網(wǎng)上獲得了不少有關(guān)MATLAB制圖的資料,加上自己之間對(duì)MATLAB有一定的了解,因而設(shè)計(jì)思路漸漸明朗,經(jīng)過(guò)自己的不斷嘗試和探索,終于弄明白了matlab對(duì)線性回歸制圖的工作原理,通過(guò)查閱相關(guān)資料和研究MATLAB中提供的幫助信息,我也明白

90、了與線性回歸相關(guān)的一些函數(shù)的使用方法,并用它們來(lái)各種圖像,最終完成了題目。</p><p>  在設(shè)計(jì)過(guò)程中,我也遇到了很多不懂得地方,程序經(jīng)常出現(xiàn)錯(cuò)誤,尤其是在利用所設(shè)計(jì)的題目對(duì)模擬出來(lái)的數(shù)字序列時(shí),出現(xiàn)很多錯(cuò)誤,但經(jīng)過(guò)自己的不斷努力和嘗試,最終還是解決了問(wèn)題。</p><p>  總之,通過(guò)本次課程設(shè)計(jì),我收獲很大,不只是學(xué)會(huì)了用MATLAB解決線性回歸問(wèn)題,而且學(xué)會(huì)了自己學(xué)習(xí)新知識(shí)的

91、一種方法。</p><p><b>  九、參考文獻(xiàn)</b></p><p>  [1]劉衛(wèi)國(guó).MATLAB程序設(shè)計(jì)與應(yīng)用(第二版)[M].北京:高等教育出版社,2006.</p><p>  [2]陳亞勇,MATLAB信號(hào)處理詳解.人民郵電出版社,2008</p><p>  [3]周開利,鄧春輝,MATLAB基礎(chǔ)及其

92、應(yīng)用教程.北京大學(xué)出版社,2007</p><p>  [4]趙靜,張瑾,基于MATLAB的通信系統(tǒng)仿真.北京航空航天大學(xué)出版社,2006</p><p>  [5]包剛,國(guó)際著名數(shù)學(xué)圖書:光學(xué)中的數(shù)學(xué)模型(版). 清華大學(xué)出版社,2011</p><p>  [6]姜啟源,謝金星,葉俊.數(shù)學(xué)模型(第三版)[M].北京:高等教育出版社,2003.</p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論