2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Моделирование случайного вектора по совместной плотности.
Сообщение24.03.2014, 00:46 


27/05/13
6
Есть потребность программно генерировать n-мерные случайные величины; известна размерность n и совместная плотность распределения
$P (X) = P (X_1, ...., X_n)$.

$P (X)$ - произвольная функция (в том смысле, что нужно построить алгоритм не для какого-то конкретного распределения, а для любого; отсюда же следует, что$ X_1, ..., X_n$ - зависимые).

Аналитически это делается примерно так :
$P (X) = P (X_1, ...., X_n) = P_1 (X_1) * P_2 (X_2 | X_1) * .... * P_n (X_n | X_1, ..., X_{n-1})$

Функция совместного распределения
$F_i (X_i | X_1, ..., X_{i-1}) = \int_{-\infty}^{X_i} (P_i (u | X_1, ..., X_{i-1})du$

$\xi_1, ..., \xi_n$ - какие-то случайные числа;
Из системы уравнений
$$F_1 (X_1) = \xi_1;$

$F_2 (X_2 | X_1) = \xi_2;$

$...$

$F_n (X_n | X_1, ..., X_{n-1}) = \xi_n;$

находятся $X_1, ..., X_n$, которые и будут координатами искомого n-мерного вектора с заданной плотностью распределения $P (X)$.

Теперь самое главное : кто-нибудь знает численные методы / алгоритмы решения подобной задачи? В лоб, ясное дело, на ПК это не решается (хотя бы из-за кучи интегралов по бесконечности...). Больше всего интересует, как работать с совместной плотностью - если посчитать численно отдельный интеграл я ещё могу, то в какую сторону двигаться вот с этим $P (X) = P (X_1, ...., X_n) = P_1 (X_1) * P_2 (X_2 | X_1) * .... * P_n (X_n | X_1, ..., X_{n-1})$ я совершенно не знаю...

Буду благодарен, если посоветуете книги, статьи, сайты по теме. Возможно названия каких-то методов или идеи по решению.

 i  Deggial:Умножение пишется \cdot: $A\cdot B$

 Профиль  
                  
 
 Re: Моделирование случайного вектора по совместной плотности.
Сообщение24.03.2014, 10:59 
Заслуженный участник
Аватара пользователя


18/05/06
13438
с Территории
Есть такое понятие - копула.

 Профиль  
                  
 
 Re: Моделирование случайного вектора по совместной плотности.
Сообщение24.03.2014, 15:08 


27/05/13
6
ИСН в сообщении #840213 писал(а):
Есть такое понятие - копула.

Есть $P (X_1, \ldots, X_n)$ - совместная плотность распределения n-мерной СВ.

$P (X_1, \ldots, X_n) = C (F_1 (X_1), \ldots, F_n (X_n)) => C (U_1, \ldots, U_n) = P (F_{1}^{-1} (U_1), \ldots, F_{n}^{-1} (U_n))$.

Но я же не знаю $F_i (X_i)$.
Как из совместной плотности $P (X)$ получить маргинальные $F_i (X_i), (i = 1, \cdots, n)$ - вопрос остается открытым...
Или я что-то неправильно понимаю?

 Профиль  
                  
 
 Re: Моделирование случайного вектора по совместной плотности.
Сообщение24.03.2014, 17:17 
Заслуженный участник
Аватара пользователя


23/11/06
4171
Из совместного распределения маргинальные получить, если теоретически, - проинтегрировать по всем лишним переменным.

В общем-то, я не в теме, но мне не очень нравится сама постановка проблемы: "как можно моделировать вектор из абсолютно произвольного распределения?" Даже для одномерного распределения есть много способов моделирования случайных величин. И в зависимости от распределения какие-то из них применять удобнее, какие-то нет или совсем нельзя. А уж одинаково удобного метода для произвольного совместного распределения тем более быть не может. Кроме квантильного преобразования, бывает тот же Acceptance/Rejection.

(Оффтоп)

Не очень вижу, чем может быть копула полезна - её же откуда-то брать надо? А как её находить даже зная маргинальные распределения и совместное?

 Профиль  
                  
 
 Re: Моделирование случайного вектора по совместной плотности.
Сообщение26.03.2014, 00:02 
Аватара пользователя


07/03/06
128
--mS-- в сообщении #840322 писал(а):
Даже для одномерного распределения есть много способов моделирования случайных величин. И в зависимости от распределения какие-то из них применять удобнее, какие-то нет или совсем нельзя. А уж одинаково удобного метода для произвольного совместного распределения тем более быть не может.

— Всё зависит от требований к качеству случайного генератора. Мне тоже кажется, что если $n$ не очень велико, то на практике задачу можно и нужно свести к одномерной. А именно, отобразить случайные переменные на компакт $[0, 1]^n$, который потом разбить равномерной сеточкой на достаточно большое количество маленьких ячеек, в каждой из которых заменить заданную плотность вероятности $\rho (x_1, ..., x_n)$ подходящей константой (так, чтобы сумма всех их давала ровно единицу). После этого, провести сквозную нумерацию ячеек, отобразить константы одну за другой на отрезок $[0, 1]$ и запустить обычный генератор равномерного распределения на этом отрезке. Всё. В какую константу попало — в такую ячейку и совать случайный вектор.

 Профиль  
                  
 
 Re: Моделирование случайного вектора по совместной плотности.
Сообщение26.03.2014, 11:04 
Заслуженный участник
Аватара пользователя


23/11/06
4171
Для распределений с ограниченной плотностью и компактным носителем годится, но для них ни к чему такие выверты, там и accept/reject работает на ура.

 Профиль  
                  
 
 Re: Моделирование случайного вектора по совместной плотности.
Сообщение10.04.2014, 13:51 


27/05/13
6
Кролик
$n \in [30,50]$

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group