我想模拟从3个威布尔分布中减少然后增加危险的数据集,但我希望这个危险函数更接近于零,我可以得到0.1或更小。如何修复我的代码呢?
答案 0 :(得分:2)
没有必要使用pexp
和rexp
,因为当形状参数= 1时,指数是Weibull分布的退化情形。小于1的形状将在原点附近变得更加“蝎子”。你可以用两个Weibull得到一个漂亮的浴缸,但是因为你有三个Weibull,我只做了一些小改动:
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和一个混合参数会更容易。