【小白学机器学习9】用EXCEL做一元线性回归的各种指标,笨办法:各种结果的指标解析和手动验算

目录

0 目标

1 构造模型 

1.1 构造模型的思路

1.2 具体模型构造的EXCEL公式和过程

2 直接用EXCEL画图,然后生成趋势线的方式进行回归分析

2.1 先选择“观测值Y”的数据,用散点图或者折线图作图

2.2  然后添加趋势线和设置趋势线格式

2.3  生成趋势线

3 使用EXCEL的 数据/数据分析/回归功能

3.1 在EXCEL的菜单里,调出加载项里的分析工具库

3.2 功能入口:数据/数据分析/回归功能

3.3 进行回归时,需要注意2个点

3.4 回归分析的结果

4 逐个手动重算 第1部分:“回归统计”里的几个指标

4.1 相关系数 R / multiple R/coefficient of correlation

4.1.1 公式

4.1.2  以下是详细计算过程

4.2  先求 SSE SSR SST 以及OLS,再求R2

 4.3 决定系数R**2 / R-square

4.3.1 公式

4.3.2  R2具体计算

4.4 调整后的R2

4.5 标准误差  SEE

4.6 观测值

5  逐个手动重算“方差分析”里的几个指标

5.1 自由度 DF

5.2 关于SS离差的3个类型 SSR, SSE ,SST

5.3  均方MS

5.3.1 定义

5.3.2  公式 (这里算出来的是均方误差,但不是方差,因为是两类数据的比较)

6 RESIDUAL OUTPUT

6.1 残差= y=y^= 观测值-预测值

7 多个模拟直线比较

8 F检验的F值和 显著度F 和 T检验的t-stat

8.1 F检验相关

8.1.2 软件判断方法:各种软件自动计算:显著度F significance F

8.1.3 手动判断方法:查表,单可以查表比较F值

8.1.4 总结

8.2  t检验相关

8.2.1 t Stat

8.2.2 软件判断方法:T检验的P-value

8.2.3 手动方法看是否在 参数预测值是否在:lower 95%~ upper95%范围内

8.2.4 手动方法 查表比较

8.2.5 上面方法总结比较

9 未解决的问题

9.1 回归模型的各种指标清楚了,但是参数的误差,标准误差,还有t值是怎么求出来的?

10 缺! python 模拟实操


0 目标

  • 目标:用EXCEL做一元线性回归的各种参数,手动计算验证EXCEL计算的各个参数的值,自己重新算一遍,了解具体的公式计算过程。
  • 为什么要这么做
    • 看了这么多讲指标运算公式的,大多数都是推导。但很少见到有自己手动,完全验证一遍这些指标计算公式实操的,我自己试试。
  • 目的2个:
    • 还能验证自己整理的公式的对错。
    • 可以加深对公式的理解

1 构造模型 

1.1 构造模型的思路

  • 正常思路:(先有我们大脑里的理想值,也就是假设)→先有观测值 →再回归模型→预测值
  • 我的构造思路: 先作假一个理想数据(公式生成)→生造观测值(加rand扰动)→再回归模型→预测值
  • 为什么要这么搞?
  • 这样我自己相当于,先掌握了理想数据=“正确答案”,然后可以比较到底什么样的模拟更接近我这个预设的正确答案。

1.2 具体模型构造的EXCEL公式和过程

  • 理想数据
    • X:1,2 ...15
    • Y: Y=2x+3
  • 观测值
    • y=y~real+RANDBETWEEN(-3,3)

2 直接用EXCEL画图,然后生成趋势线的方式进行回归分析

见下图

2.1 先选择“观测值Y”的数据,用散点图或者折线图作图

作图格式

  • 可以选择连线的散点图,或者折线图

2.2  然后添加趋势线和设置趋势线格式

  • 因为做的是一元线性回归,这里记得选择直线

 

2.3  生成趋势线

生成一个一元函数的趋势线: 直线

  • 其中 y=ax+b,具体为y=2.33306x
  • a=2.33306
  • b=0
  • R**2=0.9749

3 使用EXCEL的 数据/数据分析/回归功能

  • 基本内容如下

