Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Credits:
Millisecond thanks Stephanie Miles and Caitlin Howlett for ample support in continuously
improving the Inquisit WCST script!
improving the Inquisit WCST script!
Created: January 24, 2012
Last Modified: January 02, 2025 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements a computerized version of the Wisconsin Cardsort Test (WCST); a test of cognitive flexibility upon (unannounced) rule changes. The WCST implemented in this script is based in part on Grant & Berg (1948)* as well as Heaton et al (1993) and is played with 2 decks of cards (64 cards in each deck).
DISCLAIMER This script* runs Millisecond's best effort attempt to code perserverative responses according to the guidelines outlined by Heaton et al (1993). Coding may, however, still differ from published definitions or contain errors. Please check the definitions of the coded variables used in this script under the data glossary. If in doubt, manually score the raw responses.
•Note: previous Inquisit WCST scripts may have used a different definition of Perserverative Responses
Grant, D.A. & Berg. E.A. (1948). A behavioral analysis of degree of reinforcement and ease of shifting to new responses in a Weigl-type card sorting problem. Journal of Experimental Psychology, 38, 404-411.
Heaton, R., Chelune, G., Talley, J., Kay, G., & Curtiss, G. Wisconsin Card Sorting Test Manual—Revised and Expanded 1993. Lutz, FL: Psychological Assessment Resources Inc
Miles, S., Howlett, C.A., Berryman, C. et al. Considerations for using the Wisconsin Card Sorting Test to assess cognitive flexibility. Behav Res (2021). https://doi.org/10.3758/s13428-021-01551-3
5 minutes
Participants are asked to sort cards into four different "categories". No instructions are given in regard to the categorization rules. The four different categories are - one red triangle - two green stars - three yellow crosses - four blue circles. The cards to sort into these piles have similar designs and vary in color (4), shape (4), and number (4).
(1) Cards:
- Participants receive the equivalent of 2 decks of cards. Each deck contains 64 different cards.
- Researchers can set whether to display the deck/card info for the participants
on the screen under section EDITABLE PARAMETERS
- the cards of each deck are randomized without replacement (see list.selectcard for more detail)
(2) Order of Categorization Rules: Color -> Form -> Number
- Maximal 2 of each category
- Rules change after 10 consecutive correct responses for a category (default, can be changed under
VALUES)
(3) End of Task:
(a) reached the maximum number of cards:
- Maximum Number of Trials/Cards: 2 (decks) x 64 (cards) => 128 cards
(b) successfully completed 2 sequences of the color->form->number sequence
- Minimum number of trials/Cards = 10 (correct trials per block) * 6 (max number of blocks)=> 60 cards
(4) Instructions
- Instructions can easily be changed under EDITABLE INSTRUCTIONS
- Text Stimuli can be easily changed under EDITABLE STIMULI
(5) Dependent Variables/Scores:
- latency of response
- accuracy of response
- total number of correct responses/total number of errors
- Total Number/Percentage of perseverative responses
- total number of trials
- number of trials needed to complete first category
- categories completed (Max = 6)
- Number of "Failures to Maintain Set" across Experiment
- "Learning to Learn" measures: error difference scores (of percentages) from adjacent categories
IMPORTANT please be aware that the definitions of the summary variables in this script might differ from the originals
as well as from other published ones.
provided by Millisecond - can be edited in script "wcst_instructions_inc.iqjs"
Once the trial-by-responses have been collected, the raw data gets re-analyzed to determine
perseverative responding (which can only be done in retrospect).
The re-analyzed raw data columns are added by block.rawDataScoring
File Name: WCST_summary*.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 |
| csTotalTrials | Maximum Number of trials (default = 128 => 2 decks x 64 cards) |
| csTotalBlocks | Maximum Number each category is tested (default = 2) |
| correctStreakThreshold | Number of consecutive correct responses before a rule change (default = 10) |
| setmaintainThreshold | Number of consecutive correct responses after which an incorrect response is scored as a "Failure to maintain Set" (default = 5) |
| showDeckInfo | If set to "true" information about the deck (e.g. 1 of 2) and card number (e.g. 7 of 64) are displayed on the screen for the participant to see (default: false (0) |
| countColorBlocks | The number of color blocks started |
| countFormBlocks | The number of form blocks started |
| countNumberBlocks | The number of number blocks started |
| colortrialcount | Sum up the trials run by category 'color' |
| numbertrialcount | Sum up the trials run by category 'number' |
| formtrialcount | Sum up the trials run by category 'form' |
| trialCount | Counts the total trials run |
| totalCorrect | Number of correct responses across the task |
| numberErrors | Number of total errors (all incorrect responses) made |
| percentErrors | Percentage of incorrect responses (relative to all responses) |
| numberpResponses | Number of perseverative responses made |
| percentpResponses | Percentage of Perserverative Responses (relative to all responses) |
| numberPErrors | Number of perseverative errors ( responses have to be incorrect AND scored as perseverative) |
| percentPErrors | Percentage of Perserverative Errors (relative to all responses) |
| numberOtherErrors | Number of 'Other' error responses |
| percentOtherErrors | Percentage of Other error responses (relative to all responses) |
| completedCategories | Number of categories (color, form, number) successfully completed (min = 0, max = 6) |
| sumFailureMaintainSet | Keeps a total of the number of times a participants selects an incorrect card after a correctstreak that was >= setmaintainThreshold |
| trialsCompleteFirstCategory | Keeps track of how many trials a participant needed to complete the first category after having maintained a correct streak of 5 or higher (default) |
| percentErrorsBlock1 | Percent ERROR responses in block1 (relative to all responses in that block) |
| percentErrorsBlock1 | Percent ERROR responses in block2 (relative to all responses in that block) |
| percentErrorsBlock1 | Percent ERROR responses in block3 (relative to all responses in that block) |
| percentErrorsBlock1 | Percent ERROR responses in block4 (relative to all responses in that block) |
| percentErrorsBlock1 | Percent ERROR responses in block5 (relative to all responses in that block) |
| percentErrorsBlock1 | Percent ERROR responses in block6 (relative to all responses in that block) |
| diffC1F1-diffF2N2 | Difference scores of percent errors in adjacent categories (e.g. DiffC1F1 = percenterrors in first color category - percenterrors in first form category) |
| diffC1F1 | Difference scores of percent ERRORS in adjacent categories (e.g. diffC1F1 = percenterrors in first color category - percenterrors in first form category) |
| diffF1N1 | Difference scores of percent ERRORS in adjacent categories (F1-N1) |
| diffN1C2 | Difference scores of percent ERRORS in adjacent categories (N1-C2) |
| diffC2F2 | Difference scores of percent ERRORS in adjacent categories (C2-F2) |
| diffF2N2 | Difference scores of percent ERRORS in adjacent categories (F2-N2) |
| learningToLearn | The mean of the obtained difference scores |
File Name: wcst_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 |
| 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. |
| phase | 'testing' 'scoring' - 'duplicates' the selected raw data and adds scoring of perserverative response |
| countColorBlocks | The number of color blocks started |
| countFormBlocks | The number of number blocks started |
| countNumberBlocks | The number of form blocks started |
| colortrialcount | Sum up the trials run by category 'color' |
| numbertrialcount | Sum up the trials run by category 'number' |
| formtrialcount | Sum up the trials run by category 'form' |
| trialCount | Counts the total trials run |
| category | 1 = color; 2 = form; 3 = number |
| card | Index of presented card |
| stimulusItem.1 | The presented target card stimulusItem.2- |
| stimulusItem.5 | The selection of cards to choose from (stay the same throughout the task) |
| response | The participant's response (card selection) |
| latency | The response latency in ms; measured from onset of target card |
| responseCategory | => records features that the selected card (response) and the test card have in common CFN (color, form, number); CF (color; form); CN (color, number); FN (form, number) C (color); F (form); N (number); O (other) |
| ambiguous | 0 = responseCategory "C", "F", "N" are unambiguous 1 = any other response |
| correct | The correctness of the response (1 = correct; 0 = otherwise) |
| correctStreak | Counts consecutive correct responses (if an error is made, it's reset back to 0) |
| totalCorrect | Sums up all the correct responses across the task |
| totalError | Sums up all the incorrect responses across the task |
| scoringDeckCount | Tracks the number of decks run |
| scoringTrialCount | Tracks the number of total trials run |
| scoringtrialCountPerCategory | Tracks the number of trials run per category |
| scoringCategoryCount | Tracks the number of categories run |
| scoringCategory | Tracks the category run: 1 = C; 2 = F; 3 = N |
| scoringCard | Tracks the specific card presented during the trial |
| scoringResponse | Tracks the selected response card |
| scoringRespCategories | Tracks the response category; e.g. CN => the response falls into the color/number categories |
| scoringAcc | Tracks the accuracy of the response: 1 = correct (aka respCategories contained the current category); 0 = error |
| scoringCorrectStreak | Tracks the number of consecutive correct responses |
| scoringAmbiguousResponse | Tracks the ambiguity of the response: 1 = ambiguous response (falls into one than more than one response category); 0 = unambiguous response |
| scoringPerseverativeResponse | Tracks perseverative responses 1 = perseverative response (pResponse) 0 = not scored as a pResponse* (see below for how pResponses are scored in this script) |
| scoringpResponsePrinciple | Tracks the pResponse-principle that were (likely) currently in effect for scoring pResponses |
| scoringPerseverativeError | 1 = response was incorrect AND coded as perserverative 0 = otherwise |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design Parameters |
||
| csTotalTrials | Maximum Number of trials (default = 128 => 2 decks x 64 cards) | 128 |
| csTotalBlocks | Maximum Number each category is tested (default = 2) | 2 |
| correctStreakThreshold | Number of consecutive correct responses before a rule change (default = 10) | 10 |
| setmaintainThreshold | Number of consecutive correct responses after which an incorrect response is scored as a "Failure to maintain Set" (default = 5) | 5 |
| showDeckInfo | If set to " true" information about the deck (e.g. 1 of 2) and card number (e.g. 7 of 64) are displayed on the screen for the participant to see (default: false) | false |
Sizing Parameters |
||
| picSize | Size of cards determined by canvas height percentage | 30% |