能不能给个关于协方差的用R软件编写的案例,谢谢。

Python021

能不能给个关于协方差的用R软件编写的案例,谢谢。,第1张

ancova()提供了协方差分析计算,调用方式是:

ancova(formula, data.in=sys.parent(), x, groups)

实例:为研究ABC三种饲料对猪的催肥效果,每种饲料养8头猪一段时间,测得每头猪的初始重量(X)和增重(Y),分析三种饲料对猪的催肥效果是否相同?

>#建立数据集

>feed <- rep(c("A", "B", "C"), each=8)

>Weight_Initial <- c(15,13,11,12,12,16,14,17,17,16,18,18,21,22,19,18,22,24,20,23,25,27,30,32)

>Weight_Increment <- c(85,83,65,76,80,91,84,90,97,90,100,95,103,106,99,94,89,91,83,95,100,102,105,110)

>data_feed <- data.frame(feed,Weight_Initial,Weight_Increment)

>anova(lm(Weight_Increment~Weight_Initial+feed), data=data_feed)

Analysis of Variance Table

Response: Weight_Increment

Df Sum Sq Mean Sq F value Pr(>F)

Weight_Initial 1 1621.12 1621.12 142.445 1.496e-10 ***

feed 2 707.22 353.61 31.071 7.322e-07 ***

Residuals 20 227.61 11.38

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

>anova(lm(Weight_Increment~Weight_Initial*feed), data=data_feed)

Analysis of Variance Table

Response: Weight_Increment

Df Sum Sq Mean Sq F value Pr(>F)

Weight_Initial 1 1621.12 1621.12 162.4949 1.897e-10 ***

feed 2 707.22 353.61 35.4443 5.726e-07 ***

Weight_Initial:feed 2 48.04 24.02 2.4076 0.1184

Residuals 18 179.58 9.98

---

Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

R语言与统计-1:t检验与秩和检验

方差分析适用于多组均数的比较 (在完全随机设计的实验中,两组均数的t检验和方差分析是完全等价的。但t检验只能用于两组的均数比较,对于三组和三组以上的均数比较,就需要用到方差分析。)

可以看到这个数据集只有两个变量,其中治疗是分类变量(因子型),有5个水平。response是数值型变量。要对每种治疗所对应的response的均值进行比较,就只能用方差分析而不能用t检验。

符合正态分布

要比较均值的数据写~左边,分组变量写右边。p=0.9653,方差齐。

写法同上,方差齐。

需要注意的是,如果检验出方差不齐,我们第一步不是立马选择进行非参数检验,而是首先要判断有无异常值存在,因为异常值对方差的影响很大。当然,到这一步才来检验有无异常值是不符合数据分析的流程的,异常值在进行数据初步处理的时候就因该被发现和处理掉。

方差分析包括 单因素方差分析 , 多因素方差分析 , 协方差分析 , 多元方差分析 , 重复测量数据方差分析 。

gplots包的plotmeans函数 对上述结果进行可视化

使用ToothGrowth数据集进行演示

aov函数

不考虑supp和dose之间的交互作用的情况。结果显示两个因素都对小鼠牙齿生长影响显著。

考虑两个因素之间的交互作用:将上面的+换成*。结果显示两个因素都对小鼠牙齿生长影响显著而且两者间的互相影响也不容忽视。

可视化

上述结果已经知道了再五组数据中的均值不全相等,下一步想知道哪些相等哪些不等,就要对这五组进行两两比较。

输出的结果:从左往右依次是:两两比较、两两间的差值、lwr是95%可信线的下限,upr是上限。最后是p值。

将结果可视化:

线段中点是均值,两端是95%置信区间,跨过0说明没有显著差异。

在进行方差分析时,所有混杂因素统称为 协变量 。

检验dose对weight的影响。出生时间gesttime是协变量。

aov后面小括号里写的顺序:结果变量~协变量+自变量。如果要看协变量和自变量之间是否存在交互,在后面写+协变量:自变量。最后是data=数据集。

结果显示两个变量之间不存在交互效应(p=0.17889, >0.05),可以认为它们的斜率是相同的。

因变量不止一个,但是需要将它们作为一个整体同时进行分析。例如:某种药物对患者血红蛋白浓度,红细胞计数,外周血细胞因子水平等多种因素的影响。

使用 manovs()函数 进行性多元方差分析

参考: https://blog.csdn.net/dingming001/article/details/72822270