如何量化采样时间的均匀性?

机器算法验证 数据可视化 直方图 频率
2022-03-23 02:41:54

我的数据集涵盖了很长一段时间,比如 20 年,并且数据是在不同的时间采样的。例如,有些是在 1:00(存储为 100),有些是 23:00(2300)。如果我绘制采样时间的直方图,它将如下所示:

在此处输入图像描述

有些看起来像这样:

在此处输入图像描述

在此处输入图像描述

是否有一个指标可以用来量化直方图的均匀性?所以我可以知道,对于第一个图,数据被平均采样,第二个图的整体直方图有点不均匀,第三个图缺乏很好的一致性(它缺乏在 1600 - 2000 采样的数据)。

4个回答

有很多指标。它们最好与适当地可视化数据结合使用。

值得考虑的解决方案之一是将频率分布(无论时间如何)与您的参考分布(统一分布)进行比较。理论表明,与完美均匀性的偏差——残差——应该大约是平均频率的平方根的大小。您可以利用它来比较具有不同绝对频率的数据集:标准化残差(通过将它们除以它们的预期偏差)。

这与卡方检验有密切的数学关系。实际上,我们可以使用标准正态分布作为标准化残差的参考,因此它们的平方和就是通常的卡方统计量。当它很小时——大约不同的次数或更少——你有近乎完美的一致性。这为您提供了很好的比较参考价值。

让我们从这个角度来看你的数据。以下是您的三个数据集的版本:

图1:数据。

我们可以对这些残差进行排序,并将它们与标准正态分布的一阶、二阶、...、二十四阶统计量的期望值进行对比。这些图在对角线周围的水平偏差表示不均匀:

图 2:常用尺度上的 qq 图

请注意每个图中发布的卡方统计数据。的值甚至没有(数据值的数量)那么大,完全符合均匀分布。的中间值很大。这意味着尽管残差在图中排列,但它们的值过于分散:这是一个过度分散的数据集。的右手价值是巨大的。它标志着该数据集中的主要变化。15.82456328000

通过重绘这些图可以得到更多的洞察力,每个图都在自己的轴上,所以我们可以看到变化的细节。

图 3:各自轴上的 QQ 图。

现在您可以清楚地看到前两个数据集是多么均匀分散。但是通过检查它们的垂直尺度,您可以看到“分散”数据的分布是“均匀”数据的 7 倍左右:这衡量了过度分散。

几乎所有的统计软件都会产生这样的图:它们被称为“QQ”(分位数-分位数)图。

此方法适用于任何数据集。当平均频率低于左右时,解释卡方统计量变得有点微妙,但对于几乎任何探索性应用来说,这都没有问题。5

均匀分布的熵最高。可以用来衡量均匀性。

S=i=1np(xi)log(p(xi))

最小值是0. 最大值是log(n). 指数版本更直观:它以某种方式涵盖了值的百分比:

p=eS/n

例子 :

统一

一半

一些分布

您可以使用给定的参数构建蒙特卡罗式测试并测试它们的相似程度。那就是生成大量统一的数据点,并测量其中有多少与您的数据重叠。由于您的数据已经是频率,您只需计算一段时间内模拟中的点数与数据中的点数。例如,您在参数 (0,2400) 的均匀分布上生成 240000 个点(因为频率的总和大约为 240000),并测量每 100 个间隔中有多少点。然后i=124frequencyithhournumberofobservationsithintervaltotalsumoffrequencies

这将为您提供与您期望的行为不同的数据点的一部分。您可以(应用 CLT)针对正态分布进行测试。你必须重新乘以频率的总和。

我不确定你在追求什么。您是否还需要一些测试(ChiSquare 可能会这样做)?

反正。为了探索这种数据,我将绘制多个频率分布的折线图作为时间的函数(针对不同时期)。

因此,“频率”而不是“绝对数字”使得每个时期事件数量的变化不会产生影响。

数字示例:

假设您从某个周期 x 时间的表格开始(我使用虚拟数据,但您可以用您的数据做这样的事情)

rand_table <- matrix(qnorm(runif(24*20,0,1),200,5),24)
day_effect <- sin(c(1:24)/12*3.14)*10
year_effect <- runif(20,-100,100)

table <- rand_table + matrix(rep(day_effect,20),24,byrow=0) + matrix(rep(year_effect,24),24,byrow=1)
colnames(table) <- (1997:2016)
table

          1997     1998     1999     2000     2001     2002     2003     2004     2005     2006     2007     2008     2009     2010     2011     2012     2013     2014     2015     2016
 [1,] 260.0667 233.5953 120.2019 173.8588 256.3401 204.9747 177.7684 151.1975 138.7639 177.9552 240.7447 205.3817 265.8322 283.5408 262.5569 270.4157 174.4056 128.5618 290.2204 211.4510
 [2,] 249.5244 239.8960 120.5107 192.3158 253.0286 213.0315 169.0203 151.1792 148.4686 189.3689 243.1242 208.7573 262.9110 284.1739 258.1356 277.2521 169.0257 126.3684 294.5213 215.3311
 [3,] 247.9368 241.0808 122.3087 187.8790 254.8316 221.1269 171.4014 153.3314 141.9503 190.8465 245.8284 215.3114 267.7581 293.8443 261.3726 280.1178 177.0729 132.3668 297.9602 204.8105
 [4,] 259.6248 236.9574 131.4456 181.1347 254.8909 215.5816 167.8606 162.4480 143.0204 197.6665 248.4771 207.5274 261.8768 288.2050 262.8231 279.2299 173.8911 128.8646 304.1465 211.6245
 [5,] 258.5498 235.3907 124.2587 199.1903 256.9186 201.3183 175.2693 158.9103 150.4161 199.6419 245.8176 201.3408 267.2395 296.9404 271.8963 281.5610 170.9048 135.5900 307.9319 225.0224
 [6,] 254.2567 238.7180 125.5673 206.0158 258.8102 218.9670 173.4169 156.2924 145.0003 194.5099 252.9973 217.6832 264.4040 290.2716 267.9381 276.0918 166.2304 133.1175 307.3783 223.6769
 [7,] 263.8015 240.6280 128.1640 189.2185 260.7813 213.8075 179.2625 153.9522 150.5207 192.3161 245.8665 216.3049 275.7316 299.2184 271.1639 273.7122 179.7725 132.4717 304.0137 216.3689
 [8,] 251.1121 229.2925 125.1061 199.1912 251.5387 213.5779 173.9617 161.8092 143.6716 191.9641 245.3583 219.0199 266.3403 297.8517 271.8039 277.2551 184.1632 138.4491 303.5132 212.9774
 [9,] 262.7223 228.7230 123.4121 188.1462 256.0832 214.9447 168.3505 160.6458 141.1269 189.5807 252.1686 211.2347 258.2162 286.4550 257.3694 277.0731 164.2448 142.6826 297.7478 214.7545
