首页 > 解决方案 > 从已经汇总的数据中生成方差分析

问题描述

我有一个看起来像这样的表:

在此处输入图像描述

我正在尝试在上表中运行 aov(),但我只能创建部分输出。我不确定如何在计算中包含标准偏差。

现在我正在连接并重复每个组,如下所示:

groups <- c(rep('LHS', 121), rep('HS', 546), rep('Jr', 97), rep('Bachelors', 253), rep('Graduate', 155))

然后对手段做同样的事情(因为我无权访问原始数据表):

means <- c(rep(38.67, 121), rep(39.6, 546), rep(41.39, 97), rep(42.55, 253), rep(40.85, 155))

此时我可以创建一个数据名,然后在其上运行 aov:

df <- data.frame(groups, means)
groups.aov <- aov(means ~ groups, data = df)

不幸的是summary(groups.aov),只给了我一个部分结果。

              Df Sum Sq Mean Sq   F value Pr(>F)    
groups         4   2004     501 4.247e+27 <2e-16 ***
Residuals   1167      0       0                     

我可以走的任何其他方式,我可以在哪里考虑 SD?

标签: rstatisticsanova

解决方案


我们模拟一些数据,以便我们知道计算是正确的:

set.seed(100)
df = data.frame(
groups=rep(letters[1:4],times=seq(20,35,by=5)),
value=rnorm(110,rep(1:4,times=seq(20,35,by=5)),1))

我们会返回类似于您在上面看到的表格的内容:

library(dplyr)

res <- df %>% group_by(groups) %>% summarize_all(c(mean=mean,sd=sd,n=length))
total <- data.frame(groups="total",mean=mean(df$value),sd=sd(df$value),n=nrow(df))

rbind(res,total)

# A tibble: 5 x 4
  groups  mean    sd     n
  <fct>  <dbl> <dbl> <int>
1 a      0.937 1.14     20
2 b      1.91  0.851    25
3 c      3.01  0.780    30
4 d      4.01  0.741    35
5 total  2.70  1.42    110

我们总是使用方差分析中的平方和。所以从 sd 回到平方和,你通常乘以 n-1,然后你可以从那里得到 F 值。详细计算:

# number of groups
ngroups=nrow(res)# number of groups
# total sum of squares
SST = (total$sd^2)*(total$n-1)
#error within groups
SSE = sum((res$sd^2)*(res$n-1))
aovtable = data.frame(
Df = c(ngroups-1,total$n-ngroups-1),
SumSq = c(SST-SSE,SSE)
)
aovtable$MeanSq = aovtable$SumSq / aovtable$Df
aovtable$F = c(aovtable$MeanSq[1]/aovtable$MeanSq[2],NA)
aovtable$p = c(pf(aovtable$F[1],aovtable$Df[1],aovtable$Df[2],lower.tail=FALSE),NA)

我们可以比较两个结果:

aovtable
   Df     SumSq     MeanSq        F            p
1   3 140.55970 46.8532330 62.62887 2.705082e-23
2 105  78.55147  0.7481092       NA           NA

summary(aov(value~groups,data=df))
             Df Sum Sq Mean Sq F value Pr(>F)    
groups        3 140.56   46.85   63.23 <2e-16 ***
Residuals   106  78.55    0.74                 

推荐阅读