turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- Analytics
- /
- Stat Procs
- /
- Find code for function

Topic Options

- RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-05-2018 12:47 PM

```
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

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Barkamih

02-06-2018 01:33 PM

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

All Replies

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Barkamih

02-05-2018 03:51 PM

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

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to PGStats

02-06-2018 07:38 AM

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

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Barkamih

02-06-2018 01:33 PM

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

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to PGStats

02-06-2018 01:50 PM

Thank you PGStats very much, that is what I'm looking for exactly, and I'm sorry about the language, I Just have three years when I started to speak English. Also, I have one more question for another occasion if you don't mind

best regards

Ibrahim

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to PGStats

02-06-2018 04:25 PM

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

- Mark as New
- Bookmark
- Subscribe
- RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

Posted in reply to Barkamih

02-06-2018 06:16 PM

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