该【R语言学习系列28-协方差分析 】是由【大笑大甜】上传分享,文档一共【13】页,该文档可以免费在线阅读,需要了解更多关于【R语言学习系列28-协方差分析 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
协方差剖析
一、基来源理
基本思想
在实质问题中,有些随机要素是很难人为控制的,但它们又会对结果产生明显影响。假如忽视这些要素的影响,则有可能获得不正确的结论。这类影响的变量称为协变量(一般是连续变量)。
比如,研究3种不一样的教课方法的教课成效的利害。检查教课成效是经过学生的考试成绩来反应的,而学生此刻考试成绩是遇到他们自己知识基础的影响,在观察的时候一定清除这类影响。
协方差剖析将那些难以控制的随机变量作为协变量,在剖析中将
其清除,而后再剖析控制变量关于察看变量的影响,进而实现对控制
变量成效的正确评论。
协方差剖析要求协变量应是连续数值型,多个协变量间相互独
立,且与控制变量之间没有交互影响。前面单要素方差剖析和多要素
方差剖析中的控制变量都是一些定性变量,而协方差剖析中既包含了
定性变量(控制变量),又包含了定量变量(协变量)。
协方差剖析在扣除协变量的影响后再对修正后的主效应进行方差剖析,是一种把直线回归或多元线性回归与方差剖析联合起来的方法,此中的协变量一般是连续性变量,并假定协变量与因变量间存在线性关系,且这类线性关系在各组一致,即各组协变量与因变量所成立的回归直线基本平行。
当有一个协变量时,称为一元协方差剖析,当有两个或两个以上
的协变量时,称为多元协方差剖析。
协方差剖析需要知足的条件
1)自变量是分类变量,协变量是定距变量,因变量是连续变量;对连续变量或定距变量的协变量的丈量不可以有偏差;
2)协变量与因变量之间的关系是线性关系,能够用协变量和因变量的散点图来查验能否违反这一假定;协变量的回归系数(即各回归线的斜率)是同样的,且不等于0,即各组的回归线是非水平的平行线。不然,就有可能犯第一类错误,即错误地接受虚无假定;
3)自变量与协变量相互独立,若协方差受自变量的影响,那么协方差剖析在查验自变量的效应以前对因变量所作的控制调整将是偏倚的,自变量对因变量的间接效应就会被清除;
4)各种原来自拥有同样方差σ2的正态散布整体,即要求各组方差齐性。
二、协方差理论
观察值=均值+分组变量影响+协变量影响+
yijuti(xijx)ij
(1)
此中,X为全部协变量的均匀值。
注:在方差剖析中,协变量影响是包含在随机偏差中的,在协方
差剖析中需要分别出来。
用协变量进行修正,获得修正后的
yij(adj)为
yij(adj)yij(xij
x)utiij
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
就能够对yij(adj)做方差剖析了。重点问题是求出回归系数β.
总离差=分组变量离差+协变量离差+随机偏差,
(1)计算总离差平方和时,记
kn
Txy
(xij
x)(yijy)
i1j1
k
n
x)2
Txx
(xij
i
1
j1
k
n
y)2
总离差平方和:Tyy
(yij
i
1
j
1
最后要查验分组自变量对因变量有无明显作用。原假定H0:无显
著作用。假定查验是在H0为真条件下进行,可以为ti=0,则
yijuT(xijx)ij
按最小二乘法原理线性回归可获得β的预计值
Txy
T
Txx
记修正的总离差平方和(残差平方和)为Tyy(adj),则
?2
Txy2
Tyy
,自由度为n-2
Tyy(adj)TyyTTxx
Txx
2
?
0(回归线为水平线),表示协
注:?TTxx为回归平方和,若
T
变量x对y无作用,用方差剖析就能够解决了。
(2)计算组内离差平方和时,记
kn
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
Exy
(xij
xi)(yij
yi)
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
i1j1
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
k
n
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
Exx
(xij
xi)2
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
i1j1
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
k
n
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学方和:
Eyy
(yij
yi)2
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
i1j1
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
依据协方差剖析的基本假定:各组内回归系数相等(做协方差剖析时
需要查验这一点),获得组内回归系数βw的预计值
Exy
w
Exx
记修正的组内总离差平方和(组内残差平方和)为Eyy(adj),则
Eyy(adj)Eyy
?w2ExxEyy
Exy2
,自由度为n-k-1
Exx
此中,
?2
?
?
wExx为组内回归平方和,当
w1
wk时,组内总离差平
方和以为完整部是由随机要素惹起的,
Eyy(adj)就是随机为偏差。这里的?w
是?w1,,?wk的加权均匀值。
3)计算分组变量离差平方和Byy(adj),它反应的是各个水平之间的差别。
Byy(adj)Tyy(adj)Eyy(adj)Tyy
?2
Txx
Eyy(adj)
T
即,分组变量离差=总离差-协变量离差-随机偏差。
于是,就能够进行组间无差别查验了:
Byy(adj)/k
1
F
k1
Eyy(adj)/n
所以,在做协方差剖析前,需要挨次做两个假定查验:
(1)协变量对因变量的影响对与各组来说都是同样的,即各组
回归系数相等:
?
?
?
w1
wk:
w;
步骤:
①先按回归系数相等和不相平分别表示模型
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
yij
uti
w(xij
x)
yij
uti
wi(xij
x)
并计算出偏差平方和
ij
ij
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
Eyy(adj)
Eyy
w2Exx
SE
k
2
E
yy
xxi
1
wi
i
1
k
此中,EyyEyyi.
1
计算F值
Eyy(adj)
S1/k1
F
2k
S1/n
若F值小于临界值Fα,则说明各组回归系数无明显差别(相等)。
(2)这些相等的回归系数?w0.
即采纳一元线性回归的明显性查验,
回归平方和/自由度
=
w2Exx/1
F
/(n
k
1)
残差平方和/自由度
Eyy(adj)
E2
/E
xx
E
2(n
k
1)
xy
xy
(E
yy
E2
/E
xx
)/(nk1)E
E
xx
E
2
xy
yy
xy
协方差剖析的步骤
1)查验数据能否知足假定条件:正态散布性、方差齐性、各分组经过协变量展望因变量的回归斜率同样;
2)查验效应因子的明显性;
3)预计校订的组均值;
4)查验校订的组均值之间的差别。
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
三、R语言实现
协方差剖析要求数据知足:正态性、方差齐性、各分组经过协变
量展望因变量的回归斜率同样。
R语言用aov( )函数进行协方差剖析,基本格式为:
aov(formula,data,...)
此中,data为数据框;
formula为协方差公式形式,形如y~x+A,x为连续型协变量,A
为组别因子。
例1研究分别接受了3种不一样的教课方法的3组学生,在数学成绩上能否有明显差别,数据文件“”。
先不考虑数学入学成绩,只以“教课方法”为分组变量,“后测
成绩”为因变量进行单要素方差剖析:
setwd("E:/
办公资料/R语言/R语言学习系列/codes")
load("")
head(scores)
beforeafterteach
1
39
68
1
2
38
63
1
3
51
65
1
4
56
68
1
5
74
74
1
6
40
60
1
attach(scores)
table(teach)#各组的样本数
teach
123
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
303233
aggregate(after,by=list(teach),mean)#各组均值
x
1
2
3
(after)#正态性查验
Shapiro-Wilknormalitytest
data:after
W=,p-value=
(after~teach,data=scores)#方差齐性查验
Bartletttestofhomogeneityofvariances
data:afterbyteach
Bartlett'sK-squared=,df=2,p-value=
<-aov(after~teach,data=scores)
summary
DfSumSqMeanSqFvaluePr(>F)
teach21662***
Residuals927325
---
:0‘***’‘**’‘*’‘.’‘’1
说明:单要素方差剖析的p值=,远小于,表示,两种教课方法
有特别明显的差别。
可是,后测成绩一定会遇到前测成绩(连续型)的影响,假定前
测成绩与教课方法(即组别,是控制变量)不存在交互影响。所以,
将后测成绩作为因变量;教课方法作为控制变量;前测成绩作为协变
量进行协方差剖析。
回归斜率同样查验,即前测成绩与后测成绩的回归线能否平行:
scores1<-subset(scores,teach==1)
scores2<-subset(scores,teach==2)
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
scores3<-subset(scores,teach==3)
par(mfrow=c(1,3))
plot(scores1$before,scores1$after,xlab="before",ylab="after",mai
n="teach=1")
abline(lm(after~before,data=scores1))
plot(scores2$before,scores2$after,xlab="before",ylab="after",mai
n="teach=2")
abline(lm(after~before,data=scores2))
plot(scores3$before,scores3$after,xlab="before",ylab="after",main="teach=3")
abline(lm(after~before,data=scores3))
可见两组的直线趋向的斜率比较靠近(平行),基本切合协方差
假定。
除了图形判断外,还能够经过交互作用能否明显,来判断斜率是
否同样。因为若前验成绩与教课方法的交互作用明显,则说明前验成
绩与后验成绩的关系,依靠于教课方法。
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
library(multcomp)
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
fit2<-aov(after~before*teach,data=scores)
summary(fit2)
DfSumSqMeanSqFvalue
Pr(>F)
before
1
2432
***
teach
2
362
.
before:teach
2
76
Residuals
89
6116
---
:0‘***’
‘**’‘*’‘.’
‘’1
说明:交互项的p值=>,故不明显,支持了斜率同样的假定。
fit<-aov(after~before+teach,data=scores)#协方差剖析
summary(fit)
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
DfSumSqMeanSqFvaluePr(>F)
before12432***
teach2362.
Residuals916192
---
:0‘***’‘**’‘*’‘.’‘’
1
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
说明:协方差剖析的结果表示:前测成绩的
p值=远小于,
说明
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
“前测成绩”对“后测成绩产生了特别明显的影响;“教课方法”的
p值=>,说明“教课方法”对“后测成绩”的影响不明显。
因为遇到协变量的影响,我们希望获得调整后的各组均值——即
去除协变量效应后的各组均值。可使用effects包中的effects( )函数
来计算调整的均值:
library(effects)
effect("teach",fit)
teacheffect
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
teach
123
与方差剖析时同样,要想获得教课方法两两之间有无差别,能够均值的成对照较(略)。
下边讲一下自定义比较(使用multcomp包能够实现),比如,分
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
组变量有
4个水平
ABCD,要比较
A与
D时,比较矩阵
=[100-1]
T,
有
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
[ABCD]
×[100-1]
T=0
等价于
A=D
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
要想将A与D归并再与B比较有无差别,则能够指定L矩阵=[1-20
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
1]
T,
则
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
[ABCD]
×[1-201]
T=0
等价于
(A+D)/2=B
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
注意:是从
(A+D)/2=B
倒推比较矩阵,该式即
A-2B+0C+D=0.
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
依据调整后的各组均值,教课方法1和3基真同样,固然整体上
3种差别不明显,教课方法2与1、3能否有明显差别呢那么就需要
自定义比较。
library(multcomp)
contrast<-rbind(""=c(-1,2,-1))
<-glht(fit,linfct=mcp(teach=contrast))
summary
SimultaneousTestsforGeneralLinearHypotheses
MultipleComparisonsofMeans:User-definedContrasts
Fit:aov(formula=after~before+teach,data=scores)
LinearHypotheses:
(>|t|)
==0*
---
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差剖析
R语言学习系列28-协方差分析 来自淘豆网m.daumloan.com转载请标明出处.