首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的R2WinBUGS错误

R中的R2WinBUGS错误
EN

Stack Overflow用户
提问于 2015-08-12 18:01:00
回答 1查看 2.4K关注 0票数 3

我正在尝试复制一些代码,但在使用WinBUGS时遇到了麻烦。代码是在2010年编写的,我想当时安装的包包含了R现在正在查找但找不到的附加文件(因此出现了错误),但我不确定。

R停止尝试运行#bugs.directory (参见代码),错误为:

代码语言:javascript
复制
Error in file(con, "rb") : cannot open the connection
In addition: Warning message:
In file(con, "rb") :
  cannot open file 'C:/Users/Hiwi/Documents/R/Win-library/3.0/R2winBUGS/System/Rsrc/Registry.odc': No such file or directory
Error in bugs.run(n.burnin, bugs.directory, WINE = WINE, useWINE = useWINE,  : 
  WinBUGS executable does not exist in C:/Users/Hiwi/Documents/R/Win-library/3.0/R2winBUGS

我有分析的结果,所以如果有另一种方法对"rawdata“文件(在-3,0事件窗口的14天模型中)进行贝叶斯分析,或者如果有人能说明代码的问题,我将永远感激。

代码是:

代码语言:javascript
复制
rm(list=ls(all=TRUE))   

setwd("C:/Users/Hiwi/Dropbox/Oracle/Oracle CD files/analysis/chapter6_a")

library(foreign)

rawdata <- read.dta("nyt.dta",convert.factors = F)

library(MASS)
summary(glm.nb(rawdata$num_events_14 ~ rawdata$nyt_num))


# WinBUGS code

library("R2WinBUGS")
nb.model <- function(){
        for (i in 1:n){ # loop for all observations 
               # stochastic component
               dv[i]~dnegbin( p[i], r)
               # link and linear predictor
               p[i] <- r/(r+lambda[i])
               log(lambda[i] ) <- b[1] + b[2] * iv[i]
        }
        #
        # prior distributions
        r <- exp(logr)
    logr ~ dnorm(0.0, 0.01)

    b[1]~dnorm(0,0.001)  # prior  (please note: second element is 1/variance)
    b[2]~dnorm(0,0.001)  # prior
}


write.model(nb.model, "negativebinomial.bug")


n <- dim(rawdata)[1] # number of observations


winbug.data <- list(dv = rawdata$num_events_14, 
                    iv = rawdata$nyt_num,
                    n=n)

winbug.inits <- function(){list(logr = 0 ,b=c(2.46,-.37)
                                )} # Ausgangswerte aus der Uniformverteilung zwischen -1 und 1

bug.erg <- bugs(data=winbug.data,
    inits=winbug.inits, 
    #inits=NULL,
    parameters.to.save = c("b","r"),
    model.file="negativebinomial.bug",
    n.chains=3, n.iter=10000, n.burnin=5000,
    n.thin=1,
    codaPkg=T,
    debug=F,
    #bugs.directory="C:/Users/Hiwi/Documents/R/Win-library/3.0/R2winBUGS/"
    bugs.directory="C:/Users/Hiwi/Documents/R/Win-library/3.0/R2winBUGS"
    )


tempdir()
setwd(tempdir())
file.rename("codaIndex.txt","simIndex.txt")
file.rename("coda1.txt","sim1.txt")
file.rename("coda2.txt","sim2.txt")
file.rename("coda3.txt","sim3.txt")

posterior <- rbind(read.coda("sim1.txt","simIndex.txt"),read.coda("sim2.txt","simIndex.txt"),read.coda("sim3.txt","simIndex.txt"))
post.df <- as.data.frame(posterior)
summary(post.df)
quantile(post.df[,2],probs=c(.025,.975))
quantile(post.df[,2],probs=c(.05,.95))
quantile(post.df[,2],probs=c(.10,.90))
tempdir()
EN

回答 1

Stack Overflow用户

发布于 2015-08-12 18:31:44

如果不坐在你的电脑前很难确定...也许这与WinBUGS.exe的R2WinBUGS在错误的目录中查找有关?您可以使用bugs函数中的bugs.directory参数将R2WinBUGS指向正确的位置。

如果没有,请尝试安装OpenBUGS并尝试R2OpenBUGS

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31961965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档