Evaluative conditioning task based on a subset of pre-rated CS by the participant


Evaluative conditioning task based on a subset of pre-rated CS by the...
Author
Message
Oulmann
Oulmann
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 19, Visits: 64
Dave - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Here's another thing you could maybe clarify for me:

<block CACB>
/ onblockbegin = [values.currentBlock += 1;
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]

I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.

<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>

I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10); 

Yes, but that would impact US selection and not CS selection (i.e. two different CSs may be paired with the same US, but there is no reason why one CS would be selected 2 times)

<block CACB>
/ onblockbegin = [values.currentBlock += 1; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]
I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.
<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>
I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

Bad coding I'm afraid :/ but it didn't seem to affect the outcome. But I guess that if those two sets of instructions conflicted, everything would be randomized

Okay, thanks. Can you show me some actual data that shows "one CS [...] selected 2 times" in the respective block?

NB: This isn't supposed to imply that I don't believe you. I do believe you. I hope that this data will give me some more hints as to where to look for mistakes.

Nevermind. Here's the problem:

<list randommean>
/ poolsize = 20
</list>

The list has 20 items. A <list>'s default behavior is to allow for *one* selection per trial, i.e. /selectionrate=trial. What this does then

<block CACB>
/ onblockbegin = [...; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
...
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
...;]

is effectively sample *a single item* from the list /onblockbegin. I.e. when the block starts actually running trials, there are only *19* unsampled items left in the list. The trials then sample from these 19 items without replacement, but since 20 trials sample from the list, the list has to reset: All 20 items are then available again for the final trial, and you are likely to sample an item that has been sampled previously.

Solution: Remove the unnecessary /onblockbegin sampling logic.




Thanks a lot! Fast and efficient, as usual :)
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: 12K, Visits: 99K
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Here's another thing you could maybe clarify for me:

<block CACB>
/ onblockbegin = [values.currentBlock += 1;
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]

I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.

<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>

I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10); 

Yes, but that would impact US selection and not CS selection (i.e. two different CSs may be paired with the same US, but there is no reason why one CS would be selected 2 times)

<block CACB>
/ onblockbegin = [values.currentBlock += 1; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]
I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.
<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>
I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

Bad coding I'm afraid :/ but it didn't seem to affect the outcome. But I guess that if those two sets of instructions conflicted, everything would be randomized

Okay, thanks. Can you show me some actual data that shows "one CS [...] selected 2 times" in the respective block?

NB: This isn't supposed to imply that I don't believe you. I do believe you. I hope that this data will give me some more hints as to where to look for mistakes.

Nevermind. Here's the problem:

<list randommean>
/ poolsize = 20
</list>

The list has 20 items. A <list>'s default behavior is to allow for *one* selection per trial, i.e. /selectionrate=trial. What this does then

<block CACB>
/ onblockbegin = [...; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
...
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
...;]

is effectively sample *a single item* from the list /onblockbegin. I.e. when the block starts actually running trials, there are only *19* unsampled items left in the list. The trials then sample from these 19 items without replacement, but since 20 trials sample from the list, the list has to reset: All 20 items are then available again for the final trial, and you are likely to sample an item that has been sampled previously.

Solution: Remove the unnecessary /onblockbegin sampling logic.




Oulmann
Oulmann
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 19, Visits: 64
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Here's another thing you could maybe clarify for me:

<block CACB>
/ onblockbegin = [values.currentBlock += 1;
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]

I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.

<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>

I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10); 

Yes, but that would impact US selection and not CS selection (i.e. two different CSs may be paired with the same US, but there is no reason why one CS would be selected 2 times)

<block CACB>
/ onblockbegin = [values.currentBlock += 1; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]
I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.
<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>
I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

Bad coding I'm afraid :/ but it didn't seem to affect the outcome. But I guess that if those two sets of instructions conflicted, everything would be randomized

Okay, thanks. Can you show me some actual data that shows "one CS [...] selected 2 times" in the respective block?

NB: This isn't supposed to imply that I don't believe you. I do believe you. I hope that this data will give me some more hints as to where to look for mistakes.

No worries! Here is a datafile. See line 252 and 262 (same picture as CS, with two different trialcode). The repeat option seemed to work.
Attachments
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: 12K, Visits: 99K
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Here's another thing you could maybe clarify for me:

<block CACB>
/ onblockbegin = [values.currentBlock += 1;
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]

I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.

<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>

I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10); 

Yes, but that would impact US selection and not CS selection (i.e. two different CSs may be paired with the same US, but there is no reason why one CS would be selected 2 times)

<block CACB>
/ onblockbegin = [values.currentBlock += 1; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]
I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.
<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>
I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

Bad coding I'm afraid :/ but it didn't seem to affect the outcome. But I guess that if those two sets of instructions conflicted, everything would be randomized

Okay, thanks. Can you show me some actual data that shows "one CS [...] selected 2 times" in the respective block?

NB: This isn't supposed to imply that I don't believe you. I do believe you. I hope that this data will give me some more hints as to where to look for mistakes.

Edited 7 Years Ago by Dave
Oulmann
Oulmann
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 19, Visits: 64
Dave - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Here's another thing you could maybe clarify for me:

<block CACB>
/ onblockbegin = [values.currentBlock += 1;
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]

I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.

<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>

I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10); 

Yes, but that would impact US selection and not CS selection (i.e. two different CSs may be paired with the same US, but there is no reason why one CS would be selected 2 times)

<block CACB>
/ onblockbegin = [values.currentBlock += 1; 
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]
I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.
<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>
I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

Bad coding I'm afraid :/ but it didn't seem to affect the outcome. But I guess that if those two sets of instructions conflicted, everything would be randomized
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: 12K, Visits: 99K
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Here's another thing you could maybe clarify for me:

<block CACB>
/ onblockbegin = [values.currentBlock += 1;
values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]

I don't quite understand why you perform those selections above /onblockbegin, only to perform new selections on a per-trial basis during the block, e.g.

<trial CAPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA=list.randommean.nextindex; values.ucAPic=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA, ucAPic]
/ trialduration = values.exposureDuration
</trial>

I'm not sure this has anything to do with the problem under discussion, but I do have trouble grasping the reason (which is not to imply that there isn't a good reason).

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: 12K, Visits: 99K
Oulmann - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

I don't understand your objection. <trial CAPic2> is among those 20 trials you pointed out, so of course this mistake matters:
<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic]
/ trialduration = values.exposureDuration
</trial>

/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);


Oulmann
Oulmann
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 19, Visits: 64
Oulmann - Monday, April 10, 2017
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



Thanks for your reply. I did not suspect the problem would come from ucAPic2, since it is supposed to code for US selection and not CSs.

The conditioning block is the CACB block, postratings are termed "postratings" and the memorisation block is termed "Block Exclusion". Block CACB present 20 trials with, each corresponding to one specific CS paired with one specific US, then each of the 20 trial is repeated several times (repeatCA, etc.). But I don't get how Block_Exclusion and Postratings manage to display the same 20CS taken from the preratings (which is what I want), and the conditioning block makes this one, consistent mistake in CS selection.

Thats's why I suspect the error comes from the conditioning block, but nothing seems odd : 

