7.1 描述性统计分析
连续型变量的中心趋势、变化性和分布形状的方法。
7.1.1 方法云集
基础安装中的函数:summary()函数来获取描述性统计量(最小值、最大值、四分位数和数值型变量的均值,以及因子向量和逻辑型向量的频数统计)
apply()函数
sapply()函数 :sapply(x, FUN, options)
fivenum()函数:返回最小值、下四分位数、中位数、上四分位数和最大值。
7.1.2 更多方法
- Hmisc包中的describe()函数
- pastecs包中的stat.desc()函数
- psych包中describe()函数
最后载入的程序包优先。
7.1.3 分组计算描述性统计量
- aggregate()函数分组获取描述性统计量
- by()分组计算描述性统计量
7.1.4 分组计算的扩展
- doBy包中的summaryBy()分组计算概述统计量
- psych包中的describeBy()分组计算概述统计量
7.1.5 结果的可视化
7.2 频数表和列联表
类别型变量的频数表和列联表,以及相应的独立性检验、相关性的度量、图形化展示结果的方法。
7.2.1 生成频数表
用于创建和处理列联表的函数
函数 | 描述 |
---|---|
table(var1, var2, ..., varN) | 使用N个类别型变量创建一个N维列联表 |
xtabs(formula, data) | 根据一个公式和一个矩阵或数据框创建一个N维列联表 |
prop.table(table, margins) | 依margins定义的边际列表将表中条目表示为分数形式 |
margin.table(table, margins) | 依margins定义的边际列表计算表中条目的和 |
addmargins(table, margins) | 将概述边margins放入表中 |
ftable(table) | 创建一个紧凑的平铺式列联表 |
- 一维列联表
> mytable <- with(Arthritis,table(Improved))
> mytable
Improved
None Some Marked
42 14 28
> prop.table(mytable)
Improved
None Some Marked
0.5000000 0.1666667 0.3333333
> prop.table(mytable)*100
Improved
None Some Marked
50.00000 16.66667 33.33333
- 二维列联表,table()函数使用格式为:mytable<-xtabs(~A+B, data=mydata)
> mytable <- xtabs(~ Treatment+Improved, data=Arthritis)
> mytable
Improved
Treatment None Some Marked
Placebo 29 7 7
Treated 13 7 21
使用Crosstable生成二维列联表
library(gmodels)
CrossTable(Arthritis$Treatment,Arthritis$Improved)
Total Observations in Table: 84
| Arthritis$Improved
Arthritis$Treatment | None | Some | Marked | Row Total |
--------------------|-----------|-----------|-----------|-----------|
Placebo | 29 | 7 | 7 | 43 |
| 2.616 | 0.004 | 3.752 | |
| 0.674 | 0.163 | 0.163 | 0.512 |
| 0.690 | 0.500 | 0.250 | |
| 0.345 | 0.083 | 0.083 | |
--------------------|-----------|-----------|-----------|-----------|
Treated | 13 | 7 | 21 | 41 |
| 2.744 | 0.004 | 3.935 | |
| 0.317 | 0.171 | 0.512 | 0.488 |
| 0.310 | 0.500 | 0.750 | |
| 0.155 | 0.083 | 0.250 | |
--------------------|-----------|-----------|-----------|-----------|
Column Total | 42 | 14 | 28 | 84 |
| 0.500 | 0.167 | 0.333 | |
--------------------|-----------|-----------|-----------|-----------|
- 多维列联表
table(), xtabs(), ftable()
7.2.2 独立性检验
主要介绍三种检验:卡方独立性检验、Fisher精确检验、Cochran-Mantel-Haenszel检验
- 卡方独立性检验:chisq.test()函数
- Fisher精确检验:fisher.test()函数
- Cochran-Mantel-Haenszel检验:mantlehaen.test()函数
7.2.3 相关性的度量
vcd包中的assocstats()函数
7.2.4 结果的可视化
7.3 相关
相关系数可以用来描述定量变量之间的关系。
±表明关系的方向,值的大小表明关系的强弱程度。
7.3.1 相关的类型
- Pearson(两个定量变量之间的线性相关程度)、Spearman(衡量分级定序变量之间的相关程度)和 Kendall相关(非参数的等级相关度量)
cor()函数可以计算这三种相关系数;cov()函数可计算协方差
cor(x, use=, method= )
参数 | 描述 |
---|---|
x | 矩阵或数据框 |
use | 指定缺失数据的处理方式 |
method | 指定相关系数的类型 |
- 偏相关:在控制一个或多个定量变量时,另外两个定量变量之间的相互关系。
ggm包中的pcor()函数计算偏相关系数,pcor(u, s) - 其他类型的相关
polycor包中的hetcor()函数:可以计算一种混合的相关矩阵。
7.3.2 相关性的显著性检验
cor.test(x, y, alternative = , method = )
7.3.3 相关关系的可视化
correlogram相关图
7.4 t检验
两个组进行比较
7.4.1 独立样本的t检验
t.test (y ~ x, data)
7.4.2 非独立样本的t检验
t.test(y1,y2, paired=TRUE)
7.4.3 多于两组的情况
方差分析(ANOVA)
7.5 组间差异的非参数检验
7.5.1 两组的比较
两组数据独立,使用Wilcoxon秩和检验(Mann-Whitney U检验)
wilcox.test(y ~ x, data)
7.5.2 多于两组的比较
kruskal.test(y ~ A, data)
friedman.test(y ~ A | B, data)