全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2012-12-5 19:05:01
shatian 发表于 2012-12-5 18:48
老师,按你说的方法做了,但是我的这个程序winbugs好像运行不成功,我当时是用OPENBUGS产生的,请问R怎么 ...
那你就要安装package "R2OpenBUGS": Running OpenBUGS from R
语法与 R2WinBUGS大同小异.
你可参考Vignettes: R2OpenBUGS.pdf先自行修改,
解决不了再说.
  http://cran.r-project.org/web/packages/R2OpenBUGS/index.html


二维码

扫码加我 拉你入群

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

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

2012-12-5 19:57:24
epoh 发表于 2012-12-5 19:05
那你就要安装package "R2OpenBUGS": Running OpenBUGS from R
语法与 R2WinBUGS大同小异.
你可参考Vign ...
log中显示DIC monitor not set,是不是我openbugs软件有问题?因为我要的就是DIC的值,在直接运用openbugs时,DIC就运行不了
二维码

扫码加我 拉你入群

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

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

2012-12-5 20:14:09
shatian 发表于 2012-12-5 19:57
log中显示DIC monitor not set,是不是我openbugs软件有问题?因为我要的就是DIC的值,在直接运用openbugs ...
R2OpenBUGS不会有问题的,
等你跑完3000就会有数据了
但就是要时间.
二维码

扫码加我 拉你入群

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

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

2012-12-6 08:24:48
epoh 发表于 2012-11-27 09:12
你下载错了,不是16楼的程序,
16楼的程序是楼主依自己模型自己写的
还在修改中
老師您好.我在24樓重新依您的建議修改我的一些BUGS中不足的部分..但仍是無法成功..是否是寫的太亂或是程度不好太淺..但不論如何再請您幫學生指正一番..感謝..
二维码

扫码加我 拉你入群

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

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

2012-12-28 19:47:49
epoh 发表于 2012-11-16 10:42
1.在c碟,新建文件夹"Bugs",
  作为working.directory
  放进两文件 svcjl.bug,(your code)
老师,我参照你的WINBUGS的程序,写OPENBUGS 的R语言程序,但是总是不对,你能把这个程序再帮我改写成OPENBUGS的吗?
二维码

扫码加我 拉你入群

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

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

2012-12-28 20:35:27
shatian 发表于 2012-12-28 19:47
老师,我参照你的WINBUGS的程序,写OPENBUGS 的R语言程序,但是总是不对,你能把这个程序再帮我改写成OPE ...
哪一个程序?
二维码

扫码加我 拉你入群

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

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

2012-12-29 12:57:35
epoh 发表于 2012-12-28 20:35
哪一个程序?
library(R2WinBUGS)
#Data
n=5038
yy=read.table(file="c:/Bugs/shatian.txt")
r=yy[,1]
summary(r)
data=list("n","r")
#initial values 请自行补上,符号应跟你的不同,请自行更正  
inits = function() {list(mu=,k=,kt=,tauv=,rho=,muy=,lambda=,tauy=,rhoj=,muv=)}
  
parameters <- c("mu","theta","k","sigv","muy","rhoj","sigy","muv","rho","lambda")
#小样先看结果
SVCJ.sim <- bugs(data, inits, parameters.to.save=parameters,"svcj.bug",n.chains=1,
               n.thin=1,n.iter=5000,n.burnin=1500,debug=TRUE,DIC=TRUE,
               bugs.directory="D:/WinBUGS14/",working.directory = "c:/Bugs/")
attach.bugs(SVCJ.sim)
print(SVCJ.sim,digits=4)



这个程序,但是我需要用OPENBUGS,能帮我改写成R2OPENBUGS的吗?
二维码

扫码加我 拉你入群

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

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

2012-12-29 13:54:05
shatian 发表于 2012-12-29 12:57
library(R2WinBUGS)
#Data
n=5038
library(R2OpenBUGS)
#Data
n=5038
yy=read.table(file="c:/Bugs/shatian.txt")
r=yy[,1]
summary(r)
data=list("n","r")
#initial values 请自行补上,符号应跟你的不同,请自行更正  
inits = function() {list(mu=,k=,kt=,tauv=,rho=,muy=,lambda=,tauy=,rhoj=,muv=)}
  