3.1 在EXCEL的菜单里,调出加载项里的分析工具库

文件/选项

3.2 功能入口:数据/数据分析/回归功能

3.3 进行回归时,需要注意2个点

  • 1 注意回归面板上,Y值在上面,X值在下面。容易选错
  • 2 下面哪些勾选项,做简单回归分析可以不勾
  • 3 详细的回归可以都勾选
  • 如果是双侧检验,置信度 95%一般可以选上

 

3.4 回归分析的结果

  • 第1部分:“回归统计”
  • 第2部分:“方差分析”
  • 第3部分:“回归系数相关”

4 逐个手动重算 第1部分:“回归统计”里的几个指标

4.1 相关系数 R / multiple R/coefficient of correlation

4.1.1 公式

  • 其中
  •  x,y是两个变量
  • 如果不是特别强调因变量,x,y也可以写成x1,x2
  • 相关系数的取值范围[-1,1]
    • 越接近1,表示正相关
    • 越接近-1,表示负相关
    • 接近0,表示不相关

4.1.2  以下是详细计算过程

  • 手动计算的和回归分析的R相等
  • 求和不要犯低级错误 Σ(x-ave(x))*(y-ave(y)) !=Σ(x-ave(x))*Σ(y-ave(y))
  • R=Σ((x-ave(x))*(y-ave(y))) /SQRT(Σ(x-ave(x))^2*Σ(y-ave(y))^2)

4.2  先求 SSE SSR SST 以及OLS,再求R2

这个需要提前看第2部分的内容

  • SSE: 残差平方和= Σ(y-y^'')^2  
  • SSR:回归平方和=Σ(y^''-ave(y))^2  
  • SST:离差平方和/总体平方和=Σ(y-ave(y))^2
  • OLS最小二乘法的=SS=SSE=残差平方和

 4.3 决定系数R**2 / R-square

4.3.1 公式

  • R**2的具体计算=相关系数R**2
  • R**2 公式说明
  • R**2 取值范围在[0,1] 之间
  • 但是如果是线性回归,必须包含截距项!!!
  • SSR越大越好,SSE越小越好
    • 因为SSR代表被模型解释的部分越多,SSE是残差无法被解释
    • SSR代表被模型解释的部分越多,表示拟合线越接近于真实Y的观察值,误差SSE很小

4.3.2  R2具体计算

R**2的具体计算=相关系数R**2

4.4 调整后的R2

  • 修正的R2确实不适合一元线性回归
  • K=变量个数
  • 只有1个变量是,修正的R2会变小
  • 修正的R2看起来确实只适合多元线性回归

4.5 标准误差  SEE

计算公式

  • 等于表2中残差SS / 残差df 的平方根
  • 越小越好

  • 标准误差SEE
  • SEE = sqrt(Σ(y - y^'')^² / (n - k - 1))    
  • SEE = sqrt(SSE / (n - k - 1))
  • 并不是 /n

4.6 观测值

观测值=样本数量=15,没什么好说的。

5  逐个手动重算“方差分析”里的几个指标

  • df:degree of freedom  自由度
  • ss:离均差平方和
  • ms :均方

5.1 自由度 DF

详细内容看上次的关于自由度的文章

【小白学机器学习8】统计里的自由度DF=degree of freedom, 以及关于df=n-k, df=n-k-1, df=n-1 等自由度公式-CSDN博客文章浏览阅读698次,点赞13次,收藏12次。自由度通常用于抽样分布中。统计学中:在统计模型中,自由度指样本中可以自由变动的独立不相关的变量的个数,当有约束条件时,自由度减少。样本中独立或能自由变化的数据的个数,称为该统计量的自由度。自由度(degree of freedom, df)指的是计算某一统计量时,取值不受限制的变量个数。https://blog.csdn.net/xuemanqianshan/article/details/136643151?spm=1001.2014.3001.5502

  • 回归分析的df,y=a+bx,因为只有1个自变量,所以df=1
  • 残差SSE的df
    • 这里面需要确定a 和b两个参数,其中a是截距,而b 是x的参数。
    •  因为自由度=n-k, 而SSE=Σ(y-y^'')^2 = Σ(y-(a+bx))^2  ,所以df=n-k=n-2=15-2=13
    • 或者用多元线性回归的公式 df=n-k-1=15-1-1=13
  • 总计的df=方程的df+样本的df=1+13=14

