楼主: xingzhaoh
6346 30

[问答] 关于R2WinBUGS数据的读入问题 [推广有奖]

副教授

20%

还不是VIP/贵宾

-

威望
0
论坛币
3407 个
通用积分
13.9638
学术水平
5 点
热心指数
6 点
信用等级
3 点
经验
583 点
帖子
421
精华
0
在线时间
703 小时
注册时间
2011-9-14
最后登录
2023-11-17

楼主
xingzhaoh 发表于 2013-10-24 10:11:16 |AI写论文
20论坛币
小弟初学R2WinBUGS
按照课本的指点,依葫芦画瓢做的一下程序

library(R2WinBUGS)
library(lattice)
library(coda)
sink("lme.model1.txt")
cat("
model {
# Priors
for (i in 1:ngroups){  
    alpha ~ dnorm(mu.int, tau.int) # Random intercepts
}
mu.int ~ dnorm(0, 0.001)  # Mean hyperparameter for random intercepts
tau.int <- 1 / (sigma.int * sigma.int)
sigma.int ~ dunif(0, 100)  # SD hyperparameter for random intercepts
beta ~ dnorm(0, 0.001)   # Common slope
tau <- 1 / ( sigma * sigma) # Residual precision
sigma ~ dunif(0, 100)   # Residual standard deviation
# Likelihood
for (i in 1:n) {
    mass ~ dnorm(mu, tau)  # The random variable
    mu <- alpha[pop] + beta* length # Expectation
}
}
",fill=TRUE)
sink()

# Bundle data
win.data <- list(mass = as.numeric(mass), pop = as.numeric(pop),
length = length, ngroups = max(as.numeric(pop)), n = n)

到了这里时怎么把自己的数据读成win.data,请大侠指点
自己的数据data在附件中
data.xls (34 KB)
data1.xls (36 KB)

最佳答案

dongshengjay 查看完整内容

没有问题的,你在仔细核查下吧
关键词:R2WinBUGS winbugs WINBUG BUGS bug

回帖推荐

dongshengjay 发表于20楼  查看完整内容

这是结果

dongshengjay 发表于19楼  查看完整内容

library(R2WinBUGS) library(lattice) library(coda) dat=read.csv("c:/data.csv") attach(dat) setwd("c:/") sink("lme.model2.txt") cat(" model { # Priors for (i in 1:6){ alpha ~ dnorm(mu.int, tau.int) # Random intercepts beta ~ dnorm(mu.slope, tau.slope)# Random slopes } mu.int ~ dnorm(0, 0.001) # Mean hyperparameter for random intercepts tau.int

dongshengjay 发表于17楼  查看完整内容

截距及系数的随机效应模型,与单个截距效应模型相似,在指定先验后,将pop的脚标加上即可mu

dongshengjay 发表于13楼  查看完整内容

楼主应该搞清楚多水平模型的概念,pop再次应该是水平1的变量

dongshengjay 发表于12楼  查看完整内容

忘记告诉你了,winbugs很快就计算结束了,结束后需要关掉winbugs,r软件才能进行后续的运算

dongshengjay 发表于8楼  查看完整内容

library(R2WinBUGS) library(lattice) library(coda) dat=read.csv("c:/data.csv") attach(dat) setwd("c:/") sink("c:/lme.model1.txt") cat(" model { # Priors for (i in 1:ngroups){ alpha ~ dnorm(mu.int, tau.int) # Random intercepts } mu.int ~ dnorm(0, 0.001) # Mean hyperparameter for random intercepts tau.int

dongshengjay 发表于6楼  查看完整内容

你的数据里哪里有pop这个变量啊

jmpamao 发表于3楼  查看完整内容

出现了 斜体了 html中【i】 和for(i in..)中a【i】冲突,会默认为 a后面的元素变为斜体,【i】消失 代码最好用这个插入

dongshengjay 发表于2楼  查看完整内容

把data.xls保存为csv文件 dat=read.csv("data.csv") win.data=list(mass=dat$mass,pop=dat$pop,length=dat$length,ngroup=??,n=?) 在是你的代码似乎有问题

沙发
dongshengjay 发表于 2013-10-24 10:11:17
没有问题的,你在仔细核查下吧

ed.png (137.81 KB)

ed.png

藤椅
dongshengjay 发表于 2013-10-24 19:18:30
把data.xls保存为csv文件
dat=read.csv("data.csv")
win.data=list(mass=dat$mass,pop=dat$pop,length=dat$length,ngroup=??,n=?)
在是你的代码似乎有问题

板凳
jmpamao 发表于 2013-10-24 21:01:14
出现了 斜体了
html中【i】    和for(i in..)中a【i】冲突,会默认为 a后面的元素变为斜体,【i】消失
代码最好用<>这个插入

报纸
xingzhaoh 发表于 2013-10-25 08:16:53
dongshengjay 发表于 2013-10-24 19:18
把data.xls保存为csv文件
dat=read.csv("data.csv")
win.data=list(mass=dat$mass,pop=dat$pop,length=da ...
我是按照书上给的例子,
code如下:
  1. library(R2WinBUGS)
  2. library(lattice)
  3. library(coda)
  4. dat=read.csv("data.csv")
  5. attach(dat)


  6. sink("lme.model1.txt")
  7. cat("
  8. model {

  9. # Priors
  10. for (i in 1:ngroups){
  11. alpha[i] ~ dnorm(mu.int, tau.int) # Random intercepts
  12. }

  13. mu.int ~ dnorm(0, 0.001) # Mean hyperparameter for random intercepts
  14. tau.int <- 1 / (sigma.int * sigma.int)
  15. sigma.int ~ dunif(0, 100) # SD hyperparameter for random intercepts

  16. beta ~ dnorm(0, 0.001) # Common slope
  17. tau <- 1 / ( sigma * sigma) # Residual precision
  18. sigma ~ dunif(0, 100) # Residual standard deviation

  19. # Likelihood
  20. for (i in 1:n) {
  21. mass[i] ~ dnorm(mu[i], tau) # The random variable
  22. mu[i] <- alpha[pop[i]] + beta* length[i] # Expectation
  23. }
  24. }
  25. ",fill=TRUE)
  26. sink()


  27. # Bundle data
  28. win.data <- list(mass = as.numeric(mass), pop = as.numeric(pop),
  29. length = length, ngroups = max(as.numeric(pop)), n = n)

  30. # Inits function
  31. inits <- function(){list(alpha = rnorm(n.groups, 0, 2), beta = rnorm(1, 1, 1),
  32. mu.int = rnorm(1, 0, 1), sigma.int = rlnorm(1), sigma = rlnorm(1))}

  33. # Parameters to estimate
  34. parameters <- c("alpha", "beta", "mu.int", "sigma.int", "sigma")

  35. # MCMC settings
  36. ni <- 2000
  37. nb <- 500
  38. nt <- 2
  39. nc <- 3

  40. # Start Gibbs sampling
  41. out <- bugs(win.data, inits, parameters, "lme.model1.txt", n.thin=nt,
  42. n.chains=nc, n.burnin=nb, n.iter=ni, debug = TRUE)

  43. # Inspect results
  44. print(out, dig = 3)
复制代码

请您指点一下,怎么用我附件中的data数据,把它做出来,请您花费点时间,帮帮我,谢谢

地板
xingzhaoh 发表于 2013-10-25 08:38:05
jmpamao 发表于 2013-10-24 21:01
出现了 斜体了
html中【i】    和for(i in..)中a【i】冲突,会默认为 a后面的元素变为斜体,【i】消失
代 ...
谢谢,你能帮我看看上面这个问题吗?着急呀

7
dongshengjay 发表于 2013-10-25 11:20:59
你的数据里哪里有pop这个变量啊

8
xingzhaoh 发表于 2013-10-25 16:11:37
dongshengjay 发表于 2013-10-25 11:20
你的数据里哪里有pop这个变量啊
实在不好意思,现在把数据上传了data1。
请您帮助一下

我是按照给的例子,但是不知道怎么样把自己的数据运用上去,是求mass~length的线性回归,用分层的方法,group是层次。不知道怎么样把数据利用上去,还麻烦您指导一下,也不知道pop这么样可以不可以?

要是这个例子会用了,下面自己利用学习和运用就通顺多了,现在卡在这里两天了,请您多费心,不胜感激

9
dongshengjay 发表于 2013-10-25 16:30:34
library(R2WinBUGS)
library(lattice)
library(coda)
dat=read.csv("c:/data.csv")
attach(dat)
setwd("c:/")

sink("c:/lme.model1.txt")
cat("
model {

# Priors
for (i in 1:ngroups){
alpha ~ dnorm(mu.int, tau.int) # Random intercepts
}

mu.int ~ dnorm(0, 0.001) # Mean hyperparameter for random intercepts
tau.int <- 1 / (sigma.int * sigma.int)
sigma.int ~ dunif(0, 100) # SD hyperparameter for random intercepts

beta ~ dnorm(0, 0.001) # Common slope
tau <- 1 / ( sigma * sigma) # Residual precision
sigma ~ dunif(0, 100) # Residual standard deviation

# Likelihood
for (i in 1:n) {
mass ~ dnorm(mu, tau) # The random variable
mu <- alpha[pop] + beta* length # Expectation
}
}
",fill=TRUE)
sink()


# Bundle data
win.data <- list(mass = as.numeric(mass), pop = as.numeric(pop),
length = length, ngroups = max(as.numeric(pop)), n = 255)

# Inits function
inits <- function(){list(alpha = rnorm(win.data$ngroups, 0, 2), beta = rnorm(1, 1, 1),
mu.int = rnorm(1, 0, 1), sigma.int = rlnorm(1), sigma = rlnorm(1))}

# Parameters to estimate
parameters <- c("alpha", "beta", "mu.int", "sigma.int", "sigma")

# MCMC settings
ni <- 2000
nb <- 500
nt <- 2
nc <- 3

# Start Gibbs sampling
out <- bugs(win.data, inits, parameters, "lme.model1.txt", n.thin=nt,
n.chains=nc, n.burnin=nb, n.iter=ni, debug = TRUE)

# Inspect results
print(out, dig = 3)

10
dongshengjay 发表于 2013-10-25 16:33:14
It's OK!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 13:06