【问题标题】:Monte Carlo simulation for a data set of vectors向量数据集的蒙特卡罗模拟
【发布时间】:2020-12-22 06:47:20
【问题描述】:

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

我想做的是通过使用蒙特卡罗模拟克隆这些对象来扩展这个数据集。

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

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

【问题讨论】:

  • 您能详细说明一下吗?扩展这些数据是什么意思。你想要你的向量集的精确克隆吗?
  • @joostblack 我习惯于为向量分量获取不确定值并进行某种多元分布提取以基本上获得“克隆数据”,即表示不确定性的数据。在这种情况下,我没有不确定性,所以我试图得到一个合成分布。

标签: python statistics physics montecarlo


【解决方案1】:

为了能够使用 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 可以使用,这样做可能有些合理。如果变量不是独立的,另一种更复杂但更现实的选择是计算每个样本中变量之间的相关性,然后根据该相关性生成新数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2012-04-26
    • 2015-02-10
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多