🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Pyrite | Level 9

## Find code for function

``````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
Opal | Level 21

## Re: Find code for function

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
6 REPLIES 6
Opal | Level 21

## Re: Find code for function

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
Pyrite | Level 9

## Re: Find code for function

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

Opal | Level 21

## Re: Find code for function

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
Pyrite | Level 9

Thank you

Pyrite | Level 9

## Re: Find code for function

Hi

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

regards

Ibrahim

Opal | Level 21

## Re: Find code for function

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
Discussion stats
• 6 replies
• 1543 views
• 2 likes
• 2 in conversation