Как работает метод обратного преобразования?

21

Как работает метод инверсии?
Скажем , у меня случайную выборку X1,X2,...,Xn с плотностью f(x;θ)=1θx(1θ)θ более
0<x<1и, следовательно, cdfFX(x)=x1/θна(0,1). Тогда методом обращения я получаю распределениеXкакFX1(u)=uθ.

Так есть ли uθ распределение X ? Так работает метод инверсии?

u<-runif(n)
x<-u^(theta)
Clarkson
источник
1
Да, хотя это обычно называется «интегралом вероятности». Попробуйте вывести функцию распределения чтобы понять, почему она работает. F1(U)
dsaxton

Ответы:

20

Метод очень прост, поэтому я опишу его простыми словами. Сначала возьмем кумулятивную функцию распределения некоторого распределения, из которого вы хотите произвести выборку. Функция принимает в качестве входных данных некоторое значение хFXx и сообщает, какова вероятность получения . ТакXx

FX(x)=Pr(Xx)=p

в противоположность такой функции, будет принимать p в качестве входных данных и возвращать x . Обратите внимание , что р «s равномерно распределены - это может быть использовано для отбора проб из любого F X , если вы знаете , F - 1 X . Метод называется выборкой обратного преобразования . Идея очень проста: легко сэмплировать значения равномерно из U ( 0 , 1 ) , поэтому, если вы хотите сэмплировать из некоторого F X , просто возьмите значения u FX1pxpFXFX1U(0,1)FX и передать U через F - 1 X , чтобы получить х «ыuU(0,1)uFX1x

FX1(u)=x

или в R (для нормального распределения)

U <- runif(1e6)
X <- qnorm(U)

Чтобы визуализировать это, посмотрите на CDF ниже, как правило, мы думаем о распределениях в терминах рассмотрения оси для вероятностей значений из оси X. С помощью этого метода выборки мы делаем противоположное и начинаем с «вероятностей» и используем их для выбора значений, которые с ними связаны. С дискретными распределениями вы рассматриваете U как строку от 0 до 1 и присваиваете значения, основанные на том, где находится некоторая точка u на этой линии (например, 0, если 0 u < 0,5 или 1, если 0,5 u 1 для выборки из ByxU01u00u<0.510.5u1 ).Bernoulli(0.5)

enter image description here

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

Вы также спросите, каково распределение . Поскольку F - 1 X является обратным к F X , то F X ( F - 1 X ( u ) ) = u и F - 1 X ( F X ( x ) ) = x , поэтому да, значения, полученные с помощью такого метода, имеют такое же распределение , как X . Вы можете проверить это с помощью простой симуляцииFX1(u)FX1FXFX(FX1(u))=uFX1(FX(x))=xX

U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)
Тим
источник
Хороший ответ. Этот метод работает, когда у вас есть такие распределения, как экспоненциальное, коши, геометрическое, парето, логистика, экстремальное значение Вейбулла и т. Д. Например, вы не можете найти закрытую форму для нормального распределения . Поэтому вы не сможете использовать этот метод. Вы можете попробовать другие методы, такие как метод отклонения .
Аббас Салими,
2
Вы можете использовать метод обратного преобразования с нормальным распределением. Существует множество реализаций для нормального обратного CDF . Например, вы можете написать нормальный обратный CDF, используя дополнительную функцию ошибок . Пример реализации erfc здесь . Не кодируйте erfc самостоятельно; использовать библиотеку. Отсутствие формулы для замкнутой формы не означает, что вы не можете использовать качественные числовые приближения.
Мэтью Ганн,
2

Да, имеет распределение X .UθX

Две дополнительные точки на интуиции за методом обратного преобразования могут быть полезны

(1) Для того, чтобы понять, что F1 самом деле означает обратитесь к графику в ответе Тима, чтобы помочь мне понять функцию квантиля (обратный CDF)

(2) [Пожалуйста, просто проигнорируйте следующее, если это принесет больше путаницы вместо ясности]

Пусть быть любой случайной величины (с.в.) с непрерывной и строго возрастающей CDF F . Тогда F ( X ) Unif ( 0 , 1 ). Обозначения в обозначениях: X - rv. Следовательно, функция rv X , F ( X ) - сама rv. XF

F(X)Unif(0,1)

XXF(X)

Например, если вы бы перевернули вопрос, чтобы иметь доступ к и захотели сгенерировать стандартную униформу, то X 1 / θUnif ( 0 , 1 ) . Пусть называть эту случайную величину U . Таким образом , U = X 1 / θ Возвращаясь к вашему вопросу, вы имеете противоположную задачу: сформировать X из U . Итак, действительно X = U θXX1/θUnif(0,1)U

U=X1/θ
XU
X=Uθ

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

den2042
источник