全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
2013-1-20 17:18:04
epoh 发表于 2013-1-20 15:55
就以Minmax而言,有三个文件
  code file   : Minmax.ocf
  document  : Minmax.odc (最重要)
缺少函数的话,那不是模型不应该是对的?
二维码

扫码加我 拉你入群

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

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

2013-1-21 12:08:53
文雅13 发表于 2013-1-20 17:18
缺少函数的话,那不是模型不应该是对的?
Mv.odc compile后可以得到Mv.ocf,Mv.osf
没有Mv.odc 程序就会产生错
#####
display(log)
check(c:/Bugs/ces_d/ces_d.txt)
unknown type of logical function(betasex<-Mv(a1[1:2], d1[1:9], knotD[],OMEGAu[],v))
data(c:/Bugs/ces_d/data.txt)
command #Bugs:data cannot be executed (is greyed out)
compile(1)
inits(1,c:/Bugs/ces_d/inits1.txt)
command #Bugs:inits cannot be executed (is greyed out)
gen.inits()
command #Bugs:gen.inits cannot be executed (is greyed out)
thin.updater(1)
update(1)
command #Bugs:update cannot be executed (is greyed out)
set(a1)
...
...
#####
wbdev_tutorial.pdf
page 31/46 Appendix B ObservedPlus
library(R2WinBUGS)

### Define the observed successes k and the total trials n
k=9
n=10
### Make a list containing the data to be used by WinBUGS
data=list("k","n")
### Initialize the parameters (in this case, we draw a
### random number from U(0,1)).
inits=function()
{
list(theta=runif(1,0,1))
}
### Make a vector with the parameters that are supposed
### to be returned to R by WinBUGS.
parameters=c("theta")

### Call WinBUGS from R with the bugs command.
observedplus = bugs(data,inits,parameters,"observedplus.txt",n.chains=1,n.iter=10000,n.burnin=1000,
                   n.thin=1,DIC=T,"C:/Program Files/WinBUGS14/",working.directory = "c:/Bugs/webdev/",codaPkg=F,debug=T)
print(observedplus)

Inference for Bugs model at "observedplus.txt", fit using WinBUGS,
1 chains, each with 10000 iterations (first 1000 discarded)
n.sims = 9000 iterations saved
         mean  sd 2.5% 25% 50% 75% 97.5%
theta     0.5 0.1  0.3 0.4 0.5 0.6   0.7
deviance  4.4 1.3  3.5 3.6 3.9 4.7   8.1

DIC info (using the rule, pD = Dbar-Dhat)
pD = 0.9 and DIC = 5.3
DIC is an estimate of expected predictive error (lower deviance is better).
二维码

扫码加我 拉你入群

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

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

2013-1-22 09:37:06
epoh 发表于 2013-1-21 12:08
Mv.odc compile后可以得到Mv.ocf,Mv.osf
没有Mv.odc 程序就会产生错
#####
老师,如果y是二分类,是矩阵,那么在R中编写y的程序时应该怎么写?
二维码

扫码加我 拉你入群

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

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

2013-2-4 16:09:47
文雅13 发表于 2013-1-22 09:37
老师,如果y是二分类,是矩阵,那么在R中编写y的程序时应该怎么写?
cov数据中没有bmi,smoke,请正确设定
bmi<-cov$bmi          #NULL
smoke<-cov$smoke  #NULL


二维码

扫码加我 拉你入群

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

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

2013-2-4 18:22:38
epoh 发表于 2013-2-4 16:09
cov数据中没有bmi,smoke,请正确设定
bmi
不需要那两个变量  只需要sq和sex,我已修改,但还是出现错误
二维码

扫码加我 拉你入群

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

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

2013-2-4 19:53:32
文雅13 发表于 2013-2-4 18:22
不需要那两个变量  只需要sq和sex,我已修改,但还是出现错误
expected key word structure
这个问题容易解决,
因为y是matrix,不是vector.

倒是底下问题,你需要一步一步确认解决,
response数据格式没问题,
问题出在cov.

n1必须是scale,不是vector,因为程序for (i in 1:n1)

n>n1,nobs长度应该是n

二维码

扫码加我 拉你入群

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

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

