绘制变量随时间的分布

机器算法验证 r 数据可视化
2022-04-19 01:35:16

我有两个数据集的形式q×k矩阵(变量xy)。两个变量都不同(假设它们相差一个常数)。矩阵的列是后续时间点,行是观察值(样本分位数)。问题是可视化这两个变量以显示它们之间的差异及其随时间的变化。原始数据可用。情节需要外行人可读。

下面我贴上可以作为说明的合成数据。

set.seed(123)
mu <- 0
n <- 1000
k <- 10
q <- 10
x <- matrix(NA, q, k)
y <- matrix(NA, q, k)

for (i in 1:k) {
  x[, i] <- quantile(rnorm(n, mu[i], 1), c(seq(0, 1, by=.1)-.05)[-1])
  y[, i] <- quantile(rnorm(n, mu[i]+1.5, 1), c(seq(0, 1, by=.1)-.05)[-1])
  mu[i+1] <- mu[i] + runif(1, -1, 1)
}

你有什么想法如何可视化?

2个回答

像这些四分位带这样的东西可能会起作用。如果需要更多细节,您可以添加更多分位数,但有时少即是多。四分位数足以了解分布和偏度。

缺点是乐队不能很好地重叠,所以你失去了直接比较。我在 0 附近添加了一个参考带,以帮助比较两个帧。

在此处输入图像描述

让我们来x第一的。使用分位数构建平滑分布xj()在每个时间步j. 选择一维值网格a+bi. 现在绘制灰度图像xj(a+bi), 在哪里i是行坐标和j是列坐标,而x- 值标准化为 0-255。

现在做同样的事情y, 并将地块放在另一个之上。如果您希望将它们结合起来,请绘制x在红色通道和y在蓝色。但是,如果您这样做,请先阅读一些关于颜色感知的内容。Rainbow Color Map (Still) Considered Harmful很好地总结了您可能遇到的问题。

e:实际上,如果您独立绘制这两个图,请将它们绘制成绿色而不是灰色。挑选出非常浅的绿色比挑选出非常浅的灰色要容易得多。