2014-02-03 4 views
2

В целях обучения мне нужно создать случайные наборы данных коррелированных случайных величин с разными распределениями. Я пробовал corr2data в Stata, но он не позволит мне указывать значения max и min переменных, которые должны быть сгенерированы, просто означает, sd и ковариационную матрицу. Поэтому после генерации данных мне нужно сделать грязные корректировки. Различные другие детали раздражают меня corr2data. Есть ли более простой способ сделать это с MATLAB? Я не так хорошо знаком с этим программным обеспечением, как с Stata.как создать набор данных коррелированных переменных с разными распределениями?

+0

Принимала вы посмотрите на многомерное нормальное распределение? – Daniel

+1

Что вы подразумеваете под «разными дистрибутивами»? Все нормальные, но только разные параметры? Или действительно разные: обычные и чи-квадратные и равномерные и т. Д. Последнее может быть довольно сложно, потому что нет стандартного способа параметризировать корреляцию между ними в первую очередь. –

ответ

2

Если у вас есть доступ к Statistics Toolbox, а также MATLAB, вы можете использовать функциональность связки, чтобы сделать это довольно легко. Используя связку, вы можете указать предельные распределения каждой переменной и структуру корреляции между переменными.

Затем вы можете генерировать случайные числа из копулы, подгонять ее к данным и т. Д.

См в документации MATLAB:

Copulas: Generate Correlated Samples