2013-2-4 20:27:42
文雅13 发表于 2013-2-4 18:22
不需要那两个变量  只需要sq和sex,我已修改,但还是出现错误
忘了说,你也没给出variable sumn
sumn should be a vector with length n
二维码

扫码加我 拉你入群

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

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

2013-2-5 11:27:02
文雅13 发表于 2013-2-4 18:22
不需要那两个变量  只需要sq和sex,我已修改,但还是出现错误
问题出在你的数据dimension,跟winbugs code完全不符.

1. sumnobs<-length(y)   #1268
   n<-length(nobs)      #317
   y 的长度是1268,结果只用到317   ???

2. for (i in (n1+1):n)
   假设n=317,n>n1,n1=100
   而你给的n1却是个vector
   n1<-cov$n1
    [ 0 0 0 0 0 0...0 0 0 0 3]

3. etaM[i,1]<-beta0all+beta1all*t[(sumn-nobs+1)]}
   你没给出 sumn

4. a[i,j]<-exp(-gamma[i,j])*exp(etaM[i,j])/(1+exp(etaM[i,j]))
   你没给出 gamma

5. for (k in 1:6)
      {
      for (i in nn1[k]:nn2[k])  #nn1: 17  49  81 140 180 233 273 317
        {
        ...
        }
      }

   你的数据nn1长度是8,你只用到6  ??
二维码

扫码加我 拉你入群

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

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

2013-2-5 14:12:47
文雅13 发表于 2013-2-4 18:22
不需要那两个变量  只需要sq和sex,我已修改,但还是出现错误
刚仔细看完你的WINBUGS CODE,
y应该是一个 317 x 4 matrix,
二维码

扫码加我 拉你入群

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

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

2013-2-6 15:53:16
文雅13 发表于 2013-2-4 18:22
不需要那两个变量  只需要sq和sex,我已修改,但还是出现错误
请在这个帖子回答问题,
这样才有连贯性.
请先确认底下数据:
(一步一步来,后续问题还很多)
y<-response$y
t<-response$t
sumn=response$sumnobs

sqbh<-cov$sq      
sex<-cov$sex      
nobs<-cov$nobs     
n<-length(nobs)


n1必须由你提供,因为只有你自己懂这个模型
上回n1=100,我只是假设而已

sumn数据有误,因为
t[(sumn-nobs+1)]
i=1,sumn[1]-nobs[1]+1= -2,
不应该是负值

二维码

扫码加我 拉你入群

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

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

2013-2-6 20:55:26
epoh 发表于 2013-2-6 15:53
请在这个帖子回答问题,
这样才有连贯性.
请先确认底下数据:
现在加上y=matrix(data = y, nrow = 317, ncol = 4, byrow = FALSE),在R中出现
错误于FUN(X[[3L]], ...) : 不能改变因子的存储方式,更没法进入Winbugs中。
二维码

扫码加我 拉你入群

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

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

