基于matlab的多元线性回归分析
二、多元線性回歸原理
2.1、數(shù)學模型
在社會生活及生產實踐中會經常遇到一種問題,即我們非常關注一個量的變化,而這個量受到另一個或是多個因素的影響,我們想要了解這些因素是如何影響我們最為關注的這個量的以及這些因素對我們最為關注的這個量的影響權重分別有多大,知道了這些,我們就可以對該量變化所反映的相關問題做出分析和評價,并對其未來發(fā)展趨勢進行預測和控制,這里就要用到數(shù)理統(tǒng)計中一個非常重要而普遍的分析方法,即回歸分析法。
如果一個因變量y與k個自變量x1,x2,…,xkx_{1}, x_{2}, \dots, x_{k}x1?,x2?,…,xk?存在線性相關關系,那么就可以用多元線性回歸模型
y=a0+a1x1+a2x2+…+akxk,公式1y=a_{0}+a_{1} x_{1}+a_{2} x_{2}+\ldots+a_{k} x_{k},\text{公式1} y=a0?+a1?x1?+a2?x2?+…+ak?xk?,公式1
對其進行描述,其中未知常量a0,a1,…,aka_{0}, a_{1}, \dots, a_{k}a0?,a1?,…,ak?稱為回歸模型系數(shù),若n次抽樣,第iii次抽樣數(shù)據(jù)為(yi,x1i,x2i,?,xki)\left(y_{i}, x_{1 i}, x_{2 i}, \cdots, x_{k i}\right)(yi?,x1i?,x2i?,?,xki?)那么就有
{y1=a0+a1x11+a2x21+…+akxk1+ε1y2=a0+a1x12+a2x22+…+akxk2+ε2?yn=a0+a1x1i+a2x2i+…+aixki+εn公式2\left\{\begin{array}{l}y_{1}=a_{0}+a_{1} x_{11}+a_{2} x_{21}+\ldots+a_{k} x_{k1}+\varepsilon_{1} \\ y_{2}=a_{0}+a_{1} x_{12}+a_{2} x_{22}+\ldots+a_{k} x_{k2}+\varepsilon_{2} \\ \vdots \\ y_{n}=a_{0}+a_{1} x_{1 i}+a_{2} x_{2 i}+\ldots+a_{i} x_{ki}+\varepsilon_{n}\end{array}\right.\text{公式2} ??????????y1?=a0?+a1?x11?+a2?x21?+…+ak?xk1?+ε1?y2?=a0?+a1?x12?+a2?x22?+…+ak?xk2?+ε2??yn?=a0?+a1?x1i?+a2?x2i?+…+ai?xki?+εn??公式2
其中ε0,ε1,…,εn\varepsilon_{0}, \varepsilon_{1}, \ldots, \varepsilon_{n}ε0?,ε1?,…,εn?為隨機誤差項,回歸分析的主要任務就是以誤差ε0,ε1,…,εn\varepsilon_{0}, \varepsilon_{1}, \ldots, \varepsilon_{n}ε0?,ε1?,…,εn?的平方和最小為原則,求多元回歸模型的回歸系數(shù)a0,a1,…,aka_{0}, a_{1}, \dots, a_{k}a0?,a1?,…,ak?。
求解這個方程是要以S=∑i=1i=nεi2=∑i=1i=n(a0+a1x1i+?+akxki?yi)2S=\sum_{i=1}^{i=n} \varepsilon_{i}^{2}=\sum_{i=1}^{i=n}\left(a_{0}+a_{1} x_{1 i}+\dots+a_{k} x_{k i}-y_{i}\right)^{2}S=∑i=1i=n?εi2?=∑i=1i=n?(a0?+a1?x1i?+?+ak?xki??yi?)2為最小原則,求a0,a1,…,aka_{0}, a_{1}, \dots, a_{k}a0?,a1?,…,ak?要使得S最小,應該滿足?S?aj=0,j=0,1,…,k\frac{\partial S}{\partial a_{j}}=0, j=0,1,\ldots,k?aj??S?=0,j=0,1,…,k
即{∑i=1i=n2(a0+a1x1i+a2x2i+?+akxki?yi)=0∑i=1i=n2(a0+a1x1i+a2x2i+?+akxki?yi)x1i=0?∑i=1i=n2(a0+a1x1i+a2x2i+?+akxki?yi)xni=0,公式3即\left\{\begin{array}{l}\sum_{i=1}^{i=n} 2\left(a_{0}+a_{1} x_{1 i}+a_{2} x_{2 i}+\dots+a_{k} x_{k i}-y_{i}\right)=0 \\ \sum_{i=1}^{i=n} 2\left(a_{0}+a_{1} x_{1 i}+a_{2} x_{2 i}+\dots+a_{k} x_{k i}-y_{i}\right) x_{1 i}=0 \\ \vdots \\ \sum_{i=1}^{i=n} 2\left(a_{0}+a_{1} x_{1 i}+a_{2} x_{2 i}+\dots+a_{k} x_{k i}-y_{i}\right) x_{n i}=0\end{array}\right.,\text{公式3} 即??????????∑i=1i=n?2(a0?+a1?x1i?+a2?x2i?+?+ak?xki??yi?)=0∑i=1i=n?2(a0?+a1?x1i?+a2?x2i?+?+ak?xki??yi?)x1i?=0?∑i=1i=n?2(a0?+a1?x1i?+a2?x2i?+?+ak?xki??yi?)xni?=0?,公式3
有{na0+∑i=1i=nx1ia1+?+∑i=1i=nxkiak=∑i=1i=nyi∑i=1i=nx1ia0+∑i=1i=nx1i2a1+?+∑i=1i=nx11xkiak=∑i=1i=nx1iyi?∑i=1i=nxkia0+∑i=1i=nx1ixkia1+?+∑i=1i=nxki2ak=∑i=1i=nxkiyi,公式4有\(zhòng)left\{\begin{array}{l}n a_{0}+\sum_{i=1}^{i=n} x_{1 i} a_{1}+\dots+\sum_{i=1}^{i=n} x_{k i} a_{k}=\sum_{i=1}^{i=n} y_{i} \\ \sum_{i=1}^{i=n} x_{1 i} a_{0}+\sum_{i=1}^{i=n} x_{1 i}^{2} a_{1}+\dots+\sum_{i=1}^{i=n} x_{11} x_{k i} a_{k}=\sum_{i=1}^{i=n} x_{1 i} y_{i} \\ \vdots \\\sum_{i=1}^{i=n} x_{k i} a_{0}+\sum_{i=1}^{i=n} x_{1 i} x_{k i} a_{1}+\dots+\sum_{i=1}^{i=n} x_{k i}^{2} a_{k}=\sum_{i=1}^{i=n} x_{k i} y_{i}\end{array}\right.,\text{公式4} 有??????????na0?+∑i=1i=n?x1i?a1?+?+∑i=1i=n?xki?ak?=∑i=1i=n?yi?∑i=1i=n?x1i?a0?+∑i=1i=n?x1i2?a1?+?+∑i=1i=n?x11?xki?ak?=∑i=1i=n?x1i?yi??∑i=1i=n?xki?a0?+∑i=1i=n?x1i?xki?a1?+?+∑i=1i=n?xki2?ak?=∑i=1i=n?xki?yi??,公式4
上式可以寫成形式:Y=XAY=X AY=XA
其中:
X=[n∑i=1i=nx1i…∑i=1i=nxki∑i=1i=nx1i∑i=1i=nx1i2…∑i=1nx11xki??…?∑i=1i=nxki∑i=1i=nx11xki…∑i=1i=nxki2],Y=[∑i=1i=nyi∑i=1i=nx1iyi?∑i=1i=nx2iyi],A=[a0a1?ak]X=\left[\begin{array}{ccc}n & \sum_{i=1}^{i=n} x_{1 i} & \ldots & \sum_{i=1}^{i=n} x_{k i} \\ \sum_{i=1}^{i=n} x_{1 i} & \sum_{i=1}^{i=n} x_{1 i}^{2} & \ldots& \sum_{i=1}^{n} x_{11} x_{k i} \\ \vdots& \vdots & \ldots & \vdots \\ \sum_{i=1}^{i=n} x_{k i} & \sum_{i=1}^{i=n} x_{11} x_{k i} & \ldots & \sum_{i=1}^{i=n} x_{k i}^{2}\end{array}\right], Y=\left[\begin{array}{c}\sum_{i=1}^{i=n} y_{i} \\ \sum_{i=1}^{i=n} x_{1 i} y_{i} \\ \vdots \\\sum_{i=1}^{i=n} x_{2 i} y_{i}\end{array}\right], A=\left[\begin{array}{c}a_{0} \\ a_{1} \\ \vdots\\ a_{k}\end{array}\right] X=??????n∑i=1i=n?x1i??∑i=1i=n?xki??∑i=1i=n?x1i?∑i=1i=n?x1i2??∑i=1i=n?x11?xki??…………?∑i=1i=n?xki?∑i=1n?x11?xki??∑i=1i=n?xki2????????,Y=??????∑i=1i=n?yi?∑i=1i=n?x1i?yi??∑i=1i=n?x2i?yi????????,A=??????a0?a1??ak????????
公式2也可以直接寫成矩陣表達式:Y=XA+EY=X A+EY=XA+E
其中:
Y=[y1y2?yn],X=[1x1,1…xk,11x1,2…xk,2??…?1x1,k…x2,k],A=[a0a1?ak],E=[ε1ε2?εn]Y=\left[\begin{array}{l}y_{1} \\ y_{2} \\ \vdots \\ y_{n}\end{array}\right], X=\left[\begin{array}{ccc}1 & x_{1,1} &\ldots & x_{k,1} \\ 1 & x_{1,2} &\ldots& x_{k,2} \\ \vdots & \vdots &\ldots &\vdots & \\ 1 & x_{1,k}&\ldots & x_{2,k}\end{array}\right], A=\left[\begin{array}{l}a_{0} \\ a_{1} \\ \vdots \\ a_{k}\end{array}\right], E=\left[\begin{array}{c}\varepsilon_{1} \\ \varepsilon_{2} \\ \vdots \\ \varepsilon_{n}\end{array}\right] Y=??????y1?y2??yn????????,X=??????11?1?x1,1?x1,2??x1,k??…………?xk,1?xk,2??x2,k?????????,A=??????a0?a1??ak????????,E=??????ε1?ε2??εn????????
那么我們的任務就是求解AAA
2.2、案例分析
分析總能耗與其他變量的關系,首先分析其相關性,做相似矩陣分析,如下:
第一步:得出總能耗與那些變量之間的關系,求出相關系數(shù)
[Data,str]=xlsread('C:\Users\86188\Desktop\仿真數(shù)據(jù)\北京參數(shù)一百組新.xlsx','sheet1','A1:R101',0.4);% 得到表格中所有數(shù)據(jù) Resemblance=corrcoef(Data); % 得到系數(shù)相關矩陣 [Row,Col]=size(Resemblance); % 得到Resemblance矩陣的行和列 site=[];count=0; % for row=1:(Row-1) % 得到總能源與哪些因素有關if(abs(Resemblance(row,Col))>0.4)disp(['總能源與第' num2str(row) '列' str(row) '相關度較高,相關系數(shù)為 ' num2str(Resemblance(Col,row)) ]);count=count+1; % 保存相關變量的數(shù)量site(count)=row; % 保存相關變量的列地址end end第二步:得到回歸系數(shù)和置信區(qū)間
[Row,Col]=size(Data); % 得到數(shù)據(jù)矩陣的行和列的大小 ConVariable=zeros(Row,count); % 創(chuàng)建一個行相等列指定的矩陣 for row=1:countConVariable(:,row)=Data(:,site(row)); end TotalEnergy=Data(:,Col); % 得到總能源原始數(shù)據(jù) IndeVariable=[ones(Row,1),ConVariable]; % 創(chuàng)建相關變量數(shù)組 [b,bint,r,rint,stats]=regress(TotalEnergy,IndeVariable); % 求回歸系數(shù)的點估計和區(qū)間估計、并檢驗回歸模型第三步:做殘差分析,得出那些點偏差太大
得出四個點偏差太大,可以考慮去除這四個點
subplot(211); % 畫殘差圖 rcoplot(r,rint); % 畫殘差圖第四步:得出預測模型,用預測模型去和真實值去對比
NewTotalEnergy=zeros(Row,1); % 預測數(shù)據(jù)矩陣 for row = 1:Row % 預測賦值NewTotalEnergy(row)=b(1);for PaRow=2:(count+1)NewTotalEnergy(row)=NewTotalEnergy(row)+b(PaRow)*ConVariable(row,PaRow-1);end end Loss = 0; % 根據(jù)最大斜率和最小效率建立指定長度的損失數(shù)據(jù) for i=1:RowLoss = Loss+(TotalEnergy(i)-NewTotalEnergy(i))^2/(2*Row); end subplot(212); % 畫預測和真實圖 number=[1:1:Row]; plot(number,TotalEnergy','r',number,NewTotalEnergy','b'); xlabel('數(shù)量序列');ylabel('總能耗');title('總能耗與相關參數(shù)散點圖');legend('真實值','預測值')grid on;第五步:得出模型函數(shù)關系
總能耗=33374+?53041×體型系數(shù)+32×面積?101×人口密度+431×內擾電耗總能耗=33374 +-53041\times 體型系數(shù) +32\times 面積 -101\times 人口密度 +431\times 內擾電耗 總能耗=33374+?53041×體型系數(shù)+32×面積?101×人口密度+431×內擾電耗
參考文獻
總結
以上是生活随笔為你收集整理的基于matlab的多元线性回归分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么硬件可以手游服务器,台湾服务器用来挂
- 下一篇: Medusa记录