D-Score - with out practice Blocks


Author
Message
Sabi
Sabi
Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)
Group: Forum Members
Posts: 7, Visits: 1

Dear All


After many discussions with my supervisor i am all confused :(


Am i correct with the assumption that a high D-Score always stands for the associationstrength of the compatible Block?


In My Script i have the following components (i used the Inquisit-Script and just changed the items for the two attributes and the two targets - see the attachment):


AttributeA: Postive


Attribute B: Negative


TargetA: Generation


TargetB: Agegroup


This means the higher my D-Score the higher is the preference of a subject for its Generation in contrast to its age group? -> preference for TargetA-Attribute A?



My second question concerns the modification of the Inquisit Syntax-File: I want to calculate the D-Score without the practice Blocks. Therefor I deleted everything which concerns the test1 (practice blocks) and modified the D-bieb (see the syntax below - changes are bold and underlined):




VALUE LABELS blocknum


 1 'Target practice'


 2 'Attribute practice'


 3 'First pairing practice'


 5 'First pairing test'


 6 'Reversed target practice'


 7 'Second pairing practice'


 9 'Second pairing test' .



IF (MOD(subject,2) = 1) ORDER = 1 .


IF (MOD(subject,2) = 0) ORDER = 2 .



COMPUTE PAIRING = 0.


IF ((ORDER=1) and (blocknum=3|blocknum=5)) PAIRING = 1.


IF ((ORDER=1) and (blocknum=7|blocknum=9)) PAIRING = 2.


IF ((ORDER=2) and (blocknum=7|blocknum=9)) PAIRING = 1.


IF ((ORDER=2) and (blocknum=3|blocknum=5)) PAIRING = 2.



COMPUTE TEST = 0.


IF (blocknum=3|blocknum=7) TEST = 1.


IF (blocknum=5|blocknum=9) TEST = 2.



VALUE LABELS 


   TEST 0 'single-task practice' 1 '1st combined block' 2 '2nd combined block'


 / correct 0 'error' 1 'correct' .



VARIABLE LABELS 


   correct  "0=error, 1=correct"


 / blocknum "block number"


 / trialnum "trial number"


 / ORDER "order of combined tasks"


 / PAIRING "paired categories"


 / TEST "1st or 2nd combined block".



VALUE LABELS 


   PAIRING 


    0 'single task practice'


    1 'compatible'


    2 'incompatible'


 / ORDER 


    1 'compatible first' 


    2 'incompatible first'.



COMPUTE error = 100*(1 - correct).



* Save data to re-use for computing other measures .


SAVE OUTFILE = 'temp.sav'  .



DESCRIPTIVES ALL . 



SUMMARIZE TABLES latency BY TEST BY PAIRING.



GET FILE = 'temp.sav' .



* Use data for Blocks 3,5,7, and 9 (i.e., TEST = 1 or 2) .


SELECT IF (TEST=2) .



* Mark trials with latency < 300 ms (for possible subject discard) .


COMPUTE FLAG_300 = 0 .


IF (LATENCY < 300) FLAG_300 = 1 .


* Mark trials with latency < 400 ms (to provide a count of these) .


COMPUTE FLAG_400 = 0 .


IF (LATENCY < 400) FLAG_400 = 1 .


* Mark trials with latency > 10000 ms (to provide a count of these) .


COMPUTE FLAG_10K = 0 .


IF (LATENCY GT 10000) FLAG_10K = 1 .



* Following line can be used to check frequencies of fast & slow responses & errors .


FREQUENCIES FLAG_300 FLAG_400 FLAG_10K ERROR .



* Record criteria for potential use in subject discards .


* This count can later be used as the basis for subject discard .


AGGREGATE OUTFILE = 'CRITERIA.SAV'


 / BREAK = SUBJECT ORDER


 / PCT_300 = PGT(FLAG_300,0) 


 / PCT_400 = PGT(FLAG_400,0)


 / PCT_10K = PGT(FLAG_10K,0)


 / AVELTNCY ERRORPCT = MEAN (LATENCY ERROR)


 / NTRIALS = N .



* Drop trials slower than 10000 ms for LATENCY .


SELECT IF (LATENCY LE 10000) .



*Drop dummy trials at beginning of blocks .


SELECT IF (trialnum gt 1).



* The following line deletes latencies less than 300. To prevent these trials from being


* discarded, add an asterisk before the next line to comment it out.


* SELECT IF (LATENCY GE 300) .



DESCRIPTIVES ALL.



* The following aggregate command computes block means and SDs needed for the D measures.


AGGREGATE OUTFILE = *


 / BREAK = SUBJECT BLOCKNUM ORDER PAIRING TEST


 / MEAN_LAT MEAN_ERR = MEAN(latency error) / SD_LAT = SD(latency)


 / NTRIALS = N .



DESCRIPTIVES ALL.



*Save this as a record of this stage of analysis .


SAVE OUTFILE = 'BIEP.ALL_MEANS&SDs.SAV' .



IF (PAIRING = 1) N1 = NTRIALS .


IF (PAIRING = 2) N2 = NTRIALS .


IF (PAIRING = 1) M1 = MEAN_LAT .


IF (PAIRING = 2) M2 = MEAN_LAT .


IF (PAIRING = 1) ERR1 = MEAN_ERR .


IF (PAIRING = 2) ERR2 = MEAN_ERR .


IF (PAIRING = 1) SD1 = SD_LAT .


IF (PAIRING = 2) SD2 = SD_LAT .



AGGREGATE OUTFILE = *


 / BREAK = SUBJECT ORDER TEST 


 / M1 M2 ERR1 ERR2 N1 N2 SD1 SD2 =


  FIRST(M1 M2 ERR1 ERR2 N1 N2 SD1 SD2) .



*Save this as a record of this stage of analysis .


SAVE OUTFILE = 'BIEP.MEANS&SDS.SAV' .



IF(TEST=2) ERR1b = ERR1 .


IF(TEST=2) ERR2b = ERR2 .



* These are the numerator components in millisecond units.




IF(TEST=2) M1b = M1 .


IF(TEST=2) M2b = M2 .




IF(TEST=2) SD1b = SD1 .


IF(TEST=2) SD2b = SD2 .




IF(TEST=2) N1b = N1 .


IF(TEST=2) N2b = N2 .



COMPUTE D_asis_num = M2 - M1.



*Use SD based on all responses (StanDevX) as denominator for D_biep .


COMPUTE D_asis_denom = SQRT( ( ((N1-1) * SD1**2 + (N2-1) * SD2**2)


                   + ((N1+N2) * ((M1-M2)**2) / 4) ) / (N1 + N2 - 1) ) .



IF (TEST=2) D_BIEP_b = D_asis_num / D_asis_denom .


IF (TEST=2) Nb = N1+N2 .



DESCRIPTIVES ALL . 



AGGREGATE OUTFILE = *


 / BREAK = SUBJECT ORDER


 / D_biep_a D_biep_b M1a M2a M1b M2b ERR1a ERR2a ERR1b ERR2b Na Nb = 


   FIRST(D_biep_a D_biep_b M1a M2a M1b M2b ERR1a ERR2a ERR1b ERR2b Na Nb).



VARIABLE LABELS


 D_biep_b 'd score 2nd blocks' 


 / Na '# trials, 1st combined blocks'


 / Nb '# trials, 2nd combined blocks'


 / M1a 'Mn Lat. 1st block, pairing 1'


 / M2a 'Mn Lat. 1st block, pairing 2' 


 / M1b 'Mn Lat. 2nd block, pairing 1' 


 / M2b 'Mn Lat. 2nd block, pairing 2' 


 / ERR1a 'Error %  1st block, pairing 1'


 / ERR2a 'Error %  1st block, pairing 2' 


 / ERR1b 'Error %  2nd block, pairing 1' 


 / ERR2b 'Error %  2ns block, pairing 2' 


 / SUBJECT 'Session ID' .



COMPUTE ERR_1 = (ERR1a + ERR1b) / 2 .


COMPUTE ERR_2 = (ERR2a + ERR2b) / 2 .



VARIABLE LABELS


   ERR_1 'Error % for Pairing 1 (both combined tasks)'


 / ERR_2 'Error % for Pairing 2 (both combined tasks)' .



*Compute unweighted combination of measures based on first and second blocks


  of combined tasks.


* !! Do this even if there are fewer trials in the first block because the 


*  first block has been found to have as good or better validity, even with 


*  fewer trials (see Greenwald, Nosek, & Banaji, JPSP 2003) .



COMPUTE D_biep = (D_biep_b) .


EXECUTE.


VARIABLE LABELS


   D_biep   'd score all blocks' .




I am so sorry to bug you with the IAT - but i would appreciate any help!


Best regards


Sabi


Attachments
Fertiger IAT.exp (233 views, 17.00 KB)
Sabi
Sabi
Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)Associate Member (256 reputation)
Group: Forum Members
Posts: 7, Visits: 1

