Dear Bugs users,
Below is a simplified version of the mixture problem I am interested in.
Any suggestion will be appreciated.
--jinbo
Suppose I am interested in the mean of a normal distribution, mu, and its
variance is known to be 1. We sample from this normal distribution,
however, the data we observe is the indicators that whether an observation is
less than -200 or not. If it is, code it as 1, otherwise, code it as 2.
Thus, we really have categorical data, with the probability observing 1,
p1, to be the integral of normal distribution from (-1000, -200),
divided by the integral from (-1000, 1000), and that observing 2, p2, to
be the integral from (-200, 1000), divided by the integral from (-1000,
1000). For simplicity, I ignored the mass outside the interval (-1000,
1000). Below is the code I used. The error message I got is:
multiple definitions for node p1(a scalar is defined in a loop).
I took this message as saying that I can not define p1 and p2 using loops.
any suggestion for this?
model
{
#the integral of mormal density from (-1000, 1000)
#I omit the first and last terms
denom <- 0
for( s in 1:2000) {
denom <- denom + exp(-(vec[s]-mu)*(vec[s]-mu)/2)/sqrt(2*3.1415)
}
#define p1
p1 <- 0
for ( m in 1:800) {
p1 <- p1 + exp(-(vec[m]-mu)*(vec[m]-mu)/2)/(sqrt(2*3.1415)*denom)
}
p[1] <- p1
p[2] <- 1 - p[1]
for ( i in 1:N) {
y[i] ~ dcat(p[])
}
#define prior for mu
mu~ dnorm(0, 1)
}
#data vector
list(y = c(1, 2, 2, 1, 2, 1, 1, 2, 2, 1), N = 10, vec=vector from -1000 to
1000 with step 1)
#initial values
list(mu=0.5)
-------------------------------------------------------------------
To mail the BUGS list, mail to [log in to unmask]
You can search old messages at www.jiscmail.ac.uk/lists/bugs.html
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
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]
|