我有一个从我的原始数据中获得的 100 万条记录的样本。(供您参考,您可以使用可能产生近似相似分布的虚拟数据
b <- data.frame(matrix(rnorm(2000000, mean=c(8,17), sd=2)))
c <- b[sample(nrow(b), 1000000), ]
) 我认为直方图是两个对数正态分布的混合,我尝试使用以下代码使用 EM 算法拟合求和分布:
install.packages("mixtools")
lib(mixtools)
#line below returns EM output of type mixEM[] for mixture of normal distributions
c1 <- normalmixEM(c, lambda=NULL, mu=NULL, sigma=NULL)
plot(c1, density=TRUE)
第一个图是对数似然图,第二个图(如果再次点击返回)给出类似于以下密度曲线:
正如我提到的,c1 是 mixEM[] 类型,而 plot() 函数可以适应这种情况。我想用颜色填充密度曲线。使用 ggplot2() 很容易做到这一点,但 ggplot2() 不支持 mixEM[] 类型的数据并抛出此消息:
ggplot 不知道如何处理 mixEM 类的数据
有没有其他方法可以解决这个问题?