# Marketing - MaxDiff - Analyze as a Ranking Question - Compute Sawtooth-Style Preference Shares from Individual-Level Parameter Means (K Alternatives)

This QScript computes Sawtooth-style preference shares for the alternatives in a MaxDiff experiment using individual-level parameter means. The formula is given below.

## Example

This example uses the data from the MaxDiff Case Study. The table on the left shows a SUMMARY of Individual-Level Parameter Means generated using Q's Segments tool. The table on the right shows a SUMMARY of the preference shares generated by this QScript. In this example there were 5 alternatives shown in each task, so a value of 5 was entered when the QScript was run.

## Technical details

### Input data

This QScript uses data from individual-level parameter means from a MaxDiff experiment. The variables should be combined into a Number - Multi question that has the string Individual-Level Parameter Means in the name. The individual-level parameters question can be generated in Q from a segmentation of a ranking question (by right-clicking a node of the tree and selecting Save Individual-Level Parameter Means and Standard Deviations).

Alternatively, the individual-level parameter means can be computed externally and imported into Q as part of a larger data set. In this case:

### Outputs

A new Number - Multi question is generated in the project, and a table is added to the report to show the average of the computed values.

### Preference-share formula

Each respondent's utilities are first zero-centered by subtracting the average. The zero-centered utility score for alternative ${\displaystyle j}$ is denoted ${\displaystyle U_{j}}$. The un-scaled Sawtooth-style preference parameter for alternative ${\displaystyle j}$ is then:

${\displaystyle P_{j}={\frac {e^{U_{j}}}{e^{U_{j}}+K-1}}}$

where ${\displaystyle K}$ is the number of alternatives that were shown to the respondent in each task of the MaxDiff experiment.

The final Sawtooth-style preference share is obtained by scaling these parameters so that they add up to 1 (or 100%):

${\displaystyle S_{j}={\frac {P_{j}}{\sum _{j'}P_{j'}}}}$

## How to apply this QScript

• Start typing the name of the QScript into the Search features and data box in the top right of the Q window.
• Click on the QScript when it appears in the QScripts and Rules section of the search results.

OR

• Select Automate > Browse Online Library.
• Select this QScript from the list.

## Customizing the QScript

This QScript is written in JavaScript and can be customized by copying and modifying the JavaScript.

• Start typing the name of the QScript into the Search features and data box in the top right of the Q window.
• Hover your mouse over the QScript when it appears in the QScripts and Rules section of the search results.
• Press Edit a Copy (bottom-left corner of the preview).
• Modify the JavaScript (see QScripts for more detail on this).
• Either:
• Run the QScript, by pressing the blue triangle button.
• Save the QScript and run it at a later time, using Automate > Run QScript (Macro) from File.

### Customizing QScripts in older versions

• Create a new text file, giving it a file extension of .QScript. See here for more information about how to do this.
• Modify the JavaScript (see QScripts for more detail on this).
• Run the file using Automate > Run QScript (Macro) from File.

## JavaScript

includeWeb("QScript Functions for Setting Up Experiments");
var type = "Sawtooth-Style Preference Shares";
if (!maxDiffUtilityCalculation(type))
log("QScript Cancelled");
else
log("QScript Finished");