parameters <- c("mu","theta","k","sigv","muy","rhoj","sigy","muv","rho","lambda")
#小样先看结果
SVCJ.sim <- bugs(data, inits, parameters.to.save=parameters,"svcj.txt",n.chains=1,
               n.thin=1,n.iter=5000,n.burnin=1500,debug=TRUE,DIC=TRUE,bugs.seed=9,
               working.directory = "c:/Bugs/")
attach.bugs(SVCJ.sim)
print(SVCJ.sim,digits=4)
二维码

扫码加我 拉你入群

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

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

2012-12-29 14:03:12
epoh 发表于 2012-12-29 13:54
library(R2OpenBUGS)
#Data
n=5038
老师,程序显示错误如下: 参数((bugs.directory = "D:/Program Files/OpenBUGS/OpenBUG322")) 没有用
,这是什么原因呢,我之间自己参考着改的时候,也显示这个问题
二维码

扫码加我 拉你入群

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

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

2012-12-29 14:09:53
shatian 发表于 2012-12-29 14:03
老师,程序显示错误如下: 参数((bugs.directory = "D:/Program Files/OpenBUGS/OpenBUG322")) 没有用
, ...
忘了,不需要bugs.directory
我更正删除了
二维码

扫码加我 拉你入群

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

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

2012-12-29 14:17:38
epoh 发表于 2012-12-29 14:09
忘了,不需要bugs.directory
我更正删除了
初值能让OPENBUGS自动生成吗?
二维码

扫码加我 拉你入群

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

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

2012-12-29 14:42:59
shatian 发表于 2012-12-29 14:17
初值能让OPENBUGS自动生成吗?
可以,不过应该跑不了.

inits=NULL, initial values are generated by OpenBUGS.

SVCJ.sim <- bugs(data, inits=NULL, parameters.to.save=parameters,"svcj.txt",n.chains=1,
               n.thin=1,n.iter=5000,n.burnin=1500,debug=TRUE,DIC=TRUE,bugs.seed=9,
               working.directory = "c:/Bugs/")
二维码

扫码加我 拉你入群

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

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

2012-12-29 14:50:51
epoh 发表于 2012-12-29 14:42
可以,不过应该跑不了.

inits=NULL, initial values are generated by OpenBUGS.
好的,我先试试
二维码

扫码加我 拉你入群

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

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

2012-12-29 18:49:08
epoh 发表于 2012-12-29 14:42
可以,不过应该跑不了.

inits=NULL, initial values are generated by OpenBUGS.
老师,我这个模型没有运行多少次,就遇到这个问题:something went wrong in procedure Sqrt in module Math,原来在单独运行OPENBUGS程序的时候也会遇到,但那个是在程序运行了四五万次之后,而现在设定的只是几千次,对于这个问题,我应该怎么处理啊?
二维码

扫码加我 拉你入群

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

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

2012-12-29 19:06:20
shatian 发表于 2012-12-29 18:49
老师,我这个模型没有运行多少次,就遇到这个问题:something went wrong in procedure Sqrt in module M ...
SVCJ MODEL 数据大于5000 obs,
所冒出的问题都不易处理,类似something went wrong in procedure Sqrt in module Math,
这必须要看你的程序来判断.
还有数据能否在4000 obs 左右
二维码

扫码加我 拉你入群

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

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

2012-12-29 19:15:25
epoh 发表于 2012-12-29 19:06
SVCJ MODEL 数据大于5000 obs,
所冒出的问题都不易处理,类似something went wrong in procedure Sqrt in ...
嗯,好的,那我把数据减少试试,还有,就是我原来在直接用OPENBUGS的时候,出现这个问题,通常是在自动生成初值的时候,当时只要再随机产生多试几次就可以,在R中有没有类似的语句,当出现这个问题了,用一个语句让程序再多试几次,然后成功?
二维码

扫码加我 拉你入群

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

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

