表示实验数据

机器算法验证 数据可视化 介绍
2022-03-27 02:24:34

我和我的顾问就数据可视化发生了争执。他声称,在表示实验结果时,应仅使用“标记”绘制值,如下图所示。而曲线应该只代表一个“模型

标记.png

另一方面,我认为在许多情况下,为了便于阅读,曲线是不必要的,如下图第二张所示:

线条.png

我错了还是我的教授?如果是后一种情况,我该如何去向他解释这件事。

4个回答

正如 JeffE 所说:就是数据一般来说,最好尽量避免添加曲线。添加曲线的一个原因是,它通过使点和点之间的趋势更具可读性,使图形更美观。如果您的数据点很少,则尤其如此。

但是,还有其他方法可以显示稀疏数据,这可能比散点图更好。一种可能性是条形图,其中各种条形比您的单个点更明显。颜色代码(类似于您在图中已有的)将有助于查看每个数据系列中的趋势(或者数据系列可以拆分,并在较小的单独条形图中彼此相邻显示)。

最后,如果您真的想在符号之间添加某种线,有两种情况:

  1. 如果您希望某个模型对您的数据有效(线性、谐波等),您应该将您的数据拟合到模型上,在文本中解释模型并评论数据和模型之间的一致性。

  2. 如果您没有任何合理的数据模型,则不应在图表中包含额外的假设。特别是,这意味着您不应该在您的点之间包含任何类型的线,除了海峡线。Excel(和其他软件)可以绘制的漂亮的“样条拟合”插值是一个谎言您的数据没有正当理由遵循该特定数学模型,因此您应该坚持使用直线段。

    此外,在这种情况下,最好在图形标题的某处添加免责声明,例如“线条只是眼睛的指南”。

我喜欢这个经验法则:

如果您需要线来引导眼睛(即显示没有线将无法清晰可见的趋势),则不应放置线。

人类非常擅长识别模式(我们宁愿看到不存在的趋势,也不愿错过现有的趋势)。如果我们无法在没有线条的情况下获得趋势,我们可以非常确定在数据集中没有任何趋势可以最终显示。

谈到第二张图,测量点不确定性的唯一指示是 700 °C 时 C:O 1.2 的两个红色方块。这两个的传播意味着我不会接受例如

  • C:O 1.2 完全有趋势
  • 2.0和3.6之间有区别
  • 并且可以肯定的是,弯曲模型过度拟合了数据。

没有很好的理由。然而,这将再次成为一个模型。


编辑:回答伊万的评论:

我是化学家,我会说没有没有错误的测量 - 可以接受的将取决于实验和仪器。

这个答案不是反对显示实验错误,而是为了显示和考虑它。

我的推理背后的想法是,该图恰好显示了一次重复测量,因此当讨论模型应该拟合的复杂程度(即水平线、直线、二次......)时,这可以让我们对测量有所了解错误。在您的情况下,这意味着您将无法拟合有意义的二次(样条),即使您有一个硬模型(例如热力学或动力学方程)表明它应该是二次的 - 您只是没有足够的数据.

为了说明这一点:

df <-data.frame (T      =         c ( 700,  700,  800, 900,  700, 800, 900, 700, 800, 900), 
                 C.to.O = factor (c ( 1.2,  1.2,  1.2, 1.2,  2  , 2  , 2  , 3.6, 3.6, 3.6)),
                 tar    =         c (21.5, 18.5, 19.5, 19,  15.5, 15 , 6  , 16.5, 9, 9))

这是每个 C:O 比率的线性拟合及其 95% 置信区间:

ggplot (df, aes (x = T, y = tar, col = C.to.O)) + geom_point () + 
    stat_smooth (method = "lm") + 
    facet_wrap (~C.to.O)

线性模型

请注意,对于较高的 C:O 比率,置信区间的范围远低于 0。这意味着线性模型的隐含假设是错误的。但是,您可以得出结论,较高 C:O 含量的线性模型已经过拟合。

因此,退后一步并仅拟合一个常数值(即没有 T 依赖性):

ggplot (df, aes (x = T, y = tar, col = C.to.O)) + geom_point () + 
    stat_smooth (method = "lm", formula = y ~ 1) + 
    facet_wrap (~C.to.O) 

无 T 依赖

补充是对不依赖于 C:O 的建模:

ggplot (df, aes (x = T, y = tar)) + geom_point (aes (col = C.to.O)) + 
    stat_smooth (method = "lm", formula = y ~ x) 

无 C:O 依赖性

尽管如此,置信区间仍将覆盖水平线或什至略微上升的线。

您可以继续尝试,例如允许三个 C:O 比率的不同偏移量,但使用相等的斜率。

然而,已经很少有更多的测量值会大大改善这种情况 - 请注意 C:O = 1 : 1 的置信区间有多窄,您有 4 个测量值而不是只有 3 个。

结论:如果你比较我对哪些结论持怀疑态度的观点,他们对少数可用观点的解读太多了!

1-你的教授提出了一个有效的观点。

2-你的情节绝对不会增加可读性恕我直言。

3-据我了解,这不是真正提出此类问题的正确论坛,您应该在交叉验证时提出。

有时连接点是有意义的,尤其是当它们非常密集时。

然后进行插值(例如使用spline )可能是有意义的但是,如果它比一阶样条曲线更高级(显然它只是连接点),您需要提及它。

但是,对于几个点或十几个点的情况,情况并非如此。用标记保持原样。如果你想拟合一条线(或另一条曲线),它就是一个模型。您可以添加它,但要明确 - 例如“线表示线性回归拟合”。