BookmarkSubscribeRSS Feed
RAAgnew
Calcite | Level 5
For about five years, I have employed PROC NLP to solve large marketing optimization problems via a collapsed dual method. The results have been remarkable. For a general description of the approach, see http://home.comcast.net/~raagnew/Downloads/Dual_Solution_Marketing_Optimization.pdf.
6 REPLIES 6
MichelleOpp
SAS Employee
This is a reasonable approach to try for this type of problem, and it could work well for the types of constraints you describe. However, we have found that as the constraints become more complex, this approach often does not work, and additional techniques are needed. In particular, it is often the case that the constraints per prospect are not of the form "a prospect can receive at most one offer", but rather are more complicated -- such as at most three offers in total, at most one email per week, at most two credit card offers, etc. Furthermore, the quantity constraints for each offer are typically more generic and could represent any business constraint: budgets per offer, lower bounds on expected number of responses, upper bounds on some type of risk measure, ratio of two measures (for example, ROI -- defined as total profit divided by total cost -- must be at least 20%), etc.

With these complications, which often appear in combination, the approach described can run into issues. The nonlinear programming algorithm might not converge well enough due to nondifferentiability, and finding a primal solution from the dual solution is no longer as simple as it is in this case, and the process becomes highly sensitive to the accuracy of the dual solution. Therefore, in building an algorithm for a general direct marketing problem, other techniques are required, such as those used by the commercial vendors mentioned in the paper.
RAAgnew
Calcite | Level 5
My write-up is purposely simplified. I have used this approach with more general constraints like you mention, including <= k offers per prospect where k > 1. My approach does have some math overhead in terms of deriving the appropriate dual problem and changing SAS code accordingly. This is not a big deal, but it is of course unnecessary with commercial optimizers like SAS Marketing Optimization. On the other hand, PROC NLP is available to any SAS/OR subscriber.
RAAgnew
Calcite | Level 5
For some reason, some of the text in my reply was deleted. Here is another attempt. My write-up is purposely simplified. I have used this approach with more general constraints like you mention, including that a prospect may receive at most k offers where k is greater than one. My approach does have some math overhead in terms of deriving the appropriate dual problem and changing SAS code accordingly. This is not a big deal, but it is of course unnecessary with commercial optimizers like SAS Marketing Optimization. On the other hand, PROC NLP is available to any SAS/OR subscriber.
RAAgnew
Calcite | Level 5

As a post-script, I now have a Marketing Optimization R-Script which solves my demo problem in about a minute on my home PC. http://home.comcast.net/~raagnew/Downloads/mktg_opt.R

YanXu
SAS Employee

PROC NLP is not under active development, It belongs to legacy procs. Please try the new NLP algorithms (Interior Point or Active Set) through PROC OPTMODEL. You can find more information about new NLP algorithms & OPTMODEL here

http://support.sas.com/documentation/cdl/en/ormpug/63975/HTML/default/viewer.htm#nlpsolver_toc.htm

thanks,

Yan

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

Multiple Linear Regression in SAS

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.

Discussion stats
  • 6 replies
  • 1860 views
  • 0 likes
  • 3 in conversation