У меня есть набор (x, y, z, u, v, w) векторов из N объектов.
Что я пытаюсь сделать, так это расширить этот набор данных, клонируя эти объекты с помощью моделирования Монте-Карло.
Мне было интересно, разумно ли это. Если да, то как это сделать на Python, а если нет, то какова альтернатива.
+) Я привык иметь значения неопределенности для векторных компонентов и выполнять какое-то извлечение многомерного распределения, чтобы в основном получить «данные клонирования», то есть данные, которые представляют неопределенность. В данном случае у меня нет неопределенности, поэтому я пытаюсь получить синтетическое распределение.
@joostblack Я привык иметь значения неопределенности для векторных компонентов и выполнять своего рода извлечение многомерного распределения, чтобы в основном получить «данные клонирования», то есть данные, которые представляют неопределенность. В данном случае у меня нет неопределенности, поэтому я пытаюсь получить синтетическое распределение.
Чтобы иметь возможность создавать новые данные с помощью моделирования 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
для работы с этим, это может быть разумно. Другой, более сложный, но более реалистичный вариант, если переменные не являются независимыми, заключается в расчете корреляции между переменными в каждой выборке и последующем создании новых данных в соответствии с этой корреляцией.
Не могли бы вы уточнить немного больше? Что вы подразумеваете под расширением этих данных. Вам нужны точные клоны вашего набора векторов?