我有两个数据集。一个是美国各州白人人口的实际百分比,另一个是美国各州白人人口的模拟百分比。
关于我的模拟的位:
这是在加利福尼亚地图上使用两个不同的代理(白人和少数族裔)进行的随机模拟。他们的总人口是基于加州真正的白人与少数族裔的比例。例如,如果加州有 70% 的白人和 30% 的少数族裔,那么代理人(比如说总共 100 个)将是 70 个白人和 30 个少数族裔。首先,地图随机填充两个代理,然后执行大约 100 次模拟迭代。在每次迭代中,代理都会根据特定条件移动。数据是在第 100 次迭代后获取的,其中包括加利福尼亚某个县的白人和少数族裔的百分比。
下面是来自加利福尼亚州的数据
california_actual_white = [0.52, 0.72, 0.9, 0.86, 0.91, 0.91, 0.67, 0.79, 0.89, 0.77, 0.89, 0.84, 0.9, 0.81, 0.82, 0.81, 0.87, 0.82, 0.71, 0.86, 0.86, 0.9, 0.86, 0.82, 0.89, 0.91, 0.82, 0.84, 0.93, 0.72, 0.85, 0.91, 0.8, 0.64, 0.88, 0.77, 0.76, 0.54, 0.67, 0.89, 0.61, 0.85, 0.55, 0.87, 0.88, 0.94, 0.87, 0.61, 0.87, 0.83, 0.73, 0.9, 0.88, 0.88, 0.9, 0.84, 0.75, 0.79]
california_simulated_white = [0.48, 0.54, 0.6, 0.62, 0.66, 0.69, 0.71, 0.71, 0.71, 0.72, 0.74, 0.75, 0.77, 0.78, 0.79, 0.79, 0.8, 0.8, 0.8, 0.81, 0.81, 0.82, 0.82, 0.82, 0.83, 0.84, 0.85, 0.85, 0.87, 0.87, 0.87, 0.88, 0.91, 0.92, 0.93, 0.93, 0.94, 0.94, 0.94, 0.94, 0.95, 0.95, 0.97, 0.97, 0.98, 0.98, 0.98, 0.98, 0.99, 0.99, 0.99, 0.99, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
我将如何找到这两个数据集之间的相似性度量。
我发现这三个选项可用于查找相似性,并且它们在 Python 中都有一个方法:
1) 推土机的距离
2) Kullback-Leibler 散度
3) 余弦相似度
但是我对使用这些方法有一些疑问。他们是
1)使用 Kullback-Leibler 散度和余弦相似度,如果我重新洗牌两个数组并再次计算两个指标,则值会发生变化,但地球移动器距离并非如此。关于数据点的重新洗牌/位置,它将为您提供两个数据集相同的值,这让我想到使用这个指标。
2)但第二个疑问是,您只能在两个概率分布下使用 KL 散度和地球移动器距离。所以我在这里不确定上面的两个数据集是否是概率分布。
所以我最后的两个问题是——
1)上述数据集是否被视为概率分布?如果是,为什么?
2)如果1)是,那么确定相似度的最佳方法是什么。如果 1) 不是,那么确定相似度的最佳方法是什么?
在我倾向于地球移动距离之前,因为我在疑问部分中说明了原因。