Вне контекста короткая версия
Пусть будет случайной величиной с CDF
Допустим, я хотел смоделировать отрисовки используя метод обратного CDF. Это возможно? Эта функция не имеет обратного. Опять же, есть выборка обратного преобразования для смешанного распределения двух нормальных распределений, которая предполагает, что есть известный способ применить выборку обратного преобразования здесь.
Мне известен двухэтапный метод, но я не знаю, как применить его к моей ситуации (см. Ниже).
Длинная версия с фоном
Я применил следующую модель для векторного ответа, , используя MCMC (в частности, Stan):
где индексирует наблюдений, - матрица корреляции, а - вектор предикторов / регрессоров / признаков.N R x
То есть моя модель представляет собой регрессионную модель, в которой условное распределение ответа предполагается гауссовой связкой с логарифмически-нормальными маргиналами, равными нулю. Я уже писал об этой модели; Оказывается, что Сонг, Ли и Юань (2009, gated ) разработали его, и они называют его вектором GLM, или VGLM. Ниже приведена их спецификация, максимально приближенная к дословной: MyF K G
Часть с накачкой нулями примерно соответствует спецификации Лю и Чана (2010, без шлюза ).
Теперь я хотел бы смоделировать данные из оценочных параметров, но меня немного смущает вопрос о том, как это сделать. Сначала я подумал, что могу просто смоделировать (в коде R):
for (i in 1:N) {
for (k in 1:K) {
Y_hat <- rbinom(1, 1, 1 - theta[i, k])
if (Y_hat == 1)
Y_hat <- rlnorm(1, mu[i, k], sigma[k])
}
}
который не использует на всех. Я хотел бы попытаться использовать оценочную матрицу, которую я оценил.
Моя следующая идея состояла в том, чтобы взять ничьи и затем преобразовать их обратно в . Похоже, что это также совпадает с ответами в разделе « Генерация выборок из Копулы в R» и « Двусторонняя выборка для распределения», выраженными в теореме Скулы о копуле? , Но какого черта мой здесь? Выборка обратного преобразования для смешанного распределения двух нормальных распределений делает звучание так, как это возможно, но я понятия не имею, как это сделать.y F - 1
источник
Ответы:
Ответ на длинную версию с фоном:
Этот ответ на длинную версию в некоторой степени решает другую проблему, и, поскольку у нас, похоже, возникают трудности при формулировании модели и проблемы, я решил перефразировать ее здесь, надеюсь, правильно.
Для цель состоит в том, чтобы моделировать векторы , чтобы при условии ковариации , с . Следовательно, если кто-то хочет смоделировать данные из этой модели, можно сделать следующее:1≤i≤I yi=(yi1,…,yiK) xi yik={0log(σkzik+βkxi) with probability logit−1(αkxi) with probability 1−logit−1(αkxi) zi=(zi1,…,ziK)∼NK(0,R)
Для ,1≤i≤I
Если кто-то заинтересован в генерации с задней стороны учетом , это более сложная проблема, хотя и возможная с помощью выборки Гиббса или ABC.(α,β,μ,σ,R) yik
источник
Ответ на короткую версию вне контекста:
«Инвертировать» файл cdf, который не является обратимым в математическом смысле (например, ваше смешанное распределение), возможно, как описано в большинстве учебников Монте-Карло. (Как и наша , см. Лемму 2.4.) Если вы определите обобщенное обратное тогда Это означает, что когда имеет скачок при , для . Другими словами, если вы рисуете форму и она заканчивается меньше, чем , ваше поколение X ∼ F эквивалентно X = F - ( U ), когда U ∼ U ( 0 , 1 )
Это почти то, что ваш код R
Y_hat <- rbinom(1, 1, theta[i, k]) if (Y_hat == 1) Y_hat <- rlnorm(1, mu[i, k], sigma[k])
делается. Вы генерируете Бернулли с вероятностью и, если оно равно , вы превращаете его в нормальное логарифмическое число. Так как он равен 1 с вероятностью вы должны вместо этого превратить его в лог-нормальное моделирование, когда оно вместо этого равно нулю , и в конечном итоге получить модифицированный код R: 1 θ i kθik 1 θik
источник