【V课堂】R语言十八讲(十二)—-方差分析

前面讲到了回归分析以及回归诊断,我们知道回归分析的两个用途,一是用作预测,二是用作分类,即解释作用.如果我们稍作留意便可以注意到,回归分析的自变量,包括因变量都是数值型的,那么,如果自变量是因子型的,我们还可以做一些分析吗? 另外,我们在回归分析之前还讲到了假设检验,T检验,如果你不记得了,可以去看看第九讲.我们知道T检验是检验两个总体是否有显著差异,那么,如果总体变成了3个甚至是四个,我们该怎么检验这四个总体是否有显著差异了?学完这一节,你将得到答案.

方差分析:主要是做组别差异分析.

在学习方差分析之前,我们先看看我们的数据在数据库里是怎么存放的,

行数

字段Y(数值型)

字段X(因子型)

字段Z(因子型)

1

10

a

1

2

11

b

2

3

12

c

3

4

13

a

1

5

10

b

2

6

12

c

3

7

11

a

1

8

10

b

2

9

12

c

3

10

11

这是一个典型是数据框,每一列代表一个变量.有数值型的,也有因子型的,即分类变量.而我们方差分析是要做组别差异分析,那么,根据上表,我们做组别差异分析,要么是将字段y按字段x分组,要么按字段Z分组,或者按字段x和字段z分组.我们先来讲讲简单的,

1.单因素方差分析:

如果y按字段x分组,我们可以得到下表

字段Y\因子

水平a

水平b

水平c

1

10

11

12

2

13

10

12

3

11

10

12

现在的问题是根据x讲Y分成的三组,他们之间有显著差异吗? 这就有回到了我们的假设检验上,我们假设组别之间没有差异,也就是原假设H0: 各组总体均值都等于0

这时我们根据数学知识推理出一个统计量它服从F分布,然后求出统计量的值,计算其发生的概率,若小于给定的阈值,也就是我们的α,则拒绝原假设.(这里我们说的比较通俗,但是这种说法是不严密的,数学上并不是计算其概率,而是计算这件事以及发生比这件事更加偏离中心的概率之和,这里我们暂且理解为这件事发生的概率,并不影响理解)

上面是部分数据,接着用R实现:

方差分析给出了,一个答案,就是组别之间有没有显著差异,但是这里有三组到底是哪两组有显著差异,还是都有显著差异了?

此时我们需要两两比较,三组总共要进行3次两两比较,当组数多了之后,根据排列组合知识我们知道其两两比较的次数会变得很大,这时R有一个函数能帮我们解决这件事:

R实现:

至此,单因素方差分析已经做出了答案,但是,前面的回归分析时,我们是有假设前提的,这里方差分析也有假设前提,这里我们也需要去验证前提是否成立,分别是1.Y是否服从正态分布,这回归诊断中已经讲到了.2.Y的各组是否齐方差.这前面也讲到了怎么做.

2.单因素协方差分析

首先我们先了解一个概念,什么是协因素,假如,我们需要了解两种治疗方案是否有显著差异,这时我们找到两组病人,分别用两组治疗方案去治疗,然后去比较两组病人的康复状况,得到治疗方案是否有显著差异,但是,病人可能因为性别的差异而影响了最终结果,那么我们把性别这种因素称之为协因素,它与实验的设计没有关系,但会直接影响实验的结果,而掺加了协因素的方差分析,我们称之为协方差分析.

R实现:部分数据和代码

检验:这时除了要多检验一个假设,回归斜率想同.由下图可以看见斜率基本相同.

R实现: ancova(weight~gesttime+dose,data=litter)

3.重复测量方差分析:

首先我们了解什么是重复测量,还是上面那个例子,现在由于病人数目不够分为两组,我们想了一个办法,就是同一批病人,先用A治疗方案,然后再用B治疗方案,显然同一个病人要被重复测量2次,这就是重复测量方差分析.虽然这样的设计很不科学,这里只是举例说明数目是重复测量.

4.双因素方差分析

即有两个分类变量,或者说两个因子的交叉影响变量y.

R实现:

由图可以得到各个因素的组别分布情况,由此可以得到我们想要的信息.

未完待续……

本文分享自微信公众号 - PPV课数据科学社区(ppvke123)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-06-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

【学习】《R实战》读书笔记(第二章)

“读书会是一种在于拓展视野、宏观思维、知识交流、提升生活的活动。PPV课R语言读书会以“学习、分享、进步”为宗旨,通过成员协作完成R语言专业书籍的精读和分享,达...

37890
来自专栏PPV课数据科学社区

译文:朴素贝叶斯算法简介(Python和R中的代码)

朴素贝叶斯是一种用于分类问题的机器学习算法。它是基于贝叶斯概率定理的。主要用于涉及高维训练数据集的文本分类。几个相关的例子有:垃圾邮件过滤、情感分析和新闻文章...

44250
来自专栏PPV课数据科学社区

为什么Python如此适合AI和机器学习?5位Python专家告诉你

摘要:Python是机器学习最好的编程语言之一,和R语言一样,很快将会成为学术和研究领域统治者。但为什么Python在机器学习领域如此受欢迎? Mike Dri...

41560
来自专栏PPV课数据科学社区

【学习】笨办法学R编程(一)

在倚天屠龙记中,有一人唤作火工头陀。此人练功不靠心法,只靠模仿他人招式,由外而内,自成一家。练习编程也有如此的法门,不看文字描述,只观察和模仿别人...

36450
来自专栏PPV课数据科学社区

【学习】一文读懂R语言 R可以做所有SAS做的事情

以下5种语言NODE、LUA、Python、Ruby、R ,哪个在2014年的应用前景会更好? 我毫不犹豫的选择R。R不仅是2014...

31150
来自专栏PPV课数据科学社区

【学习】笨办法学R编程(四)

随着教程推进,基本的语法都接触得差不多了。当要解决某个具体问题时,只需要考虑用什么样的算法来整合运用这些函数和表达式。今天来解决Project ...

29540
来自专栏大数据钻研

历史上最伟大的12位程序员

所谓程序员,是指那些能够创造、编写计算机程序的人。不论一个人是什么样的程序员,或多或少,他都在为我们这个社会贡献着什么东西。然而,有些程序员的贡献却超过了一个普...

393110
来自专栏PPV课数据科学社区

【观点】R语言如何发展?商业支持或许可行

摘要:Revolution Analytics已经提供了一个商业级R语言发行版Revolution R Enterprise,作为一个用于统计分析和基于数据图...

26850
来自专栏PPV课数据科学社区

R语言和 Python —— 一个错误的分裂

最近有一些文章提出与年龄相关的问题:“崭露头角的年轻数据科学家们是学习R语言还是Python更好?” 答案似乎都是“视情况而定”,在现实中没有必要在R和Pyt...

412110
来自专栏PPV课数据科学社区

【学习】笨办法学R编程(三)

看到各位对“笨办法系列”的东西还比较感兴趣,我也很乐意继续写下去。今天的示例将会用到数据框(data.frame)这种数据类型,并学习如何组合计算...

38050

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励