mcem r语言代码_R语言: MLE以及EM算法模拟实验

这篇博客介绍了使用R语言进行数据模拟和最大似然估计(MLE)以及期望最大化(EM)算法的过程。博主通过EM算法将男生和女生数据进行分类,并在M步中对参数进行更新,尽管在迭代几次后收敛,但结果与模拟值存在差距。讨论了E步中分类的挑战,并预告了后续解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#Data simulation

set.seed(1001)

mStudent

fStudent

totalStu

totalStu1

按照EM算法步骤,E-Step. 对hidden vairiable (z)进行估计,把男生和女生分成两类。

###################

#E-step:

###################

eStep.fn=function(data,flag, muB,sigmaB,muG,sigmaG){

listB = c()

listG = c()

numB=0

numG=0

for(i in 1:200){

testB

testG

pb=testB/(testB+testG)

pg=testG/(testB+testG)

if(pb>=pg){

numB=numB+1

listB[numB]=data[i]

}else{

numG=numG+1

listG[numG]=data[i]

}

}

if(flag==1){

return (listB)

}else

return (listG)

}

接着, M-Step: 对特定的男生类,或者女生类进行MLE估计

#log-likelihood function

set.seed(1001)

LL.fn

R = suppressWarnings(dnorm(data, mu, sigma))

-s

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值