2012-12-29 22:37:41
shatian 发表于 2012-12-29 19:15
嗯,好的,那我把数据减少试试,还有,就是我原来在直接用OPENBUGS的时候,出现这个问题,通常是在自动生 ...
初步跑了一下你的数据
结果先供你参考:
library(R2OpenBUGS)
#Data
n=4000
yy=read.table(file="c:/OpenBUGS/shatian/shatian.txt")
r=yy[1:4000,1]
summary(r)
data=list("n","r")
#init
inits = function() {list(mu=0.01,k=0.1,kt=0.01,tauv=0.2,rho=0.1,muy=0.1,lambda=0.1,tauy=0.2,rhoj=0.1,muv=1.5)}  
parameters <- c("mu","theta","k","sigv","muy","rhoj","sigy","muv","rho","lambda")
SVCJ.sim <- bugs(data, inits, parameters.to.save=parameters,"svcj.txt",n.chains=1,
               n.thin=1,n.iter=15000,n.burnin=10000,debug=TRUE,DIC=TRUE,bugs.seed=9,
               working.directory = "c:/OpenBUGS/shatian/")
attach.bugs(SVCJ.sim)
print(SVCJ.sim,digits=4)

Inference for Bugs model at "svcj.txt",
Current: 1 chains, each with 15000 iterations (first 10000 discarded)
Cumulative: n.sims = 5000 iterations saved
              mean      sd      2.5%       25%       50%       75%     97.5%
mu          0.0280  0.0135    0.0011    0.0188    0.0282    0.0374    0.0540
theta       0.5059  0.0521    0.4091    0.4701    0.5039    0.5392    0.6182
k            0.0333  0.0049    0.0244    0.0302    0.0330    0.0362    0.0435
sigv        0.1068  0.0063    0.1002    0.1021    0.1048    0.1096    0.1235
muy        0.6376  0.4365   -0.1371    0.3213    0.6068    0.9380    1.5300
rhoj       -3.1360  0.7464   -4.9910   -3.5590   -2.9755   -2.5710   -2.0700
sigy        2.4183  0.2652    1.8850    2.2310    2.4200    2.6020    2.9420
muv        1.9954  0.2952    1.5510    1.7930    1.9555    2.1240    2.7344
rho        -0.0169  0.1238   -0.2511   -0.1011   -0.0245    0.0599    0.2483
lambda      0.0264  0.0046    0.0180    0.0232    0.0262    0.0293    0.0362
deviance 9871.1906 65.5752 9742.0000 9825.0000 9874.0000 9917.0000 9994.0000
DIC info (using the rule, pD = var(deviance)/2)
pD = 2150.1 and DIC = 12021.2
DIC is an estimate of expected predictive error (lower deviance is better).


二维码

扫码加我 拉你入群

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

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

2013-3-27 12:34:15
epoh 发表于 2012-12-29 22:37
初步跑了一下你的数据
结果先供你参考:
library(R2OpenBUGS)
R程序
附件列表

程序代码.doc

大小:67 KB

 马上下载

R程序

二维码

扫码加我 拉你入群

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

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

2013-3-27 19:05:37
shatian 发表于 2013-3-27 12:34
R程序
这个程序我看了,问题还很多
除了 function mhsampler() 的 arguments需要修改外
光是要提供5 state variables:V,J_y,J_v,xi_y,xi_v就有难度

FTSE=read.table(file="c:/OpenBUGS/shatian_svcj/shatian.txt")
Y=FTSE[,1]
summary(Y)
#     Min.   1st Qu.    Median      Mean   3rd Qu.      Max.
#-17.65000  -0.53660   0.02311   0.00987   0.59590   8.19400

m=length(Y)  #5038
#5 state variables:
#V:volatility of returns
#J_y: return jump time(=1 if jump and 0 if no jump)
#J_v: volatility jump time(=1 if jump and 0 if nojump)
#xi_y: return jump size
#xi_v:volatility jump size

mchain_V = matrix(V, byrow=T, nrow=m)
mchain_J_y=matrix(J_y, byrow=T, nrow=m)
mchain_J_v=matrix(J_v,byrow=T,nrow=m)
mchain_xi_y=matrix(xi_y, byrow=T, nrow=m)
mchain_xi_v=matrix(xi_v,byrow=T, nrow=m)

用OpenBUGS,代入你的数据(n=5038) 的结果的图形先供你参考.
svcj_J_Xiy.jpeg
svcj_qqplot.jpeg
二维码

扫码加我 拉你入群

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

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

2013-3-27 20:50:21
epoh 发表于 2013-3-27 19:05
这个程序我看了,问题还很多
除了 function mhsampler() 的 arguments需要修改外
光是要提供5 state v ...
老师,我不太懂你贴的这部分,5 state variables 你全部是以#号开始的,,,这中间该怎么做啊?
二维码