oops - forgot to post my actual question to the second topic :) 


Here we go: Are my modifications to the Inquisit Syntax correct?


Thanks for your help!


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K


Am i correct with the assumption that a high D-Score always stands for the associationstrength of the compatible Block?


In My Script i have the following components (i used the Inquisit-Script and just changed the items for the two attributes and the two targets - see the attachment):


AttributeA: Postive


Attribute B: Negative


TargetA: Generation


TargetB: Agegroup


This means the higher my D-Score the higher is the preference of a subject for its Generation in contrast to its age group? -> preference for TargetA-Attribute A?



The *absolute* value abs(D) is taken to reflect the strength of association, the *sign* (+ vs. -) indicates the direction of the association. You'll find all of this covered in the published literature and you can find a quick, Inquisit-specific summary at https://www.millisecond.com/forums/Topic3444.aspx.


My second question concerns the modification of the Inquisit Syntax-File: I want to calculate the D-Score without the practice Blocks


The unmodified SPSS syntax as available from millisecond.com already gives you separate D's for practice only vs. test only vs. all blocks. So do the Inquisit IAT scripts ,i.e., there is no strict need for any SPSS syntax at all if all you're interested in are the various Ds. This is also covered in the above-mentioned summary.


If you have general questions re. writing, modifying, understanding SPSS syntax, I would recommend you consult the support resources provided by SPSS Inc. / IBM and/or some of the numerous books and online tutorials on the topic.


