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
- /
- Analysing Non-linear data, PROC NLIN.

Topic Options

- Subscribe to 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
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

01-25-2016 04:46 AM

Please I need assistance in analysing data produced from in vitro incubation of feed samples , using the PROC NLIN.

I had triied to search for similar syntax which I can modify without success. The class include cultivar,rep. The incubation times are from 3,6,9,===48 hrs. Thanks.

Accepted Solutions

Solution

01-26-2016
05:48 AM

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

01-25-2016 04:59 PM

Just to add to my previous post, you can fit your model to the data in the SAS Getting Started example using:

```
proc nlin data=Enzyme method=marquardt hougaard plots=all;
parms a 50 to 250 by 50 b 20 to 80 by 10 c .5 to 2 by .5;
model Velocity = a + b*(1-exp(-c*concentration));
run;
```

It would be to your benefit to study the User's Guide.

All Replies

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

01-25-2016 07:56 AM

What nonlinear model are you trying to fit?

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

01-25-2016 11:17 AM

- Dear SAS friends out there, please I want to analyse the data set of gas grom forage cultivars, collected 3 hourly in the course of in vitro fermentation up to 48 hours, and fit the data into the equation proposed by Orskov and McDonald is Y = a+b (1- e-ct), pease note that the -ct is to the power of e, then plot the graph . Anyone with the experience of the correct syntax to use please? I can forward the data if need be. Thanks.

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

01-25-2016 04:38 PM

It pays to read the User's Guide. The getting started example shows you exactly how to fit a nonlinear model. This is a different model from what you want, but you can see where you need to write the equation and define the parameters. I added the plot statement to show you how easy it is to get predicted values and confidence/prediciton intervals.

```
/* From SAS User's Guide */
data Enzyme;
input Concentration Velocity @@;
datalines;
0.26 124.7 0.30 126.9
0.48 135.9 0.50 137.6
0.54 139.6 0.68 141.1
0.82 142.8 1.14 147.6
1.28 149.8 1.38 149.4
1.80 153.9 2.30 152.5
2.44 154.5 2.48 154.7
;
proc nlin data=Enzyme method=marquardt hougaard plots=all;
parms theta1=155
theta2=0 to 0.07 by 0.01;
model Velocity = theta1*Concentration / (theta2 + Concentration);
run;
```

Just change the model and parms statements. It is important to have good starting values. You also mentioned class variables. NLIN does not have a class statement. You would have to use dummy variables (0,1) for the different class levels. But this gets more complicated, and I am not describing this here, since you are apparently new to this. You would find the textbook by Schabenberger and Pierce (2002) very helpful for this. With class variables, you have to decide what parameter is being affected by the factor (which parameter is being affected by the factor).

Solution

01-26-2016
05:48 AM

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

01-25-2016 04:59 PM

Just to add to my previous post, you can fit your model to the data in the SAS Getting Started example using:

```
proc nlin data=Enzyme method=marquardt hougaard plots=all;
parms a 50 to 250 by 50 b 20 to 80 by 10 c .5 to 2 by .5;
model Velocity = a + b*(1-exp(-c*concentration));
run;
```

It would be to your benefit to study the User's Guide.