如何在 R 中对样本量不等的一元方差进行分析?
若要对不同样本大小的单因素方差进行分析,我们可以使用 aov 函数。假设我们有一个分类的列,定义为 Group,其中有四类,以及一个连续变量 Response,两者都存储在名为 df 的数据帧中,则一元方差可以这么进行:-
aov(Response~Group,data=df)
示例
考虑下面的数据框架 −
Group<-sample(LETTERS[1:4],20,replace=TRUE) Response<-rpois(20,2) df1<-data.frame(Group,Response) df1
输出
Group Response 1 B 1 2 B 2 3 A 1 4 D 2 5 B 1 6 B 0 7 A 2 8 B 3 9 B 2 10 A 2 11 A 3 12 C 2 13 B 0 14 C 1 15 C 3 16 C 2 17 C 1 18 D 4 19 A 1 20 A 4
示例
str(df1)
输出
'data.frame': 20 obs. of 2 variables: $ Group : chr "B" "B" "A" "D" ... $ Response: int 1 2 1 2 1 0 2 3 2 2 ...
对 df1 中的数据执行一元方差 −
示例
ANOVA_model_1<-aov(Response~Group,data=df1) summary(ANOVA_model_1)
输出
Df Sum Sq Mean Sq F value Pr(>F) Group 3 5.488 1.829 1.536 0.244 Residuals 16 19.062 1.191
示例
Class<-sample(c("I","II","III"),20,replace=TRUE) Score<-sample(1:100,20) df2<-data.frame(Class,Score) df2
输出
Class Score 1 I 35 2 II 74 3 II 24 4 III 27 5 I 63 6 II 92 7 II 50 8 III 30 9 I 1 10 I 23 11 II 84 12 I 48 13 I 36 14 I 58 15 II 16 16 II 18 17 I 28 18 III 70 19 II 47 20 I 75
对 df2 中的数据执行一元方差 −
示例
ANOVA_model_2<-aov(Score~Class,data=df2) summary(ANOVA_model_2)
输出
Df Sum Sq Mean Sq F value Pr(>F) Class 2 435 217.4 0.317 0.732 Residuals 17 11642 684.8
示例
Categories<-sample(c("C1","C2","C3"),20,replace=TRUE) NetScore<-sample(1:10,20,replace=TRUE) df3<-data.frame(Categories,NetScore) df3
输出
Categories NetScore 1 C1 7 2 C2 5 3 C2 4 4 C2 10 5 C2 9 6 C1 1 7 C3 1 8 C2 4 9 C1 2 10 C2 3 11 C3 5 12 C3 6 13 C1 9 14 C1 4 15 C2 2 16 C3 6 17 C1 6 18 C2 3 19 C1 5 20 C2 6
示例
ANOVA_model_3<-aov(NetScore~Categories,data=df3) summary(ANOVA_model_3)
输出
Df Sum Sq Mean Sq F value Pr(>F) Categories 2 1.05 0.527 0.072 0.931 Residuals 17 124.75 7.338
广告