@RobinN , You have a bad starting value for b50 in the final code block. This parameter should be on the hours scale, and be 40 rather than 0.4. With that change, everything else runs fine on my machine.
Now the question about reps. I would add a RANDOM statement, and modify the MODEL and PARMS statements I honestly am not sure that this will work the way I think it ought to. Here are the steps: Make sure that each rep is uniquely identified - let's call this variable repno.
proc nlmixed data=fungi;
parms bu=.95 bl=.001 b50=20 logsig= -1;
mu = (bu + (bl-bu)/(1+(time/b50)**bs)) + repvar;
l = mu**germrate * (1-mu)**(1-germrate);
ql = log(l);
model germrate ~ general(ql) ;
random repvar ~ normal(0,exp(2*logsig)) subject=repno out=EB;
predict mu out=out1;
ods output parameterestimates=pe;
run;
I got most of this from the examples in the NLMIXED documentation that use the RANDOM statement, and merely adds in an additional random factor for mu. If you want to get really technical, you could add random effects to the parameters that reflect variability due to rep, as in the first example that fits a one compartment PK model.
Note that this approach involves a new parameter, logsig. I gave a starting value of -1 for this, which would correspond to a standard deviation between reps of 0.36. That is just a starting value and is probably too large. This parameterization [exp(2*logsig)] guarantees a positive value for the variance.
Unfortunately, I will leave the rest of this exercise to you, as I don't have rep data.
SteveDenham
... View more