Problem with per-trial weight adjustment using setweight

David McFarlane mcfarla9 at msu.edu
Mon Mar 31 19:24:10 UTC 2014


Just a few comments offhand...

First, the text for your code excerpt appears in little tiny type in 
my e-mail reader, I had to copy & paste it into a text editor just to 
read it.  Please spare me that trouble in the future.

Second, whenever I see someone mucking about that much with List 
weights in code, I wonder whether the same end might be better 
accomplish by some restructuring with multiple Lists or nested 
Lists.  We all find it difficult to rethink and restructure a program 
once we feel it is close to working, but many times I have found that 
that sort of rethinking and restructuring has not only fixed the 
immediate problem, but also solved other imminent problems.  You may 
indeed have a good reason for managing List weights in this case, but 
think about it.

Third, I confess I found too much detail in the description for me to 
work through it all.  So I will just toss out the most common mistake 
that people make when modifying Lists in code -- did you remember to 
use List.Reset (in your case, FaceList.Reset) after making all these 
changes?  Your code excerpt does not include that line.

Regards,
-----
David McFarlane
E-Prime training 
online:  http://psychology.msu.edu/Workshops_Courses/eprime.aspx
Twitter:  @EPrimeMaster (https://twitter.com/EPrimeMaster )

/----
Stock reminder:  1) I do not work for PST.  2) PST's trained staff 
take any and all questions at https://support.pstnet.com , and they 
strive to respond to all requests in 24-48 hours, so make full use of 
it.  3) In addition, PST offers several instructional videos on their 
YouTube channel (http://www.youtube.com/user/PSTNET ).  4) If you do 
get an answer from PST staff, please extend the courtesy of posting 
their reply back here for the sake of others.
\----


At 3/31/2014 07:59 AM Monday, LaurensK90 wrote:
>I'm trying to create a task-switching experiment that requires 
>participants to categorize a face by either emotion or gender, as 
>indicated by a pre-stimulus cue. Repeat trials (emotion trial 
>following an emotion trial, or gender trial following a gender 
>trial) need to be more common than switch trials (emotion trial 
>following a gender trial, etc.), with a 1:3 switch:repeat ratio. To 
>achieve this, I wrote this script:
>
>Dim e as integer
>Dim g as integer
>'Weighting trials to make repeats more likely than switches
>If c.GetAttrib("TaskNr") = "0" Then
>  FaceList.SetWeight 1, "3"
>  FaceList.SetWeight 2, "1"
>  FaceList.SetWeight 3, "3"
>  FaceList.SetWeight 4, "1"
>  FaceList.SetWeight 5, "3"
>  FaceList.SetWeight 6, "1"
>  FaceList.SetWeight 7, "3"
>  FaceList.SetWeight 8, "1"
>  'Counter to keep track of how many consecutive emotion trials have occured
>  e = e+1
>  g = 0
>
>ElseIf c.GetAttrib("TaskNr") = "1" Then
>  FaceList.SetWeight 1, "1"
>  FaceList.SetWeight 2, "3"
>  FaceList.SetWeight 3, "1"
>  FaceList.SetWeight 4, "3"
>  FaceList.SetWeight 5, "1"
>  FaceList.SetWeight 6, "3"
>  FaceList.SetWeight 7, "1"
>  FaceList.SetWeight 8, "3"
>  'Counter to keep track of how many consecutive gender trials have occured
>  g = g+1
>  e = 0
>
>End If
>'Set weights for emotion or gender trials to zero to prevent too many repeats
>'If e >= 5 Then
>' FaceList.SetWeight 1, "0"
>' FaceList.SetWeight 2, "1"
>' FaceList.SetWeight 3, "0"
>' FaceList.SetWeight 4, "1"
>' FaceList.SetWeight 5, "0"
>' FaceList.SetWeight 6, "1"
>' FaceList.SetWeight 7, "0"
>' FaceList.SetWeight 8, "1"
>' e = 0
>
>'ElseIf g >= 5 Then
>' FaceList.SetWeight 1, "1"
>' FaceList.SetWeight 2, "0"
>' FaceList.SetWeight 3, "1"
>' FaceList.SetWeight 4, "0"
>' FaceList.SetWeight 5, "1"
>' FaceList.SetWeight 6, "0"
>' FaceList.SetWeight 7, "1"
>' FaceList.SetWeight 8, "0"
>' g = 0
>
>'End If
>
>The first If statement looks at the current trial type and increases 
>the weights of every same trial type to 3, and every other trial 
>type to 1. The trial types are in alternating rows in FaceList. The 
>script is at the end of the core experimental procedure, meaning 
>that the weights are adjusted after each trial is complete. If I've 
>done this correctly, there should be three times as many repeat 
>trials as switch trials, but this doesn't seem to happen. I ran the 
>experiment with 768 trials, then copied the TaskNr column (filled 
>with 0s and 1s) out of the data file and pasted it in Excel. Then I 
>added every cell to the cell below it to determine whether the trial 
>was a repeat (0 or 2) or a switch (1), and counted those. This 
>always results in roughly equal numbers of 0s, 1s and 2s (a 1:2 
>switch ratio) while running the task without the script gives you as 
>many 1s as 0s and 2s combined (a 1:1 switch ratio). So the switch 
>ratio works as expected without the script but not with it. I'm 
>wondering if there's something wrong with the way I'm counting these 
>because changing the weights from 3 to 4 or 5 makes the maximum 
>number of consecutive repeats increase. With weights set to 3, 10 
>gender tasks in a row occur 20 times, and when set to 5, 10 in a row 
>occur 46 times. So it's strange the actual switch ratio isn't affected.
>
>The second if statement tries to ensure that there are no more than 
>5 consecutive trials of the same type, by looking at a counter that 
>increments every time a trial passes of one type, and resets every 
>time a trial passes of the other type. If the counter reaches 5, it 
>sets all the trials of the same type to zero so it can't select them 
>again. I haven't tested this extensively but the first time I ran 
>the experiment with it, the number of consecutive repeats was even 
>higher than normal! Have I made a mistake in this script, or might 
>this be the same problem as the previous one?
>
>I've asked official E-Prime support for help as well, a week ago, 
>but haven't heard back from them yet, so any additional assistance 
>would be appreciated.


-- 
You received this message because you are subscribed to the Google Groups "E-Prime" group.
To unsubscribe from this group and stop receiving emails from it, send an email to e-prime+unsubscribe at googlegroups.com.
To post to this group, send email to e-prime at googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/e-prime/5339c127.8770320a.7697.5568SMTPIN_ADDED_MISSING%40gmr-mx.google.com.
For more options, visit https://groups.google.com/d/optout.



More information about the Eprime mailing list