5.2 关于SS离差的3个类型 SSR, SSE ,SST

见上面的分析

5.3  均方MS

5.3.1 定义


MS是均方
方差分析中的MS是均方(离差平方和除以自由度)
在这里具体是 均方误差

  • MS=SS/DF
  • 表上,回归分析和残差的MS分别可以这么计算

5.3.2  公式 (这里算出来的是均方误差,但不是方差,因为是两类数据的比较)

  • Σ(y - ŷ)²
  • 这个是离均差的平方
  • 但是不是同一个值的离均差,而是两类数的离均差

  • Mean Square Error 均方误差
  • MSE = Σ(y - ŷ)²/n    这里n是自由度
  • MSE =  Σ(y - ŷ)²/df

6 RESIDUAL OUTPUT

6.1 残差= y=y^= 观测值-预测值

7 多个模拟直线比较

  • 暂时看略有差别,差别不大

8 一元线性回归模型的F检验 和 t检验

  • 首先明确目标
  • 这里的假设检验,主体是对一元线性回归模型
  • 对模型的假设检验和针对某个参数的假设检验,不是一回事。
  • 对一元线性回归模型 y=a+bx 的检验,核心是检验参数b的显著性,理论上b越大越好,至少b不能=0,否则一元线性回归模型就不存在,没意义。

8.1 F检验相关

8.1.1 F值

  • F=(SSR/df1) / (SSE/df2)(注意不是SS/SS, 必须是除过自由度的MS)
    • 而回归均方MS=SSR/df1 ,df=1,因为只有1个自变量x,而y是因变量
    • 而残差均方MS= SSE/df2,df=n-k-1=n-1-1=n-2,其中n是样本数量,而k是自变量的参数数量,一元回归只有1个,而最后那个-1是截距项参数。
    • 总体df=df1+df2,暂时这里没啥用
  • F=回归均方MS/残差均方MS
  • F=(SSA/df1) / (SSE/df2)= 组间波动MS/组内波动MS,对于只有一组样本的情况下,SSA就=SSR。而多组样本情况下,SSA是组间均值和二次均值之间的误差平方和。
  • F=1003/8=125.25

8.1.2 软件判断方法:软件EXCEL/spss等自动计算:显著度F significance F

  • F值
  • Significance F:其实就是概率,就是F值对应的概率p

  • p=Significance F:越小说明拟合越好。为什么呢?
    • 其实是说:p=Significance F:p越小说明一元线性回归模型拟合越好,也就是拒绝原假设h0
    • 而一般情况下,如果想要接受h0假设,比如2个样本相似,则希望F小,P值大,这样就很可能可以接受原假设h0
    • 而一般情况下,如果想要拒绝h0假设,比如希望某个参数和0不同,则希望F大,P值小,这样就是小概率事件,这样就很可能可以接受原假设h0
  • 因为p越小,越是小概率事件
  • 证明原假设h0不对,也就是y=a+bx的x的参数b,b显著的和0不同,也就是y=a+bx一元线性回归模型是显著的。

因为一元线性回归的假设检验里

  • 预设原假设h0,一般都是0假设,或者相等假设,也就是假设y=a+bx其中x的参数b=0,也就是假设y和x不存在一元线性关系。
  • 所以如果significance F=p 也就是概率,很小,证明这个假设是个小概率事件,那么应该拒绝此h0假设,也就是一元线性回归模型是显著的!y和x之间确实存在线性相关关系。
  • Significance F =4.8*10^-8 < 0.05 而且是远小于,说明检验情况较好
  • 手动怎么计算这个值,我还不知道,手动只能查表得到一个区间,用于判断,无法得到精确的p值吧?

8.1.3 是否可以手动计算P值?

手动怎么计算这个值,我还不知道,手动只能查表得到一个区间,用于判断,无法得到精确的p值吧?

