版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 《Matlab語言》課程論文</p><p> Matlab解決線性回歸問題</p><p><b> 姓名:</b></p><p><b> 學號:</b></p><p><b> 專業(yè):電子信息工程</b></p><p
2、> 班級:2010級電子信息工程班</p><p><b> 指導老師:</b></p><p> 學院:物理電氣信息學院</p><p> 完成日期:2011年12月12日</p><p> Matlab解決線性回歸問題</p><p> (劉欣然 12010245347 20
3、10級電子信息工程班)</p><p> 【摘要】MATLAB和Mathematica、Maple并稱為三大數(shù)學軟件。它在數(shù)學類科技應用軟件中在數(shù)值計算方面首屈一指。MATLAB可以進行矩陣運算、繪制函數(shù)和數(shù)據(jù)、實現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語言的程序等,主要應用于工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域?;貧w分析,是對現(xiàn)有數(shù)據(jù)進行處理、從中發(fā)現(xiàn)有用信息的一種重要手
4、段。而線性回歸,特別是一元線性回歸分析更是人們優(yōu)先考慮采用的方式?;诖?,本文就一元線性回歸的MATLAB實現(xiàn)作了一番探討,給出了多種實現(xiàn)方式,并通過一個實例加以具體展示,在數(shù)據(jù)處理時可根據(jù)自己的需要靈活地加以選用。</p><p> 【關鍵詞】MATLAB程序、一元線性回歸、多元線性回歸問題、線性回歸擬合問題、Subplot、三次樣條插值函數(shù)。</p><p><b> 一
5、、提出問題</b></p><p> 在回歸分析中,如果有兩個或兩個以上的自變量,就稱為多元回歸。事實上,一種現(xiàn)象常常是與多個因素相聯(lián)系的,由多個自變量的最優(yōu)組合共同來預測或估計因變量,比只用一個自變量進行預測或估計更有效,更符合實際。</p><p><b> 二、簡述原理</b></p><p><b> (一)
6、一元線性回歸</b></p><p> 1.命令 polyfit最小二乘多項式擬合</p><p> [p,S]=polyfit(x,y,m)</p><p> 多項式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)是多項式y(tǒng)=a1xm+a2xm-1+…+amx+am+1的系數(shù);</p><p> S是一個矩陣,用來估計預測誤差.</p><p> 2.命令 polyval多項式函數(shù)的預測值</p><p> Y=polyval(p,x)求polyfit
8、所得的回歸多項式在x處的預測值Y;</p><p> p是polyfit函數(shù)的返回值;</p><p> x和polyfit函數(shù)的x值相同。</p><p> 3.命令 polyconf 殘差個案次序圖</p><p> [Y,DELTA]=polyconf(p,x,S,alpha)求polyfit所得的回歸多項式在x處的預測值Y及預
9、測值的顯著性為1-alpha的置信區(qū)間DELTA;alpha缺省時為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)一元多項式回歸命令</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ū)間估計</p><p><b> r 殘差</b></p><p> rint 殘差置信區(qū)間</p><p> stats 用于檢驗回歸模型的統(tǒng)計量,有三個數(shù)值:相關系數(shù)R2、F值、與F對應的概率p,相關系數(shù)R2越接近1,說明回歸方程越顯著;F > F1-α(k,n-k-1)時拒絕H0,F(xiàn)越大,說明回歸方程越顯著;
12、與F對應的概率p 時拒絕H0,回歸模型成立。</p><p><b> Y為n*1的矩陣;</b></p><p> X為(ones(n,1),x1,…,xm)的矩陣;</p><p> alpha顯著性水平(缺省時為0.05)。</p><p><b> ?。ǘ┒嘣€性回歸</b><
13、/p><p> 1.命令 regress</p><p> 2.命令 rstool 多元二項式回歸</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個模型中選擇1個(用字符串輸入,缺省時為線性模型):</p><p> linear(線性):</p><p> purequadratic(純二次): </p><p> interaction(交叉):</p><p> quadratic(完全二次):&
15、lt;/p><p> alpha 顯著性水平(缺省時為0.05)</p><p> 返回值beta 系數(shù)</p><p> 返回值rmse剩余標準差</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為估計的模型系數(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為估計的模型系數(shù)</p><p> alpha顯著性水平(缺省時為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為預測值</b></p><p> DELTA為預測值的顯著性為1-alpha的置信區(qū)間;alpha缺省時為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> 三、多元線性回歸問題</p><p> 在實際經(jīng)濟問題中,一個變量
22、往往受到多個變量的影響。例如,家庭消費支出,除了受家庭可支配收入的影響外,還受諸如家庭所有的財富、物價水平、金融機構(gòu)存款利息等多種因素的影響,表現(xiàn)在線性回歸模型中的解釋變量有多個。這樣的模型被稱為多元線性回歸模型。(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ù)的隨機表達式。它的非隨機表達式為:</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、 多元線性回歸計算模型</p><p> Y=0+1x1+2x2+kxk +~N (0,2 ) (3)</p><p> 多元性回歸模型
25、的參數(shù)估計,同一元線性回歸方程一樣,也是在要求誤差平方和(Σe)為最小的前提下,用最小二乘法或最大似然估計法求解參數(shù)。</p><p> 設 ( x11, x12 , x1 p , y1 ),, ( xn1, xn 2 , xnp , yn ) 是一個樣本,用最大似然估計法估計參數(shù):</p><p> 取 b0 , b1 bp ,當 b0b0 , b1b1,b? b 達到最小。<
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 %運算</p><p&g
27、t; plot(x,Y,‘k+',x,z,'r') %輸出運算</p><p> 得到預測比較圖如圖2、3所示:</p><p> 例 2:(多元線性回歸)</p><p> 水泥凝固時放出的熱量 y 與水泥中的四種化學成分 x1, x2, x3, x4 有關, 今測得一組數(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、> 對于多元線性回歸模型:</p><p> 設變量的n組觀測值為</p><p><b> .</b></p><p> 記 ,,則 的估計值為</p><p><b> (11.2)</b></p><p> 在Matlab中,用regress函數(shù)進行多
30、元線性回歸分析,應用方法如下:</p><p> 語法: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ù)的估計值.</p><p> [b,bint,r,rint,stats]=regress(y,x)給出回歸系數(shù)的估計值b,的95%置信區(qū)間(向量)bint,殘差r以及每個殘差的95%置信區(qū)間(向量)rint;向量stats給出回歸的R2統(tǒng)計量和F以及臨界概率p的值.</p><p> 如果的置信區(qū)間(bint的第行)不包含0,則在顯著水平為
32、時拒絕的假設,認為變量是顯著的.</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、%插值點xx = 0:.25:10; %繪圖點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ù)估計初值,beta返回擬合后的系數(shù) 2.x = lsqcurvefit(fun,x0,xdata,ydata) fun要擬合的目標函數(shù),x0目標函數(shù)中的系數(shù)估計初值,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估計出的回歸系數(shù)</p><p><b> r 殘差</b></p&
36、gt;<p> J Jacobian矩陣</p><p> x,y 輸入數(shù)據(jù)x、y分別為n*m矩陣和n維列向量,對一元非線性回歸,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關系為多元非線性關系(只與x2,x3相關)為:</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)對回歸模型建立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); %運算出圖</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)%運算出圖</p><p><b> 輸出結(jié)果如圖8所示</b></p><p> 例題2:混凝土的抗壓強度隨養(yǎng)護時間的延長而增加,現(xiàn)將一批混凝土作成12
42、個試塊,記錄了養(yǎng)護日期(日)及抗壓強度y(kg/cm2)的數(shù)據(jù): 養(yǎng)護時間:x =[2 3 4 5 7 9 12 14 17 21 28 56 ] 抗壓強度: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 ] 建立非線性回歸模型,對得到的模型和系數(shù)進行檢驗。 注明:此題中的+r代表加上一個[-0.5,0.5]之間的隨機數(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 ; %運算路徑myfunc=inline('beta(1)+beta(2)*exp(beta(4)*
44、x)+beta(3)*exp(-beta(4)*x)','beta','x');%運算路徑 beta=nlinfit(x,y,myfunc,[0.5 0.5 0.5 0.5]);%運算方法 a=beta(1),k1=beta(2),k2=beta(3),m=beta(4) %數(shù)據(jù)%test the model%運算方法xx=min(x):max(x); %運算方法yy=a+k1*exp(
45、m*xx)+k2*exp(-m*xx);%運算方法 plot(x,y,'o',xx,yy,'r') </p><p><b> 結(jié)果如圖9所示:</b></p><p><b> lsqnonlin</b></p><p> 非線性最小二乘(非線性數(shù)據(jù)擬合)的標準形式為</p
46、><p><b> 其中:L為常數(shù)</b></p><p> 在MATLAB5.x中,用函數(shù)leastsq解決這類問題,在6.0版中使用函數(shù)lsqnonlin。</p><p><b> 設</b></p><p><b> 則目標函數(shù)可表達為</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沒有界,則lb=[ ],ub=[ ]。</p><p> [x,resnorm] = lsqnonlin(…)% resnorm=sum(fun(x).^2),即解x處目標函數(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為Lagrage乘子。</p><p> [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqnonlin(…) %fun在解x
51、處的Jacobian矩陣。</p><p> 例 求下面非線性最小二乘問題初始解向量為x0=[0.3, 0.4]。</p><p> 解:先建立函數(shù)文件,并保存為myfun.m,由于lsqnonlin中的fun為向量形式而不是平方和形式,因此,myfun函數(shù)應由建立:</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) %主運算方法</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 =%求目標函數(shù)值</p><p> lsqcurvefit</p><p> 非線性曲線擬合是已知輸入向量xdata
55、和輸出向量ydata,并且知道輸入與輸出的函數(shù)關系為ydata=F(x, xdata),但不知道系數(shù)向量x。今進行曲線擬合,求x使得下式成立:</p><p> 在MATLAB5.x中,使用函數(shù)curvefit解決這類問題。</p><p> 函數(shù) lsqcurvefit</p><p> 格式 x = lsqcurvefit(fun,x0,xdata,y
56、data) %運算方法</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(…) %運算方法</p><
57、p> [x,resnorm,residual] = lsqcurvefit(…) %運算方法</p><p> [x,resnorm,residual,exitflag] = lsqcurvefit(…) %運算方法</p><p> [x,resnorm,residual,exitflag,output] = lsqcurvefit(…)</p><p&g
58、t; [x,resnorm,residual,exitflag,output,lambda] = lsqcurvefit(…) %運算方法</p><p> [x,resnorm,residual,exitflag,output,lambda,jacobian] =lsqcurvefit(…) %運算方法</p><p><b> 參數(shù)說明:</b></p
59、><p> x0為初始解向量;xdata,ydata為滿足關系ydata=F(x, xdata)的數(shù)據(jù);</p><p> lb、ub為解向量的下界和上界,若沒有指定界,則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 = …% 計算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、> 例 求解如下最小二乘非線性擬合問題</p><p> 已知輸入向量xdata和輸出向量ydata,且長度都是n,擬合函數(shù)為</p><p><b> 即目標函數(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、 %初始估計值</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> 對于上述這些可化為線性模型的回歸問題,一般先將其化為線性模型,然后再用最小二乘法求出參數(shù)的估計值,
67、最后再經(jīng)過適當?shù)淖儞Q,得到所求回歸曲線。 </p><p> 在熟練掌握最小二乘法的情況下,解決上述問題的關鍵是確定曲線類型和怎樣將其轉(zhuǎn)化為線性模型。 </p><p><b> 如圖10所示</b></p><p> 確定曲線類型一般從兩個方面考慮:一是根據(jù)專業(yè)知識,從理論上推導或憑經(jīng)驗推測、二是在專業(yè)知識無能為力的情況下,通過繪制和觀
68、測散點圖確定曲線大體類型。</p><p> 六、Subplot問題</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)%運算方法</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;%交替運算</p><p> elseif(x2(i,1)==1&x5(i,1)==1)</p><p> k(i)=2;%交替運算</p&
75、gt;<p> elseif(x2(i,1)==0&x5(i,1)==2)</p><p> k(i)=3;%交替運算</p><p> elseif(x2(i,1)==1&x5(i,1)==2)</p><p> k(i)=4; %交替運算</p><p> elseif(x2(i,1)==0&
76、;x5(i,1)==3)</p><p> k(i)=5; %交替運算</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> 第二個</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)%運算方法</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; %交替運算</p><p> elseif(x2(i,1)==1&x5(i,1)==1)</p><p> k(i)=2; %交替運算</p><p> elseif(x2(i,1)==0&x5(i,1)==2)</p><p> k(i)=3; %交替運算</p>
85、;<p> elseif(x2(i,1)==1&x5(i,1)==2)</p><p> k(i)=4; %交替運算</p><p> elseif(x2(i,1)==0&x5(i,1)==3)</p><p> k(i)=5; %交替運算</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> 七、設計總結(jié)</b></p><p> 使用Matlab解決線性回歸問題,解決多元線性回歸中自變量之間的多重共線性問題,常用的有三種方法: 嶺回歸、主成分回歸和偏最小二乘回歸。本文利用三種方法的sas程序進行了回歸分析,
88、根據(jù)分析結(jié)果總結(jié)出三種方法的優(yōu)缺點,結(jié)果表明如果能夠使用定性分析和定量分析結(jié)合的方法確定一個合適的k值,則嶺回歸可以很好地消除共線性影響;主成分回歸和偏最小二乘回歸采用成份提取的方法進行回歸建模,由于偏最小二乘回歸考慮到與因變量的關系,因而比主成分回歸更具優(yōu)越性。</p><p><b> 八、課程體會</b></p><p> 本次MATLAB課程設計主要任務是
89、完成與線性回歸問題的結(jié)合,對我來說這個題目還是很有挑戰(zhàn)性的,因為自己對MATLAB中有制圖知識了解較少,但正是這種有挑戰(zhàn)性的題目才能提高自己的能力,才有研究價值,入手這個題目后我查閱了相關的資料,也從網(wǎng)上獲得了不少有關MATLAB制圖的資料,加上自己之間對MATLAB有一定的了解,因而設計思路漸漸明朗,經(jīng)過自己的不斷嘗試和探索,終于弄明白了matlab對線性回歸制圖的工作原理,通過查閱相關資料和研究MATLAB中提供的幫助信息,我也明白
90、了與線性回歸相關的一些函數(shù)的使用方法,并用它們來各種圖像,最終完成了題目。</p><p> 在設計過程中,我也遇到了很多不懂得地方,程序經(jīng)常出現(xiàn)錯誤,尤其是在利用所設計的題目對模擬出來的數(shù)字序列時,出現(xiàn)很多錯誤,但經(jīng)過自己的不斷努力和嘗試,最終還是解決了問題。</p><p> 總之,通過本次課程設計,我收獲很大,不只是學會了用MATLAB解決線性回歸問題,而且學會了自己學習新知識的
91、一種方法。</p><p><b> 九、參考文獻</b></p><p> [1]劉衛(wèi)國.MATLAB程序設計與應用(第二版)[M].北京:高等教育出版社,2006.</p><p> [2]陳亞勇,MATLAB信號處理詳解.人民郵電出版社,2008</p><p> [3]周開利,鄧春輝,MATLAB基礎及其
92、應用教程.北京大學出版社,2007</p><p> [4]趙靜,張瑾,基于MATLAB的通信系統(tǒng)仿真.北京航空航天大學出版社,2006</p><p> [5]包剛,國際著名數(shù)學圖書:光學中的數(shù)學模型(版). 清華大學出版社,2011</p><p> [6]姜啟源,謝金星,葉俊.數(shù)學模型(第三版)[M].北京:高等教育出版社,2003.</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- matlab多元回歸
- matlab語言基礎
- matlab課程設計--利用matlab對線性電路正弦穩(wěn)態(tài)特性分析
- 大學生matlab課程論文
- 課程名稱matlab語言及其應用
- matlab課程設計--matlab的繪圖
- matlab論文
- matlab數(shù)學論文matlab應用論文.doc
- matlab一元線性回歸方程的計算和檢驗
- matlab課程設計--matlab矩陣操作設計
- matlab實現(xiàn)多元回歸實例
- 非線性規(guī)劃問題的matlab實現(xiàn)求解
- matlab期末論文
- matlab課程設計---matlab程序應用與仿真
- 一元回歸分析matlab計算
- matlab軟件包與logistic回歸
- matlab課程設計
- matlab課程設計
- matlab課程設計
- matlab課程設計---利用matlab仿真軟件進行繪圖
評論
0/150
提交評論