Java教程

回归分析算法基本原理及编程

本文主要是介绍回归分析算法基本原理及编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

回归分析算法基本原理及编程

回归和相关性分析的区别?

相关性分析只是判定变量和变量之间有无关联

回归分析构建关系和关系之间具体的关系式子,用一个函数或者方程来拟合这个关系式子

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
这篇关于回归分析算法基本原理及编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!