Как работает метод инверсии?
Скажем , у меня случайную выборку с плотностью более
и, следовательно, cdfна. Тогда методом обращения я получаю распределениекак.
Так есть ли распределение ? Так работает метод инверсии?
u<-runif(n)
x<-u^(theta)
Как работает метод инверсии?
Скажем , у меня случайную выборку с плотностью более
и, следовательно, cdfна. Тогда методом обращения я получаю распределениекак.
Так есть ли распределение ? Так работает метод инверсии?
u<-runif(n)
x<-u^(theta)
Ответы:
Метод очень прост, поэтому я опишу его простыми словами. Сначала возьмем кумулятивную функцию распределения некоторого распределения, из которого вы хотите произвести выборку. Функция принимает в качестве входных данных некоторое значение х и сообщает, какова вероятность получения . Так
в противоположность такой функции, будет принимать p в качестве входных данных и возвращать x . Обратите внимание , что р «s равномерно распределены - это может быть использовано для отбора проб из любого F X , если вы знаете , F - 1 X . Метод называется выборкой обратного преобразования . Идея очень проста: легко сэмплировать значения равномерно из U ( 0 , 1 ) , поэтому, если вы хотите сэмплировать из некоторого F X , просто возьмите значения u ∼ и передать U через F - 1 X , чтобы получить х «ы
или в R (для нормального распределения)
U <- runif(1e6)
X <- qnorm(U)
Чтобы визуализировать это, посмотрите на CDF ниже, как правило, мы думаем о распределениях в терминах рассмотрения оси для вероятностей значений из оси X. С помощью этого метода выборки мы делаем противоположное и начинаем с «вероятностей» и используем их для выбора значений, которые с ними связаны. С дискретными распределениями вы рассматриваете U как строку от 0 до 1 и присваиваете значения, основанные на том, где находится некоторая точка u на этой линии (например, 0, если 0 ≤ u < 0,5 или 1, если 0,5 ≤ u ≤ 1 для выборки из B ).
К сожалению, это не всегда возможно, так как не у каждой функции есть обратное, например, вы не можете использовать этот метод с двумерными распределениями. Он также не должен быть самым эффективным методом во всех ситуациях, во многих случаях существуют лучшие алгоритмы.
Вы также спросите, каково распределение . Поскольку F - 1 X является обратным к F X , то F X ( F - 1 X ( u ) ) = u и F - 1 X ( F X ( x ) ) = x , поэтому да, значения, полученные с помощью такого метода, имеют такое же распределение , как X . Вы можете проверить это с помощью простой симуляции
U <- runif(1e6)
all.equal(pnorm(qnorm(U)), U)
Да, имеет распределение X .
Две дополнительные точки на интуиции за методом обратного преобразования могут быть полезны
(1) Для того, чтобы понять, что самом деле означает обратитесь к графику в ответе Тима, чтобы помочь мне понять функцию квантиля (обратный CDF)
(2) [Пожалуйста, просто проигнорируйте следующее, если это принесет больше путаницы вместо ясности]
Пусть быть любой случайной величины (с.в.) с непрерывной и строго возрастающей CDF F . Тогда F ( X ) ∼ Unif ( 0 , 1 ). Обозначения в обозначениях: X - rv. Следовательно, функция rv X , F ( X ) - сама rv.
Например, если вы бы перевернули вопрос, чтобы иметь доступ к и захотели сгенерировать стандартную униформу, то X 1 / θ ∼ Unif ( 0 , 1 ) . Пусть называть эту случайную величину U . Таким образом , U = X 1 / θ Возвращаясь к вашему вопросу, вы имеете противоположную задачу: сформировать X из U . Итак, действительно X = U θ
PS. Альтернативными названиями метода являются вероятностное интегральное преобразование, выборка обратного преобразования, квантильное преобразование и, в некоторых источниках, «фундаментальная теорема моделирования».