我有以下三个数据集。
data_a=[0.21,0.24,0.36,0.56,0.67,0.72,0.74,0.83,0.84,0.87,0.91,0.94,0.97]
data_b=[0.13,0.21,0.27,0.34,0.36,0.45,0.49,0.65,0.66,0.90]
data_c=[0.14,0.18,0.19,0.33,0.45,0.47,0.55,0.75,0.78,0.82]
data_a 是真实数据,另外两个是模拟数据。在这里,我试图检查哪一个(data_b 或 data_c)与 data_a 最接近或非常相似。目前我正在视觉上使用 ks_2samp 测试(python)。
视觉上
我绘制了真实数据的 cdf 与模拟数据的 cdf,并尝试直观地查看哪个最接近。
以上是 data_a 的 cdf 与 data_b 的 cdf

以上是 data_a 的 cdf vs data_c 的 cdf
因此,通过直观地看到它,人们可能会说 data_c 更接近 data_a 然后 data_b 但它仍然不准确。
Kolmogorov-Smirnov (KS) 测试
第二种方法是 KS 测试,我用 data_b 测试了 data_a 以及用 data_c 测试了 data_a。
>>> stats.ks_2samp(data_a,data_b)
Ks_2sampResult(statistic=0.5923076923076923, pvalue=0.02134674813035231)
>>> stats.ks_2samp(data_a,data_c)
Ks_2sampResult(statistic=0.4692307692307692, pvalue=0.11575018162481227)
从上面我们可以看到,当我们用 data_c 测试 data_a 时,统计数据较低,因此 data_c 应该比 data_b 更接近 data_a。我没有考虑 p 值,因为将其视为假设检验并使用获得的 p 值是不合适的,因为该检验是根据预先确定的原假设设计的。
所以我的问题是,如果我做得正确,还有其他更好的方法吗?谢谢
