【问题标题】:R superimposing bivariate normal density (ellipses) on scatter plotR在散点图上叠加双变量正态密度(椭圆)
【发布时间】:2015-04-03 17:29:03
【问题描述】:

网站上有类似的问题,但我找不到这个看似很简单的问题的答案。我在老忠实数据集上混合了两个高斯:

if(!require("mixtools")) { install.packages("mixtools");  require("mixtools") }
data_f <- faithful
plot(data_f$waiting, data_f$eruptions)
data_f.k2 = mvnormalmixEM(as.matrix(data_f), k=2, maxit=100, epsilon=0.01) 
data_f.k2$mu # estimated mean coordinates for the 2 multivariate Gaussians
data_f.k2$sigma # estimated covariance matrix 

我只是想为由平均向量data_f.k2$mu 和协方差矩阵data_f.k2$sigma 描述的模型的两个高斯分量叠加两个椭圆。得到类似的东西:

对于那些感兴趣的人,here 是创建上图的 MatLab 解决方案。

【问题讨论】:

标签: r plot covariance mean normal-distribution


【解决方案1】:

您可以使用包mixtools 中的ellipse 函数。最初的问题是这个函数从你的图中交换了 x 和 y。我会尝试解决这个问题并更新答案。 (我会把颜色留给其他人...)

plot( data_f$eruptions,data_f$waiting)
for (i in 1: length(data_f.k2$mu))  ellipse(data_f.k2$mu[[i]],data_f.k2$sigma[[i]])

【讨论】:

  • 抱歉,代码运行但我没有看到图中的省略号。你介意发布结果图吗?
【解决方案2】:

如果您也对颜色感兴趣,您可以使用后验来获取适当的组。我用ggplot2 做的,但首先我使用@Julian 的代码展示了彩色解决方案。

# group data for coloring
data_f$group <- factor(apply(data_f.k2$posterior, 1, which.max))
# plotting
plot(data_f$eruptions, data_f$waiting, col = data_f$group)
for (i in 1: length(data_f.k2$mu))  ellipse(data_f.k2$mu[[i]],data_f.k2$sigma[[i]], col=i)

对于我使用ggplot2 的版本。

# needs ggplot2 package
require("ggplot2")
# ellipsis data 
ell <- cbind(data.frame(group=factor(rep(1:length(data_f.k2$mu), each=250))), 
             do.call(rbind, mapply(ellipse, data_f.k2$mu, data_f.k2$sigma, 
                                   npoints=250, SIMPLIFY=FALSE)))

# plotting command
p <- ggplot(data_f, aes(color=group)) + 
  geom_point(aes(waiting, eruptions)) +
  geom_path(data=ell, aes(x=`2`, y=`1`)) +
  theme_bw(base_size=16)
print(p)

【讨论】:

    【解决方案3】:

    使用mixtools内部绘图功能:

    plot.mixEM(data_f.k2, whichplots=2)

    【讨论】:

    • 可以添加任何解释吗?
    • 欢迎来到stackoverflow。回答问题时,请提供完整的解释。你现在的帖子太短了,没有多大用处。
    猜你喜欢
    • 2021-06-16
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2013-10-07
    • 2012-03-03
    • 2015-09-12
    相关资源
    最近更新 更多