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 - Thursday, February 16, 2017
Oulmann - Thursday, February 16, 2017
Oulmann - Thursday, February 16, 2017
Dave - Thursday, February 16, 2017
Oulmann - Thursday, February 16, 2017
Dave - Thursday, February 16, 2017
Dave - Thursday, February 16, 2017
Oulmann - Thursday, February 16, 2017
Because technically, this will select another CS from "mean" and another US from "ucAPic", and I won't have the same pair repeated 5 times.

> Because technically, this will select another CS from "mean" and another US from "ucAPic", and I won't have the same pair repeated 5 times.                                

No, it will not. If the selection is only performed in

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

with

<picture mean>
/ size = (parameters.csPicSize, parameters.csPicSize)
/ hposition = values.csAPosition
/ erase = false
/ select = values.mean
/ items = mean
</picture>

<picture ucAPic>
/ size = (parameters.ucPicSize, parameters.ucPicSize)
/ hposition = values.ucPosition
/ erase = false
/ select = values.ucAPic
/ items = ucAPic
</picture>

and trial.repeatCA does not change values.mean or values.ucAPic

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

there cannot be any new pair selected.

> And it doesn't launch the first trial. I have this error message : Unable to initialize <picture mean> item number 12. Verify the item exists and is correctly defined.                                

You need to make sure that there are enough items in <item mean>. You are drawing item numbers between 1 and 20, so there need to be (at least) 20 items in <item mean>.

Technically there should be enough item in "mean". The script goes like that :

<block preratings>
/ trials = [1-120=noreplace(csCPicP);
  121=ratingresults; 122=selectCS]
</block>

<likert csCPicP>
/ ontrialend = [if(likert.csCPicP.response=="1")item.csCPicP_r1.item=picture.csCPicP.currentitem]
/ ontrialend = [if(likert.csCPicP.response=="2")item.csCPicP_r2.item=picture.csCPicP.currentitem]
/ ontrialend = [if(likert.csCPicP.response=="3")item.csCPicP_r3.item=picture.csCPicP.currentitem]
/ ontrialend = [if(likert.csCPicP.response=="4")item.csCPicP_r4.item=picture.csCPicP.currentitem]
/ ontrialend = [if(likert.csCPicP.response=="5")item.csCPicP_r5.item=picture.csCPicP.currentitem]
/ stimulusframes = [1=csCPicP,debug]
/ anchorwidth = (4%)
/ position = (50%, 75%)
/ numpoints = 5
/ position = (50, 85)
/ anchors = [1="Très déplaisant"; 5="Très plaisant"]
/ fontstyle = ("Arial", 2%, false, false, false, false, 5, 1)
</likert>



<text debug>
/ items = ("CS rating results:
R1=<%item.csCPicP_r1.itemcount%>|R2=<%item.csCPicP_r2.itemcount%>|R3=<%item.csCPicP_r3.itemcount%>|R4=<%item.csCPicP_r4.itemcount%>|R5=<%item.csCPicP_r5.itemcount%>

")

/ size = (40%, 20%)
/ position = (50%, 10%)
/ erase = false
</text>

<item csCPicP_r1>
</item>

<item csCPicP_r2>
</item>

<item csCPicP_r3>
</item>

<item csCPicP_r4>
</item>

<item csCPicP_r5>
</item>


<trial ratingresults>
/ stimulusframes = [1=debug]
/ validresponse = (57)
/ timeout = 5000
</trial>


<item mean>
</item>

<item ext>
</item>

<page selectionresults>
^'High' item set (<%item.mean.itemcount%> items):
^<%item.mean.item(1)%>, <%item.mean.item(2)%>, <%item.mean.item(3)%>, <%item.mean.item(4)%>
^^
^'Low' item set (<%item.ext.itemcount%> items):
^<%item.ext.item(1)%>, <%item.ext.item(2)%>, <%item.ext.item(3)%>, <%item.ext.item(4)%>
</page>



<list preratings>
</list>

<picture csCPicP>
/ items = csCPic
/ position = (50%, 50%)
/ size = (parameters.defaultPicSize, parameters.defaultPicSize)
</picture>

<page instruct>
Rate the pictures
</page>

<trial selectCS>
/ ontrialbegin = [if (item.csCPicP_r3.itemcount > 0) {item.mean.appenditem(item.csCPicP_r3.item(1)); item.csCPicP_r3.removeitem(1);}
  else if (item.csCPicP_r4.itemcount > 0) {item.mean.appenditem(item.csCPicP_r4.item(1)); item.csCPicP_r4.removeitem(1);}
  else if (item.csCPicP_r2.itemcount > 0) {item.mean.appenditem(item.csCPicP_r2.item(1)); item.csCPicP_r2.removeitem(1);}
  else if (item.csCPicP_r5.itemcount > 0) {item.mean.appenditem(item.csCPicP_r5.item(1)); item.csCPicP_r5.removeitem(1);}
  else if (item.csCPicP_r1.itemcount > 0) {item.mean.appenditem(item.csCPicP_r1.item(1)); item.csCPicP_r1.removeitem(1);}; ]
/ trialduration = 0
</trial>

So technically, there cannot be no item in "mean"

The only place where you add an item to item.mean is

<trial selectCS>
/ ontrialbegin = [if (item.csCPicP_r3.itemcount > 0) {item.mean.appenditem(item.csCPicP_r3.item(1)); item.csCPicP_r3.removeitem(1);}
  else if (item.csCPicP_r4.itemcount > 0) {item.mean.appenditem(item.csCPicP_r4.item(1)); item.csCPicP_r4.removeitem(1);}
  else if (item.csCPicP_r2.itemcount > 0) {item.mean.appenditem(item.csCPicP_r2.item(1)); item.csCPicP_r2.removeitem(1);}
  else if (item.csCPicP_r5.itemcount > 0) {item.mean.appenditem(item.csCPicP_r5.item(1)); item.csCPicP_r5.removeitem(1);}
  else if (item.csCPicP_r1.itemcount > 0) {item.mean.appenditem(item.csCPicP_r1.item(1)); item.csCPicP_r1.removeitem(1);}; ]
/ trialduration = 0
</trial>

and you run that trial a single time.

<block preratings>
/ trials = [1-120=noreplace(csCPicP);
  121=ratingresults; 122=selectCS]
</block>

So, how are there 20 items in <item mean>? Or 12?

Ok, I thought that trial was actually sorting all the items in one shot. i changed it and it seem to work now :)
tell me if I ask too much, but I might have another last question : do you know if there is a way to actually randomize all "repeatCA" and "repeatCB" and not have all 5 same pairs appear all in a row?

