我正在使用rjagsR库.该函数coda.samples产生一个mcmc.list,例如(from example(coda.samples)):
library(rjags)
data(LINE)
LINE$recompile()
LINE.out <- coda.samples(LINE, c("alpha","beta","sigma"), n.iter=1000)
class(LINE.out)
[1] "mcmc.list"
Run Code Online (Sandbox Code Playgroud)
但是,我想使用该plot.bugs函数,它需要一个bugs对象作为输入.
是否可以将对象从对象转换mcmc.list为bugs对象,以便plot.bugs(LINE.out)?
请注意,stats.SE上有一个类似的问题,一个多月没有得到答复.这个问题的结果是在2012年8月29日结束.
我发现R2WinBUGS包有一个函数"as.bugs.array"函数 - 但是不清楚该函数如何应用于mcmc.list.
我是WinBUGS/OpenBUGS的新手,并且无法调试我的代码.
有没有人知道BUGS模型的潜在错误消息列表及其用普通英语的含义?
我目前正在对几项临床试验中的生存数据进行荟萃分析.
为此,我使用相同的方法从已发布的分析中获取代码.但是,使用已发布分析中的数据运行此代码时,我无法复制其结果.事实上,结果未能收敛到任何合理的估计.
代码本身(不包括数据)应该是正确的,因为它直接来自作者.我假设问题必须是w /初始值或如何运行采样的参数,但是在玩了很多初始值之后,燃烧,稀释等的长度......我没有得到有意义的结果.
我将不胜感激任何关于如何运行它(初始值等等)的建议,以使其正常运行.或者,如果代码中存在问题或者数据的设置方式与代码不匹配,那么知道这将是有用的.
作为旁注,我正在使用R2WinBUG进行分析,尽管我单独使用WinBUG遇到了同样的问题.
关于该方法的一些额外背景:
这种方法的工作方式是通过使用随机效应估计多个研究中处理之间重新参数化的Weibull分布的形状和尺度参数的差异.
威布尔分布被重新参数化,使得危险率的对数是a + b*log(t),其中a是比例参数,b是形状参数.由此,您可以计算一定间隔内给定数量的患者中给定数量的失败的似然函数.
不幸的是,这篇文章是公开的,但如果你可以访问这里是链接:http: //onlinelibrary.wiley.com/doi/10.1002/jrsm.25/abstract;jsessionid=2BA8F0D9BEF9A33F84975618D33F8DD9.f03t03?userIsAuthenticated=false&deniedAccessCustomisedMessage=
输入模型的变量的快速摘要:
NT:包括的单独治疗数量.
N:主数据集中的行数.NS:研究数量
s:研究数据线对应(编号为1:6)
r:该治疗/研究的间隔失败的患者数量
n:该治疗/研究的间隔开始时有风险的患者数
t:此数据对应的处理(编号1:3)
b:指示哪个治疗是与其他治疗比较的基线治疗(每条线设置为1).
bs:治疗是本研究的对照组
bt:治疗是本研究的研究部门
WinBUGS代码(包括数据):
#Winbugs code for random effects networks meta-analysis model
Model
{
for (i in 1:N)
{ # N=number of data points in dataset
#likelihood
r[i]~ dbin(p[i],n[i])
p[i]<-1-exp(-h[i]*dt[i]) # hazard h over interval [t,t+dt] # expressed as deaths per unit person-time (e.g. months)
#random effects model
log(h[i])<-nu[i]+log(time[i])*theta[i]
nu[i]<-mu[s[i],1]+delta[s[i],1]*(1-equals(t[i],b[i]))
theta[i]<-mu[s[i],2]+ delta[s[i],2]*(1-equals(t[i],b[i]))
}
for(k in 1 :NS)
{ …Run Code Online (Sandbox Code Playgroud) 我只是想知道是否有人使用包R2WinBUGS进行逻辑回归的一些R代码 - 理想情况下使用模拟数据来生成'真值'和两个连续的协变量.
谢谢.
基督教
PS:
生成人工数据(一维案例)和通过r2winbugs运行winbugs的潜在代码(它还没有工作).
library(MASS)
library(R2WinBUGS)
setwd("d:/BayesianLogisticRegression")
n.site <- 150
X1<- sort(runif(n = n.site, min = -1, max =1))
xb <- 0.0 + 3.0*X1
occ.prob <- 1/(1+exp(-xb))
plot(X1, occ.prob,xlab="X1",ylab="occ.prob")
true.presence <- rbinom(n = n.site, size = 1, prob = occ.prob)
plot(X1, true.presence,xlab="X1",ylab="true.presence")
# combine data as data frame and save
data <- data.frame(X1, true.presence)
write.matrix(data, file = "data.txt", sep = "\t")
sink("model.txt")
cat("
model {
# Priors
alpha ~ dnorm(0,0.01)
beta ~ dnorm(0,0.01)
# Likelihood
for (i …Run Code Online (Sandbox Code Playgroud) 我正在使用 OpenBUGS 和 R 包研究二项式混合模型R2OpenBUGS。我已经成功构建了更简单的模型,但是一旦我添加另一个级别来进行不完善的检测,我就会不断收到错误variable X is not defined in model or in data set。我尝试了许多不同的方法,包括更改数据结构以及将数据直接输入 OpenBUGS。我发布此内容是希望其他人有此错误的经验,并且也许知道为什么 OpenBUGS 无法识别变量 X,尽管据我所知它已明确定义。
我也收到了错误expected the collection operator c error pos 8- 这不是我以前收到的错误,但我也同样感到困惑。
模型和数据模拟函数均来自 Kery 的《生态学家 WinBUGS 简介》(2010)。我要注意的是,这里的数据集是代替我自己的数据的,这是相似的。
我包括构建数据集和模型的函数。抱歉长度。
# Simulate data: 200 sites, 3 sampling rounds, 3 factors of the level 'trt',
# and continuous covariate 'X'
data.fn <- function(nsite = 180, nrep = 3, xmin = -1, xmax = 1, alpha.vec = c(0.01,0.2,0.4,1.1,0.01,0.2), beta0 = 1, beta1 …Run Code Online (Sandbox Code Playgroud) 我是一个非常新的统计分析世界,并且最近对BUGS/JAGS/STAN建模语言感兴趣.令我感到惊讶的是,我没有看到任何新函数或发行版的示例被定义以避免代码重复.例如,假设我经常使用泊松分布的平方,无论如何都要做以下事情?
dsqpo <- function(lambda) {
tmp ~ dpois(lambda)
tmp2 <- tmp * tmp
return(tmp2)
}
Run Code Online (Sandbox Code Playgroud)
然后是
model{
...
x ~ dsqpo(alpha)
y ~ dsqpo(beta)
}
Run Code Online (Sandbox Code Playgroud)
无需每次都定义新的临时变量.
我的任务是使用更新的数据重新运行其他人的模型(我进行了数据更新和格式化).我理解该模型是如何工作的,但没有写出来,而且它很长很详细.最重要的是,我专门使用JAGS,这是我第一次涉足WinBUGS,所以接口和错误消息对我来说是新的.该模型需要两天的时间来编译(并且它确实可以编译),但是后来我得到一个Trap错误,指出Index of Range,然后是几十行我无法理解的行.我已经浏览了整个模型,for循环和数据结构,我无法看到哪里有任何索引问题.令人沮丧的是,与JAGS不同,WinBUGS似乎没有告诉您哪个索引超出范围.
我非常感谢解码陷阱错误消息的任何帮助,以防有更多信息,而不是我意识到指定索引不匹配的位置.我将发布下面的模型以及陷阱消息,但我没有看到发布实际数据的重点,因为没有人会花2天等待模型编译以重现错误.相反,我只会发布数据结构,以便每个数据对象的维度都很明显.
一些注意事项:我使用的是先前使用的确切模型(字面上复制和粘贴),所以我知道它应该可以工作.以前的数据文件是矩形格式,而我创建和导出的数据文件是S格式.我的理解是WinBUGS应该能够处理两者,但我想知道这是否可能是问题的一部分.我直接从WinBUGS运行模型,手动加载模型和数据文件.我之前尝试使用r2winbugs从R中做到这一点,但是出现了内存错误和崩溃.
模型:
model{
for(i in 1:n+nzeros){ # loop through the observed and unobserved areas
for(j in 1:J){ #loop through the J fisheries areas
for(t in 1:T){ # loop through the years
y[i,j,t] ~ dpois(mu.y[i,j,t])
mu.y[i,j,t] <- lambda[i,j,t]*x[i,t]
log(lambda[i,j,t]) <- mu.lambda[j]+ theta[z[i],j] + e.lambda[j,t]
}}}
for(i in 1:n+nzeros){
x[i,1] ~ dbern(gamma[i,1])
recruitable[i,1]<-1
for(t in 2:T){
x[i,t] ~ dbern(mu.x[i,t])
mu.x[i,t] <- survived[i,t] + gamma[i,t]*recruitable[i,t]
recruitable[i,t] <- recruitable[i,t-1]*(1-x[i,t-1])
survived[i,t] <- x[i,t-1]*phi[i,t-1]
}}
#priors
for(c in 1:C){
theta[c,1:J] ~ dmnorm(mu.th[], …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用此示例使用R2WinBUGS:
(请仅考虑部分:### 5.4.使用WinBUGS进行分析)
我收到此错误消息:
Error in file(con, "wb") : cannot open the connection
In addition: Warning messages:
1: In file.create(to[okay]) :
cannot create file 'c:/Program Files/WinBUGS14//System/Rsrc/Registry_Rsave.odc', reason 'Permission denied'
2: In file(con, "wb") :
cannot open file 'c:/Program Files/WinBUGS14//System/Rsrc/Registry.odc': Permission denied
Warning message:
running command '"c:/Program Files/WinBUGS14//WinBUGS14.exe" /par "D:/R2WinBUGS/normal/script.txt"' had status 1
>
Run Code Online (Sandbox Code Playgroud)
我不确定这对于正确的功能是否至关重要(其他一切看起来都不错).有没有办法摆脱这个?
谢谢.
基督教
PS:
这是R代码:
library(R2WinBUGS)
setwd("D:/R2WinBUGS/normal")
y10 <- rnorm(n = 10, mean = 600, sd = 30) # Sample of 10 birds
y1000 <- rnorm(n …Run Code Online (Sandbox Code Playgroud) 我试图从R调用winBUGS来估计逻辑回归.我正在使用以下代码:
# Directorio de trabajo
setwd("~/3 Diplomado/7 Bayesiana/8t1")
# paquete para hablarse con WinBUGS desde R
library(R2WinBUGS)
# cargamos datos
reg <- read.table("enf.csv", header = TRUE, sep = ",")
edad <- reg$edad
enfer <- reg$efer
n <- length(reg$edad)
# Primeras filas de los datos
head(reg)
# Nombres de los datos para alimentar al modelo en WinBUGS
datos <- list("edad","enfer", "n")
# Construimos el modelo
modelo <- function(){
for (i in 1:n) {
enfer[i] ~ dbin(theta[i], 1)
logit(theta[i]) < - beta0 …Run Code Online (Sandbox Code Playgroud) 我是R 2.15.2的Win-7用户
有人可以帮助我为什么以下模型不能很好地接近简单的logit模型估计?
编辑
Mydata <- structure(list(gg = c(13.659955, 6.621436486, 3.017166776, 2.516795069,
3.928538296, 4.211960532, 3.235445955, 5.152860411, 18.96466673,
5.904678823, 4.987622293, 1.170687541, 3.088224149, 4.738065529,
3.263022593, 6.050017999, 5.650762257, 2.058924721, 3.138591919,
7.169083435, 11.30381738, 3.036991188, 4.559013218, 3.978760664,
3.617455798, 2.430111184, 4.440319959, 2.200267742, 6.003166495,
3.114161526, 3.812363457, 11.12816724, 15.6564348, 13.50562576,
5.154056904, 6.26451889, 1.849669635, 1.816757851, 3.861868285,
2.884542233, 2.993444924, 2.724235493, 2.694159089, 1.973597356,
4.371300647, 3.559035718, 3.59124243, 6.587196681, 10.03402072,
4.805158339, 4.491460392, 1.627936721, 1.278291553, 0.978710462,
3.08635052, 2.58594947, 2.354973563, 1.657519171, 2.946994656,
2.110549733, 6.095182338, 6.000660354, 6.691960157, 1.796172588,
2.531234555, 2.992017156, 2.882403206, 6.066420081, 5.930524609,
5.972280022, 0.915755208, 2.398369176, …Run Code Online (Sandbox Code Playgroud)