feedback and datafile


Author
Message
tecnika
tecnika
Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)
Group: Forum Members
Posts: 156, Visits: 790
Hello,

I am programming the below task, although the feedback doesn't seem show correctly, as neither the variable on the datafile. Any suggestion?
Please see the file in attachment.

Many thanks,

Elena

Goal
: to compare decision-making quality based on two different ways to quantify probabilities of natural hazards.
Hypothesis: participants will make safer decisions (will be more risk averse) based on the alternative wording of probabilities of natural hazards. Concretely: Participants will evacuate the city more often based on the alternative wording of the IPCC scale (See table 1).
Design: 4 probability magnitudes (Extremely low, very low, low, medium, high) x 2 wordings (IPCC vs., IPCC_A) will result in 10 probability phrases (depicted in Table 1). For each of those phrases, participants will make 10 decisions, thus totalling 100 decisions to be arranged in 10 blocks of 10 decisions (5 probability magnitudes x 2 wordings – randomly presented).
Table 1. Probability phrases per experimental condition
Probability of hazard
Wording condition
Probability phrase
Extremely low: 0.5%
IPCC
It is exceptionally unlikely that…
IPCC_A
There is an exceptionally small likelihood that…
Very low: 5%
IPCC
It is very unlikely that…
IPCC_A
There is a very small likelihood that…
Low: 17%
IPCC
It is unlikely that…
IPCC_A
There is a small likelihood that…
Medium: 50%
IPCC
It is about as likely as not that…
IPCC_A
It is evenly likely that…
High: 83%
IPCC
It is likely that…
IPCC_A
It is likely that

Procedure.
Participants’ role is to decide whether to evacuate a city or not based on predictions of a storm hitting the city. They base their decision on a prediction provided by the Intergovernmental Panel on climate change. Each decision focuses on a different city in a different part of the world. Each decision is independent from the one before and the tokens earned are NOT carried forward. In each trial, there is one of the four probabilities that the storm will hit the city, depending on the experimental condition (see Table 1). Participants do not know the exact probability, they are only provided the IPCC message (in one of two wordings, IPCC vs. IPCC alternative). The costs of the different decision outcomes were set so that safer decisions should be more beneficial.
Costing information that will be provided to participants (summarised in Table 2):
Evacuating the city comes has a cost: Participants need to invest 100 tokens to evacuate people. [The costing may need to be adjusted based on a pre-test]
·       If you do not evacuate and the storm hits the city: people are injured = -500 tokens
·       If you do not evacuate and the storm does NOT hit the city: people are at work and all is well +100
·       If you evacuate and the storm does NOT hit the city without people: people cannot work and the evacuation was costly = -100 tokens
·       If you evacuate and the storm hits the city without people: people are safe = +300 tokens
Table 2. Costs and benefits associated with each decision.
Decision
Outcome
Costs of decision
Utility of decision
Total utility
Evacuate
Storm hits city
-100
+600
500
Evacuate
No storm
-100
-100
-200
Do not evacuate
Storm hits city
0
-1000
-1000
Do not evacuate
No storm
0
+100
+100

Example of block
[trials randomly presented]
You are called to XYZ city because a storm is forming nearby. When you consult the IPCC regarding the path of this storm, you are told the following:
It is exceptionally unlikely that the storm will hit the city [unlimited time[1]] <New page> Event (99.5% of the cases: image of a blue sky sun vs., 0.5% of the cases: Image of a storm on a city) < New page > Feedback (you won £XX or you lost £XX è image of a smiling face for positive outcomes and a sad face for negative outcomes).
It is very unlikely that the storm will hit the city [unlimited time] <New page> Event (95% of the cases: image of a blue sky sun vs., 5% of the cases: Image of storm) < New page > Feedback (you won £XX or you lost £XX è image of a smiling face for positive outcomes and a sad face for negative outcomes).
It is unlikely that the storm will hit the city [unlimited time] <New page> Event (17% of the cases: image of a blue sky sun vs., 17% of the cases: Image of storm) < New page > Feedback (you won £XX or you lost £XX è image of a smiling face for positive outcomes and a sad face for negative outcomes).
…. [similarly with those phrases: Unlikely; About as likely as not; An exceptionally small likelihood; A very small likelihood; A small likelihood; Evenly likely, Likely, Likely] ….
List of variables
-        Decision (with a marker that indicates the block, the trial and the experimental condition for probability and wording) For example, the following variable would be the decision of someone in block 1, round 3, based on the phrases “It is unlikely…”: D_B1_T3_XPLow_XPIPCC.
NOTE: a similar marking system should be used for all of the variables that are “per trial”
-        Hazard (whether the hazard has occurred or not), per trial
-        DecisionPerformance: how many tokens participants have earned per trial
-        Time: time to reach a decision per round
-        TotalBlockDecision: Number of times participants decided to evacuate the city in each block
-        TotalDecision: Number of times participants decided to evacuate the city overall
-        TotalBlockPerformance: total token earned per block
-        TotalPerformance: overall tokens earned



