我有一组N个对象的(x,y,z,u,v,w)向量。
我要做的是通过蒙特卡洛模拟克隆这些对象来扩展这个数据集。
我想知道这是否合理。如果是这样,如何在Python中做到这一点?如果不是,还有什么替代方法。
+)我习惯的是具有向量分量的不确定性值,并进行某种类型的多变量分布提取,以基本上获得“克隆数据”,即表示不确定性的数据。在这种情况下,我没有不确定性,所以我试图得到一个合成分布。
发布于 2020-12-22 16:00:00
为了能够使用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可以使用,那么这样做可能有些合理。如果变量不是独立的,另一种更复杂但更现实的选择是计算每个样本中变量之间的相关性,然后根据这种相关性生成新数据。
https://stackoverflow.com/questions/65404308
复制相似问题