I am trying to fit lactation curves for different breeds of dairy cattle using Wood's curve with an adjustment for season (s).
The model is:
y(t) = s a t^b e^-c*t
My current code is:
parms a=3 b=0.25 c=-0.0016;
model milk=season*(a*time**(b)*exp(-c*time);
by breed;
output out=pred1 p=predict r=residuals;
run;
Code for plotting predicted values:
proc gplot data=pred1;
plot predict*time=breed;
run; quit;
However when I plot the predicted production values for separate curves for each breed the graph instead plots all 3 breeds by season. How do I get this corrected so I get the graphs for just the breeds and not every season?
Here's the graph I'm getting and an example of the graph I am trying to get:
Thank you
Try using by statement or where clause
proc sort data = pred1
by breed;
proc gplot data=pred1;
by breed;
plot predict*time;
or for more control to plot one breed at a time:
proc gplot data=pred1;
where breed = 'A';
plot predict*time;
The code still graphs different curves for each season instead of one average curve for breed. I'm thinking there is something wrong in my Proc Nlin model.
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.
Find more tutorials on the SAS Users YouTube channel.