By tecnika - 10/13/2016
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
|
By Dave - 10/13/2016
<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.
|
By tecnika - 10/13/2016
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
|
By Dave - 10/14/2016
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).
|
|