回归分析算法基本原理及编程
2021/7/12 22:06:17
本文主要是介绍回归分析算法基本原理及编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
回归分析算法基本原理及编程
回归和相关性分析的区别?
相关性分析只是判定变量和变量之间有无关联
回归分析构建关系和关系之间具体的关系式子,用一个函数或者方程来拟合这个关系式子
采用任何模型都要有原因
回归方程 是不是和所有的X都产生关系呢?
逐步回归方法是一种挑选哪些因素和因变量产生关系。
要突出模型的缺点。
一 、一元线性回归
1.数学模型
一元方程就可以构建出来,哪一条线才是我们回归拟合度最高的呢?
一元线性方程中只有两个未知参数a、b
Question1:只需要两组参数,方程就可以求出。但表格中已经给了16组,这样会导致求a和b浪费,肯定会存在多余解,我们希望哪一个解是最好的?
我们拟合的方程应该和我们实际拟合的差越小越好。
Question:2:如何和我们的a与b联系起来呢?
我们可以用最小二乘。
你肯定能够找出β0和β1,但是你如何确定他是我们要找的,我们一定要对它做假设检验。
可以做预测和控制。回归有两种主要用途?做预测和控制。
1.最小二乘法
如果我们的模型估计量β0和β1已经知道了,我们可以拿出来算算预测值y和我们真实值的差大不大,如果差值很小,那么就是正确的。
$$ 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:如何求一个二次方程的极值?
求导即可。导函数等于零即为极函数存在的位置。
Question:函数只有什么才能求导?
连续才能求导。
question:不连续怎么求导?
虽然不连续,但是我们依然可以把xy这些点的值代入到这里
得到离差形式的估计值:
2.检验预测和控制
2.1回归方程的显著性检验
Question:什么是显著性水平?
估计总体参数落在某一个区间可能犯错的一个概率
Question:显著性水平一般取多少?
0.05,因为在一个正态分布中两个标准差的概率是百分之95,往外扩的概率是非常小的,但是如果很小的事情发生了,我们就拒绝这个。这就是假设检验。通过小规模的统计发现小规模的事件发生的概率。
0假设检验:如果β1=0就说明y和x无关,说明不存在回归方程。如果我们通过方法把0假设检验pass掉了,就说明这个假设检验存在一个回归方程。假设0假设检验通过了,就说xy二者无关系。
方差齐次性检验:通过分析发现样本方差和总体的方差服从F分布。n1是分子自由度,n2是分母自由度。 n1 = k,n0 = n1-k-1.如果你求得的F值大于我们在这个自由度下面最大的F值。就说明
本来大于这个F1-α的概率就是很小的,你求得的居然比这个还大,就说明之前的假设是不对的。我们就可拒绝。“小概率事件是几乎不可能发生的,但是你通过一次实验就出现了这种小概率事件,你原来所做的假设是不合理的。”
举个例子:比如我们学校考上清华北大是不可能的,690分是5%的概率。但是我们有几个同学考了700,720.我们就认为这种小概率的事件发生了,就说明我们之前的假设是错误的,我们学校考上清华北大是可能的。
如果拒绝了,说明你的回归方程非常的好。
单侧检验双侧检验在1-α的条件下,α一般是取95%。
r没有表,构建与F的关系
2.2回归系数的置信区间
方差的置信区间:
2.3检测与控制
预测范围:
2.4可线性化的一元非线性回归( 曲线回归)
发现单纯用线性方程不合理,所以我们需要非线性方程
这是一个一元非线性方程存在吗?
y = 1/x 或者 y = ex 或者y = sinx
非线性方程,就是因变量与自变量之间的关系不是线性的关系,这类方程很多,例如平方关系、对数关系、指数关系、三角函数关系等等。
利用一元非线性来拟合的时候,
如果有一条曲线如下图所示,拟合度会更高一些,肯定比我的线性要好的多。
我们在拟合的时候首先要找出一个符合哪一个非线性走向。
二、多元线性回归
1.数学模型及定义
2.模型参数估计
令 x2 = x2 x3 = x3 ... 变为多元线性回归模型
3.多元线性回归中的检验与预测
3.1检验
之前这个地方一元的时候是,因为一元线性回归方程只有一个未知量所以说k= 1,即 n - k -1 = n- 2。但是我们现在是多元的。
3.2预测
这时回归方程已经建立起来了,所以此时你给我一组x我就能够求出一个y来。可以做到预测了。
预测也有一个区间范围。
4.逐步回归分析
我们希望我们的x1 x2 x3都和我们的y有一个关联。
给了你们一组指标之后,让你们 找找他们之间的联系,我们经常做的是把这一组参数直接建立联系,但情况是y 不一定和x1和x2都有关系,你没有对他们进行做分析找出他们之间是否有关系就建立方程,这是错误的。
最好的是我们选和我们的Y都能够产生关系的因子。
来一个我做一次,每一次都要对当前的自变量做检测。
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
接着输入,可以看出第二个的结果不是很好
rcoplot(r,rint)//残差图
这篇关于回归分析算法基本原理及编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27数据结构与算法面试题详解及练习
- 2024-12-27网络请求面试题详解与实战
- 2024-12-27数据结构和算法面试真题详解与实战教程
- 2024-12-27网络请求面试真题解析与实战教程
- 2024-12-27数据结构和算法大厂面试真题详解与实战指南
- 2024-12-27TS大厂面试真题解析与应对策略
- 2024-12-27TS大厂面试真题详解与解析
- 2024-12-27网站安全入门:如何识别和修复漏洞
- 2024-12-27SQL注入基础教程
- 2024-12-27初学者指南:理解和修复跨域漏洞