The only way it works is by sorting blocks like this : 

<block CA>
/ trials = [1=blockinstructions; 2 = CAPic; 3-8 = noreplace(
repeatCA,repeatCA,repeatCA,repeatCA,repeatCA,)
]
</block>

<block CB>
/ trials = [1=blockinstructions; 2 = CBPic; 3-8 = noreplace(
repeatCB,repeatCB,repeatCB,repeatCB,repeatCB,)
]
</block>

If I change it (by putting every trials in one block) it doesn't work.

Also, I have the postratings in the end : 

<block postratings>
/ preinstructions = (instruct)
/ trials = [1-20 = postratings]
</block>

<likert postratings>
/ stimulusframes = [1=mean]
/ numpoints = 7
/ position = (50%, 75%)
/ numpoints = 5
/ position = (50, 85)
/ anchors = [1="Très déplaisant"; 5="Très plaisant"]
/ fontstyle = ("Arial", 2%, false, false, false, false, 5, 1)
</likert>

in which people have to rate the 20 CS. I assume that since we have the values.mean has "stored" the items that were previously used?
Or should I add a list where I can "store" the CS items that were used:

<list store>
</list>

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


<trial CBPic>
/ ontrialbegin = [
values.csAPosition = list.csAPosition.nextvalue;
values.ucPosition = expressions.ucAPosition;
values.mean=list.randommean.nextindex; values.ucBPic=list.randomucBPic.nextindex;
list.repeatmean.appenditem(values.mean)
]
/ stimulustimes = [0=erase; 1=mean, ucBPic]
/ trialduration = parameters.exposureDuration
</trial>


(I'm asking because I won't have access to Inquisit for a few times, and don't have the opportunity to check)

I'm not sure what exactly you mean by "by putting every trials in one block", but you can "mix" the ca and cb stuff by simply performing the selection of the two items /onblockbegin and then just running the repeat trials. Something like:

<block ca_cb>
/ onblockbegin = [values.meanA=list.randommean.nextindex;
values.ucAPic=list.randomucAPic.nextindex;
values.meanB=list.randommean.nextindex;
values.ucBPic=list.randomucBPic.nextindex;]
/ trials = [1-12 = noreplace(repeatCA, repeatCB)]
....
</block>

with values.meanA and values.meanB used to /select in <picture meanA> and <picture meanB> respectively.

<trial repeatCA>
...
/ stimulustimes = [0=erase; 1= meanA, ucAPic]
/ validresponse = (57)
/ trialduration = parameters.exposureDuration
</trial>


<picture meanA>
/ items = mean
/ select = values.meanA
...
</picture>

<trial repeatCB>
...
/ stimulustimes = [0=erase; 1= meanB, ucAPic]
/ validresponse = (57)
/ trialduration = parameters.exposureDuration
</trial>


<picture meanB>
/ items = mean
/ select = values.meanB
...
</picture>

I don't see why you need another list for the postratings. You have all 20 items in <item mean> and you already have a list to randomly select from the twenty item numbers, so you should be able to simply do:

<block postratings>
/ onblockbegin = [list.randommean.resetselection(); ]
/ preinstructions = (instruct)
/ trials = [1-20 = postratings]
</block>

<likert postratings>
/ ontrialbegin = [values.mean = list.randommean.nextindex; ]
/ stimulusframes = [1=mean]
/ numpoints = 7
/ position = (50%, 75%)
/ numpoints = 5
/ position = (50, 85)
/ anchors = [1="Très déplaisant"; 5="Très plaisant"]
/ fontstyle = ("Arial", 2%, false, false, false, false, 5, 1)
</likert>

<picture mean>
/ items = mean
/ select = values.mean
...
</picture>

Does that make sense?


Hi Dave! Thanks a lot, everyting seems to be under control now. There was a small issue with the contingency awareness task (the memorisation task before postratings), but I solved the problem by adding the same expression at the beginning of the block as for postratings:

<block Inclusion>
/ onblockbegin = [list.randommean.resetselection(); ]
/ bgstim = (agreableM, desagreableM)
/ trials = [1=instructionsGENERALES; 2=instructionsInclusion; 3=instructionsCommencer; 4-24= noreplace(meanA, meanB);25=instructionsMerci]
</block>

Really, thanks a lot for your help and your patience.
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
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
Attachments
Exclusion4.iqx (548 views, 57.00 KB)
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>

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>



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>

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);


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).

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
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
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
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search