【问题标题】:Analyzing data set which contains 30 observations分析包含 30 个观测值的数据集
【发布时间】:2020-07-29 09:48:31
【问题描述】:

我拥有一个包含 3 个测试标记的数据集。第一个测试是在实验之前完成的。第二个和第三个都做了之后的实验。我想说自从这个实验以来,学生的分数一直在以图形的方式提高。我为此选择了一个箱线图。使用它我会说每个测试中的最大值和最小值以及它们在实验后的改进。这是一个好方法吗?

【问题讨论】:

  • 是 30 名学生完成了 3 次测试中的每一项的 30 次观察,还是 30 人一组的 90 名学生?
  • 30 名学生完成了 3 项测试的 30 条观察结果。
  • 那么箱线图不是一个好的图形。它忽略了相同的学生完成了 3 次测试的事实。
  • 如果我为每个测试画一个箱线图会怎样。那么在同一张图中总共有 3 个箱线图。否则,如果我考虑每个测试分数的平均值,那么我可以说每个测试的平均分数有所提高。
  • 不要使用箱线图。显示所有学生的线图,显示每个学生随时间的变化。如果您愿意,可以添加平均值。但每个学生的改变更重要。

标签: r statistics boxplot quantitative


【解决方案1】:

您的数据是纵向的。因此,最好显示随时间的个体变化

多个箱线图忽略了随着时间的推移而发生的个别变化,并将每个时间点视为一个单独且不相关的组。纵向线图可以显示数据中的更多信息。

考虑以下模拟数据。

set.seed(1)
x1 <- rnorm(30, mean=50, sd=20)
x2 <- x1+rnorm(30, mean=5, sd=10)
x3 <- x2+rnorm(30, mean=5, sd=5)

data <- data.frame(x1, x2, x3)

library(tidyverse)

data %>%
  mutate(id=row_number()) %>%
  pivot_longer(-id, names_prefix="x", names_to="time") %>%
  ggplot(aes(y=value, x=time, group=id)) +
  geom_point() +
  geom_line() +
  stat_summary(aes(group=1), fun=mean, geom="line",lwd=2, col=2)

data %>%
  pivot_longer(everything(), names_prefix="x", names_to="time") %>%
  ggplot(aes(y=value, x=time))+
  geom_boxplot()

那些在第一次测试中得分不佳的人在第二次和第三次测试中仍然表现不佳,这是箱线图所遗漏的。

【讨论】:

  • 感谢您的精彩解释
【解决方案2】:

您可以使用箱线图查看学生作为一个小组是否有进步。但是想象一下,好学生进步很多,中等学生变差,坏学生进步。箱线图将显示流派的学生有所提高,但您会错过实际上变得更糟的中等学生的信息。 为此,您可以使用平行坐标图。 GGally package 中有一个实现。对于 30 次观察,这仍然安排得很好。

【讨论】:

  • 感谢支持
猜你喜欢
  • 2020-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多