2013-2-6 21:16:05
文雅13 发表于 2013-2-6 20:55
现在加上y=matrix(data = y, nrow = 317, ncol = 4, byrow = FALSE),在R中出现
错误于FUN(X[[3L]], ... ...
那是因为你的错误一箩筐,
你只改那行是没用的,
我已经跑到gen.inits(),才出现大问题.
需要你提供正确的数据(n1,sumn),再想办法

display(log)
check(c:/Bugs/ces_d/ces_d.txt)
model is syntactically correct
data(c:/Bugs/ces_d/data.txt)
data loaded
compile(1)
model compiled
gen.inits()
二维码

扫码加我 拉你入群

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

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

2013-2-6 21:41:04
epoh 发表于 2013-2-6 21:16
那是因为你的错误一箩筐,
你只改那行是没用的,
我已经跑到gen.inits(),才出现大问题.
1111111111
附件列表

1.rar

大小:758 Bytes

 马上下载

本附件包括:

  • 1.sav

二维码

扫码加我 拉你入群

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

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

2013-2-6 22:02:35
文雅13 发表于 2013-2-6 21:41
1111111111
这个数据还是不对
还是会产生负值
i=1,sumn[1]-nobs[1]+1= -2,

二维码

扫码加我 拉你入群

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

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

2013-2-7 12:14:05
文雅13 发表于 2013-2-6 20:55
现在加上y=matrix(data = y, nrow = 317, ncol = 4, byrow = FALSE),在R中出现
错误于FUN(X[[3L]], ... ...
由程序看出数据尚存矛盾之处:

1.sample size n=317,但t的长度是1268
  显然不对,需要重上传
2.only one observation,n1=2,
复制代码
当i=1,2时
   sumn=[ 1    2    5    7...1202]
   nobs=[ 4 4 2 4.............4 4]

  这个相对应的数据对吗?
二维码

扫码加我 拉你入群

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

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

2013-2-7 18:14:04
文雅13 发表于 2013-2-6 21:41
1111111111
Data are sorted by the race and baseline CD4 groups,
and consist of the binary outcome variable (y[,])
二维码

扫码加我 拉你入群

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

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

2013-2-9 13:30:32
epoh 发表于 2013-2-6 21:16
那是因为你的错误一箩筐,
你只改那行是没用的,
我已经跑到gen.inits(),才出现大问题.
方便的话发送消息看看您的数据和程序?
二维码

扫码加我 拉你入群

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

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

2013-2-9 22:45:30
文雅13 发表于 2013-2-9 13:30
方便的话发送消息看看您的数据和程序?
数据格式变更的只有y,         #2013.02.06,我已回帖告诉你
数据要更正的仅是n1=2,      #n1是由你短信息提供的
其余的通通没变.

y<-response$y
t<-response$t
sumn=response$sumnobs

sqbh<-cov$sq       #1 x 317
sex<-cov$sex       #1 x 317
nobs<-cov$nobs     #1 x 317
n<-length(nobs)
n1=2  

knotD
OMEGA_all
...
nn3
nn4


但是t,sumn,nobs,数据有误,2013.02.07,我已告诉你要检验
这会造成gen.inits()后,Trap:undefined real result  
只是你一直没回复,
所以程序是为了错误数据能运行所做出的非常措施,
严格说你的程序我并没改变.
但底下数据你终究要面对,检验,解释,尤其是sort,才不会原地踏步


1.sample size n=317,但t的长度是1268, 显然不对,

2.only one observation,n1=2,
  for (i in 1:n1)

      {
       y[i,1]~dbern(p[i,1])
       ...
      etaM[i,1]<-beta0all+beta1all*t[(sumn-nobs+1)]
      }
当i=1,2时
   sumn=[ 1    2    5    7...1202]
   nobs=[ 4 4 2 4.............4 4]







二维码

扫码加我 拉你入群

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

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

2013-2-12 21:54:00
文雅13 发表于 2013-2-9 13:30
方便的话发送消息看看您的数据和程序?
答复你的短信息.
数据就是你的数据,
尊重你的数据,我不会任意改变,
有改变的只是由R读入后,变更了y为 317 x 4 matrix,
这在100楼,108楼,我都已说过
倒是如果你不知如何更正错误的数据,
请你说明你的数据是如何观察产生,
我试着帮你更正,否则我也爱莫能助.

二维码

扫码加我 拉你入群

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

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

2013-3-3 12:56:06
epoh 发表于 2013-2-9 22:45
数据格式变更的只有y,         #2013.02.06,我已回帖告诉你
数据要更正的仅是n1=2,      #n1是由你短 ...
compile时出现“invalid range specified”错误。谢谢!
二维码

扫码加我 拉你入群

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

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

2013-3-3 14:30:21
文雅13 发表于 2013-3-3 12:56
compile时出现“invalid range specified”错误。谢谢!
98楼,我已给你信息
你的数据nn1长度是8  [17  49  81 140 180 233 273 317]

# sqbh=1, sex=man
  mean0[j]<-(sum(margin[nn1[1]:nn2[1],j])
                         +sum(margin[nn3[1]:nn4[1],j]))
# sqbh=1, sex=woman
  mean1[j]<-(sum(margin[nn1[2]:nn2[2],j])
                         +sum(margin[nn3[2]:nn4[2],j]))
  ...
  ...
            
# sqbh=1, age=age2
  mean05[j]<-(sum(margin[nn1[9]:nn2[9],j])+sum(margin[nn3[9]:nn4[9],j]))

没有nn1[9],当然产生错误

建议你把程序中自行加入的
# sqbh=1, sex=man
以后的全删
二维码

扫码加我 拉你入群

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

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

2013-3-5 19:57:38
文雅13 发表于 2013-3-3 12:56
compile时出现“invalid range specified”错误。谢谢!
invalid range specifiedt
是由底下的程序所造成,
这跟你的数据nn1,nn2,nn3,nn4有关,
请自行更正,你的数据,我帮不上忙.
for (k in 1:8)
    {
      for (i in nn1[k]:nn2[k])
          {pp<-del/(sum(del[nn1[k]:nn2[k]])+sum(del[nn3[k]:nn4[k]]))
          }
          for (i in nn3[k]:nn4[k])
           {pp<-del/(sum(del[nn1[k]:nn2[k]])+sum(del[nn3[k]:nn4[k]]))
           }
      }
二维码

扫码加我 拉你入群

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

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

2013-3-5 20:00:07
ywh19860616兄,上回的数据也改成如下格式
也就是底下的panel data
mem_panel.xls  
  
mem_panel.xls
大小:(45 KB)

 马上下载


程序修改如短信息.
###########
library(R2WinBUGS)
library(mvtnorm)
N=50
T=4
set.seed(123)
panel=array(0,c(50,4,7))
panel[,,1]=y=rmvnorm(N, mean=rep(0.5,T), sigma=diag(4))
panel[,,2]=a=rmvnorm(N, mean=rep(0,T), sigma=diag(4))
panel[,,3]=b=rmvnorm(N, mean=rep(0.1,T), sigma=diag(4))
panel[,,4]=c=rmvnorm(N, mean=rep(0.2,T), sigma=diag(4))
panel[,,5]=d=rmvnorm(N, mean=rep(0.3,T), sigma=diag(4))
panel[,,6]=e=rmvnorm(N, mean=rep(0.4,T), sigma=diag(4))
panel[,,7]=f=rmvnorm(N, mean=rep(0.5,T), sigma=diag(4))

#data
data=list("N","T","panel")
#init
inits=function() {list( tau=0.99,gamma=c(0,0,3,1.2,0.7,0))}
  
parameters <- c("mu","tau","gamma")

msv.sim <- bugs(data, inits, parameters.to.save=parameters,"panel.bug",n.chains=1,
               n.thin=1,n.iter=60000,n.burnin=10000,codaPkg=TRUE,debug=TRUE,DIC=TRUE,
               bugs.directory="d:/WinBUGS14/",working.directory = "c:/Bugs/msv_ywh/")
二维码

扫码加我 拉你入群

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

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

2013-3-6 15:49:56
epoh 发表于 2013-3-5 19:57
invalid range specifiedt
是由底下的程序所造成,
这跟你的数据nn1,nn2,nn3,nn4有关,
nn改后还是出现“multiple definitions of node pp[1]”是什么原因?
二维码

扫码加我 拉你入群

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

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

2013-3-6 22:01:26
文雅13 发表于 2013-3-6 15:49
nn改后还是出现“multiple definitions of node pp[1]”是什么原因?
multiple definitions of node pp[1]是什么原因?
表示你定义完pp[1]后,又重复定义 pp[1]
nn1,nn2,nn3,nn4代表甚么意义,
需要你说清楚,或许才能帮你
这跟前面n1,是不同的

二维码

扫码加我 拉你入群

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

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

2013-3-6 22:02:19
ywh19860616兄:
##########in R
library(plm)
data("Grunfeld", package = "plm")
gi <- plm(inv ~ value + capital, data = Grunfeld, model = "within")
fixef(gi)
summary(fixef(gi))
    Estimate Std. Error t-value  Pr(>|t|)   
1   -70.2967    49.7080 -1.4142   0.15730   
2   101.9058    24.9383  4.0863 4.383e-05 ***
3  -235.5718    24.4316 -9.6421 < 2.2e-16 ***
4   -27.8093    14.0778 -1.9754   0.04822 *  
5  -114.6168    14.1654 -8.0913 6.661e-16 ***
6   -23.1613    12.6687 -1.8282   0.06752 .  
7   -66.5535    12.8430 -5.1821 2.194e-07 ***
8   -57.5457    13.9931 -4.1124 3.915e-05 ***
9   -87.2223    12.8919 -6.7657 1.327e-11 ***
10   -6.5678    11.8269 -0.5553   0.57867   

########## in winbugs
library(R2WinBUGS)
library(plm)
data("Grunfeld", package = "plm")
N=10
T=20
a=as.vector(cbind(Grunfeld$inv,Grunfeld$value,Grunfeld$capital))

panel=array(a,c(T,N,3))
#data
data=list("N","T","panel")
#init
inits=function() {list( gamma=c(0.1,0.2))}
  
#parameters <- c("mu","tau","gamma")
parameters <- c("sigma.tau","gamma","alpha")

msv.sim <- bugs(data, inits, parameters.to.save=parameters,"panel_Grunfeld.bug",n.chains=1,
               n.thin=1,n.iter=60000,n.burnin=10000,codaPkg=TRUE,debug=TRUE,DIC=TRUE,
               bugs.directory="d:/WinBUGS14/",working.directory = "c:/Bugs/msv_ywh/")
Node statistics
node         mean         sd         MC error        2.5%        median        97.5%        start        sample
alpha[1]        6.981        24.2        0.1062        -40.33        6.891        54.45        10001        50000
alpha[2]        119.7        14.99        0.06831        90.22        119.7        149.0        10001        50000
alpha[3]        -172.2        15.15        0.0699        -201.6        -172.3        -142.4        10001        50000
alpha[4]        -12.94        12.01        0.05266        -36.4        -12.94        10.67        10001        50000
alpha[5]        -86.94        13.4        0.06053        -113.0        -87.07        -60.72        10001        50000
alpha[6]        -12.73        11.55        0.04824        -35.33        -12.77        10.12        10001        50000
alpha[7]        -49.68        12.3        0.0576        -73.45        -49.76        -25.42        10001        50000
alpha[8]        -39.72        11.92        0.05876        -63.02        -39.7        -16.21        10001        50000
alpha[9]        -65.63        12.16        0.05548        -89.4        -65.68        -41.59        10001        50000
alpha[10]        -4.713        11.4        0.05108        -27.06        -4.7        17.7        10001        50000
deviance        2168.0        8.314        0.04506        2154.0        2167.0        2186.0        10001        50000
gamma[1]        0.09556        0.006423        2.839E-5        0.0829        0.09553        0.1081        10001        50000
gamma[2]        0.2867        0.01716        7.759E-5        0.2526        0.2868        0.3201        10001        50000
sigma.tau        54.73        2.978        0.01576        49.26        54.61        60.92        10001        50000

二维码

扫码加我 拉你入群

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

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

2013-3-7 08:31:35
epoh 发表于 2013-3-6 22:02
ywh19860616兄:
##########in R
library(plm)
谢谢epoh老师的帮助,codes很好。
二维码

扫码加我 拉你入群

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

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

2013-3-7 09:43:15
epoh 发表于 2013-3-6 22:01
multiple definitions of node pp[1]是什么原因?
表示你定义完pp[1]后,又重复定义 pp[1]
nn1,nn2,nn3,n ...
文献中有nn1等的解释。我是按那个理解弄的。可是。。。
二维码

扫码加我 拉你入群

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

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

2013-3-7 10:38:17
文雅13 发表于 2013-3-7 09:43
文献中有nn1等的解释。我是按那个理解弄的。可是。。。
你说的可是这一句?
the individual indexes for the race and baseline CD4 groups (n1[],n2[],n3[],n4[])
然你已换成你的数据,
你总该解释一下数据产生的由来吧.
二维码

扫码加我 拉你入群

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

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

2013-3-7 16:23:46
文雅13 发表于 2013-3-7 09:43
文献中有nn1等的解释。我是按那个理解弄的。可是。。。
数据的格式是对的,
但是数值内容不对.
所以造成pp[1]重复.
这也就是你要说明
nn1,…nn4,如何得来的原因
二维码

扫码加我 拉你入群

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

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

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

分享

扫码加好友,拉您进群