Conway Maxwell 分布密度图
Conway Maxwell Distribution Density Plot
我已经编写了自己的代码来模拟康威麦克斯韦分布样本。
这是 pmf(Guikema & Goffelt,2008):
但是,我在绘制密度图时遇到了一些问题。
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")
我该如何解决这个问题?
资料来源:Guikema & Goffelt (2008),用于风险分析的灵活计数数据回归模型。风险分析 28(1): 215.
如果您希望图形按轴顺序连接点,则必须对 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")
我已经编写了自己的代码来模拟康威麦克斯韦分布样本。
这是 pmf(Guikema & Goffelt,2008):
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")
我该如何解决这个问题?
资料来源:Guikema & Goffelt (2008),用于风险分析的灵活计数数据回归模型。风险分析 28(1): 215.
如果您希望图形按轴顺序连接点,则必须对 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")