我运行了以下在此帖子中找到的代码
Any suggestions for how I can plot mixEM type data using ggplot2
wait2 <- normalmixEM(df$minutes,k=11,ECM=TRUE,maxit=10000)
gg.mixEM <- function(EM) {
require(ggplot2)
x <- with(EM,seq(min(x),max(x),len=1000))
pars <- with(EM,data.frame(comp=colnames(posterior), mu, sigma,lambda))
em.df <- data.frame(x=rep(x,each=nrow(pars)),pars)
em.df$y <- with(em.df,lambda*dnorm(x,mean=mu,sd=sigma))
ggplot(data.frame(x=EM$x),aes(x,y=..density..)) +
geom_histogram(fill=NA,color="black")+
geom_polygon(data=em.df,aes(x,y,fill=comp),color="grey50", alpha=0.5)+
scale_fill_discrete("Component\nMeans",labels=format(em.df$mu,digits=3))+
theme_bw()
}
gg.mixEM(wait2)
normalmixEM的结果显示很长的尾巴,见下图。 如何调整代码以便仅显示y高于某个概率的分布?我也想了解为什么normalmixEM会产生如此长的估计尾部?