绘制小样本

机器算法验证 数据可视化 描述性统计 小样本
2022-03-16 03:27:31

我有一个包含 14 个不同时间的小数据集来完成一项任务。但是,我很难找到合适的图表来绘制数据。如果样本较大,我会使用箱线图或直方图,但我不确定在样本如此小的情况下是否适合使用。

更新:时间是 5.2,3.9,5.6,4.2,3.8,4.1,6.0,5.6,4.4,4.5,4.9,4.5,4.9,4.2

4个回答

我认为这里的基本原则是你可以而且应该展示所有的个人价值观。即使细节不明显有趣或有用,也没有理由不展示它,或者强迫读者解码(比如说)一个直方图,其中条形可能只代表一个或两个值。

我在这里提供一个小型复合材料。左上角是一个点或带状图(至少有二十个其他名称被用于相同的想法),水平呈现,右上是垂直呈现的相同想法。相同值的实例通过堆叠匹配。

底部是 Parzen 意义上的分位数箱图,其中默认的水平尺度是累积概率(用常用术语绘制位置),并且可以绘制传统的中位数和四分位数箱,使得(原则上)一半值在盒子里面,就像一直宣传的那样,一半的值在外面。这里额外的水平线代表平均值。有些人在箱线图中添加手段作为额外的点或标记符号;我发现这可能与显示数据本身发生冲突,我更喜欢多一行。如果中值线和均值线似乎重合,您需要考虑该怎么做。几乎总是平均值和中位数明显不同。

可以说,在图表上明确测量单位是标准的,但我看不出它们是什么。

在此处输入图像描述

(我在这里特意提出了一个额外的观点,即图表可以非常小但仍然可以提供信息。在实践中,我不会让它们变得这么小。)

编辑:

在 Parzen 的意义上,广泛添加到分位数箱形图的交叉引用(下面第二个中的进一步参考;存在“分位数箱形图”的其他用途)

如何测量具有多个零的非参数数据之间的差异?

如何使用箱线图找到值更可能来自不同条件的点?

如何可视化独立的两个样本 t 检验?

如何使用 Mann-Whitney U 检验得到哪个实验做得更好?

Shera, DM 1991。分位数图的一些用途,以增强数据表示。 计算科学与统计23:50-53。

Militký, J. 和 M. Meloun。1993. 用于单变量探索性数据分析的一些图形辅助工具。 分析化学学报277:215-221。

Meloun, M. 和 J. Militký。1994. 分析化学计量学中的计算机辅助数据处理。一、单变量数据的探索性分析。 化学论文48:151-157。

编辑2:

这些主题的主要目的不仅仅是回答直接问题,而是触及其他人可能感兴趣的非常相似的问题。

此处其他答案中的其他一些图形设计显示了标识符,在没有其他细节的情况下,不可知地标记为 1 ... 14。假设这些和其他标识符在解释中使用,显示它们的简单设计是(克利夫兰)点图。以下是几种可能性中的两种,其中标识符顺序按字面意思(左)和值排序(右)。如果需要,有足够的空间放置更长的标签。

与条形图相比,这种设计的一个优势是响应或结果轴可能从一个不为零的值开始,如果这似乎是一个更好的选择的话。

旋转图表以使响应轴垂直也很容易想象。

在此处输入图像描述

@Nick Cox 已经给出了一些很好的例子,另外两个我经常使用的选项是带有点重叠或轻微抖动的箱线图,

在此处输入图像描述

在此处输入图像描述

带 R 代码

times<-c(5.2,3.9,5.6,4.2,3.8,4.1,6.0,5.6,4.4,4.5,4.9,4.5,4.9,4.2)
boxplot(times)
points(rep(1,length(times)),times,cex = 3, pch = 'x')

boxplot(times)
points(jitter(rep(1,length(times)),amount = 0.1),times,cex = 3, pch = 'x')

编辑:如果你愿意,你也可以使用小提琴情节

ggplot(data.frame(times), aes(x = rep(0,length(times)), y = times)) + geom_violin() + geom_jitter()

在此处输入图像描述

你的问题让我想起了这篇文中描述的技术。它关于离散事件的可视化。

核心技巧是绘制the time before an eventx the time after an event

您的数据可视化[1]

这可能是偶然的,但顶部中间区域不包含数据。所以有一些可见的结构。


快速而肮脏的R代码。

data <- c(5.2,3.9,5.6,4.2,3.8,4.1,6.0,5.6,4.4,4.5,4.9,4.5,4.9,4.2)
x=data[1:12]
y=data[2:13]
plot(x,y, col="white", xlab="Time before an event", ylab="Time after an event"  )
for (i in 1:12) {
    text(x[i],y[i], i)
}

另一个想法,因为你正在使用时间。

赛道图 - 带有极坐标的条形图 - 产生与秒表相同的效果:

赛马场

理想情况下,观察标签将叠加在条上或至少在另一端。现在,在进行任何比较时,观众有额外的压力来跟踪哪个观察是哪个(上/下)。