r语言x11:R语言十八讲十二(1)

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

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

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

行数字段Y(数值型)字段X(因子型)字段Z(因子型)
110 a 1
211 b 2
312 c 3
413 a 1
510 b 2
612 c 3
711 a 1
810 b 2
912 c 3
10
11

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

字段Y\因子水平a水平b水平c 1 10 11 12 2 13 10 12 3 11 10 12

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

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

r语言x11:R语言十八讲十二(2)

r语言x11:R语言十八讲十二(3)

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

r语言x11:R语言十八讲十二(4)

r语言x11:R语言十八讲十二(5)

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

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

R实现:

r语言x11:R语言十八讲十二(6)

r语言x11:R语言十八讲十二(7)

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

2.单因素协方差分析

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

R实现:部分数据和代码

r语言x11:R语言十八讲十二(8)

r语言x11:R语言十八讲十二(9)

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

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

r语言x11:R语言十八讲十二(10)

3.重复测量方差分析:

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

4.双因素方差分析

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

R实现:

r语言x11:R语言十八讲十二(11)

r语言x11:R语言十八讲十二(12)

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

PPV课大数据-国内领先的大数据培训社区:http://www.ppvke.com

,