Finally note that Greenwald et al. (2003) strongly recommend including the "practice" blocks.


Regards,


~Dave



Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K

Here we go: Are my modifications to the Inquisit Syntax correct?


Since you did not provide any information on what you (intended) to change and which effects (you intended) a given modification to have, this question cannot be answered. Thus, I can only generally recommend you


- work through the original script until you sufficiently understand what it does / how it works before making any major modifications.


- test any modified scripts thoroughly.


Regards,


~Dave


nathangardner
nathangardner
Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Does anyone else have issues with this syntax assigning the Pairing variable?


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K

(1) Check how your IAT Inquisit script determines block order: According to subjectid or according to groupid?


(2) Check how your SPSS syntax determines block order: According to subjectid or groupid?


(3) If necessary change SPSS syntax according to (1).


nathangardner
nathangardner
Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Well, it's by subject ID.


It's assiging the value to ORDER, but it's not assigning values to the PAIRING



VALUE LABELS blocknum
 1 'Attribute Practice'
 2 'First pairing practice'
 4 'First pairing test'
 5 'Second pairing practice'
 7 'Second pairing test' .


IF (MOD(subject,2) = 1) ORDER = 1 .
IF (MOD(subject,2) = 0) ORDER = 2 .


COMPUTE PAIRING = 0.
IF ((ORDER=1) and (blocknum=2|blocknum=4)) PAIRING = 1.
IF ((ORDER=1) and (blocknum=5|blocknum=7)) PAIRING = 2.
IF ((ORDER=2) and (blocknum=5|blocknum=7)) PAIRING = 1.
IF ((ORDER=2) and (blocknum=2|blocknum=4)) PAIRING = 2.


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K

Then check the other variables involved in determining pairing. Do they exist? Do they have the expected values?


nathangardner
nathangardner
Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)Respected Member (454 reputation)
Group: Forum Members
Posts: 6, Visits: 1

Yes and Yes....


Dave
Dave
Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)Supreme Being (1M reputation)
Group: Administrators
Posts: 13K, Visits: 108K

If this is true, then it ought to compute pairing.


GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search