楼主: wpcz_c
17573 7

如何用MATLAB计算转移概率矩阵 [推广有奖]

  • 0关注
  • 0粉丝

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
1339 个
通用积分
25.0814
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
2692 点
帖子
104
精华
0
在线时间
337 小时
注册时间
2006-9-17
最后登录
2024-6-18

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
MATLAB里求转移矩阵的命令[TRANS_EST, EMIS_EST] = hmmestimate(seq, states),我实在没看懂怎么用,seq 和state到底该取多少?
我现在有如下数据:
w=44.93  46.35  44.84
  19.48  19.29  19.25
  17.74  17.3   18.26
  17.85  17.07  17.65;
ww=44.73  44.93  46.35
  19.97  19.48  19.29
  17.39  17.74  17.3
  17.9   17.85  17.07;
ww是W的滞后一期矩阵,W矩阵的列分别为03,04,05年的数据,而ww分别为02,03,04年的数据,数据均为比例,现在要计算一步转移概率矩阵P,即ww*P=w,其约束条件是:[email=min=@sum(bz(j,t):(w(j,t)-@sum(zt(i):ww(i,t)*p(i,j)))^2]min=@sum(bz(j,t):(w(j,t)-@sum(zt(i):ww(i,t)*p(i,j)))^2[/email]);
@for(zt(i):@sum(zt(j):p(i,j))=1);
一个表示最小化,另一个表示P矩阵列元素和为1,
这些语言是LINGO软件的,我想把它转换为MATLAB语言,请问该怎么做?
二维码

扫码加我 拉你入群

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

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

关键词:MATLAB 转移概率矩阵 atlab matla 转移概率 MATLAB 矩阵 转移概率

沙发
steinback 发表于 2009-8-26 15:45:25 |只看作者 |坛友微信交流群
抱歉,你的问题超出了我的能力范围。不太懂你的模拟,个人建模水平有限。
不过可以和你探讨下MATLAB的代码。
用范例来解释一下吧。
两个色子。一个是好的,一个是偏一面的。
仍色子的几率矩阵是trans转移矩阵是emis
>> trans = [0.95,0.05; 0.10,0.90];
>> emis = [1/6,  1/6,  1/6,  1/6,  1/6,  1/6;
1/10, 1/10, 1/10, 1/10, 1/10, 1/2;];

seq代表的是一个序列,不是写上去的,而是用代码算出来的。
[seq,  states] = hmmgenerate(1000,trans,emis);
1000是步长值。
得到seq,seq在此是 Columns 1 through 12 ....

     2     5     1     5     6     4     3     3     5     4     6     5...

以下略,太长....

再用
[trans, emis] = hmmestimate(seq,states);
得到trans 和emis的值。
>> trans

trans =

    0.9501    0.0499
    0.1069    0.8931

>> emis

emis =

    0.1733    0.1630    0.1733    0.1557    0.1733    0.1615
    0.1129    0.0784    0.1066    0.1254    0.1066    0.4702

可以看出,非常接近设定值。

使用道具

藤椅
wpcz_c 发表于 2009-8-27 11:43:23 |只看作者 |坛友微信交流群
我现在的问题就是只知道初始状态,想求EMISSION矩阵,那该怎么求?

使用道具

板凳
aris_zzy 发表于 2009-8-27 13:26:38 |只看作者 |坛友微信交流群
3# wpcz_c
转移规则都没有,或者历史数据 如果做转移矩阵?
http://www.ariszheng.com

使用道具

报纸
steinback 发表于 2009-8-27 13:35:07 |只看作者 |坛友微信交流群
对你的问题我很难回答,水平有限...
不如你就直接用矩阵公式算吧,再加个约束条件做排除法.....
不对之处请海涵。

使用道具

地板
wpcz_c 发表于 2009-8-27 15:50:13 |只看作者 |坛友微信交流群
w=44.93  46.35  44.84
  19.48  19.29  19.25
  17.74  17.3   18.26
  17.85  17.07  17.65;
ww=44.73  44.93  46.35
  19.97  19.48  19.29
  17.39  17.74  17.3
  17.9   17.85  17.07;
ww是W的滞后一期矩阵,它们俩都是状态矩阵,如果直接用矩阵求解的话得到的结果是
0.7398   -3.0057         0    4.0148
    0.1538    0.4273         0    0.2272
    0.2892    1.1156         0   -0.9761
    0.0552    1.7228         0   -1.0628
这个结果不符合要求,我要的是各个元素都大于0小于1,这个约束条件怎么加呢?

使用道具

7
wpcz_c 发表于 2009-8-27 15:52:29 |只看作者 |坛友微信交流群
你所说的转移规则是什么?不就是WW*P=W?两个矩阵就是原始数据的状态矩阵了,就是求了比例。
4# aris_zzy

使用道具

8
bingo_uestc 发表于 2009-9-23 16:28:58 |只看作者 |坛友微信交流群
楼主的问题也在困扰着我

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-6-26 21:40