This article describes how to run TURF (Total Unduplicated Reach and Frequency) analysis.
The article describes how to create the below TURF analysis output using bubblegum flavor preferences and showing a portfolio with four alternatives.
Requirements
-
A data set consisting of at least 100 respondents, ideally many more.
-
A measurement of the appeal of three or more different alternatives per respondent. These measurements can be from rating scales, historic purchase data, MaxDiff, conjoint utilities, or preference predictions.
-
All measurement variables converted to a binary variable, where a 1 indicates the person should be counted in whatever is being measured a 0 indicates otherwise. The easiest way to do this in Displayr is to combine the variables as a Binary - Multi Variable Set. Please see Variable Sets for more detail on how to change this in Displayr.
-
Cases that have any missing data in the measurements will be excluded from the analysis. You may wish to set any missing data values to Include in analysis by using the Missing Data settings in the Object inspector.
-
For the incrementality plot, it will only work if each TURF output used in it has the same brands as the preceding TURF output.
Method
- From the toolbar, go to Anything
> Advanced Analysis > TURF > TURF Analysis.
- In the object inspector go to the Data tab.
- Select the measurement variable from the Alternatives list.
- Specify your desired Portfolio size.
- OPTIONAL: To select an alternative to be automatically included in the output go to Constraints > Must Include and select the desired alternative from the list. The selected alternative will appear in all portfolios.
- OPTIONAL: To select a set of alternatives that can not appear in a portfolio together go to Constraints > Mutually exclusive set 1 and select the desired alternative from the list. You can select up to Portfolio size minus 1 (in our example 4-1 = 3) alternatives per set.
- OPTIONAL: Specify the Minimum alternatives per case - the minimum number of alternatives liked in the portfolio. Respondents not reaching the number will not be included in the analysis. By default, the value is set to 1.
- OPTIONAL: Specify the Maximum alternatives per case - the maximum number of alternatives liked in the portfolio. Respondents liking more alternatives will not be included in the analysis. The value needs to be less than the number of alternatives in order for it to have any effect. By default, the value is set to 1000.
- OPTIONAL: Specify the maximum number of portfolios to investigate before the Monte Carlo algorithm is used under Advanced > Maximum portfolios to investigate. The Monte Carlo algorithm is much faster for large problems and almost always provides the same answer as an exhaustive search. The Monte Carlo algorithm starts with a randomly generated portfolio and then uses a "hill climbing" approach to find an optimal portfolio. For each alternative in this portfolio, candidate portfolios are generated by swapping it with alternatives not in the portfolio to find a portfolio with better reach, breaking ties with frequency. It does this while respecting the constraints set by the user, e.g. mutually exclusive alternatives. The algorithm repeats this with the best portfolio from the previous step and only stops when it has reach a local maxima, i.e., no better portfolio is found after exploring all replacements. This is done for 100 randomly generated portfolios and outputs the best portfolios that it finds.
- OPTIONAL: by default, the output contains the top 10 portfolios sorted by reach. To increase the number of portfolios shown in the output go to Output > Number of portfolios to keep and input the desired number of portfolios to show.
- OPTIONAL: You can extract additional information from your TURF output via R: How to Extract Information from an Item using R.
Technical details
You can make your TURF analysis interactive by creating controls and using those as inputs to the TURF analysis, such as the portfolio size, number of portfolios to keep, and add in items portfolios must include. This will enable viewers of the dashboard to change those and recreate the analysis on the fly. For example to add in a control for the portfolio size:
- From the toolbar select one of the control's you'd like to use from the Control menu.
- Place on the page and configure it as you'd like.
- Click on the TURF output and in the object inspector click Show Advanced Options > Edit R code.
- Edit the R Code in the editor so that the portfolio.size argument equals your control name (found in its object inspector > General > Name) as a numeric value. For example using a combo box with values 1-10 for portfolio size, the R code would be amended as follows where Combo.box is the Name of the control being used:
portfolio.size = as.numeric(Combo.box),
5. Now when the combo box value is changed, the TURF analysis will be updated based on the selection.
Other arguments in the R code that can be edited like this is: n.portfolios.to.keep for the number of top portfolios to keep.
To adjust the items that must be included, you will add the code below before the mutually.exclusive.sets line in the code at line 18:
#if there is a selection in the must include combo box,
#get its location in the list of alternatives
if(length(Combo.box) > 0) must.include = match(Combo.box,alternative.names)
Next
How to Create a TURF Upset Plot
How to Create a TURF Incrementality Plot
Using TURF (Total Unduplicated Reach and Frequency) to Optimize Product Portfolios eBook