Skip to content

Presenting choices

roelandheerema edited this page Feb 3, 2022 · 25 revisions

Start with a demo

The script BEC_Demo_Choice shows how easy it is to put a choice on screen. Fill in a minimal amount of specifications in the script and you will immediately get an intuition for how it works. More information is detailed below.

Four types of choices

The purpose of the presented decisions is to leverage economic discounting behavior, by making participants choose between a highly rewarded but costly option on the one hand, and an uncostly option associated with a smaller reward. We present choices of four types:

  1. delay discounting (For example: do you prefer receiving 20€ right now, or 30€ in two months from now?)
  2. risk discounting (For example: do you prefer receiving 20€ guaranteed, or 30€ if you win a lottery where you can also lose 10€?)
  3. physical effort discounting (For example: do you prefer receiving 20€ for no effort, or 30€ after climbing 4 flights of stairs?)
  4. mental effort discounting (For example: do you prefer receiving 20€ for no effort, or 30€ after copying 4 pages of text?)

In order to calculate the payment to the participant, the experimenter can draw rewarded trials that will actually get implemented. This would mean that the participant (1) had to wait the indicated time before the money is wired, (2) saw an animated wheel-of-fortune, (3) had to climb the actual indicated amount of flights of stairs, or (4) was sent home with a print version of Lorem ipsum shuffled (PDF in the Stimuli folder), from which they had to copy the indicated amounts of pages and lines. The text consists of nonwords from the famous lorem ipsum random text, but in a shuffled order. The font was altered such that it could not be converted into plain text by text recognition software implemented in scanners or scanning apps on phones. Participants were made conscious of the experience of effort when climbing the stairs on their way up to PRISME, or by copying the first 5 lines of text on the lab computers prior to starting the experiment.
Uncostly trials or locally implemented costly trials were paid out in cash after the experiment.

Binary discounting choices

The uncostly option is smaller and sooner, and is referred to in BECHAMEL with the prefix or suffix "SS", even if the cost in question is not delay. So, the smaller reward is the variable SSReward (a normalized value between 0 and 1), SSCost is always zero, choiceSS is a logical variable with value "1" when the uncostly option is chosen, and sideSS describes whether the uncostly option was presented on the left or on the right side of the screen.
Similarly, the costly option is larger and later, and is referred to in BECHAMEL with the prefix or suffix "LL", even if the cost in question is not delay. So, the variable LLCost is the cost level, expressed as a value between 0 and 1 (a normalized value between zero cost and the maximum cost level), and the larger reward is the variable LLReward which always takes on the value 1 (for 100%).
An individual choice can be plotted as a dot with LLCost on the x-axis, and SSReward on the y-axis, as the other two features of the choice are fixed and thus left implicit (i.e., LLReward = 1 and SSCost = 0):

choices

Each individual has their own indifference curve that describes for which cost levels of the costly option, there is an equivalent uncostly option of which the smaller reward has the same subjective value. SS choices are found above the indifference curve, LL choices are found below the indifference curve.

Presenting a choice

The choice types that are featured in BECHAMEL are discounting paradigms with 4 types of cost: delay, risk, physical effort, and mental effort. They are respectively referred to as numbers 1-4 in the variable choicetype.
Presenting a choice on screen is very simple and requires only the minimal information mentioned above. You just have to fill in a trialinput structure, and enter the settings structure and Psychtoolbox window.

trialinput.choicetype  %Set number (1:delay/2:risk/3:physical effort/4:mental effort)
trialinput.SSReward    %Reward for the uncostly (SS) option (between 0 and 1)
trialinput.Cost        %Cost level or the costly (LL) option (between 0 and 1)
[trialoutput,exitflag] = BEC_ShowChoice(window,exp_settings,trialinput)

Additionally, in trialinput you can set the side at which the SS option is presented, flag whether this is an example trial (which means there is more text on screen and the risk lottery is animated), specify the inter-trial interval during which a fixation cross is on screen, flag whether the pupil must be recorded with an eye tracker, and enter the trial number (which is used in setting the scene for the pupil data).

The output of the function is a structure containing all relevant information related to the choice that was just made. If the participant took too long to respond (i.e., the timeout time defined as exp_settings.timings.max_resp_time was exceeded), then choiceSS and RT are set to NaN. Same is the case if the ESCAPE key was pressed, in which case exitflag is set to 1.
In the example script BEC_Master_Mood, the data of all trials are gathered in a structure called trialinfo. For reproducibility of the results and simplicity of using shared choice analysis functions later, it is strongly recommended to do the same:

if choicetrial == 1
    AllData.trialinfo = trialoutput;
else
    AllData.trialinfo(choicetrial) = trialoutput;
end

There are a number of different functions in the BECHAMEL toolbox called to present the choices. This is how they work:

  • BEC_ShowChoice is the function that you call and that prepares, presents, and stores the choice. It also monitors for a response: a keypress on a computer, or a touch when the screen is tactile.
    • BEC_DrawChoiceScreen is literally a drawing function; it puts all the text and graphics on screen for any choice type. It also selects which cost is being drawn, which is done by either of the following auxiliary functions:
      • BEC_DrawDelayCost, BEC_DrawRiskCost, BEC_DrawPhysicalEffortCost,BEC_DrawMentalEffortCost. The bilateral cost visualization is put on screen. (Note: the visualization of delay below is new, it looked different before. The old version can still be found in BEC_DrawDelayCost2.)

Visualizing the costs

We chose to present the choices with a visualization of the costs, rather than a number on screen. The logic was that this would hopefully reduce heuristic decision-making (e.g., "I reject any risk >40%"). The reward, in euros, is still shown as a number rounded to multiples of 0.10€. When trialinput.Example = 1, there is more accompanying text on screen; otherwise, only the visualized costs and rewards are on screen. To represent the cost level, a red shaded area in a symbolic representation of the cost was chosen.

Delay: example trial

choice_delay_example

Delay: test trial

choice_delay

Risk: example trial

choice_risk_example

Risk: test trial

choice_risk

Physical effort: example trial

choice_physicaleffort_example

Physical effort: test trial

choice_physicaleffort

Mental effort: example trial

choice_mentaleffort_example

Mental effort: test trial

choice_mentaleffort


Verbose: delay

delai

Verbose: risk

risque

Verbose: effort

effort

Example implementation: with emotions

COGEMO

Institut du Cerveau

Clone this wiki locally