Monte Carlo 向量数据集的模拟

Monte Carlo simulation for a data set of vectors

我有一组 N 个对象的 (x,y,z,u,v,w) 向量。

我想做的是通过使用 Monte Carlo 模拟克隆这些对象来扩展此数据集。

我想知道这是否合理。如果是这样,如何在 Python 中做到这一点,如果不是,替代方案是什么。

+)我习惯于使用向量分量的不确定值,并进行某种多元分布提取,基本上得到“克隆数据”,即代表不确定性的数据。在这种情况下,我没有不确定性,所以我试图获得一个合成分布。

为了能够使用 MC 模拟创建新数据,您需要有一些东西可以模拟。我想从你的问题中并不清楚应该如何进行这种模拟。如果您的意思是您应该创建新数据,这些新数据是现有数据的其他排列,我想您可以在某种意义上称呼该 MC。这可以通过从每个向量中随机选择一个元素来实现。代码示例(未经测试或优化,但在概念上可行):

import numpy as np
data = ...
n_new_data
new_data = np.full((n_new_data, len(data)), np.nan)
for i, vec in enumerate(data):
    for j in range(n_new_data):
        new_data[j, i] = vec[np.random.random_integers(len(vec)-1)]

如果您只有 data 可以使用,那么这样做可能有点合理。另一种更复杂但更现实的是,如果变量不是独立的,选项是计算每个样本中变量之间的相关性,然后根据这种相关性生成新数据。