Have an idea?

Visit Sawtooth Software Feedback to share your ideas on how we can improve our products.

ACBC constraints for piecewise-coded price

I have an ACBC study with summed pricing and I've run an unconstrained estimation using piecewise coding for price.

It strengthened my belief that the utilities for the two lowest price ranges have positive slopes while for the rest of them they are negative on the average level (we ended up with quite a wide total range for summed prices, where the lowest prices might have made the respondent doubt the quality of the products shown which led to decline in their choices).

At the same time, I saw a reversal, even for average utility, for one of the higher prices, that can't be explained logically other than being caused by random noise and lack of choices.

So I would like to correct this issue by applying negative constraints for the higher prices while keeping lower prices unconstrained. However, it doesn't seem to be an option in the ACBC software (the constraint you choose would be applied to the whole attribute).

Could you please advise me a possible way to work this around?

Would an export to .cho and estimation in CBC/HB help?

Many thanks,
asked Jun 3, 2015 by IGaaa (210 points)

1 Answer

+1 vote
That's an interesting question.  Indeed, the software does not let you impose negative constraints on some of the piecewise betas and positive ones on the other ones.

Here are my recommendations:

1.  Make sure you have enough supporting data points for each beta in the piecewise regression.  The counting facilities in ACBC let you examine across the sample of respondents how many product concepts were shown at each price.  I don't know how much is "enough" for your situation; it depends so much on how important price is (how much signal there is to capture).  Adjust your cutpoints until you have enough data points supporting each beta to resolve the reversals issues.

2.  With unconstrained piecewise HB estimation in ACBC, convergence is less stable than with constrained.  This means you may need to dramatically increase the number of "used" iterations from the defaults to something like 100K or 400K.  The reversals you are currently seeing may be due just to noise and more used iterations may be able to clean things up.

3.  If the suggestions above don't solve the reversals issue, recognize that there is some measurement error in the utilities and that reversals can and do happen (especially with limited sample sizes and use of cutpoints that leave relatively few observations within certain price ranges).  You may need to just live with the reversals or decide to somehow remedy the reversals post hoc.  One approach to doing that is to post process the utilities in Excel or your favorite stats package.  For a respondent, if you see a reversal between two utility points of price, you can set both of the utilities to their average.

4.  The most challenging solution would be to export the data to CBC/HB and to manually code the piecewise function (since our software will not export the piecewise coding in the design matrix for you to .cho or .csv files).  That is certainly time-consuming and tricky and involves specifying the piecewise independent variable terms (the X terms) using "user-specified coding" in CBC/HB.  If you did that, then you could indeed constrain certain piecewise beta terms to be negative and others positive.
answered Jun 3, 2015 by Bryan Orme Platinum Sawtooth Software, Inc. (136,165 points)
Thanks so much Bryan for your quick reply!
I'll follow your recommendations and may have to get back to you regarding the coding in 4. Otherwise, 3. seems quite easy to implement though a little cheating :)