如何显示两个时间序列是否彼此“不同”?
机器算法验证
时间序列
数据可视化
2022-04-11 16:11:58
1个回答
因为计数或比例的方差往往与计数或比例本身成正比,所以理论(和大量经验)建议分析数据的平方根。
通过在平方根轴上绘制比例和总数来亲自查看。
为了使每一列的视觉效果与其表示的计数成正比,列宽(以及它们的高度)也与计数的平方根成正比:这使得列的面积与计数成正比。正如标题所述,这些列只是轻微绘制,因为它们在这种比例可视化中是次要的。
点(表示比例)在其平滑(显示为蓝线)周围的明显随机变化,以及平滑周围该变化的近似对称性,证明了平方根尺度的适当性。他们还建议不需要对时间相关性进行更复杂的分析:您可以确信您在该图中看到的趋势是真实的。它们呈现出比问题中所暗示的更微妙的画面:比例确实增加了,但只是在前七年。
创建这样的组合图可以在 Excel 或 Stata 中完成,但在任何一个程序中都是困难、繁琐且耗时的。此示例是使用(版本 3.4.0)ggplot2中的包生成的。R
为了说明这个过程,这里是完整的R代码。
library(ggplot2)
X <- data.frame(Year=2003:2016,
Young=c(17,23,22,35,46,71,80,68,76,84,74,88,62,60),
All=c(3007,5200,6000,5900,6740,7070,7120,
7324,7620,8051,8437,9130,8930,9000)*10)
scale.dup <- 0.5e6 # Proportional to column heights in the plot
ggplot(X, aes(Year, 100 * scale.dup * Young/All)) +
geom_col(aes(Year, All, width=2.25*sqrt(All/scale.dup)),
fill="#ffffe0", alpha=0.75, color="Gray") +
geom_smooth(size=1.25) +
geom_point(size=2) +
ylab("All") +
scale_y_continuous(sec.axis=dup_axis(~. / scale.dup, "Young / All (%)"), trans="sqrt") +
ggtitle("Disease Registry Patient Proportions", "2003 - 2016 (square root scales)")
其它你可能感兴趣的问题

