The D-score Shiny App
This app will help you in computing different D-scores for the Implicit Association Test (IAT; Greenwald et al., 1998), according to Greenwald, Nosek and Banaji (2003). Beyond the computation of the D-scores per se, the DShinyApp app generates different graphic representations which will allow you to observe how the D-scores change according to the selected D (e.g., the different strategies for the error replacement), and the different settings you specified.
Within the features offered by the app, you can decide whether to discard participants with a high proportion of incorrect responses (Nosek, Banaji & Greenwald, 2002), or participants with a high percentage of fast responses (Greenwald et al., 2003), or both. At the end of your computation, you can download a file containing all of your participants' D-scores for further analyses.
In the following sections, details on the functioning of the app and its features are provided.
Import Data
Before importing the data:
- Remove from the dataset the pure practice blocks of the IAT (i.e., the blocks in which only either the target or the attirbute stimuli are sorted in their reference categories).
- The IAT data are in a CSV file with "," set as separator of the columns. In the template downloadable at "Download CSV Template", "," is already set as the column separator.
- Rename the columns according to the columns' names of the Template file, and define the variables as follows:
- participant: it defines the ID of the participants. The IDs may be either numeric (e.g., 1,2,..300...450) or a string (e.g., ss01, aa05, JohnDoe1001 etc.).
- block: It defines the blocks of the IAT. The labels identifying each block are not importart per se. The important thing is that each block is defined by a unique label, hence there have to be four distinct labels defining the practice and test blocks of Mapping A (e.g., practiceWhiteGood, testWhiteGood) and the practice and test block of Mapping B (e.g., practiceWhiteBad, testWhiteBad).
- latency: It contains the latencies of the responses expressed in millisecond. If the IAT DID NOT include a built-in correction, place the raw latencies in this variable. If the IAT DID include a built-in correction, please place the already inflated latency of the error responses.
- correct: It contains the correct and error responses to the IAT. Correct responses have to be coded as 1, error responses have to be coded as 0.
Summarizing, for using the App it is fundamental that the dataset contains the four abovementioned variables with the specific associated names.
How it works
The app is provided with a toy dataset containing data from a Race IAT. If you check the "Race IAT dataset" box, the data will be automatically loaded in the server, and the D-score can be computed. Otherwise, you can import your dataset by following these instructions:
- Use the "Browse" function to select your data.
- Select the labels of the practice and test blocks of both Mapping A and Mapping B from the dropdown menu. The dropdown menu for each of the four levels defining the blocks will display the labels in your dataset for each of the practice and test blocks of both Mapping A and Mapping B.
- Once the labels identifying the correct blocks are selected, the "Prepare data" button is activated. Click on the "Prepare data" button and wait for the alert "Data are ready!" to appear right next to the button itself.
If there is something wrong with the block labels, an alert message will appear. In such cases, please check carefully the labels in your dataframe and restart the app.- At this point, data are ready for the computation of the D-score. The following table contains the computation details for each D-score. If your data DO contain a built-in correction, you can choose only between D1 and D2. If your data DO NOT contain a built-in correction, you can choose between all the other D-scores.
The App can be resetted by clicking on the "Reset & Restart" button.
Dscore Error inflation Lower tail treatment D1 Built-in correction No D2 Built-in correction delete trials < 400 ms D3 Replace errors: mean (correct responses) + 2sd No D4 Replace errors: mean (correct responses) + 600 ms No D5 Replace errors: mean (correct responses) + 2sd delete trials < 400 ms D6 Replace errors: mean (correct responses) + 600 ms delete trials < 400 ms
"Dscore" refers to the D-score you can find in the "Select your D" dropdown menu, "Error inflation" refers to the treatment for the error responses, and "Lower tail treatment" is the tretament for the fast responses. For all the D-score procedures, the responses with a latency over 10,000 ms have been discarded. For any further details on the different strategies for the D-score computation, please refer to Greenwald et al. (2003).The D-score is computed as Mapping B - Mapping A.
- Once a D-score is selected from the dropdown menu, the "Compute & Update" button becomes usable. When the "Compute & Update" button is clicked, the results appear in the "D-score results" panel.
- You can decide to display all participants' D-scores (default) or to exclude the ones with an high percentage of error responses ("Accuracy deletion" option) or a high rate of fast responses ("Fast participants cleaning" option), or both.
Whether you decide to display all the participants' D-score or not, ALL the participants will be included in the downloadable file.- Everytime you make a change, remember to click on the "Compute & Update", otherwise no changes will happen.
- When you want to download your file, click on the "Download" button. This file will contain the lastly computed D-score. For further information on the downloadable file, please read the "What you get section".
The D-score results panel
- D-score: Graphics display of the D-scores of the participants, according to the specified options.
- Point (Only for point graph): Click on a point of the graph: The participant's D-score and ID corresponding to the point will appear in the box.
- Area (for all the other graphic display): Highlight an area of the graph: The D-scores and IDs of the Participants included in the selected area will appear in the box.
- Summary: Displays the summary statistics (Minimum, 1st quartile, Median, Mean, 3rd quartile, Maximum) of the practice and test blocks Ds, along with the actual D-score.
- Trials > 10,000 ms: Displays the number of trials with a latency > 10,000 ms.
- Trials < 400 ms: Displays the number of trials with a latency < 400 ms. If the selected D-score did not include the lower tail treamentment, the message "Not expected for this D" will appear in the box.
- Accuracy deletion: Appears only if the "Accuracy deletion" option is selected. It displays the number of Participants (if any) discarded because of an error response percentage greater than a given percentage (default 25%).
- Participants < 300 ms: Appears only when "Fast participants cleaning" is selected. It displays the number of participants with more than 10% of responses under 300 ms.
- Practice-Test reliability: Displays the IAT reliability computed as the correlation between the Ds in the practice and test blocks (Gawronski et al., 2017).
Please refer to the Project Implicit Website for the interpretation guidelines of the D-scores effect size reported in the graphs.
Descriptive statistics panel
The third and last panel of the App includes the descriptive statistics of the data, always updated to the last settings specified:
- Average response time: It contains the descriptive statistics ( Minimum, 1st quartile, Median, Mean, 3rd quartile, Maximum ) of the response times in the two mapping conditions ("mappingA", and "mappingB", first two rows), in practice and test blocks ("practice" and "test", third and fourth row), and in the four blocks of the IAT ("practice.MappingA", "practice.MappingB", "practice.MappingB", "test.MappingB").
- Accuracy: Contains the proportion of correct responses ("Proportion_correct") in the two mapping conditions ("mappingA", and "mappingA", first two rows), in practice and test blocks ("practice" and "test", third and fourth row), and in the four blocks of the IAT ("practice.MappingA", "practice.MappingB", "practice.MappingB", "test.MappingB").
What you get
The CSV you will obtain contains the following information. Each column refers to the observed values for each participant.
The # next to "d_test", "d_practice", and "dscore" indicates the number corresponding to the last computed D-score. For instance, if you lastly selected the "D5", a "5" will be printed next to the labels, resulting in "d_test.5", "d_practice.5", and "dscore.5".
- participant: Participants ID.
- n_trial: IAT total number of trials before data cleaning.
- slow10000: # of trials > 10,000 ms.
- num.300: # of trials < 300 ms.
- num.400: # of trials < 400 ms.
- mean.tot: Overall mean latency for each participant.
- p_correct_block.practice.MappingA: Proportion of correct responses in practice block of Mapping A.
- p_correct_block.practice.MappingB: Proportion of correct responses in practice block of Mapping B.
- p_correct_block.test.MappingA: Proportion of correct responses in test block of Mapping A.
- p_correct_block.test.MappingB: Proportion of correct responses in test block of Mapping B.
- p_correct_bpool.practice: Proportion of correct responses practice blocks (Mapping A + Mapping B)
- p_correct_bpool.test: Proportion of correct responses test blocks (Mapping A + Mapping B).
- prop_correct_cond_MappingA: Proportion of correct responses in Mapping A.
- prop_correct_cond_MappingB: Proportion of correct responses in Mapping B.
- p_correct_tot: Overall proportion of correct responses.
- d_practice.#: D-score computed on practice blocks.
- d_test.#: D-score computed on test blocks.
- dscore.#: D-score.
- cond_ord: Order of condition presentation.
- LegendMappingA: Informs you about what "MappingA "corresponds according to your labels.
- LegendMappingB: Informs you about what "MappingB "corresponds according to your labels.
References
Gawronski, B., Morrison, M., Phills, C. E., & Galdi, S. (2017). Temporal stability of implicit and explicit measures: A longitudinal analysis. Personality and Social Psychology Bulletin, 43(3), 300-312. doi: 10.1177/0146167216684131
Greenwald, A. G., McGhee, D. E., & Schwartz, J. L. K. (1998). Measuring Individual Differences in Implicit Cognition: The Implicit Association Test. Journal of Personality and Soclal Psychology, 74(6). doi: 10.1037/0022-3514.74.6.1464
Greenwald, A. G., Nosek, B. A., & Banaji, M. R. (2003). Understanding and using the implicit association test: I. An improved scoring algorithm. Journal of personality and social psychology, 85(2), 197-216. doi: 10.1037/0022-3514.85.2.197
Nosek, B. A., Banaji, M. R., & Greenwald, A. G. (2002). Harvesting implicit group attitudes and beliefs from a demonstration web site. Group Dynamics: Theory, Research, and Practice, 6(1), 101-115. doi: 10.1037/1089-2699.6.1.101
Contacts
This App was developed by Ottavia M. Epifania at the University of Padova (Italy). The source code of the app and the raw data are available on my GitHub page. For any further information on the App functioning or for any problems regarding the App, please contact me at: otta.epifania@gmail.com or marinaottavia.epifania@phd.unipd.it
License
This app is a free software, and you can redistribute it and or modify it under the terms of the MIT license.