График распределения распределения Conway Maxwell - PullRequest
0 голосов
/ 16 сентября 2018

Я написал собственный код для моделирования образца распределения Максвелла Конвея.Это pmf (Guikema & Goffelt, 2008): enter image description here Однако я столкнулся с некоторой проблемой при построении графика плотности.

rcomp <- function(n,lamb,v)
{
  u <- runif(n)
  w <- integer(n)

  for(i in 1:n) {
    z=sum(sapply(  0:100, function(j) (( ((lamb)^j) / (factorial(j)) )^v)  ))
    x <- seq(1, 50, 1) #seq of 1 to 50, increase by 1
    px <- (((lamb^x)/factorial(x))^v)/z 
    # px is pmf of re-parameter conway maxwell 
    w[i] <- if (u[i] < px[1]) 0 else (max (which (cumsum(px) <= u[i])))
  }
  return (w)
}
dcomp <- function(x,lamb,v) {
z=sum(sapply(  0:100, function(j) (( ((lamb)^j) / (factorial(j)) )^v)  ))
px <- (((lamb^x)/factorial(x))^v)/z

return(px)
}

Поскольку я хочу построить график плотностичтобы проверить, является ли lamb или v параметром местоположения, график, который я получаю, странный.

x = rcomp(100,6,0.2);  pdf = dcomp(x,6,0.2)
x1 = rcomp(100,6,0.5);  pdf1 = dcomp(x1,6,0.5)
x2 = rcomp(100,6,0.7);  pdf2 = dcomp(x2,6,0.7)
plot(x2, pdf2, type="l", lwd=1,lty=1,col="blue")

enter image description here

Как я мог решить эту проблему?

Источник: Guikema & Goffelt (2008), Гибкая модель регрессии данных подсчета для анализа рисков.Анализ рисков 28 (1): 215.

1 Ответ

0 голосов
/ 16 сентября 2018

Вы должны отсортировать значения координаты x, если хотите, чтобы график соединял точки в порядке их осей.
Обратите внимание, однако, что могут быть более эффективные способы построения графиков плотности, которые вы хотите.Смотри красную кривую.Сначала я создаю вектор x значений в определенном диапазоне, а затем вычисляю PDF для этих значений.Эти пары (x, y) являются функциями lines участков.

set.seed(2673)    # Make the results reproducible

x2 <- rcomp(100, 6, 0.7)
x2 <- sort(x2)
pdf2 <- dcomp(x2, 6, 0.7)

plot(x2, pdf2, type = "l", lwd = 1, lty = 1, col = "blue")

x <- seq(0, 50, length.out = 100)
y <- dcomp(x, 6, 0.2)

lines(x, y, type = "l", col = "red")

enter image description here

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