我想模拟数据集,它有一个减少的,然后增加的风险,从3个威布尔分布,但我想让这个危险函数更接近于零,我可以得到大约0.1或更少。我怎样才能把我的代码修改成这样呢?
发布于 2014-06-08 03:27:31
没有必要使用pexp和rexp,因为当形状parameter=1时,指数是威布尔分布的退化情况,小于1的形状在原点附近将是更多的“铲子”。你只需要两个威布尔就可以得到一件漂亮的浴衣,但既然你有一个带三个的,我只是做了一些小改动:
hazmix = function(w1, w2, x) {w1*dweibull(x,.8, 1)/(1-pweibull(x, .8, 1))+
+ w2*dweibull(x,1,.5) +
((1-(w1+w2))* dweibull(x, 6, 10)/(1-pweibull(x, 6, 10)))}
png();plot(hazmix(.2,.4, seq(0, 10, by=.1)), ylim=c(0,1) ); dev.off()

我不保证它是规范化的,如果您需要一个规范化的分布,那么只使用两个带一个混合参数的Weibull就会容易得多。
https://stackoverflow.com/questions/24102492
复制相似问题