Выборка из допустимого множества распределений

svarg

Привет, есть такая задача - существует распределение для m-мерного вектора x, [math] $x_i = {0,1}$ [/math] такое,что [math] $\sum\limits_{\bar{x}: \bar{x_i} = 1} P(\bar{x}) = a_i$ [/math], где [math] $a_i$[/math]. - данные числа из [0,1]. Соответственно, можно моделировать всё распределение, как вектор в [math]$R^{2^m}$ [/math], т.е. ещё дополнительным условием будет [math] $\sum\limits_{\bar{x}} P(\bar{x}) = 1$ [/math]. Каким образом можно провести случайную выборку этих [math]$2^m$[/math] чисел?

Niklz

у тебя получается, что задано только частное распределение каждой из величин x_i
совместное распределение величины (x_1, ..., x_m) ты из них не получишь, если только не сделать еще какое-нибудь дополнительное предположение
типа независимости всех x_i между собой

svarg

да, эти величины между собой независимы.

Niklz

ну так а в чем тогда проблема - совместное распределение просто произведение этих твоих чисел a_i.
хотя, погоди... так ты хочешь случайно выбрать само распределение, а не взять выборку из заданного распределения.. хм..
первое что приходит в голову, что-то типа индукции.
допустим, у тебя есть процедура [math]$R_{m-1}$[/math], которая случайно равновероятно выбирает совместное распределение [math]$\mathbf{p}(x_1,\dots,x_{m-1})$[/math] для вектора [math]$(x_1,\dots,x_{m-1})$[/math], так чтобы частные распределения были равны [math]$\mathbf{p}(x_i =1)=a_i,\forall i=1,\dots,m-1$[/math], как ты и хочешь.
Тогда, (гипотеза :) ) процедура [math]$R_{m}$[/math] случайно равновероятно выбрающая распределение [math]$\mathbf{p}(x_1,\dots,x_m)$[/math] для вектора [math]$(x_1,\dots,x_m)$[/math], так чтобы уже его частные распределения были равны [math]$\mathbf{p}(x_i =1)=a_i,\forall i=1,\dots,m$[/math], состоит из трех шагов:
1. используешь процедуру [math]$R_{m-1}$[/math] чтобы выбрать условное распределение [math]$\mathbf{p}(x_1,\dots,x_{m-1}|x_m=1)$[/math] для вектора [math]$(x_1,\dots,x_{m-1})$[/math]
2. используешь процедуру [math]$R_{m-1}$[/math] чтобы выбрать условное распределение [math]$\mathbf{p}(x_1,\dots,x_{m-1}|x_m=0)$[/math] для вектора [math]$(x_1,\dots,x_{m-1})$[/math]
3. совместное распределение получаешь как [math]  $$  \mathbf{p}(x_1,\dots,x_{m-1},x_m) =   \begin{cases}  \mathbf{p}(x_1,\dots,x_{m-1}|x_m=1) \cdot a_{m}, & x_m=1 \\  \mathbf{p}(x_1,\dots,x_{m-1}|x_m=0) \cdot (1-a_{m} & x_m=0  \end{cases}  $$  [/math]
 Интуитивно кажется, что поскольку условные распределения ты выбираешь равновероятно и независимо, то итоговое распределение [math]$\mathbf{p}(x_1,\dots,x_m)$[/math] тоже должно получиться равновероятно выбранным. Но это надо доказать, у меня голова после работы уже не варит :)
Технически, можно оформить это в виде рекурсии, начав с процедуры R_m и сведя ее к множеству процедур R_1, которые очевидно есть просто равновероятный выбор числа в интервале [0,1]. Возможно, количество вычислений можно сократить сделав что-то вроде процедуры динамического программирования.
Оставить комментарий
Имя или ник:
Комментарий: