回歸分析算法基本原理及編程


回歸分析算法基本原理及編程

回歸和相關性分析的區別?

相關性分析只是判定變量和變量之間有無關聯

回歸分析構建關系和關系之間具體的關系式子,用一個函數或者方程來擬合這個關系式子

image-20210712182803590

采用任何模型都要有原因

回歸方程 是不是和所有的X都產生關系呢?

逐步回歸方法是一種挑選哪些因素和因變量產生關系。

要突出模型的缺點。

一 、一元線性回歸

1.數學模型

image-20210712183441634

一元方程就可以構建出來,哪一條線才是我們回歸擬合度最高的呢?

image-20210712183535496

一元線性方程中只有兩個未知參數a、b

Question1:只需要兩組參數,方程就可以求出。但表格中已經給了16組,這樣會導致求a和b浪費,肯定會存在多余解,我們希望哪一個解是最好的?

我們擬合的方程應該和我們實際擬合的差越小越好。

Question:2:如何和我們的a與b聯系起來呢?

我們可以用最小二乘。

image-20210712183852438 image-20210712183930030

你肯定能夠找出β0和β1,但是你如何確定他是我們要找的,我們一定要對它做假設檢驗。

可以做預測和控制。回歸有兩種主要用途?做預測和控制。

1.最小二乘法

image-20210712184240855

如果我們的模型估計量β0和β1已經知道了,我們可以拿出來算算預測值y和我們真實值的差大不大,如果差值很小,那么就是正確的。

image-20210712184444921 $$ Q=\sum_{i=1}^{n}\left(Y_{i}-\hat{Y}_{i}\right)^{2}=\sum_{i=1}^{n}\left(Y_{i}-\left(\hat{\beta}_{0}+\hat{\beta}_{1} X_{i}\right)\right)^{2} $$

\[\hat{Y} = {\beta}_0+{\beta}_1*x \]

\[i = 1..n \]

我們可以計算出n個誤差。讓這個方程Q求得最小。

Question1:如何求一個二次方程的極值?

求導即可。導函數等於零即為極函數存在的位置。

image-20210712191656933 image-20210712192231370

image-20210712192258594

Question:函數只有什么才能求導?

連續才能求導。

question:不連續怎么求導?

雖然不連續,但是我們依然可以把xy這些點的值代入到這里

image-20210712192427991

得到離差形式的估計值:

image-20210712192524340 image-20210712192550865

2.檢驗預測和控制

2.1回歸方程的顯著性檢驗

Question:什么是顯著性水平?

估計總體參數落在某一個區間可能犯錯的一個概率

Question:顯著性水平一般取多少?

0.05,因為在一個正態分布中兩個標准差的概率是百分之95,往外擴的概率是非常小的,但是如果很小的事情發生了,我們就拒絕這個。這就是假設檢驗。通過小規模的統計發現小規模的事件發生的概率。

image-20210712193327762 image-20210712193343081

0假設檢驗:如果β1=0就說明y和x無關,說明不存在回歸方程。如果我們通過方法把0假設檢驗pass掉了,就說明這個假設檢驗存在一個回歸方程。假設0假設檢驗通過了,就說xy二者無關系。

方差齊次性檢驗:通過分析發現樣本方差和總體的方差服從F分布。n1是分子自由度,n2是分母自由度。 n1 = k,n0 = n1-k-1.如果你求得的F值大於我們在這個自由度下面最大的F值。就說明

本來大於這個F1-α的概率就是很小的,你求得的居然比這個還大,就說明之前的假設是不對的。我們就可拒絕。“小概率事件是幾乎不可能發生的,但是你通過一次實驗就出現了這種小概率事件,你原來所做的假設是不合理的。”

image-20210712193931135

舉個例子:比如我們學校考上清華北大是不可能的,690分是5%的概率。但是我們有幾個同學考了700,720.我們就認為這種小概率的事件發生了,就說明我們之前的假設是錯誤的,我們學校考上清華北大是可能的。

image-20210712194730369

如果拒絕了,說明你的回歸方程非常的好。

單側檢驗雙側檢驗在1-α的條件下,α一般是取95%。

image-20210712194532946 image-20210712194351254 image-20210712194814163 image-20210712195104912

image-20210712195200339

r沒有表,構建與F的關系

image-20210712195227353

2.2回歸系數的置信區間

image-20210712195432134

方差的置信區間:

image-20210712195626907

2.3檢測與控制

image-20210712195802520

預測范圍:

image-20210712200313287 image-20210712200541397

2.4可線性化的一元非線性回歸( 曲線回歸)

image-20210712200610039

發現單純用線性方程不合理,所以我們需要非線性方程

image-20210712200728045

這是一個一元非線性方程存在嗎?

y = 1/x 或者 y = ex 或者y = sinx

線性方程,就是因變量自變量之間的關系不是線性的關系,這類方程很多,例如平方關系、對數關系、指數關系、三角函數關系等等。

利用一元非線性來擬合的時候,

如果有一條曲線如下圖所示,擬合度會更高一些,肯定比我的線性要好的多。

image-20210712201111014