8.1.4 手动判断方法:查表 取得  F临界值(α,df1,df2)

  • 手动方法无法获得具体的significance F=p,也就是无法,但是手动查表
  • 根据2个自由度和显著度来查表
  • df1=1
  • df2=13
  • F临界值(α,df1,df2)
  • 查表得F临界值=4.67
  • 而计算F=125>4.67 ,因此对应的概率一定很小,至少小于显著度5%,所以是小概率事件,要拒绝原假设h0,因此这个线性回归模型是显著的。

8.1.4 总结

  • 因为一元线性回归的原假设预设原假设h0,一般都是0假设,或者相等假设,也就是假设y=a+bx其中x的参数b=0,也就是假设y和x不存在一元线性关系。
  • 如果是是软件自动计算significance F,F值本身大小不用管
    • 只判断 概率P=significance F>α即可接受h0, 证明此模型拟合不好,失败!
    • 只判断概率P=significance F<α即可接受h0,证明一元线性回归模型是显著的。
  • 如果是手动查表比较F值大小,需要比较计算F值和查表F值的大小
    • 只判断 计算所得F值<查表F值即可接受h0,证明此模型拟合不好,失败!
    • 而如果F值>查表F值,就要拒绝原假设,证明一元线性回归模型是显著的。

8.2  t检验相关

8.2.1 t Stat

  • t Stat:回归系数/标准误差,
  • Intercept Coefficients:截距的回归值,X Variable 1 Coefficients:斜率的回归值。
  • 截距的t,  t=4.52/1.53=2.94
  • x的系数的t, t=1.89/0.169=11.19

8.2.2 软件判断方法:T检验的P-value

  • T检验的P-value:越小说明拟合越好
  • 截距的t,  t=4.52/1.53=2.94 ,对应p=0.01<0.025=α/2
  • x的系数的t, t=1.89/0.169=11.19, 对应p=4.8*10^-10<0.025=α/2
  • 做双边检验,显著度α=0.05,α/2=0.025,明显两个P都小于α/2,可接受h0

8.2.3 手动方法看是否在 参数预测值是否在:lower 95%~ upper95%范围内

  • 注意这里看的是参数本身的预测值,不是看T值
  • 预测的截距=4.52
  • -95%~95%的范围是:1.2~7.84,4.52属于1.2~7.84,也就是-95%~95%的范围内,不是小概率事件

  • 预测的x的系数=1.89
  • -95%~95%的范围是:1.52~2.25,1.89属于1.52~2.25,也就是-95%~95%的范围内,不是小概率事件

8.2.4 手动方法 查表比较

8.2.5 上面方法总结比较

9 未解决的问题

9.1 回归模型的各种指标清楚了,但是参数的误差,标准误差,还有t值是怎么求出来的?

  • 比如一元线性回归模型中,关于y=ax+b,这里面a  和 b 的标准误差是怎么求出来的?
  • 网上也有人提出了这样的问题,暂时我没看明白,留着

一元回归结果当中,斜率的标准误差是怎么计算出来的? - 知乎回归系数不是一个确定的值,相反它是一个随机变量,也就是说你不同样本回归得到的回归系数是不一样的,举…icon-default.png?t=N7T8https://www.zhihu.com/question/297956772/answer/1032593129?utm_id=0

一元回归结果当中,斜率的标准误差是怎么计算出来的? - 知乎深夜吃西瓜碰到回答一下!!首先,记住因为误差项的存在,所以参数的方差才不等于0,只要理解了回归的含…icon-default.png?t=N7T8https://www.zhihu.com/question/297956772/answer/1302721483

10 缺! python 模拟实操


11 参考

https://www.stats.gov.cn/zsk/snapshoot?reference=d466cfa12a8d807d0c267a76a75d1e42_C61F90DC19B3FEB44BD77863D0EFDCE4&siteCode=tjzskicon-default.png?t=N7T8https://www.stats.gov.cn/zsk/snapshoot?reference=d466cfa12a8d807d0c267a76a75d1e42_C61F90DC19B3FEB44BD77863D0EFDCE4&siteCode=tjzsk

  • 26
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值