SAS Optimization, and SAS Simulation Studio

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

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
- Permalink
- Email to a Friend
- Report Inappropriate Content

10-24-2016 10:35 AM

hi all,

first of all, I am quite new to optimization problems and their programming, so I apologize for any possible lack of clarity.

I would like to calculate coeffincients x(i)'s, as much as possibe close to d(i)'s, such that a weighted sum of x(i) is equal to a known value.

min f((x(i),d(i))

s.t. sum(y(i)x(i))=Y

s.t. y(i)x(i) >=0

s.t. y(i)x(i)<=c*z(i)

where f(.) would be a distance function summarizing the distances between x(i) and d(i), e.g a quadratic function (suggestions are welcome).

y(i),Y,,c,z(i),d(i) are known values

In other terms it is a calibration problem with the addition of inequality constraints.

These values are stored in a sas dataset, and i would like the procedure to add the x(i)'s to the dataset.

A second issue is to repeat the algorithm for a number of groups. So a solution with a by processing would be much appreciated.

a group may have up to 200000 observations.

I can use SAS-OR or sas IML. I would prefer the first choice in order to learn a new tool.

thank you very much in advance

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

Posted in reply to ciro

10-24-2016 11:17 AM

Yes, your constrained regression problem sounds like a good fit for SAS/OR. You can use the OPTMODEL procedure to model and solve the problem:

To solve separate groups independently, see this Usage Note, which has a quadratic objective and uses the QP solver:

http://support.sas.com/kb/42/332.html

In SAS/OR 13.1 or later, you can even solve these independent problems in parallel by using a COFOR loop:

This example illustrates changing a DO loop to a COFOR loop:

http://support.sas.com/documentation/cdl/en/ormpex/68157/HTML/default/viewer.htm#ormpex_ex22_toc.htm

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

Posted in reply to ciro

10-25-2016 05:30 AM

It looks like IML can get it.

Can you post a real example ?

y(i)x(i) >=0

means

y(i)*x(i) >=0

?