Programming the statistical procedures from SAS

Find code for function

Accepted Solution Solved
Reply
Contributor
Posts: 67
Accepted Solution

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 


Accepted Solutions
Solution
‎02-06-2018 02:01 PM
Esteemed Advisor
Posts: 5,529

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

View solution in original post


All Replies
Esteemed Advisor
Posts: 5,529

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
Contributor
Posts: 67

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 

 

Solution
‎02-06-2018 02:01 PM
Esteemed Advisor
Posts: 5,529

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
Contributor
Posts: 67

Re: Find code for function

Thank you 

 

 

Contributor
Posts: 67

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).  

 

could you please help me with this. 

 

regards 

 

Ibrahim 

 

 

 

 

 

Esteemed Advisor
Posts: 5,529

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
☑ This topic is solved.

Need further help from the community? Please ask a new question.

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