Credits:
Millisecond thanks Dr. Pleskac for sharing his original program as well as generously
supporting our efforts to replicate it in Inquisit!
Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
supporting our efforts to replicate it in Inquisit!
Created: January 02, 2013
Last Modified: January 18, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Angling Risk Task (ART, Pleaskac, 2008), a procedure to study risk taking behavior. The original ART as well as more detailed information can be obtained from Dr.Pleskac by request.
Pleskac, T.J (2008). Decision Making and Learning While Taking Sequential Risks. Journal of Experimental Psychology: Learning, Memory, and Cognition, 34, 167+185.
9 minutes
Participants are playing in a fishing tournament for 30 (default) number of rounds. The goal is to win as much money as possible during each round. Participants win money by fishing red fish out of a pond that contains 127 red fish (default) and 1 blue fish. Each time they catch a red fish, they win 5cents (default) which is put in a temporary bank. If they catch the blue fish instead, the current round is over and all money in the temporary bank is lost. If participants don't want to lose their temporary money they have to decide when to stop catching fish and collect the money they have earned. Once they decide to collect the money, the money is transferred to a permanent bank and the current round is over. Participants can play the game under • 2 different weather conditions: a) 'clear' (all fish are visible) or b) 'cloudy' (no fish are visible) • 2 different release conditions: a) 'catch n'keep' (fish are not returned to the lake => chance to fish blue fish increases with each successful fishing attempt) b) 'catch n'release' (fish are returned to the lake => chance to fish blue fish stays constant)
ART vs BART (Balloon Analogue Risk Task; Lejuez et al., 2002) from Pleskac - readme.txt (in original ART experimental package): "The weather conditions of the fishing tournament can also be changed to manipulate the amount of learning necessary in the task and test the learning and risk assessment prediction. The tournament can take place on a sunny day, allowing participants to see how many fish are swimming in the pond and eliminating the need to learn.
In contrast, the tournament can take place on a cloudy day, concealing the fish in the pond, which in turn forces participants to learn how many are in the pond. This is a stronger manipulation of learning than can be done with the BART because it removes any helpful cues. For example, a helpful cue in the BART is the relation between the balloon size and the edge of the screen because the balloon is set to explode for certain when it fills the screen. The ART also offers a visually informative and understandable display in the sunny tournaments so that participants are fully aware of the parameters of the task."
• This script runs any of the four conditions of the ART
• By default, parameters can be set at the beginning of each script run
Instructions are the original ART instructions by Pleskac (2008) (with minor modifications).
Instructions are presented via simple htm pages. These htm pages are included with this script and
can easily be adapted to different languages.
File Name: anglingrisktaskSummary*.iqdat
| Name | Description |
|---|---|
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
| expCondition | 1 = clear, catch n'keep 2 = cloudy, catch n'keep 3 = clear, catch n'release 4 = cloudy, catch n'release |
| releaseCondition | 1 = no release/catch n'keep (default) 2 = release/catch n'release |
| weatherCondition | 0 = clear (default) 1 = cloudy |
| maxFishCount | The number of fish in the pond at the start of each fishing round |
| maxTripCount | Number of fishing trips planned |
| fixedSampling | 1 = fixed samling: the sampling of the blue fish is fixed across participants 0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined) |
| fixedFishingTrips | Stores the number of fishingTrips that can be made under the fixed sampling condition Example: 64 => 63 successful fishing trips can be made before the blue fish is caught on the 64th trip |
| reward | Amount paid for each red fish caught (default: $0.05) |
| totalWinnings | Stores the current reward money already safely in the bank |
| tripCount | Actual number of fishing trips made |
| tripCount1Set | Number of fishing trips made during the first set (set1=trip1-trip10) |
| tripCount2Set | Number of fishing trips made during the second set (set2=trip11-trip20) |
| tripCount3Set | Number of fishing trips made during the third set (set3=trip21-trip30) |
| successTrip | Tracks the number of successful fishing trips (successful = did not fish a blue fish during this trip) |
| successTrip1Set | Number of successful fishing trips during set1 trips |
| successTrip2Set | Number of successful fishing trips during set2 trips |
| successTrip3Set | Number of successful fishing trips during set3 trips |
| totalFishingCount | Tracks the number of fishing attempts across all trips |
| totalFishingCount1Set | Number of fishing attempts during set1 trips |
| totalFishingCount2Set | Number of fishing attempts during set2 trips |
| totalFishingCount3Set | Number of fishing attempts during set3 trips |
| adjTotalFishingCount | Tracks the number of SUCCESSFUL fishing attempts across all trips |
| adjTotalFishingCount1Set | Number of SUCCESSFUL fishing attempts during set1 trips |
| adjTotalFishingCount2Set | Number of SUCCESSFUL fishing attempts during set2 trips |
| adjTotalFishingCount3Set | Number of SUCCESSFUL fishing attempts during set3 trips |
| totalSuddenEnds | Tracks the number of times a blue fish was caught across all trips |
| totalSuddenEnds1Set | Number of times a blue fish was caught during set1 trips |
| totalSuddenEnds2Set | Number of times a blue fish was caught during set2 trips |
| totalSuddenEnds3Set | Number of times a blue fish was caught during set3 trips |
| avgFishingCount | Mean number of times participant selected to fish (includes unsuccessful trips) across all trips |
| avgFishingCount1Set | Mean number of times participant selected to fish (includes unsuccessful trips) during set1 trips |
| avgFishingCount2Set | Mean number of times participant selected to fish (includes unsuccessful trips) during set2 trips |
| avgFishingCount3Set | Mean number of times participant selected to fish (includes unsuccessful trips) during set3 trips |
| adjAvgFishingCount | Mean number of times participant selected to fish (EXCLUDES unsuccessful trips) across all trips |
| adjAvgFishingCount1Set | Mean number of times participant selected to fish (EXCLUDES unsuccessful trips) during set1 trips |
| adjAvgFishingCount3Set | Mean number of times participant selected to fish (EXCLUDES unsuccessful trips) during set2 trips |
| adjAvgFishingCount2Set | Mean number of times participant selected to fish (EXCLUDES unsuccessful trips) during set3 trips |
| meanCastLatency | Mean cast latency (in ms) for tournament |
File Name: anglingrisktask_raw*.iqdat
| Name | Description |
|---|---|
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| expCondition | 1 = clear, catch n'keep 2 = cloudy, catch n'keep 3 = clear, catch n'release 4 = cloudy, catch n'release |
| releaseCondition | 1 = no release/catch n'keep (default) 2 = release/catch n'release |
| weatherCondition | 0 = clear (default) 1 = cloudy |
| maxFishCount | The number of fish in the pond at the start of each fishing round |
| maxTripCount | Number of fishing trips planned |
| fixedSampling | 1 = fixed samling: the sampling of the blue fish is fixed across participants 0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined) |
| fixedFishingTrips | Stores the number of fishingTrips that can be made under the fixed sampling condition Example: 64 => 63 successful fishing trips can be made before the blue fish is caught on the 64th trip |
| reward | Amount paid for each red fish caught (default: $0.05) |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
| set | 1 (first third of fishing trips), 2 (second third), 3 (last third) |
| tripCount | Tracks the number of fishing trips |
| nextFish | Stores the number of the nextFish (1 = blue fish caught, any other number = red fish caught) |
| winFishCount | Stores the current number of red fish left in the pond |
| currentWinnings | Stores the current potential reward money (not safe yet) |
| totalWinnings | Stores the current reward money already safely in the bank |
| response | The response of participant ("goFishButton", "collectButton", "okButton") |
| successTrip | Tracks the number of successful fishing trips (successful = did not fish a blue fish during this trip) |
| latency | Response latency (in ms) |
| timeBefore1stCast | Latency before participant decide to do first cast (empty if participant decides to collect right away) |
| castLatency | Time it takes for participant to decide to cast (starting at start of trial.xxxTournament); includes first cast |
| sumRTCastLatency | Sum of all cast latencies (used to calculate meanCastLatency) |
| timeTimeBeforeCollect | Time (in ms) before participant decides to collect (measured from onset of trip until collect; if balloon explodes it's empty) |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
| parameterSelection | ParameterSelection = true (default): a screen is shown that let's participant/experimenter set the parameters parameterSelection = false; default values are used that can be changed below | true |
| showCatchring | 1= show a ring around the fish that was caught 0 = don't show a ring around the fish that was caught | 1 |
| catchring | Duration (in ms) the caught fish (with green ring around) is presented | 0 |
| showTripCount | = 'tripCount' is presented on the screen 2 = 'tripCount' is NOT presented on the screen (default) | 2 |
Parameters That Are Set Up Front If Parameterselection = True (Otherwise Can Be Changed Below) |
||
| maxFishCount | Sets the number of fish in the pond suggested default for no-release condition: 128 (compares best to BART procedure) suggested default for release condition: 65 | 128 |
| weatherCondition | 0 = clear (default) 1 = cloudy | 0 |
| releaseCondition | 1 = no release/catch n'keep (default) 2 = release/catch n'release | 1 |
| maxTripCount | Number of trips it is suggested to use a number that is divisible by 3 as in addition to overall performance per trip condition, this script tracks performance by 3 sets of trips (first, second, third) Example: for 30 trips: first 10, second 10, third 10 trips get tracked separately if the chosen number is NOT divisible by 3, the script still runs but the summary variables may not be meaningful | 30 |
| reward | Amount paid for each red fish caught | 0.05 |
| fixedSampling | 1 = fixed samling: participants would catch the blue fish at the same point for each fishing round 0 = random sampling (default); computers samples randomly when the blue fish is caught (not predetermined) !!! fixed sampling only works in this script for 'catch n'keep' condition with N = 128 fish in the pond and tripnumbers = 30 If 'catch n'release' condition is chosen, sampling is changed automatically to random. If 'catch n'keep' condition is chosen, number of trips is set automatically to 30 and number of fish to 128 | 1 |
| fixedSamplingCheck | 1 = script automatically checks if the conditions for fixed sampling is met (if fixedSampling is selected) => if not, computer adjusts the conditions: for no-release conditions, the number of fish is set to 128 and the number of fishing trips is set to 30; for release conditions, fixed sampling is turned into random sampling 0 = script doesn't automatically check and correct conditions for fixed sampling => this is useful if you want to change the list that is used for fixed sampling (->list.explosionpoint) and adjust it for a different number of fish in the pond or different number of fishing trips. | 1 |