<block CACB>
/ onblockbegin = [values.currentBlock += 1; values.meanA=list.randommean.nextindex; values.meanA2=list.randommean.nextindex;values.meanA3=list.randommean.nextindex;values.meanA4=list.randommean.nextindex;values.meanA5=list.randommean.nextindex;values.meanA6=list.randommean.nextindex;values.meanA7=list.randommean.nextindex;values.meanA8=list.randommean.nextindex;values.meanA9=list.randommean.nextindex;values.meanA10=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;values.ucAPic2=list.randomucAPic.nextindex;values.ucAPic3=list.randomucAPic.nextindex;values.ucAPic4=list.randomucAPic.nextindex;values.ucAPic5=list.randomucAPic.nextindex;values.ucAPic6=list.randomucAPic.nextindex;values.ucAPic7=list.randomucAPic.nextindex;values.ucAPic8=list.randomucAPic.nextindex;values.ucAPic9=list.randomucAPic.nextindex;values.ucAPic10=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex; values.meanB2=list.randommean.nextindex; values.meanB3=list.randommean.nextindex; values.meanB4=list.randommean.nextindex; values.meanB5=list.randommean.nextindex; values.meanB6=list.randommean.nextindex; values.meanB7=list.randommean.nextindex; values.meanB8=list.randommean.nextindex; values.meanB9=list.randommean.nextindex; values.meanB10=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;values.ucBPic2=list.randomucBPic.nextindex;values.ucBPic3=list.randomucBPic.nextindex;values.ucBPic4=list.randomucBPic.nextindex;values.ucBPic5=list.randomucBPic.nextindex;values.ucBPic6=list.randomucBPic.nextindex;values.ucBPic7=list.randomucBPic.nextindex;values.ucBPic8=list.randomucBPic.nextindex;values.ucBPic9=list.randomucBPic.nextindex;values.ucBPic10=list.randomucBPic.nextindex;]>
/ trials = [1=blockinstructions; 2-21 = noreplace (CAPic,CAPic2,CAPic3,CAPic4,CAPic5,CAPic6,CAPic7,CAPic8,CAPic9, CAPic10, CBPic,CBPic2,CBPic3,CBPic4,CBPic5,CBPic6,CBPic7,CBPic8,CBPic9, CBPic10);
22-130 = noreplace(repeatCA,repeatCA,repeatCA,repeatCA,repeatCA2,repeatCA2,repeatCA2,repeatCA2,repeatCA3,repeatCA3,repeatCA3,repeatCA3,repeatCA4, repeatCA4,repeatCA4,repeatCA4,repeatCA5,
repeatCA5,repeatCA5,repeatCA5,repeatCA6,repeatCA6,repeatCA6,repeatCA6,repeatCA7,repeatCA7,repeatCA7,repeatCA7,repeatCA8,repeatCA8,repeatCA8,repeatCA8,repeatCA9,repeatCA9,repeatCA9,repeatCA9,repeatCA10, repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,repeatCA10,
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB2,repeatCB2,repeatCB2,repeatCB2,repeatCB3,repeatCB3,repeatCB3,repeatCB3,repeatCB4,repeatCB4,repeatCB4,repeatCB4,
repeatCB5,repeatCB5,repeatCB5,repeatCB5,repeatCB6,repeatCB6,repeatCB6,repeatCB6,repeatCB7,repeatCB7,repeatCB7,repeatCB7,repeatCB8, repeatCB8,repeatCB8,repeatCB8,repeatCB9,repeatCB9,repeatCB9,repeatCB9, repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,repeatCB10,
target,target,target,target,target,target,target,target,target,target,target,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic,distractorPic)
]
</block>

Oulmann
Oulmann
Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)Esteemed Member (1.8K reputation)
Group: Forum Members
Posts: 19, Visits: 64
Dave - Monday, April 10, 2017
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>



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: 12K, Visits: 99K
Oulmann - Monday, April 10, 2017
Hi,

Sorry to come back with the same(ish) issue as one month ago, the evaluative conditioning script seems to work well, but I still have one small issue I can't find the solution for.

The overall idea is that 20CS (pictures) are selected from a pool of 120CS based on preratings, 10 of them are paired with 10 differents negatives USs (also pictures), and the 10 other with positive USs. All this is random. Then the participant is asked whether he/she has memorized the US associated with each CS and to postrate each 20CS.

The preratings work fine, but in the evaluative conditioning task, two pairs of CS-US always share the same CS (which is paired with either a negative of positive US, it depends on the participant). However, there is no problem in the contingency awareness task and the postratings, which consistently use the same CSs as the evaluative conditioning task (except the the CS that has appeared 2 times in the conditioning task doesn't appear two times but only once, and another CS that hasn't been displayed in the conditioning task is presented).

Attached is the script. I can't find what's wrong with the conditioning task, every values, number of trials etc. seems to be in place.

Thanks in advance

It would be really helpful if you could reference the respective elements you are talking about by their names as they appear in the script. As it stands, it is relatively difficult to figure out what to look at. Just glancing over the code, I would suspect there are mistakes. For example:

<trial CAPic2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.meanA2=list.randommean.nextindex; values.ucAPic2=list.randomucAPic.nextindex;
]
/ stimulustimes = [0=erase; 1=meanA2, ucAPic] <--- Shouldn't this be ucAPic2???
/ trialduration = values.exposureDuration
</trial>

<trial repeatCA2>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;  ]
/ stimulustimes = [0=erase; 1= meanA2, ucAPic2]
/ validresponse = (57)
/ trialduration = values.exposureDuration
</trial>

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search