-
Notifications
You must be signed in to change notification settings - Fork 0
Presenting choices
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.
The original instructions for the choice task as we applied it in the Paris Brain Institute can be found in the Stimuli folder. You can find the original PowerPoint file but also slides saved as images that are used in presenting the instructions to the participant using BEC_InstructionScreens.m
.
The purpose of the presented decisions is to quantify economic discounting behavior, by making participants choose between a highly rewarded but costly option on the one hand, and an uncostly option with a smaller reward. We present choices with 4 different cost types:
- delay (For example: do you prefer receiving 20€ right now, or 30€ in two months from now?)
- risk (For example: do you prefer receiving 20€ guaranteed, or 30€ if you win a lottery where you can also lose 10€?)
- physical effort (For example: do you prefer receiving 20€ for no effort, or 30€ after climbing 4 flights of stairs?)
- mental effort (For example: do you prefer receiving 20€ for no effort, or 30€ after copying 4 pages of text?)
You could consider actually implementing a selection of trials for real-world payment to the participant. Should a costly choice be drawn, this would mean that the participant (1) has to wait the indicated time before the money is wired, (2) sees an animated wheel-of-fortune, (3) has to climb the actual indicated amount of flights of stairs, or (4) is sent home with a print version of Lorem ipsum shuffled (PDF in the Stimuli folder), from which they have 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 is altered such that it could not be converted into plain text by text recognition software implemented in scanners or scanning apps on phones. In our experiments, participants were made conscious of the experience of effort when climbing the stairs to the behavioral testing lab of or institute, 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.
The uncostly option is smaller and sooner, and is referred to in the OTG toolbox 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 the OTG toolbox 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):
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.
The choice types that are featured in the OTG toolbox 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. Most importantly, choiceSS is the choice (1 for uncostly option chosen, 0 for costly option chosen) and RT is the response time in seconds. 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 demo scripts in the OTG toolbox, 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
Choice data can be recovered from the trialinfo structure. For example, if you want to visualize the choices that were made, consider the following lines of code:
trialinfo = struct2table(AllData.trialinfo); figure; scatter(trialinfo.Cost,trialinfo.SSReward,40,trialinfo.choiceSS,'filled') xlabel('Cost');ylabel('Small reward');title('Choices')
You should get something that looks like the figure above on your screen.
There are a number of different functions in the OTG 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.
-
-
We chose to present the choices with a visualization of the costs, rather than a number on screen. We speculated that this would 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
Delay: test trial
Risk: example trial
(Note that the shades of green and red visualized in the figures below are outdated; in the current version of the toolbox there is a colour-corrected combination to accommodate red/green colorblind participants.)
Risk: test trial
Physical effort: example trial
Physical effort: test trial
Mental effort: example trial
Mental effort: test trial