我试图通过以下方式使用R(软件)绘制beta-gumbel分布图, 真实的想法是,在beta版本的pdf中,我们使用gumbel的cdf而不是插入x。但我无法得到正确的情节。
x <- seq(-3, 3, length=100)
Fx = pgumbel(x,loc=0,scale=1)
y = dbeta(Fx,shape1=0.5,shape2=0.5)
plot(x, y, type="l", lty=2, xlab="x value", ylab="Density",ylim=c(0,1))
答案 0 :(得分:3)
当你说你没有使用任何附加软件包时,我不相信你:pgumbel()
不在基础R中。library("sos"); findFn("pgumbel")
在各种地方找到它,我使用过evd
包。
这里有一些小问题。
library("evd")
主要的是你需要length=100
而不是by=100
(它为你提供单元素x
向量):
x <- seq(-3, 3, length=100)
实际计算没问题:
Fx = pgumbel(x,loc=0,scale=1)
y = dbeta(Fx,shape1=0.5,shape2=0.5)
您需要更改ylim
才能看到正在发生的事情。但是,我还认为你需要做一些事情来解释差异dx
,以便获得一个适当的密度函数(更像是StackExchange而不是StackOverflow问题)。
par(las=1,bty="l") ## my personal preferences
plot(x, y, type="l", lty=2, xlab="x value", ylab="Density",ylim=c(0,40))