全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
5588 15
2011-10-10
首先在此感谢epoh的热心帮助。我想使用全局变量,是因为把函数结构传递到这个变量上,以后不需要每次都进行选择判断。代码1和代码2唯一的区别是:代码1,我每个子函数都定义了TR,代码2,我只在主函数定义全局变量TR,子函数申明全局变量TR。我检查了子函数TR的传递情况,确实是能够传递过去,但不知道为什么结果相差那么大?代码1结果比较接近真实值。另外一个问题是,初始值的选择问题,我用的ols回归和格点搜索进行选择,但monte caro模拟发现这个方法很失败?不知道大家是怎么选择初始值的
我把代码和测试都传上来,希望大家多给予指导指导!

附件列表

code.txt

大小:7.88 KB

 马上下载

二维码

扫码加我 拉你入群

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

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

全部回复
2011-10-10 20:22:33
怎么到经济论坛上问计算机啊……
二维码

扫码加我 拉你入群

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

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

2011-10-10 21:38:14

老兄

1.这个程序,有些乱吧

  乱到不知从何改起

  TR是一个  Inline function

  你为甚么不分别定义

  LSTAR & ESTAR的 Transition function

  要用时,带入参数呼叫即可

  就如R底下的定义

  #Transition function

  #y: variable

  #g: smoothing parameter

  #c: threshold value

  G <- function(y, g, th)

  plogis(y, th, 1/g)

  

  你先自行修改应能解决

  你所谓全局的问题

2.c: threshold value要定范围

  否则会产生NA,就如R底下

    # Maximum and minimum values for c

    minTh <- quantile(as.ts(z), .1) # percentil 10 de z

    maxTh <- quantile(as.ts(z), .9) # percentil 90 de z

    rateTh <- (maxTh - minTh) / 200;

3.如果你是做这个专题

  请考虑用R package "tsDyn"

  虽然目前只有lstar

  但他采grid search for starting values

  精准许多

  

二维码

扫码加我 拉你入群

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

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

2011-10-10 21:57:46
非常感谢epoh兄,为了管理方便我把很多子程序都写到一起,看起来确实比较乱。没有分别定义ESTAR&LSTAR是因为后面每次碰到都得用if进行判断,我想一开始就判断,然后把状态转移函数传递到一个TR,以后就不要再做选择判断,这样效率会高很多,特别是优化的迭代的时候。我想不明白的是这两个代码几乎一样,结果相差那么大?唯一可能出现问题的是全局变量的传导,可我检查了子函数里TR的传递确实是成功的。
epoh兄是R高手呢,可惜我对R不太熟悉,以后还要向epoh多加请教呢
二维码

扫码加我 拉你入群

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

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

2011-10-10 22:00:59
hongri200890 发表于 2011-10-10 20:22
怎么到经济论坛上问计算机啊……
呵呵,论坛上计算高手也很多哦
二维码

扫码加我 拉你入群

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

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

2011-10-10 22:03:48
哦好吧……
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群