This is a simpler, but related issue to the one I posted on June 2.

Suppose we have 100 trials (N) and 40 (M) known successes, and we wish to estimate the binomial rate parameter for probability of success, theta. But suppose itself is uncertain (estimated) but we have information that the true value of N (NT) is less than and that the true proportion of individuals that are capable is a proportion of N, where the parameter governing the proportion is distributed as a Beta random variable. We wish to estimate theta accounting for the additional uncertainty due to uncertainty about N. I have easily programmed this in a fortran program using Metropolis-within-Gibbs. I am unable to do this in Stan/Rstan. The issue seems to be one of trying to sample a parameter declared a data or transformed data. Below are the .stan and .R files. any help will be much appreciated:

//Binomtst.stan

///Simple binomial inference of probability of success theta given known

//number of trials and successes.

// NG started June 7 2018

//This will not work.

data {

int<lower=0> N; //number of trials

int<lower=0> M; //number of successes

real<lower=0> B_Alpha;

real<lower=0> B_Beta;

real<lower=0> NT_Alpha;

real<lower=0> NT_Beta;

}

transformed data{

real<lower=0> NT;

}

parameters {

real <lower=0, upper=1> theta; //probability of success

```
real<lower=0, upper=1> z;
```

}

model {

// priors

theta ~ beta(B_Alpha,B_Beta);

z ~ beta(NT_Alpha, NT_Beta);

NT = floor(N*z);

// likelihood:

M~binomial(NT,theta);

```
}
```

#Binomtst2.R

#NG started June 7 2018

N <- 100; # number of trials

M <- 40; # number successes

B_Alpha<-50;# beta alpha (number prior successes) parameter for prior on success param theta

B_Beta<-50; # beta Beta (prior failures) param for prior on theta

NT_Alpha<-100; #beta alpha param for distribution of true number of trials,z: (NT = N*z)

NT_Beta<-50; #beta beta param for z

stanDat <- list(N,M, B_Alpha, B_Beta, NT_Alpha, NT_Beta)

params<-c(“theta”, “NT”)

#sample posterior:

Binomtst2fit <- stan(file=“Binomtst2.stan”, data = stanDat, pars = params, iter = 1000, chains = 4)

print(Binomtst2fit,digits=3)