- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
- 《Discovering Statistics Using R》
笔记说明
读《Discovering Statistics Using R》第五章 Exploring assumptions做的笔记。本笔记对应章节为5.5.3,主要介绍使用by()
来对数据进行分组分析。
分组分析数据
很多时候数据可以被定性变量分为不同的组别比如按性别分为男性组和女性组,也会有在不同亚组内对数据分别进行相同分析的需求。实现这个需求有几种不同的方法,比如说可以先用filter()
生成不同亚组的数据集,然后分别对亚组数据集进行分析。《Discovering Statistics Using R》在5.5.3节中介绍了使用by()
来实现分组分析数据。这里以进行描述性统计分析为例。
示例数据
示例数据RExam记录了学生在R考试中的表现。
library(rio)
library(pastecs)
# 数据导入
rexam <- import("data/RExam.dat")
str(rexam)
## 'data.frame': 100 obs. of 5 variables:
## $ exam : int 18 30 40 30 40 15 36 40 63 31 ...
## $ computer: int 54 47 58 37 53 48 49 49 45 62 ...
## $ lectures: num 75 8.5 69.5 67 44.5 76.5 70 18.5 43.5 100 ...
## $ numeracy: int 7 1 6 6 2 8 3 7 4 6 ...
## $ uni : int 0 0 0 0 0 0 0 0 0 0 ...
数据中的uni变量是一个分类变量,0表示该条观测的学生来自Duncetown University 1表示该条观测的学生来自Sussex University。
对uni变量进行编码:
rexam$uni<-factor(rexam$uni, levels = c(0:1),
labels = c("Duncetown University", "Sussex University"))
str(rexam)
## 'data.frame': 100 obs. of 5 variables:
## $ exam : int 18 30 40 30 40 15 36 40 63 31 ...
## $ computer: int 54 47 58 37 53 48 49 49 45 62 ...
## $ lectures: num 75 8.5 69.5 67 44.5 76.5 70 18.5 43.5 100 ...
## $ numeracy: int 7 1 6 6 2 8 3 7 4 6 ...
## $ uni : Factor w/ 2 levels "Duncetown University",..: 1 1 1 1 1 1 1 1 1 1 ...
先整体对四个计量变量做一个统计描述,使用pastecs
包的stat.desc()
# 计量资料整体描述性分析
round(stat.desc(rexam[,c(1:4)], basic = FALSE, norm = TRUE), digits=3)
## exam computer lectures numeracy
## median 60.000 51.500 62.000 4.000
## mean 58.100 50.710 59.765 4.850
## SE.mean 2.132 0.826 2.168 0.271
## CI.mean.0.95 4.229 1.639 4.303 0.537
## var 454.354 68.228 470.230 7.321
## std.dev 21.316 8.260 21.685 2.706
## coef.var 0.367 0.163 0.363 0.558
## skewness -0.104 -0.169 -0.410 0.933
## skew.2SE -0.215 -0.350 -0.849 1.932
## kurtosis -1.148 0.221 -0.285 0.763
## kurt.2SE -1.200 0.231 -0.298 0.798
## normtest.W 0.961 0.987 0.977 0.924
## normtest.p 0.005 0.441 0.077 0.000
使用by()
对数据进行分组分析
by()
的用法:
by(data = , INDICES =, FUN = , ...)
-
data
即为要分析的数据 -
indices
指定分组变量,需为factor类型 -
fun
指定你想要应用于数据上的函数 -
...
中列出需要向fun
所指定的函数提供的其他信息
# 分组统计描述
by(rexam[,c(1:4)], rexam$uni, stat.desc, basic = FALSE, norm = TRUE)
## rexam$uni: Duncetown University
## exam computer lectures numeracy
## median 38.0000000 49.0000000 60.5000000 4.00000000
## mean 40.1800000 50.2600000 56.2600000 4.12000000
## SE.mean 1.7803210 1.1410021 3.3619491 0.29226770
## CI.mean.0.95 3.5776890 2.2929295 6.7560897 0.58733393
## var 158.4771429 65.0942857 565.1351020 4.27102041
## std.dev 12.5887705 8.0681030 23.7725704 2.06664472
## coef.var 0.3133094 0.1605273 0.4225484 0.50161280
## skewness 0.2906760 0.2121230 -0.2904291 0.48165960
## skew.2SE 0.4317816 0.3150960 -0.4314149 0.71547621
## kurtosis -0.7230849 -0.6779460 -0.5634849 -0.65166313
## kurt.2SE -0.5462122 -0.5121147 -0.4256518 -0.49226083
## normtest.W 0.9721662 0.9776351 0.9697413 0.94081692
## normtest.p 0.2828984 0.4571105 0.2259072 0.01451518
## -----------------------------------------------------------------------------------
## rexam$uni: Sussex University
## exam computer lectures numeracy
## median 75.0000000 54.00000000 65.7500000 5.000000000
## mean 76.0200000 51.16000000 63.2700000 5.580000000
## SE.mean 1.4432079 1.20284018 2.6827191 0.434332704
## CI.mean.0.95 2.9002348 2.41719783 5.3911258 0.872824247
## var 104.1424490 72.34122449 359.8490816 9.432244898
## std.dev 10.2050208 8.50536445 18.9696885 3.071196004
## coef.var 0.1342413 0.16625028 0.2998212 0.550393549
## skewness 0.2559866 -0.50635339 -0.3429407 0.746369109
## skew.2SE 0.3802527 -0.75215735 -0.5094177 1.108686183
## kurtosis -0.4609644 0.96404781 -0.4233827 -0.006440059
## kurt.2SE -0.3482086 0.72823358 -0.3198197 -0.004864766
## normtest.W 0.9837115 0.94392221 0.9817164 0.932346126
## normtest.p 0.7151182 0.01931372 0.6262649 0.006786803
网友评论