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
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
It looks like IML can get it.
Can you post a real example ?
y(i)x(i) >=0
means
y(i)*x(i) >=0
?
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how to run multiple linear regression models with and without interactions, presented by SAS user Alex Chaplin.
Find more tutorials on the SAS Users YouTube channel.