楼主: byczw
4075 1

[问答] EM算法下对数正态分布的混合模型事后总结 [推广有奖]

  • 0关注
  • 0粉丝

高中生

35%

还不是VIP/贵宾

-

威望
0
论坛币
986 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
128 点
帖子
20
精华
0
在线时间
27 小时
注册时间
2010-1-8
最后登录
2017-10-3

楼主
byczw 发表于 2012-6-22 20:44:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
最近在搞这个混合模型,需要一个EM算法下的对数正态分布的程序,于是自己试了试,但是不行,会出现
Erreur : indice hors limites
出现这个提示是因为
  for (k in 1:2)  {     
         pY[,k] <- p[k]*dlnorm(x,meanlog=m[k],sdlog=s[k])/denom
         E[k] <- sum(pY[,k])
       p[k] <- E[k]/n
         xck <-as.matrix(log(x))
       m[k] <- pY[,k]%*%xck/E[k]         
         xck[,k] <- xck[,k] - mu[k]
         s[k]<- (t(matrix(pY[,k],n,1)*xck)%*%xck)/E[k]         
      }
这一步中xck是149*1,但是我在后面的程序中犯傻,给xck第二列数值,所以出现最上面的警示

Erreur dans while ((kiter < MaxIter) & (err > epsilon)) { :
  valeur manquante là où TRUE / FALSE est requis
在之后的程序运行中,出现这个提示,是因为给定的初始值太大或者太小,导致程序无法计算
当我调整初始值大小时,可以解决这个问题
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:对数正态分布 正态分布 混合模型 EM算法 limites 模型 算法 正态分布

沙发
DM小菜鸟 发表于 2014-12-31 16:19:14
这个是触到上限值了。
修改小一点就OK!

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 11:00