[10,] 249.4369 237.1748 121.9888 187.5911 247.8664 205.6249 164.0456 158.7430 146.7741 194.0744 234.6995 208.7744 267.5273 277.2283 269.1293 276.5450 172.7910 141.0752 290.0011 206.9505
[11,] 251.5613 232.9232 122.3697 181.4821 239.0499 212.5056 166.7117 148.2396 146.7692 184.4266 242.7564 213.7748 259.5819 274.8612 259.7164 279.9896 167.4115 128.5881 295.3626 212.8600
[12,] 254.9230 220.9191 114.5943 171.9050 242.3551 209.4729 168.1985 131.6664 131.7506 182.0200 243.0256 204.5998 256.6656 282.8597 265.3859 272.2841 161.0621 122.4714 301.9434 207.6163
[13,] 244.3254 220.8979 109.9595 174.6536 247.1941 207.7537 165.4744 145.6344 133.9057 185.2712 242.3778 198.1467 255.9428 271.8196 257.6499 269.8779 156.8241 124.0382 294.1261 207.0789
[14,] 244.6379 222.5761 111.4693 174.1807 247.1866 194.8534 168.4106 143.9778 137.0152 179.4115 233.5407 201.8264 260.9790 279.9378 249.5447 267.6091 152.3627 117.3667 285.6467 202.8995
[15,] 241.6316 224.1021 113.3249 164.2898 242.0647 203.1320 152.5925 139.5406 143.6150 182.4157 229.9307 207.7646 253.3011 273.1239 254.5200 267.1596 152.2835 113.4475 290.8282 193.2609
[16,] 236.1205 217.1519 103.7728 177.2118 235.3146 196.6978 165.7939 138.1489 135.7740 179.4173 240.3620 196.5932 251.1842 276.0529 242.9755 259.4906 157.0868 113.2675 277.5009 198.8784
[17,] 244.0012 224.7148 106.9760 172.4818 237.0167 197.9934 152.9706 140.7621 118.6633 176.8517 227.0027 191.5034 248.9712 265.6904 242.9542 271.0733 150.5976 112.6630 284.8537 193.8020
[18,] 241.4985 213.2320 111.5817 170.3487 237.5654 188.5293 155.9515 143.3172 121.2416 176.1494 231.1264 198.5020 253.3602 269.5122 251.1248 269.7529 149.3875 114.2572 271.4105 202.0268
[19,] 235.2160 221.5018 108.2831 170.1034 238.3747 200.2492 156.0825 135.2035 124.5123 171.6472 233.6136 204.2768 247.2021 278.7483 247.4591 263.8084 157.1870 121.6157 284.1122 202.8897
[20,] 251.9713 226.7143 102.0953 170.3932 236.9628 199.0248 172.7265 137.3076 134.7663 171.9151 238.1566 188.2712 252.4209 275.7938 262.8806 259.6602 148.8275 114.1513 284.5481 204.1796
[21,] 245.5455 223.6492 109.9065 177.2015 241.7890 193.4855 156.2468 138.8739 138.1672 179.0033 233.4918 197.4053 247.6878 274.7670 251.1480 260.8251 148.7647 118.0140 284.0358 201.4156
[22,] 245.4394 217.7951 115.2334 178.6744 249.4580 204.2626 152.8850 137.1021 130.8307 182.5549 232.3583 200.7744 256.4592 277.6917 248.8487 262.9982 153.6351 122.6311 287.4040 195.8459
[23,] 252.1241 225.9910 113.6773 186.8966 243.3909 208.2465 161.2245 143.8986 133.0586 186.5644 224.3530 205.1357 263.8198 283.8469 255.0983 265.6281 161.3566 128.1783 294.0537 199.1899
[24,] 238.2365 229.5241 117.0020 187.2129 250.2044 208.5918 174.3084 142.9330 133.0209 187.7178 242.7608 209.7624 259.7822 277.7875 256.6742 276.9512 157.4175 125.0456 298.1174 210.7647

然后分别绘制每年的频率

norm_table <- t(t(table)/colSums(table))

#plot
plot(-100,-100,xlim=c(0,24),ylim=c(0,0.1),xlab="hour",ylab="frequency")
plotcolor <- hsv(seq(0.1,0.8,length.out=20),1,1)
for (i_year in 1:20) {
  lines(x<-c(1:24),y<-norm_table[,i_year],col=plotcolor[i_year])
}

每个不同年份的频率分布

如果减少分类数据符合您的目的并且您希望进行快速测试,那么您可以在交叉表上进行卡方检验。要查看哪些值是最强的异常值,您可以绘制它们与预测值的变化。