# Choice Modeling - Save Variable(s) - RLH (Root Likelihood)

Save a variable to the data set containing the root likelihood for each case (e.g., respondent)

Creates variables which contain RLH (root-likelihood) for each respondent, according to a Choice Modeling - Latent Class Analysis or Choice Modeling - Hierarchical Bayes output. If the model output contained holdout questions, variables for in-sample and holdout RLH will be created, otherwise, just one RLH variable will be created. RLH is not able to be saved to a variable for models with simulated data and models created using a CHO data file where respondent IDs were not specified. Model outputs will first need to be recalculated if they were created prior to November 2018.

## Output

Running this QScript >will produce a new variable, which will appear in your data set for use in further analyses.

## Technical details

The RLH for each respondent is the geometric mean of the likelihoods of their tasks, i.e., the kth root of the product of the likelihoods, where k is the number of tasks for the respondent.

## 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('RLH', 'Latent Class Analysis or Hierarchical Bayes Choice Model', 'input.choicemodel = ',
'\nif (!is.null(input.choicemodel$simulated.respondent.parameters)) stop()\n' + 'if (is.null(input.choicemodel$rlh.out)) {\n' +
'    input.choicemodel$rlh\n' + '} else {\n' + ' result <- cbind(input.choicemodel$rlh, input.choicemodel\$rlh.out)\n' +
'    colnames(result) <- c("In-sample RLH", "Holdout RLH")\n' +
'    result\n' +
'}', null, null, 'rlh', 'FitChoice');