楼主: HUJIUKAI
5581 6

[学科前沿] TVP-VAR 结果可重复性问题 [推广有奖]

  • 4关注
  • 38粉丝

已卖:5798份资源

讲师

11%

还不是VIP/贵宾

-

威望
0
论坛币
15308 个
通用积分
78.6895
学术水平
28 点
热心指数
26 点
信用等级
16 点
经验
5201 点
帖子
100
精华
0
在线时间
698 小时
注册时间
2009-8-21
最后登录
2025-12-9

楼主
HUJIUKAI 发表于 2015-8-26 17:56:24 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
    最近学习了一下用matlab做时变系数var方法,因为时间比较紧没有详细读懂里面的每一个算法,可是发现同样的数据同样的代码,运行两遍,出来的结果都不相同,应该是MCMC上的问题。如何能获取可复制的结果?应该是要设定一个种子值,但我之前没接触过matlab这款软件,有比较了解的请麻烦帮忙看看应该怎么弄。

代码如下(已经调入数据矩阵my)

asvar = {'RPI'; 'R'; 'CC'};    % variable names
nlag = 2;                   % lags

setvar('data', my, asvar, nlag); % set data

setvar('ranseed', 1);
setvar('fastimp', 1);       % fast computing of response

mcmc(10000);                % MCMC

drawimp([1], 1);                        
drawimp([25 41 58], 0);                % draw impulse response


二维码

扫码加我 拉你入群

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

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

关键词:tvp-var 性问题 VaR 重复性 computing matlab 如何 软件

本帖被以下文库推荐

沙发
月亮米拉 发表于 2015-9-27 16:32:42
你这个是用MCMC算法做的应该,如果你不指定种子,那么每次电脑所用的随机数取得的就不同,所以结果不同,应该在加上个种子设定,使得随机数产生相同,应该结果就相同了

藤椅
jiayuehua 发表于 2016-11-5 17:19:21
楼主你好,我也在用这个程序包做tvp var,可是我在运行时遇见了几个问题,能不能加我Q:572632698,互相学习

板凳
atopin 学生认证  发表于 2017-2-18 09:20:42
月亮米拉 发表于 2015-9-27 16:32
你这个是用MCMC算法做的应该,如果你不指定种子,那么每次电脑所用的随机数取得的就不同,所以结果不同,应 ...
请问要怎么指定种子呢

报纸
atopin 学生认证  发表于 2017-2-18 09:20:50
月亮米拉 发表于 2015-9-27 16:32
你这个是用MCMC算法做的应该,如果你不指定种子,那么每次电脑所用的随机数取得的就不同,所以结果不同,应 ...
请问要怎么指定种子呢

地板
月亮米拉 发表于 2017-2-18 22:34:21
atopin 发表于 2017-2-18 09:20
请问要怎么指定种子呢
setvar('ranseed', 1);
这个表示随机设定种子,应该在这里改,你找这个语句是否有对应程序,看看该怎么改。

7
赵安豆 发表于 2024-10-11 15:24:37
在 MATLAB 中,如果希望每次运行相同的代码能够获得可重复的结果(尤其是在涉及到随机过程如MCMC的情况下),设定随机数生成器的种子值是一个常用的方法。在你提供的代码中,已经有一行:

```matlab
setvar('ranseed', 1);
```

这通常应该足以确保结果的可重复性,只要你每次设置相同的种子值。然而,在 MATLAB 中,还有一种更直接的方式来设定随机数生成器的种子(或者称为状态),那就是使用 `rng` 函数。

例如:

```matlab
rng(1); % 设置种子为1
```

这会将MATLAB的默认随机数生成器设置到一个确定的状态。如果你希望结果可重复,可以每次运行代码前都加上这样的设定。

但是,在你的代码中,你使用了 `setvar` 函数来设置一些选项,这个函数看起来是某个特定工具箱(例如可能是TVP-VAR)的一部分,而不仅仅是标准的MATLAB函数。这意味着它可能有自己的方法和参数来控制随机性的种子值。

如果上述做法仍然不能确保结果的一致性,你可能需要检查该工具箱或包的具体文档,了解是否还有其他设定或初始化步骤是必要的。

在你的代码中,`setvar('ranseed', 1);` 已经是在尝试设置一个固定的种子了。如果你发现结果还是不可重复,可能是由于其他的随机化过程没有被控制到(例如某些默认的随机数生成器状态)。为了确保完全可重复的结果,你可能需要:

- 确保所有的相关库或工具箱都已经被正确初始化。
- 检查是否在代码中其他地方无意间调用了未经控制的随机函数。

如果这些步骤都不能解决问题,那可能需要更深入地了解特定TVP-VAR工具的具体实现细节。有时候,软件包会有自己的内部状态管理机制,需要特别注意和处理才能确保结果的可重复性。

此文本由CAIE学术大模型生成,添加下方二维码,优先体验功能试用



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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-30 23:58