Attachments
test2.iqx (201 views, 15.00 KB)
test2.iqx (232 views, 15.00 KB)
sad.png (426 views, 15.00 KB)
smiling.png (425 views, 15.00 KB)
storm.jpg (273 views, 27.00 KB)
sun.jpg (415 views, 39.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: 13K, Visits: 104K
<expt lexicaldecisiontask>
/ blocks = [1=decisionMakingTaskPractice; 2=decisionMakingTask]
/ ontrialend =
[if (trial.extremelylow.response==18) values.decision = "Evacuate"
else if (trial.extremelylow.response==23) values.decision = "Do not evacuate"
else if (trial.verylow.response==18) values.decision = "Evacuate"
else if (trial.verylow.response==23) values.decision = "Do not evacuate"
else if (trial.low.response==18) values.decision = "Evacuate"
else if (trial.low.response==23) values.decision = "Do not evacuate"
else if (trial.medium.response==18) values.decision = "Evacuate"
else if (trial.medium.response==23) values.decision = "Do not evacuate"
else if (trial.high.response==18) values.decision = "Evacuate"
else if (trial.high.response==23) values.decision = "Do not evacuate"]
/ ontrialend =
[if (trial.sun) values.outcome = "No storm"
else if (trial.storm) values.outcome = "Storm hits city"]
/ ontrialend =
[if (text.extremelylow.item(1)) values.wording = "IPCC"
else if (text.extremelylow.item(2)) values.wording = "IPCC_A"
else if (text.verylow.item(1)) values.wording = "IPCC"
else if (text.verylow.item(2)) values.wording = "IPCC_A"
else if (text.low.item(1)) values.wording = "IPCC"
else if (text.low.item(2)) values.wording = "IPCC_A"
else if (text.medium.item(1)) values.wording = "IPCC"
else if (text.medium.item(2)) values.wording = "IPCC_A"
else if (text.high.item(1)) values.wording = "IPCC"
else if (text.high.item(2)) values.wording = "IPCC_A"]
...
</expt>

^The way you set up those /ontrialend attributes is the problem. With them residing in the <expt>, the logic is executed in *every* trial.

- Suppose the 1st trial in the block is trial.high and the response is 23: ->  values.decision will be set to "Do not evacuate".
- Now suppose the 2nd trial in the block is trial.extremelylow and the response is 18:

/ ontrialend =
[if (trial.extremelylow.response==18) values.decision = "Evacuate" <- values.decision will be set to "Evacuate" here
else if (trial.extremelylow.response==23) values.decision = "Do not evacuate"
....
else if (trial.high.response==18) values.decision = "Evacuate"
else if (trial.high.response==23) values.decision = "Do not evacuate" <- but this condition is also true due to the preceding trial
                                                                                                                                  and values.decision ends up being set to "Do not evacuate"

The same applies to the remaining logic / the other /ontrialend attributes in the <expt>.

You should remove those from the <expt> and put the relevant statements in the respective /trial elements they belong to, as in

<trial ExtremelyLow>
/ ontrialend = [if (trial.extremelylow.response==18) values.decision = "Evacuate"
    else values.decision = "Do not evacuate"]
...
/ stimulustimes = [0=blank; 700=ExtremelyLow]
/ validresponse = ("E", "I")
/ branch=[list.extremelylowprobability.nextvalue]
/ beginresponsetime = 700
</trial>

Hope this helps.

tecnika
tecnika
Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)Guru (14K reputation)
Group: Forum Members
Posts: 156, Visits: 790
Thank you very much.

I have tried to put feedback and values in the corresponding item. The feedback is shown right on the screen but in the datafile values.feedback and values.outcome shift of one value, so they are aligned with the following decision.

Can you help please?

Elena


Attachments
test3.iqx (207 views, 16.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: 13K, Visits: 104K
You only determine values.outcome in the feedback trials, e.g.,

<trial SunEvacuate>
/ ontrialend =
[if (trial.sunevacuate) values.outcome = "No storm"]

/ stimulustimes = [0=Sun]
/ validresponse = (" ")
/ correctresponse = (" ")
/ recorddata = false
/ branch = [trial.feedbacklost200]
</trial>

but do not record them to the data file. The data line for the preceding decision trial cannot reflect the outcome for the decision. The outcome is not know yet. The same is true for values.feedback, which you only set in

<trial FeedbackLost200>
/ ontrialend =
[if (trial.FeedbackLost200) values.feedback = "-200"]

/ stimulustimes = [0=FeedbackLost200, Sad]
/ validresponse = (" ")
/ recorddata = false
</trial>

which also aren't recorded.

You need to log the outcome / feedback trials to the data file, i.e., set /recorddate to true. The lines for the outcome trials, then, will reflect the complete set of choices and outcomes for the given "round" (values.wording, values.decision, values.outcome, values.feedback).

Edited 8 Years Ago by Dave
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Reading This Topic

Explore
Messages
Mentions
Search