扫码加我 拉你入群

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

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

2013-3-27 20:59:32
shatian 发表于 2013-3-27 20:50
老师,我不太懂你贴的这部分,5 state variables 你全部是以#号开始的,,,这中间该怎么做啊?
#这是批注,告诉你数据的型态
譬如J_y : 是个vector,长度5038,
J_y=[0,0,1,0,......0,1] (=1 if jump and 0 if no jump)
要你提供J_y,应该是有难度.
二维码

扫码加我 拉你入群

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

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

2013-3-27 21:17:03
epoh 发表于 2013-3-27 20:59
#这是批注,告诉你数据的型态
譬如J_y : 是个vector,长度5038,
J_y=[0,0,1,0,......0,1] (=1 if jump an ...
对呀,,,唉,我在尽量调程序,可是真的是不太懂啊。。。。[cry][cry][cry]
二维码

扫码加我 拉你入群

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

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

2013-3-27 21:56:45
shatian 发表于 2013-3-27 21:17
对呀,,,唉,我在尽量调程序,可是真的是不太懂啊。。。。
这个程序有点类似是
Openbugs的反求证
因为Openbugs可以求出
这5个 state variables

原以为你已经不做这个project ,
如果继续的话还是要先孰练Openbugs
Openbugs code & R script 或许还帮的上忙
二维码

扫码加我 拉你入群

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

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

2013-3-27 22:38:39
epoh 发表于 2013-3-27 21:56
这个程序有点类似是
Openbugs的反求证
因为Openbugs可以求出
老师你上面说的提供J_y等状态变量,我可以用去年OPENBUGS产生的数据代入的,对吧?不过这样子我感觉有点奇怪。。。MCMC方法不是产生随机样本点,然后再统计分析的么?这样给出状态变量感觉有点奇怪。好像确实是和OPENBUGS不一样的
二维码

扫码加我 拉你入群

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

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

2013-3-28 10:28:41
shatian 发表于 2013-3-27 22:38
老师你上面说的提供J_y等状态变量,我可以用去年OPENBUGS产生的数据代入的,对吧?不过这样子我感觉有点奇 ...
嗯,你说对了.
请注意短信息.
二维码

扫码加我 拉你入群

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

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

2013-3-28 10:29:13
epoh 发表于 2013-3-28 10:28
嗯,你说对了.
请注意短信息.
恩,看到了~
二维码

扫码加我 拉你入群

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

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

2013-4-2 11:40:21
epoh 发表于 2013-3-28 10:28
嗯,你说对了.
请注意短信息.
老师,我的程序运行了一天多,,,一直是这样的状态,,,这样下去会不会有结果啊,,,R程序,鼠标点上去,感觉它是还在运行的,但是OPENBUGS程序感觉是没有动的。
附件列表
2.jpg

原图尺寸 108.51 KB

2.jpg

1.jpg

原图尺寸 90.97 KB

1.jpg

二维码

扫码加我 拉你入群

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

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

2013-4-2 15:11:19
shatian 发表于 2013-4-2 11:40
老师,我的程序运行了一天多,,,一直是这样的状态,,,这样下去会不会有结果啊,,,R程序,鼠标点上去 ...
在还没熟练以前,
最好不要修改我给你程序的任何一个字.
你的问题是没有compile
数据你命名为svcj.txt
Model也修改为svcj.txt,当然出错

一开始可以n.iter=100,n.burnin=20试试
二维码

扫码加我 拉你入群

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

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

2013-4-2 20:28:36
epoh 发表于 2013-4-2 15:11
在还没熟练以前,
最好不要修改我给你程序的任何一个字.
你的问题是没有compile
哦,好的,那我回去严格按照你的程序运行,,,刚好电脑也要重新装过,,,都装在C盘下好了。。。
二维码

扫码加我 拉你入群

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

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

2013-4-4 11:55:07
epoh 发表于 2013-3-27 19:05
这个程序我看了,问题还很多
除了 function mhsampler() 的 arguments需要修改外
光是要提供5 state v ...
老师,如果想产生你在49楼给出的图,,,应该怎么做啊?按照你的程序已经运行出来,有迭代图,但是DIC还不能产生
二维码

扫码加我 拉你入群

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

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

栏目导航
热门文章
推荐文章

说点什么

分享

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