2021.4.23
持续更新中。。。
《R语言实战2》、学术数据分析及可视化
1. 相关性
偏相关的计算,用到的时候再复习
1.1 相关计算方法:
- Person: 积差相关系数,衡量了两个定量变量之间的线性相关,适用于连续变量(常用)
- Spearman:等级相关系数,衡量了分级定序变量之间的相关,适用于因子
- Kendall:相关系数是一种非参数的等级相关
1.2 计算
第一步:计算相关系数
cor(a, b) #a,b为两个向量
cor(x) #x为数据框
参数是数据框时,得出一个相关性矩阵
第二步:相关性检验(P值)
cor.test(y, x) #x, y是两个向量
install.packages("psych")
library(psych)
corr.test(x) #x为数据框
包
psych
中函数corr.test()
可以批量计算数据框的相关性并得出相关性的检验。(两个矩阵)
2. 差异分析(t-test)
t-test
用于检验两个组别的差异性;ANOVA
用于多个组别的差异性
2.1 独立t检验
- 两个组别之间没有影响
t.test(y ~ x, data = data.frame) #x和y分别是数据框example.txt中的两个向量
2.2 非独立t检验
- 两个组别有相关性
t.test(data.frame$y, data.frame$x, paired = TRUE)
多了一个
paired = TRUE
选项
2.3 两组差异的非参数检验
- 两组数据不符合正太分布,或者不是连续变量
wilcox.test(y ~ x, data = data.frame) #独立检验
wilcox.test(data.frame$y, data.frame$x, paired = TRUE ) #非独立检验
2.4 样本不均等
t.test(y ~ x, var.eq = F)
3. 标准方差分析
方差分析用于检验多个组别之间的差异性。计算出的P值与统计学意义之间没有必然的联系。
3.1 前提假设
进行方差分析之前,默认数据满足以下三个假设
- 正态性:分布符合正态分布
#定性描述正太分布
hist(rnorm(100, mean = 5, sd = 3), breaks = 100)
#定量描述正太分布
shapiro.test(rnorm(100, mean = 5, sd = 3))
P>0.05表示满足正态分布
- 方差分析:样本来自同一个总体,总体方差相同
#单因子方差齐性检验
bartlett.test(count ~ spray, data = InsectSprays)
#多因子方差齐性检验
bartlett.test(len ~ interaction(supp,dose), data = ToothGrowth)
P值>0.05表示满足正态分布
- 独立性:变量之间是独立的
实验过程中一般已经考虑过独立性
3.2 单因子多组数据(one-way ANOVA)
set .seed(4)
df <- data.frame(Grade = rep(c('level1', 'level2', 'level3'), each = 5),
Height = sample(150:190, 15))
#总体因子之间是否显著
aov(Height ~ Grade, data = df)
summary(aov(Height ~ Grade, data = df))
#各个组别之间是否显著
TukeyHSD(aov(Height ~ Grade, data = df))
P<0.05显著;P<0.001极显著
3.3 多因子多组数据(two-way ANOVA)
set.seed(6)
df <- data.frame(Grade = rep(c('level1', 'level2', 'level3'), each = 5),
Gender = rep(c('female', 'male'), each = 5, times =3),
Height = sample(150:190, 15))
#分别检验单个因子和因子交互的显著性
summary(aov(Height ~ Grade*Gender, data = df))
#两两交互的影响
TukeyHSD(aov(Height ~ Grade*Gender, data = df))
Grade*Gender = Grade:Gender + Grade + Gender
,因此可分别求单个因子和交互的影响显著性
网友评论