Случайно выбирая значения из распределения с нулевым завышением в R - PullRequest
1 голос
/ 12 августа 2011

Привет и заранее спасибо за помощь!

Некоторое время назад я задал вопрос о случайном выборе значений в соответствии с распределением вероятностей. Это связано, но я думаю, что это заслуживает своего собственного поста.

Вектор, который я создал в последнем вопросе, был двоичным, теперь я хотел бы создать взвешенный вектор (то есть с ограниченными целыми числами). Я выполняю выборку из распределения с нулевым или квази-пуассоновским длинным хвостом, поэтому вероятность выбора нуля намного выше, чем другого значения, но существует конечная вероятность выбора большого значения (например, 63).

Я могу использовать rpois, чтобы выбрать значения из распределения Пуассона и создать вектор заданной длины. Это похоже на то, что я хотел бы сделать, поэтому я буду использовать это в качестве примера.

e=seq(0:63)
vec<-c(0,0,0,1,1,1)
ones <- which(vec == 1L)
temp=rpois((sum(vec)),e)
vec[ones]<-temp

Это хорошо работает для назначения определенного числа значений, выбранных из распределения Пуассона, вектору. Есть ли способ сделать это квази-пуассоном или нулевым раздувом?

1 Ответ

4 голосов
/ 12 августа 2011

Здесь представлен большой список различных дистрибутивов: http://cran.r -project.org / web / views / Distributions.html

Для нуля с надутым пуассоном ...

install.packages("gamlss.dist")
library(gamlss.dist)

rZIP(n, mu, sigma)

Для квазипуассона, похоже, что есть некоторые возможности в пакете VGAM с квазипуассонфом, но это скорее для подгонки, чем для генерации. Похоже, что Артур Шарпантье что-то здесь делал - но вам действительно нужно знать, что вы ищете, чтобы получить правильный дистрибутив: http://freakonometrics.blog.free.fr/index.php?post/2010/10/21/How-to-genrerate-variables-from-a-quasi-Poisson-distribution

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...