我想用R来编写一个解决混合模型的参数估计问题,具体用EM算法来迭代计算
如从N(0,1)和N(2,1)两个正态总体中产生数据,其中按b(1,0.5)产生的随机数,如果是1,则样本来自N(0,1), 否则来自另一个正态分布.这样得到数据后,我来用EM方法来估计两个总体的均值,请问该怎么编程序
那位大侠可否告知一二。
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
一个不是最优的方法如下:
n=100
i=0
x<-NULL
for (i in 1:n){
index<-rbinom(1,1,0.5)
if (index==1)
x<-rnorm(1)
else
x<-rnorm(1,2,1)
}
x即为长度为n的来自你说的混合分布的随机数
简单改进如下
index<-rbinom(n,1,0.5)
n1<-sum(index)
x1<-rnorm(n1)
x2<-rnorm(n-n1,2,1)
x<-c(x1,x2)
hope it is helpful