我拥有一个数据集,其中包含3个测试的评分。在进行实验之前,已经完成了第一个测试。实验完成后第二和第三。我想说,自从这项实验以来,学生的成绩一直以图形方式得到改善。我为此选择了一个箱线图。使用这个,我要说的是每个测试中的最大值和最小值以及实验后的改进。那是个好方法吗?
答案 0 :(得分:2)
您的数据是纵向。因此,最好显示随时间变化的个人更改。
多个箱形图将忽略随时间变化的各个变化,并将每个时间点视为一个单独的未连接的组。纵向线图可以在数据中显示更多信息。
请考虑以下模拟数据。
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()
那些在第一次测试中得分较低的人在第二和第三次测试中仍然表现不佳,这是箱线图错过的情况。
答案 1 :(得分:1)
您可以使用箱线图查看一组学生是否有进步。但是想象一下,好学生会进步很多,中学生会恶化,而坏学生会进步。箱线图将显示genrell的学生有所进步,但您会错过有关实际上变差的中度学生的信息。 为此,可以使用平行坐标图。 GGally package中有一个实现。对于30个观察,这仍然安排得很好。