BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Barkamih
Pyrite | Level 9
proc nlin data = new method = marquardt;
  parms A = 15 B = -0.19 C = 0.0012 ;
      by pr  ;
	  AXIS1 ORDER = (5 TO 45 BY 5);
  model TEST_DAY_MILK_KG = A * Time **b * exp(-C*Time);
  output out = Fit predicted = pred ;
  symbol1 interpol= join value = star color= black;
symbol2 interpol = none value = none color = red;
 run;
QUIT;
proc sort data=fit; by time;
proc gplot data=fit;
	plot pred*time TEST_DAY_MILK_KG*time/overlay VAXIS = AXIS1;
run;quit;

Hi guys 

This is Ibrahim, I'm looking for your help if you don't mind !!!

How I can use this occasion  P = -(B+1)*LOG(C)  for the previous model and the correct order for the code, this occasion can calculate the cow persistency of wood's question.   P MEANS PERSISTENCY 

 

Wood's question already applied as you see and I had a good output. 

 

 kind regards 

 

Ibrahim 

1 ACCEPTED SOLUTION

Accepted Solutions
PGStats
Opal | Level 21

Your translation tool is making your questions very difficult to understand.

 

Maybe all you want is a way to calculate persistency from estimates of A, B, C. Something like:

 

proc nlin data = new outest=ESTIMATES;
parms A = 15 B = 0.19 C = -0.0012 ;
bounds  A B C > 0; 
by pr;
model  TEST_DAY_MILK_KG = A * Time **b * exp(-C*Time);
output out = Fit predicted = Pred ;
run;

proc sql;
create table persistency as
select 
    pr,
    A, B, C, 
    -(B+1)*LOG(C) as P
from ESTIMATES
where _TYPE_ = "FINAL";
select * from persistency;
quit;

(untested)

 

PG

View solution in original post

6 REPLIES 6
PGStats
Opal | Level 21

Just guessing from your post of last November, you should try SG procédures for graphing. Example

 

proc nlin data = new;
  parms A = 15 B = 0.19 C = -0.0012 ;
  bounds  A B C > 0; 
    by pr  ;
  model  TEST_DAY_MILK_KG = A * Time **b * exp(-C*Time);
  output out = Fit predicted = Pred ;
 run;
QUIT;

proc sort data=fit; by pr time; run;

proc sgplot data=fit;
series x=time y=pred / group=pr;
scatter x=time y=TEST_DAY_MILK_KG / group=pr;
run;



(untested)

 

PG
Barkamih
Pyrite | Level 9

Than you so much for this code 

but I'm looking to code this occasion  P = -(B+1)*LOG(C) in order to get it's results if toy have any background about it 

 

regards 

 

Ibrahim 

 

PGStats
Opal | Level 21

Your translation tool is making your questions very difficult to understand.

 

Maybe all you want is a way to calculate persistency from estimates of A, B, C. Something like:

 

proc nlin data = new outest=ESTIMATES;
parms A = 15 B = 0.19 C = -0.0012 ;
bounds  A B C > 0; 
by pr;
model  TEST_DAY_MILK_KG = A * Time **b * exp(-C*Time);
output out = Fit predicted = Pred ;
run;

proc sql;
create table persistency as
select 
    pr,
    A, B, C, 
    -(B+1)*LOG(C) as P
from ESTIMATES
where _TYPE_ = "FINAL";
select * from persistency;
quit;

(untested)

 

PG
Barkamih
Pyrite | Level 9

Thank you 

 

 

Barkamih
Pyrite | Level 9

 Hi 

 

In this post, I'm looking for code to calculate the peak yield from this function ym = a (b/c)^(b) * e^(-b).  

 

could you please help me with this. 

 

regards 

 

Ibrahim 

 

 

 

 

 

PGStats
Opal | Level 21

Just add the expression to your previous code:

 

proc sql;
create table persistency as
select 
    pr,
    A, B, C, 
    -(B+1)*LOG(C) as P,
     A * (B/C)**(B) * exp(-B) as peakYield
from ESTIMATES
where _TYPE_ = "FINAL";
select * from persistency;
quit;

(untested)

 

PG

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

What is ANOVA?

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.

Discussion stats
  • 6 replies
  • 1848 views
  • 2 likes
  • 2 in conversation