Как выбрать из распределения Кантора?


19

Каков наилучший способ попробовать дистрибуцию Кантора ? У него есть только cdf, и мы не можем его инвертировать.


4
На самом деле, кто-то спросил это по математике: math.stackexchange.com/questions/1115907/…
RUser4512

Вот несколько интересных последующих вопросов: что такое стандартное отклонение? Что такое функция, генерирующая момент? Как они сравниваются со своими аналогами по равномерному распределению? :-)(0,1)
whuber

5
Мне нравится бесконечный цикл, который вы, ребята, создали, ссылаясь на пост math.stackexchange, который ссылается сюда: p
Tasos Papastylianou

Ответы:


23

Легко: выбрать из равномерного распределения и перекодировать из двоичного в троичный, интерпретируя каждую «1» как «2». (Это подход обратного преобразования вероятностей: он действительно инвертирует CDF!)(0,1)

фигура

Вот Rреализация, написанная так, чтобы ее можно было легко портировать практически в любую вычислительную среду.

binary.to.ternary <- function(x) {
  y <- 0
  x <- round(2^52 * x)
  for (i in 1:52) {
    y <- y + 2*(x %% 2)
    y <- y/3
    x <- floor(x/2)
  }
  y
}

n <- 1000
x <- runif(n)
y <- binary.to.ternary(x)
plot(ecdf(y), pch=".")

3
Ранее в этом году я начал немного более полную реализацию в github.com/Henrygb/CantorDist.R с функциями rCantor(), qCantor(), pCantor()и менее значимыеdCantor()
Генри

1
@ Генри Что бы dcantorреализовать? Как отмечает Тим, это распределение не имеет плотности. У него также нет дискретных атомов. Это архетипический пример непрерывного, но не абсолютно непрерывного распределения. (Мне нравится реализация qcantorBTW - она, вероятно, быстрая благодаря использованию умножения матриц.)
whuber

1
Мы должны помнить, что мы имеем дело только с конечным приближением к фактическому распределению. Допустим, у нас было 10 чисел с троичной точностью (на практике они будут длиннее), и мы сгенерировали 0.0222020002, чтобы «представить» переменную, цифры которой расширяются дальше. В то время как тот же комментарий относится к любому действительному rv с непрерывным rv, все «представленные» значения, которые может обозначать приближение конечной длины, также «в наборе». В фактическом распределении Кантора почти все «продолжения» этой десятизначной последовательности отсутствуют в наборе. ... ctd
Восстановить Монику

1
@whuber Я ясно признал, что каждый метод генерации случайных чисел имеет конечную точность во втором предложении. То, что вы решили повторить это, и акцент, который вы сделали на нем, говорит о том, что вы упустили мою истинную точку зрения; когда я представляю непрерывную переменную с конечной точностью, реальные значения, которые может представлять такое конечное приближение, находятся «в наборе», из которого мы хотим сгенерировать. Когда я представляю переменную, подобную этой, для конечной точности, реальные значения, которые может представлять такое конечное приближение, почти все отсутствуют в наборе. Это скорее другой случай. ... ctd
Восстановить Монику

1
ctd ... никакой критики вашего поста не было; это был момент, который читатели могут упускать из виду и, возможно, захотят рассмотреть, особенно если они пытаются вывести свойства набора Кантора, имитируя его.
Glen_b
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.