Millisecond Forums

Problem with identifying experimental conditions

https://forums.millisecond.com/Topic11046.aspx

By pawelstrojny - 8/4/2013

Hi,


After collecting data I tried to identify experimental condition of every subject, I can't find it in data. I'm afraid that I could make a mistake in script.


The problem is serious because I was (tried to :/) helping my friend so her work (more than 180 subjects) may be wasted because of me. Could you help me somehow?


The part of script I think may be mistaken is:



<block color>
/ onblockbegin = [values.correctstreak = 0; values.errorsum_block = 0]
/ onblockbegin = [values.PerseverativeResponse = 0]
/ onblockbegin = [values.colorblockcount +=  1]
/ onblockbegin = [values.category = 1]
/ trials = [1 = selectcard]
/ skip = [values.colorblockcount >= values.cstotalblocks]
/ stop = [expressions.toomanytrials]
/ stop = [values.correctstreak > 0 && mod(values.correctstreak, values.correctstreakthreshold)==0]
/ onblockend = [if (values.colorblockcount == 1) values.trialscompletefirstcategory = values.colortrialcount]
/ onblockend = [if (values.correctstreak == values. correctstreakthreshold )
                values.completedcategories += 1]
/ onblockend = [if (values.colorblockcount == 1)  values.%error_C1 = 100 * (values.errorsum_block/trial.selectcard.count)
                        else values.%error_C2 = 100*(values.errorsum_block/trial.selectcard.count)]
/ branch = [if (values.colorblockcount > values.cstotalblocks) block.end]
/ branch = [if (expressions.toomanytrials) block.end]
/ branch = [if (values.correctstreak > 0 && mod(values.correctstreak, values.correctstreakthreshold)==0)
                            {values.OldRuleWindow = 1;  block.form}]
</block>


<block form>
/ onblockbegin = [values.correctstreak = 0; values.errorsum_block = 0]
/ onblockbegin = [values.PerseverativeResponse = 0]
/ onblockbegin = [values.formblockcount += 1]
/ onblockbegin = [values.category = 2]
/ trials = [1 = selectcard]
/ skip = [values.formblockcount >= values.cstotalblocks]
/ stop = [expressions.toomanytrials]
/ stop = [values.correctstreak > 0 && mod(values.correctstreak, values.correctstreakthreshold)==0]
/ onblockend = [if (values.correctstreak == values. correctstreakthreshold )
                values.completedcategories += 1]
/ onblockend = [if (values.formblockcount == 1)  values.%error_F1 = 100 * (values.errorsum_block/trial.selectcard.count)
                        else values.%error_F2 = 100*(values.errorsum_block/trial.selectcard.count)]
/ branch = [if (values.formblockcount > values.cstotalblocks) block.end]
/ branch = [if (expressions.toomanytrials) block.end]
/ branch = [if (values.correctstreak > 0 && mod(values, values.correctstreakthreshold)==0)
                            {values.OldRuleWindow = 1; block.number}]
</block>


<block number>
/ onblockbegin = [values.correctstreak = 0; values.errorsum_block = 0]
/ onblockbegin = [values.PerseverativeResponse= 0]
/ onblockbegin = [values.numberblockcount += 1]
/ onblockbegin = [values.category = 3]
/ trials = [1 = selectcard]
/ skip = [values.numberblockcount >= values.cstotalblocks]
/ stop = [expressions.toomanytrials]
/ stop = [values.correctstreak > 0 && mod(values.correctstreak, values.correctstreakthreshold)==0]
/ onblockend = [if (values.correctstreak == values. correctstreakthreshold )
                values.completedcategories += 1]
/ onblockend = [if (values.numberblockcount == 1)  values.%error_N1 = 100 * (values.errorsum_block/trial.selectcard.count)
                        else values.%error_N2 = 100*(values.errorsum_block/trial.selectcard.count)]
/ branch = [if (values.numberblockcount > values.cstotalblocks) block.end]
/ branch = [if (expressions.toomanytrials) block.end]
/ branch = [if (values.correctstreak > 0 && mod(values.correctstreak, values.correctstreakthreshold) ==0)
                            {values.OldRuleWindow = 1; block.color}]
</block>


Note: Utility block to run one trial to record all final data points
<block end>
/ trials = [1 = end]
/ errormessage = false
/ recorddata = true
</block>
**************************************************************************************************************
**************************************************************************************************************
                                                            EXPERIMENT
**************************************************************************************************************
**************************************************************************************************************
<expt instruction_challenge>
/ onexptbegin = [if (!values.showdeckinfo) text.deck.textcolor = white]
/ blocks = [1 = mcheck1; 2 = color; 3 = end]
/ preinstructions = (page1_instruction_challenge)
/ postinstructions = (end)
/ subjects= (1 of 4)
</expt>

<expt instruction_threat>
/ onexptbegin = [if (!values.showdeckinfo) text.deck.textcolor = white]
/ blocks = [1 = mcheck1; 2 = color; 3 = end]
/ preinstructions = (page1_instruction_threat)
/ postinstructions = (end)
/ subjects= (2 of 4)
</expt>

<expt imagine_challenge>
/ onexptbegin = [if (!values.showdeckinfo) text.deck.textcolor = white]
/ blocks = [1 = mcheck1; 2 = color; 3 = end]
/ preinstructions = (page1_imagine_challenge, page2_imagine_challenge)
/ postinstructions = (end)
/ subjects= (3 of 4)
</expt>

<expt imagine_threat>
/ onexptbegin = [if (!values.showdeckinfo) text.deck.textcolor = white]
/ blocks = [1 = mcheck1; 2 = color; 3 = end]
/ preinstructions = (page1_imagine_threat, page2_imagine_threat)
/ postinstructions = (end)
/ subjects= (4 of 4)
</expt>


I'm afraid that I didn't changed the name of blocks according to conditions. Is it true? Do you have any idea how to find which subject was presented with which preinstruction pages? Maybe you have other idea?


Please try to help me :(. It is very important for me because of my friend who may be victim of my ignorance.

By Dave - 8/4/2013

You can figure out which <expt> element was run by computing mod(subjectnumber,4). This has been discussed a number of times, see e.g. http://www.millisecond.com/forums/Topic4150.aspx#4150 for details.

By pawelstrojny - 8/4/2013

It works, thank you Dave!