R拟合 | 一个分布能看到三个峰,怎么拟合出这三个正态分布的参数? | 高斯混合模型 与 EM算法

1. 效果

已知数据符合上图分布,怎么求下图的三个分布的参数mu, sigma,及每个分布的权重 lambda?

2. 代码: 高斯混合模型(Gaussian Mixture Model,简称GMM)

复制代码
library(mixtools)
set.seed(123) # 确保结果可重复

# 假设x是你的观测数据
x <- rnorm(1000, mean=c(-2, 0, 2), sd=c(1, 1, 1))
x <- c(x, x + 5, x - 5) # 模拟三峰数据

# 绘制密度图
par(mfrow=c(2,1))
plot(density(x), main="三峰密度图", xlab="观测值", xlim=c(-10, 10))

# 拟合三峰正态混合模型
mix <- normalmixEM(x, k=3, maxit=1000, epsilon=1e-4)
summary(mix)
abline(v=mix$mu, col="red", lty=2, lwd=2)

# 绘制拟合结果
# plot(mix, which=2, main="拟合结果")
plot(mix, density = TRUE, w = 1.1)
#plot(mix, which = 2)  # 第2种图,会显示混合分布曲线

3.获取参数

复制代码
> summary(mix)
summary of normalmixEM object:
          comp 1   comp 2   comp 3
lambda  0.513487 0.110986 0.375528
mu     -3.613972 6.917701 2.934937
sigma   2.609374 1.088864 2.020785
loglik at estimate:  -8589.094


> mix$mu
[1] -3.613972  6.917701  2.934937
> mix$sigma
[1] 2.609374 1.088864 2.020785

> mix$lambda
[1] 0.5134868 0.1109857 0.3755276

其中 lambda 是混合模型中的权重参数。每个在0到1之间。和是1。

4.名词解释

  • 高斯混合模型(Gaussian Mixture Model,简称GMM) 是一种概率模型,用于表示由多个高斯分布(正态分布)组成的复杂分布。

  • 谱学习算法(Spectral Learning Algorithms)是一类利用线性代数中的矩阵分解技术来估计模型参数的方法,在自然语言处理、机器学习等领域有广泛的应用。

Ref:

相关推荐
喆星时瑜36 分钟前
Win10/11 安装 R 与 RStudio 详细图文教程
开发语言·r语言·安装
喆星时瑜4 小时前
R语言基础语法入门
开发语言·r语言
喆星时瑜6 小时前
R语言向量语法的详细教程
开发语言·r语言
临床数据科学和人工智能兴趣组3 天前
在R语言中, 使用 as.factor() 函数转换数值型变量
开发语言·r语言
babe小鑫12 天前
信息与计算科学专业应届生面试 怎么证明自己能解决业务问题
学习·r语言·excel
深兰科技13 天前
深兰科技受邀参与第二届中国(南宁)—东盟人工智能场景应用对接会,深化AI国际合作
人工智能·qt·r语言·scala·symfony·智能机器人·深兰科技
赵钰老师14 天前
基于ArcGIS Pro、R、INVEST等多技术融合下生态系统服务权衡与协同动态分析
python·arcgis·数据分析·r语言
User_芊芊君子18 天前
RStudio 鸿蒙 PC 适配全记录:以 Qt 原生工作区承载嵌入式 R
qt·r语言·harmonyos
临床数据科学和人工智能兴趣组18 天前
399元现在超值!学R语言,订阅我们专栏就够了,包括了所有的内容,不断更新!
人工智能·数据挖掘·r语言·r语言-4.2.1·临床研究
babe小鑫19 天前
生物统计学专业校招:SAS、R、Python学习顺序实用指南
python·学习·r语言