导读:在初学回归分析时,方差分析表(ANOVA)往往由线性回归引入。方差分析表在线性模型的显著性检验、模型选择方面有重要的应用,因此理解其各个表项的含义,以及这些表项值从何而来,对于我们能正确应用ANOVA有着重要的意义。然而当下大多数教材和博文对ANOVA的介绍,大多数习惯于直接给出结果量,而省略了重要的推导,遂致使许多初学者在学习ANOVA时落入“知其然,不知其所以然”的困惑,主要的问题总结如下:

  • 自由度(Degree of Freedom, Df)描述的是做什么事的“自由”,为什么各项的自由度是表中所示的数值?
  • 的定义是什么,为何

  • 为何模型统计不显著时

    ,

    检验的数学合理性是如何保障的?

笔者在学习ANOVA时也遇到了相同的疑惑,并在查阅部分资料以及Dr. Choudur Lakshminarayan的启发下,完成了关于上述问题的解释和证明,如果读者在学习ANOVA时有类似的问题,希望能对你有所帮助。

《详解方差分析表(ANOVA)》共三篇:第一篇线性回归与矩阵代数.回顾从一般线性回归的概念开始,回顾在后续证明中需要应用的一些结论和数学定理;第二篇SST、SSE、SSR和它们的自由度将阐明问题一和问题二;收尾篇ANOVA中的F统计量则重点解释问题三。

感谢 @纯粹 审稿和对排版的建议。


一、一般线性回归问题与参数的最小二乘估计

回归分析(Regression Analysis)的终极目的是在获知一组协变量

情况下,借助模型来预测其结果
。回归问题则是利用一组组已知的
对,推断模型参数。例如我们若想通过上市公司CEO的学历和工龄预测其股价,那么在这一示例中,
为CEO的
, 而
则是公司的股价。如果我们认为
之间存在线性关系,可以构建这样的线性模型:

其中

为自变量向量,
为斜率向量,
为截距;
为一个高斯噪声量,引入它是为了模拟现实世界中的“不完美”。为了表示方便,我们重写上式为

假设在稳定环境下,我们做了

次(
)独立观测,则可得到一般线性模型

简记为

记最小二乘法推断的

,并记
,则
可以如下求出:

这里,

也称线性方程组
的伪逆解。关于伪逆矩阵的定义以及一些重要性质,可以参考 @纯粹 的这篇文章。

纯粹:奇异值分解(SVD),MP广义逆,最小二乘,低秩逼近​zhuanlan.zhihu.com


二、 列空间(Column Space)、Hat矩阵和它们的性质

利用已估计的

,计算回归目标

这里矩阵

的定义为
,由于它事实功能为
,可以看成一个“扣帽”算子,故命名其为Hat矩阵(经评论区 @纯粹 提醒,这里“Hat”是个动词!)。我们将residual也用
来表示:

容易证明

是对称且幂等(idempotent)矩阵。幂等的定义为矩阵具有乘幂不变性,
。同样,矩阵
也是对称且幂等矩阵,而且有

列满秩时(一般默认列满秩,即
),考虑矩阵
的列所构成的空间
,如下定义:

其中

为矩阵

的列,亦是构成
的一组基。现考虑
,一方面,

另一方面,

这说明

的每一列都是正交的,即它与
的列空间
正交。考虑这两方面的因素,可以得知
上的正投影。

三、利用列空间解释最小二乘估计的性质

利用最小二乘法来估计线性回归参数

的本质是什么呢?用列空间的语言来说,就是寻找列空间中的向量
,使得
的模长最小,那这一目标自然当且仅当向量
在列空间
上的正投影时达到,
。上图还可以解释最小二乘估计的三个性质:
  1. ,则
  2. ,则
  3. ,则