我們在擬合的時候首先要找出一個符合哪一個非線性走向。

image-20210712201142639 image-20210712201218371 image-20210712202544817 image-20210712202755673 image-20210712202828765 image-20210712202922819 image-20210712202936496 image-20210712202944391 image-20210712203006778 image-20210712203024622 image-20210712203052061 image-20210712203124403 image-20210712203143109 image-20210712203215309

二、多元線性回歸

1.數學模型及定義

image-20210712203541430

2.模型參數估計

image-20210712203628256 image-20210712203639203 image-20210712203831097

令 x2 = x2 x3 = x3 ... 變為多元線性回歸模型

3.多元線性回歸中的檢驗與預測

3.1檢驗

image-20210712204055896

之前這個地方一元的時候是image-20210712204312165,因為一元線性回歸方程只有一個未知量所以說k= 1,即 n - k -1 = n- 2。但是我們現在是多元的。

image-20210712204510404

3.2預測

這時回歸方程已經建立起來了,所以此時你給我一組x我就能夠求出一個y來。可以做到預測了。

預測也有一個區間范圍。

image-20210712204646175

4.逐步回歸分析

我們希望我們的x1 x2 x3都和我們的y有一個關聯。

給了你們一組指標之后,讓你們 找找他們之間的聯系,我們經常做的是把這一組參數直接建立聯系,但情況是y 不一定和x1和x2都有關系,你沒有對他們進行做分析找出他們之間是否有關系就建立方程,這是錯誤的。

最好的是我們選和我們的Y都能夠產生關系的因子。

image-20210712211036819 image-20210712211503470

來一個我做一次,每一次都要對當前的自變量做檢測。

image-20210712212736354 image-20210712213127312 image-20210712213154596 image-20210712213215737

image-20210712213340765

x = [143 145 147 149 150 153 154 155 156 157 158 159 160 162 164]';
X = [ones(16,1) x];
Y = [88 85 88 91 92 93 95 95 96 98 97 96 98 99 100 102]';
[b,bint,r,rint,stats] = regress(Y,X)
//結果
b =
  -15.6330	//β0
    0.7173	//β1
bint =
  -33.1933    1.9272  //β0置信區間
    0.6031    0.8315	//β1置信區間
r =
    1.0588
   -3.3758
   -1.0931
    1.1896
    0.7550
    1.0377
    0.8858
    0.1685
    0.4512
    1.7339
    0.0166
   -1.7007
   -0.4180
   -0.1353
   -0.5699
   -0.0045
rint =
   -1.4183    3.5360
   -5.1067   -1.6448
   -3.7180    1.5318
   -1.4588    3.8380
   -2.0087    3.5187
   -1.7143    3.7898
   -1.9178    3.6895
   -2.6838    3.0208
   -2.3856    3.2880
   -0.9096    4.3774
   -2.8092    2.8424
   -4.3154    0.9140
   -3.1880    2.3520
   -2.8852    2.6146
   -3.2216    2.0818
   -2.5762    2.5672
stats =
    0.928//r^2  181.4408 //F值遠遠超過下表4.60,肯定是顯著的   0.0000    1.7291

image-20210712214604911

image-20210712214908521

接着輸入,可以看出第二個的結果不是很好

rcoplot(r,rint)//殘差圖
image-20210712214840245 image-20210712215147076 image-20210712215227045

image-20210712215253036

t = 1/30:1/30:14/30;

s = [11.86 15.67 20.60 26.69 33.71 41.93 51.13 61.49 72.90 85.44 99.08 113.77 129.54 146.48];
[p,S] = polyfit(t,s,2)

p =

  489.2946 //二次項的系數   65.8896 //一次項的系數    9.1329 //常數項


也可以將多項式回歸轉化為多元線性回歸,我們可以讓t^2和t同時作為一個元

image-20210712221952706 image-20210712222001519 image-20210712222200039

n是指數據有多少維,m是指有多少個變量

model中的liner很明顯是多元線性模型

quadratic完全二次是最常用的,基本都包括了

image-20210712222406238 image-20210712222455164

這里的α缺省就是0.05

x1 = [1000 600 1200 500 300 400 1300 1100 1300 300];
 x2 = [5 7 6 6 8 7 5 4 3 9];
 y = [100 75 80 70 50 65 90 100 110 60]';
 x = [x1' x2'];
 rstool(x,y,'purequadratic')	//這里選擇純二次的

image-20210712222740393

此時從下圖可以看出預測平均收入為1000、價格為6時的商品需求量為88.4791

image-20210712223047519

也可以把這些β0、β1、β2、β3...全部輸出出來

image-20210712223259169

image-20210712223432645

此時只需要輸入βimage-20210712223650354

>> beta,rmse

beta =

  110.5313  //β0
    0.1464	//β1
  -26.5709	//β2
   -0.0001	//β3
    1.8475	//β4


rmse =

    4.5362 //總體誤差,一般小於10就行

也可以吧x21直接看做x3也可以x31看做x4可以

image-20210712223732463

Question1:為什么要有初值?

因為這是一個迭代的過程

image-20210712224040914


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM