绘制和呈现纵向数据,选项?

机器算法验证 数据可视化 重复测量 面板数据 增长模式
2022-03-25 08:50:58

假设情景:几个连续变量,每个变量在 12 个时间点重复测量,每个变量都有 150 个观察值。从一个时间点到另一个时间点存在小的波动(即变化不是那么平滑),但变量显示出与时间相关的整体变化。

问题:在绘制和呈现此类数据的变化时,有哪些不同的选项及其优缺点?如果可以附上示例图表/代码,那就太好了。

这可能是一个非常模糊和笼统的问题,我知道这在很大程度上取决于一个人想要强调的内容、进行的分析类型、时间点的数量、观察的数量等。但这会很有帮助了解人们通常如何绘制纵向数据以及有哪些(不错的)选项可用。我特别有兴趣听到这些变化中突出与个体差异(例如每个时间点的变异性和生长曲线轨迹的变异性)相结合的时间相关变化的选项。

对于那些感兴趣的人,这里是从 12 个时间点的一个片段中随机选择的 100 个观察值来玩。缺失被编码为 NA 并且数据结构广泛。

2个回答

这是可视化数据的一种想法。使用小倍数的变化,您可以有两个图表:一个显示变量的均值,重点关注感兴趣的变量(包括 SE 或 SD),第二个显示关注变量的单个观察值。

下图显示了 6 个时间段的三个变量,每个变量有 50 个观察值。阴影区域表示焦点变量的 SE,在两个图表中都以类似方式突出显示。

变量观察

这可以根据您的特定需求轻松放大或缩小。它也可以是交互式的,通过下拉选择一个变量,焦点和观察改变到新的感兴趣的项目。

编辑:这是另一个示例,使用您的示例数据。这显示了平均值和 SE(忽略 NA,因为我不知道您将如何处理计算)。

SE 中位数

这些是在 Excel 中完成的,所以我不知道等效的 R 代码是什么,但这里的其他人可能会这样做。要创建此图表,您必须推动 Excel 执行您想要的操作。对于您提供的示例数据,我:

  1. 添加了四个计算行:Mean、SE、Mean-SE 和 2*SE

    数据

  2. 创建一个折线图,将您的所有观察结果作为整个时间段的系列。根据您的喜好格式化(可能值得一些 VBA 一次格式化所有内容,而不是单独选择所有 150 系列)。根据您的喜好格式化此图表的其余部分。

  3. 复制图表,并将其粘贴到同一个工作表上。

  4. 使用副本,删除所有系列并添加 Mean-SE 和 2*SE 系列。

  5. 将图表类型从折线图转换为堆积面积图。

  6. 将底部系列 (Mean-SE) 格式化为无填充。这应该会创建 2*SE 系列浮动的外观。

  7. 添加平均系列,并将其转换为折线图类型。这将导致它出现在 2*SE 区域系列的前面。

  8. 将图表区域和绘图区域格式化为无填充。

  9. 使用Page Layout > Align > Snap to Grid将两个图表与顶部的第二个图表对齐。

虽然这看起来很复杂,但只需要 10-15 分钟即可完成,如果你像我一样,这比尝试学习 R 要少得多。

绘制/分析汇总(例如均值)曲线的一个经常被忽视的问题是如何处理相位变化。在一个极端的例子中,可以绘制 2 条异相 180 度的 sin 曲线的平均值。这当然是一条直线,它显然没有反映关于各个曲线的任何有趣的东西(可能期望它们是异相的)。

从潜生长曲线模型的角度考虑,随机生长因子的估计方差无法解释相位变化,这就是为什么整体模型适合潜生长曲线模型通常很差的原因之一(通常甚至没有在分层线性中进行评估)楷模)。

我知道这不完全是您的问题,但我会继续提及两种尝试处理此问题的方法。第一个是将 LGCM 扩展到增长混合模型,您可以在其中使用潜在组成员资格来尝试捕捉曲线何时达到峰值的差异。另一个想法是使用函数数据分析进行曲线配准。如果有帮助,我可以稍后添加更多细节。

关于增长混合模型:

您对具有潜在增长曲线模型的函数形式的选择有些有限。根据可用时间点的数量,您可以进行线性、多项式和线性样条。然而,一个较少使用的选项是“自由加载”模型,其中单个“斜率”因子的因子加载是自由估计的,预计其中 2 个被设置为定义潜在因子的规模(这很好Bollen 和 Curran 关于 LGCM 的书中描述)。您可以用少至 5 个时间点来估计此模型。它对非单调、多模态曲线非常有用。

但是一个问题是,这种函数形式对每个人都是相同的……它假设它们都达到峰值和谷值以及相同的点,而斜率因子的变化只是描述了它们相对于平均值的峰值或谷值。它对相位变化没有任何作用。通过将其扩展到混合模型,其中斜率因子负载可以自由估计每个潜在类别,您可以拥有一个模型来捕捉相位变化中的任何重要差异,因为它们每个都有自己的曲线。