康威麦克斯韦分布密度图

时间:2018-09-16 08:44:56

标签: r simulation

我已经编写了自己的代码来模拟Conway maxwell分布示例。 这是pmf(Guikema&Goffelt,2008): enter image description here 但是,我在绘制密度图时遇到了一些问题。

container.Register<IRepo<Parameters_Fields>, ParametersFields_Repo>(
    Lifestyle.Scoped);

当我想绘制密度图以检查lamb或v是位置参数时,我得到的图很奇怪。

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)
}

enter image description here

我该如何解决这个问题?

资料来源:Guikema&Goffelt(2008),用于风险分析的灵活计数数据回归模型。风险分析28(1):215。

1 个答案:

答案 0 :(得分:1)

如果要让图形按轴顺序连接点,则必须对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