# Marketing - MaxDiff - Save Variable(s) - Preference Shares

Save variables that contain preference share for each alternative by respondent

Create new variables which contain the preference shares for the alternatives in a MaxDiff latent class analysisMaxDiff latent class analysis, MaxDiff hierarchical BayesMaxDiff hierarchical Bayes or MaxDiff ensembleMaxDiff ensemble output. The shares are computed from the individual-level coefficients generated by the MaxDiff analysis. You should select the output before running this script.

## Example

The script produces a SUMMARY table with the new variables:

## Technical details

The formula used to obtain the share for alternative $\displaystyle{ j }$ of an attribute is:

$\displaystyle{ S_{j} = \frac{e^{\beta_{j}}}{\sum_{j'}e^{\beta_{j'}}} }$,

where the sum ranges over all of the alternatives, and $\displaystyle{ \beta_{j} }$ is the individual-level coefficient for alternative $\displaystyle{ 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 R Output Functions');

saveVariables('Preference shares', 'MaxDiff',
'prop.table(exp(as.matrix((flipMaxDiff::RespondentParameters(', ')))), 1)',
null, null, 'pref.shr', ['FitMaxDiff', 'MaxDiffEnsemble']);