Print

Print


Final pre-Christmas post re this - Mark Brewer pointed out that in WinBUGS 1.4.3 using the 'round' function produces almost exactly correct results, at least in this simple example - see below (also shows that using 'trunc' does not...)

 

David

[log in to unmask]

Immpact Project

University of Aberdeen

 

################# #######################

Simple eg of problem poisson code -

 

{

MuTrunc~dunif(0,100)

MuRound~dunif(0,100)

MuEqual~dunif(0,100)

MuCheck~dunif(0,100)

 

Trunc~dpois(MuTrunc)    

Round~dpois(MuRound)     

Equal~dpois(MuEqual)       

Check~dpois(MuCheck)            

 

Trunc2 <- trunc(Trunc)

Round2 <- round(Round)

Equal2 <- Equal

 

ChF1<-equals(Check, 1)

RoF1<-equals(Round2, 1)

TrF1<-equals(Trunc2, 1)

 

ChF2<-equals(Check, 2)

RoF2<-equals(Round2, 2)

TrF2<-equals(Trunc2, 2)

 

ChF3<-equals(Check, 3)

RoF3<-equals(Round2, 3)

TrF3<-equals(Trunc2, 3)

 

ObsTrunc~dbin(0.7,Trunc2)

ObsRound~dbin(0.7,Round2)

ObsEqual~dbin(0.7,Equal2)

ObsCheck~dbin(0.7,Check)

}

 

Data   list( ObsCheck=1 ,  ObsEqual=1 , ObsRound=1 , ObsTrunc=1 )

 

Inits   list( MuRound=2 ,  MuCheck=2 ,  MuEqual=2 , MuTrunc=2 ,

                        Trunc=3 , Round=3 , Equal=3, Check=3  )

 

WinBUGS 1.4.3 output

 

node       mean     sd          MC error              2.5%        5.0%        10.0%      25.0%      median  75.0%      90.0%      95.0%      97.5%      start      

 

                Check      1.863       1.112       0.003662 1.0           1.0           1.0           1.0           2.0           2.0           3.0           4.0           5.0           23001                178000

               

                Equal       2.208       1.086       0.004199 1.038       1.077       1.155       1.407       1.908       2.695       3.658       4.36         5.05         23001                178000

                Equal2     2.208       1.086       0.004199 1.038       1.077       1.155       1.407       1.908       2.695       3.658       4.36         5.05         23001     

                Round      1.856       1.141       0.004516 0.5505     0.6013     0.7052     1.01         1.538       2.385       3.375       4.12         4.762       23001     

                Round2    1.857       1.105       0.004434 1.0           1.0           1.0           1.0           2.0           2.0           3.0           4.0           5.0           23001                178000

                Trunc       2.352       1.133       0.004155 1.052       1.104       1.205       1.509       2.033       2.878       3.866       4.623       5.251       23001     

                Trunc2     1.852       1.095       0.004025 1.0           1.0           1.0           1.0           2.0           2.0           3.0           4.0           5.0           23001                178000

 

                MuCheck 2.864       2.024       0.006693 0.3463     0.5092     0.7644     1.373       2.401       3.863       5.564       6.788       8.014       23001

                MuEqual   3.201       2.089       0.006871 0.4908     0.6885     0.984       1.668       2.764       4.254       5.985       7.217       8.391       23001

                MuRound 2.858       2.036       0.007194 0.323       0.4821     0.7339     1.357       2.4           3.866       5.583       6.818       7.987       23001     

                MuTrunc  3.353       2.151       0.006642 0.5226     0.7343     1.048       1.769       2.913       4.461       6.231       7.489       8.69         23001     

 

                ChF1        0.4884     0.4999     0.001504

                ChF2        0.2938     0.4555     0.001123

                ChF3        0.133       0.3396     8.901E-4 

               

                RoF1        0.4888     0.4999     0.001767

                RoF2        0.2952     0.4561     0.001329

                RoF3        0.133       0.3396     0.001035

               

                TrF1         0.4898     0.4999     0.001693

                TrF2         0.2959     0.4564     0.001371

       TrF3   0.1319 0.3383 9.848E-4     

 

################# #######################

 

-----Original Message-----
From: Braunholtz, David A.
Sent: 19 December 2007 17:57
To: [log in to unmask]
Subject: RE: non integer poisson variates ?

 

Following earlier Q re this, it was suggested I try Openbugs - see results below!   I think I'll stick to Winbugs for the moment...(for this at least)

 

It was also suggested I try JAGS - & and some output sent looked promising, but I haven't yet worked out how to get JAGS scripts to run... (in Windows) if anyone can give a hint...

 

David

 

################# #######################

Even Simpler eg of problem-with-poisson code

 

In WinBUGS 1.4   produces non-integer D and Db, contrary to expectations (low auto-correlations) but fairly close to correct

 

In OpenBUGS 3.03 produces integer D & Db (but distribution is just slightly wrong!!) ( & huge auto-correlations)

 

{

MuProblem~dunif(0,100)

MuCheck~dunif(0,100)

 

Problem~dpois(MuProblem)       

Check~dpois(MuCheck)            

 

Prob2 <- Problem

 

ObsP~dbin(0.7,Prob2)

ObsCheck~dbin(0.7,Check)

 

}

 

Data         list( ObsCheck=1 ,  ObsP=1  )

 

Inits          list( MuProblem=2 ,  MuCheck=2 ,  Problem=3 , Check=3  )

 

Results:

 

OpenBugs 3.03

                  mean  sd    MC_error    val2.5pc    median   val97.5pc

      Check       1.863 1.106 0.007267    1.0         2.0         5.0  

      MuCheck     2.865 2.022 0.01484     0.3502      2.412       8.004

      MuProblem   17.74 12.0  0.1325      2.38        15.11       47.66

      Prob2       16.74 11.26 0.1284      2.0         14.0        45.0

      Problem     16.74 11.26 0.1284      2.0         14.0        45.0       

     

WinBUGS 1.4

       node       mean sd   MC error   2.5%        median      97.5%

      Check       1.855 1.111 0.005552    1.0         2.0         5.0  

      MuCheck     2.851 2.032 0.01117     0.3545      2.392       7.968

      MuProblem   3.202 2.099 0.01078     0.4907      2.761       8.473

      Prob2       2.202 1.089 0.008205    1.038       1.894       5.055

      Problem     2.202 1.083 0.005855    1.039       1.903       4.998

     

################# #######################

 

-----Original Message-----

From: Braunholtz, David A.

Sent: 17 December 2007 22:26

To: [log in to unmask]

Subject: non integer poisson variates ?

 

Dear Bugsers,

 

I have noticed that code like the below results in non integer D (& Db).  Is this is intentional ?  Is there a way of forcing the poisson to produce integral D ?  It seems unlikely, but is the distribution for MU correct despite this ? 

 

Incidentally, while looking into this, I noticed that i was able (in the simplest possible program) to use the same poisson N for the order of two binomials - without producing the error message mentioned in 'tips & troubleshooting

 / restrictions ... / e) ?

 

Thanks for any help ...

 

[log in to unmask]

Immpact Project

University of Aberdeen

 

------------------------------------------------------------------- This list is for discussion of modelling issues and the BUGS software. For help with crashes and error messages, first mail [log in to unmask] To mail the BUGS list, mail to [log in to unmask] Before mailing, please check the archive at www.jiscmail.ac.uk/lists/bugs.html Please do not mail attachments to the list. To leave the BUGS list, send LEAVE BUGS to [log in to unmask] If this fails, mail [log in to unmask], NOT the whole list