Я работаю над реализацией базового симулятора Монте-Карло в Python для некоторого моделирования рисков управления проектами, который я пытаюсь сделать (в основном Crystal Ball/@Risk, но в Python).scipy - генерировать случайные величины с корреляциями
У меня есть набор из n
случайных переменных (все scipy.stats
экземпляров). Я знаю, что могу использовать rv.rvs(size=k)
для генерации k
независимых наблюдений от каждой из этих n
переменных.
Я хотел бы ввести корреляции между переменными, указав положительную полуопределенную корреляционную матрицу n x n
.
Есть ли чистый способ сделать это в scipy?
Что я Пробовал
This answer и this answer, кажется, указывают, что «копулы» будет ответ, но я не вижу каких-либо ссылок на SciPy к ним.
This link, похоже, реализует то, что я ищу, но я не уверен, что эта функция реализована уже в scipy. Мне также хотелось бы, чтобы он работал для ненормальных переменных.
Кажется, что стандартный метод Iman, Conover paper.
Это вы что искали? http://stackoverflow.com/a/16025584/190597 – unutbu
Работает для обычных переменных ... У меня есть другие дистрибутивы. – MikeRand
Похоже, что рекомендуемый метод (Iman-Conover) использует многовариантный нормальный способ делать то, что я ищу, поэтому я думаю, что ваш комментарий, вероятно, будет большой частью окончательного решения (что, вероятно, приходится строить вручную). – MikeRand