三因素方差分析_详解方差分析表(ANOVA)(一) —— 线性回归与矩阵代数.回顾相关推荐

  1. 详解python运行三种方式_详解python运行三种方式

    方式一 交互式编程 交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码. linux上你只需要在命令行中输入 Python 命令即可启动交互式编程,提示窗口如下: $ p ...

  2. 三因素方差分析_重复测量方差分析的操作教程及结果解读

    内容来自:"小白学统计"微信公众号,感谢作者授权. 重复测量数据是指对同一个体在不同时间点的测量,这种数据在医学研究中较为常见,比较典型的数据形式如: 对一组人群分别在干预前后不同 ...

  3. java实现线程三种方式_详解三种java实现多线程的方式

    java中实现多线程的方法有两种:继承Thread类和实现runnable接口. 1.继承Thread类,重写父类run()方法 public class thread1 extends Thread ...

  4. 三点估算法_详解:三点估算法

    经常有人调侃:PMP老玩文字游戏,来当语文老师吧!可是,语文不重要吗? 不光语文重要啊,数学也重要.先来三道题目试试: 1. 为了制作项目原型,项目经理必须采购三盎司的黄金.当前的市场价值为每盎司 1 ...

  5. 详解python运行三种方式_详解python调用cmd命令三种方法

    目前我使用到的python中执行cmd的方式有三种 使用os.system("cmd") 该方法在调用完shell脚本后,返回一个16位的二进制数,低位为杀死所调用脚本的信号号码, ...

  6. 三次握手和四次挥手图解_详解 TCP 连接的“三次握手”与“四次挥手”

    作者 | AhuntSun 责编 | Elle TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西: 由于TCP不存在连接的概念 ...

  7. python可变参数的实验性_详解Python的三种可变参数

    可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...

  8. python什么是可变参数_详解Python的三种可变参数

    可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中,在函数内部会自动认为是一个元组或 ...

  9. python中什么是可变参数_详解Python的三种可变参数

    详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...

最新文章

  1. CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
  2. 简单介绍基于PostgreSql 别名区分大小写的问题
  3. 树莓派默认密码_用树莓派搭建私人简易网盘 2/5 树莓派4B初始设置
  4. textarea去掉回车换行
  5. 怎么用python编贪吃蛇_少儿编程分享:手把手教你用PYTHON编写贪吃蛇(二)
  6. python middleware_Sanic middleware – 中间件
  7. python list转换成array_一文掌握Python【不定期更新】
  8. 如何在CentOS 7上安装和使用PostgreSQL
  9. 学python看书还是视频效率高_学习是看书还是看教学视频更有效率?
  10. 精度、延迟两不误,移动端性能新SOTA,谷歌TF开源轻量级EfficientNet
  11. 【OpenCV】OpenCV函数精讲之 -- 命名空间
  12. OpenCV3学习(8.2)直方图相似度比较compareHist函数与EMD距离
  13. Codeforces Round #162 (Div. 2) B. Roadside Trees (Simplified Edition)
  14. 未签名的应用程序请求对系统进行无限制访问_关于JavaScript的的高速缓存未命中分析
  15. 用Unity的Animation播放Animator动画Clip
  16. php cmd 命令行参数,php获取命令行参数
  17. 内存卡卡速测试软件,手机绝配 这款128G存储卡实测速度惊人
  18. CAJ文件转PDF的简单方法
  19. 【视角】限贷传闻横扫楼市 专家看空房地产业
  20. 下列签名无效: EXPKEYSIG CDFB5FA52007B954 Metasploit 解决办法

热门文章

  1. 在日本做开发的日子(工作篇 序)
  2. ZZULIOJ 1116: 删除元素
  3. 小程序采用mvvm设计模式_滴滴重磅开源跨平台统一 MVVM 框架 Chameleon
  4. 信息学奥赛一本通(1197:山区建小学)
  5. 信息学奥赛一本通(1055:判断闰年)
  6. Primes on Interval(CF-237C)
  7. 抱歉(HDU-1418)
  8. 分治 —— 莫队算法 —— 普通莫队
  9. 判断字符串是否为回文(信息学奥赛一本通-T1146)
  10. 日语学习-多邻国-关卡1-介绍2