У меня есть объект плотности dd, созданный так:
x1 <- rnorm(1000)
x2 <- rnorm(1000, 3, 2)
x <- rbind(x1, x2)
dd <- density(x)
plot(dd)
, который производит это очень негауссово распределение:
альтернативный текст http://www.cerebralmastication.com/wp-content/uploads/2009/09/nongaus.png
В конечном итоге я хотел бы получить случайные отклонения от этого распределения, аналогичные тому, как rnorm получает отклонения от нормального распределения.
Способ, которым я пытаюсь это взломать, состоит в том, чтобы получить CDF моего ядра, а затем заставить его сообщить мне переменную, если я передам ей кумулятивную вероятность (обратный CDF). Таким образом, я могу превратить вектор однородных случайных вариаций в ничьи из плотности.
Кажется, что то, что я пытаюсь сделать, должно быть чем-то базовым, что другие сделали до меня. Есть ли простой способ или простая функция для этого? Я ненавижу изобретать велосипед.
FWIW Я нашел эту статью справки R , но я не могу понять, что они делают, и окончательный вывод, похоже, не дает того, что я ищу. Но это может быть шагом на пути, который я просто не понимаю.
Я подумал о том, чтобы просто пойти с дистрибутивом Johnson из пакета suppdists , но Johnson не даст мне приятного бимодального горба, который есть в моих данных.