Have an idea?

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

How to represent cost or price as a linear attribute?


How should I code "cost per month" and "progression-free survival" as linear attributes? Both of them have three levels. Will it make a difference if I code them as categorical attributes? Thanks!
asked May 14, 2016 by Germaine
retagged May 14, 2016 by Walter Williams

1 Answer

0 votes
Our Logit, Latent Class, and HB utility estimation routines provide for estimating certain attributes you specify as a linear function rather than as dummy-coded (part-worth specification) utilities (one per attribute level).

It usually DOES make a difference whether you code it one way or the other.  With three levels along an attribute, the default model gives you three discrete utility points that may not necessarily fall on a straight line.  And, if you do estimation at the segment (latent class) or individual (HB) level, the degree of nonlinearity in the utility function could differ across classes and across individuals.

But, if you impose a linearity assumption in the model specification for that attribute, it must take the data and fit just a straight line to all three points.  Lower fit will generally result.

To specify as a linear code, you usually pick an option that says  "attribute coding" in our dialogs and use a drop-down control to change the coding for the target attribute from Part-worth to Linear.  Then, you'll see that for each attribute level a new column appears where you specify the Value associated with each attribute level.  These are the values that will be put into your design matrix in a single column when the internal regression is run.

If your levels for cost per month were something like $500, $600, $800 then it would be a good idea to put 5, 6, and 8 as the three values, representing 100s of dollars.  HB estimation is sensitive to how large in magnitude the differences are in the level Values you specify for linear estimation.  Best convergence occurs if the units are in the single digits rather than the 100s, 1000s, or 10000s of digits.  (If you are using logit or latent class, this notion of converting your original units to a smaller range of units for proper convergence is unnecessary.)

Just remember the scaling you specified when you try to interpret any raw coefficients in the reports.  And, remember to use the new units of scaling you are specifying when you define products in the market simulator.  "5" now refers to "500" etc.
answered May 14, 2016 by Bryan Orme Platinum Sawtooth Software, Inc. (131,990 points)
Thank you very much for the detailed explanation!