First, try these two things:
In the NLOPTIONS statement, change the optimization algorithm by adding tech=nridg.
Change the RANDOM statement to
random intercept/subject=f2_animal_id;
If that doesn't do it, then some other changes might work. Looking at the iteration history, I see that things are well behaved, followed by a blow-up, then followed by another well behaved portion, but where the objective function essentially comes back to the same area, followed by another blow-up, etc. That behavior is typical of quasi-separation for reml with binomial data. So, perhaps an integral approach would work (method=laplace or method=quad) in the PROC GLIMMIX statement. Or perhaps what Milliken and Johnson refer to as a means model (one-way model) would work. It is harder to get main effects out (you would need LSMESTIMATE statements with the right options to get the joint F tests), but it ought to converge. In this case your MODEL statement would look like:
model birthed_calfnum= f2_animal_breed*cow_age*f2_animal_birth_year/dist=binomial link=logit;
And then there is the generalized estimating equation (GEE) approach using alternating logistic regression. (See PROC GENMOD documentation, as you will want lsmeans). You would have a REPEATED statement that looks something like:
repeated subject=f2_animal_id / logor=fullclust;
I don't know about this approach though.
SteveDenham
... View more