wiki:Public

Version 10 (modified by developer, 21 months ago) (diff)

--

Public Goods Game – Voluntary Contribution Mechanism

[Dan, Ryan and Charness are nearly finished with their working paper on this experiment. When that's ready with a public link, we should link to the full paper here...]

Here we consider a simple public goods game in which one’s payoff is a function of one's retained endowment and a multiple of all participant’s contribution to the public good. Voluntary contributions are socially valuable, but not individually rational.

Treatments are varied over; 1) Communication (a free-form chat window, a more restrictive canned-response options in lieu of a free-chat-window, and lastly no communication possible) and 2) discrete vs continuous time.

This experiment is primarily concerned with how these treatments affect contributions to the group pool.

The payoff function takes the form

\begin{flalign*}
\Pi_i=\left ( sMin-s_i \right ) + \left ( \frac{A}{n} \right )\left ( \sum_{i=1}^{n} s_i \right ) \\
s_i \in \left [ sMin,sMax \right ] \\
n = \textrm{number of players (called 1 \\ \end{flalign*} " />

In words; there are n number of players, each receives an endowment of sMax at the start of the game. Players choose to retain all or part of their endowment for themselves (reflected by s_{i} in the payoff function above), or contribute it to a group account. The value of the token contributed to the group is multiplied by A. An A greater than (1) implies social value in group contributions – a public good. Clearly any individual’s best hope is for all other players to contribute to the pool and for the individual to retain their endowment – contributions are not individually rational.

Parameterization

In this documentation’s parameterization, each participant receives 25 tokens in a private account (that is, sMax=25). Tokens retained are worth one point. Tokens contributed to the group account are worth alpha times this value (we set A=1.2). With three players in each group, groupSize=3.


The Demo Experiment Step-by-Step

First, you need to download the following JAR file (Download current version of CONG ~3MB). This is an executable JAVA file that will load & execute your experiment.

You'll also need to download the configuration CSV file that will define our various treatments (Download PublicGoods.CSV). The various edifying treatments discussed below have each their own row "Period" in the config CSV file.

  1. Double-click on Test.JAR
  2. Select 3 as the Number of Subjects.
  3. Leave "Open GL" checked (if your computer, for some reason, can't use Open GL and crashes, please kindly upgrade your computer)
  4. Click the "Start" button
  5. You should see the one Control window & three Client windows pop up on your computer.
  6. After these four windows have opened, click on the Control window
  7. Note that the three Clients have connected as client_1 test, client_2 test etc in the upper left-hand-corner of the Control window.
  8. Click on "Load Period Config" in the bottom of the Control window.
  9. Select the (PublicGoods.CSV) file
  10. Each Treatment below is a "Period" in the experiment you've just loaded.

System Requirements - Although the test experiment should be able to run on most computers and laptops, you may want to check the System Requirements


Treatments

Period One - Continuous time

period paid length subperiods groupSize matchType payoffFunction type name A smin smax min max mixed selector objectiveColors chatroom freeChat initial showSMinMax showPGMultiplier potential
1 TRUE 300 0 3 self sum public_goods pf 1.2 0 25 0 60 TRUE bubbles TRUE FALSE FLASE 0 TRUE TRUE FALSE
  • Note that we are in period One now -- the second row of the (PublicGoods.CSV) config file.
  • Under paid we've said TRUE, meaning each player's actions in this round will be added to their final payoff? calculations. If we wanted to have a practice round or two -- a period in which subject got a chance to risklessly play before the experiment starts -- one would set "paid" to "False".
  • length refers to the number of seconds in the game. With the choice of 300, this period will last five minutes.
  • subperiods sets the option for continuous or discrete time. For the continuous time experiment, set subperiods to 0. Note that ConG continuous time experiments are not strictly/technically in continuous time, they break each second into more-than ten subperiods (that is, with a five minute experiment it's the equivalent to over 3000 subperiods -- but note that subperiods=0 is not equivolent in ConG to length=300 & subperiods=3000 -- 'issues' arise when trying to simulate continuous time in a discrete setting. For example the countdown time tends to fail. Further, Continuous and Discrete time (with infinity subperiods) are treated by ConG as different creatures entirely - Tick data output is logged differently, etc)

Figure - below is a screenshot from the continuous treatment explained above - here from the point of view of player 'GREEN'. Note the strategy selector bar along the bottom -- users may select strategies between zero and 25 (selecting with their mouse or arrow keys), this is the amount they contribute to the common pool. Here, player Green is being a bit greedy, choosing zero; retaining all their endowment for themselves, while player BLUE is retaining most of their token endowment, and player RED is acting as most cooperative. There are 252 seconds left.


Period Two - Discrete Time

Here we move from continuous time to discrete time. Breaking our five minute experiment into ten sub-periods, each lasting 30 seconds. During the 30-second interval subjects may freely change their strategy. Only the strategy selected at the end of the subperiod will be used to calculate payoffs & reflected on screen.

period paid length subperiods groupSize matchType payoffFunction type name A smin smax min max mixed selector objectiveColors chatroom freeChat initial showSMinMax showPGMultiplier potential
2 TRUE 300 10 3 self sum public_goods pf 1.2 0 25 0 60 TRUE bubbles TRUE FALSE FALSE 0 TRUE TRUE FALSE
  • Note that we are in period Two now -- the third row of the (PublicGoods.CSV) config file.
  • length remains 300, reflecting the five minute (three-hundred second) subperiod length.
  • subperiods is set to 10. Each subperiod lasts 300/10 seconds, or thirty seconds. Note that subjects can change their strategy any time during the subperiod, however ConG only recognizes the s_{i} choice at the end of the thirty second interval in payoffs.

Figure - below, please enjoy a screenshot from the discrete time experiment described above. There are four subperiods left (meaning we are choosing the strategy for the fourth subperiod, six have passed). Note the light-blue progress bar above the payout space chart, you can see we are about half way through the 30 second subperiod. This is a screenshot for player GREEN. The dots for RED and BLUE denote the strategies chosen by those players in the previous subperiod (period five) -- BLUE was very cooperative; giving their 25 token endowment to the group pool (and only getting 18.6 of the full in return). Player RED was greedy last period; retaining their entire 25 token endowment to add to their 18.6 portion of the group pool, for a total of 43.3 last period, jerk)


Communication

There are three options for communications in Public Goods; no communications, "canned-response" chat, and free chat. When communication is enabled the clients will each have a popup chat window on their screen which they can use accordingly. We'll explore the options below.

Period Three - No Chat

period paid length subperiods groupSize matchType payoffFunction type name A smin smax min max mixed selector objectiveColors chatroom freeChat initial showSMinMax showPGMultiplier potential
3 TRUE 300 0 3 self sum public_goods pf 1.2 0 25 0 60 TRUE bubbles TRUE FALSE FALSE 0 TRUE TRUE FALSE
  • With chatroom & freechat both set to FALSE, there is no chat window possible. This treatment period is identical to Period One above.

Period Four - Limited Communication - Canned Response Chat

period paid length subperiods groupSize matchType payoffFunction type name A smin smax min max mixed selector objectiveColors chatroom freeChat initial showSMinMax showPGMultiplier potential
4 TRUE 300 0 3 self sum public_goods pf 1.2 0 25 0 60 TRUE bubbles TRUE TRUE FALSE 0 TRUE TRUE FALSE
  • With chatroom set to TRUE, players have the option to chat in a window
  • With freeChat set to FALSE, players see a chatroom window (the window opens up separate to the game-selector window, ala the figure below). But with freeChat=FALSE chat options are limited to buttons that players can use to create simple commands to the other players. The player can click a button to write another player's color designation, and click other buttons to issue a command i.e. "Green go left".

  • Note that objectiveColors is set to TRUE. objectiveColors is a boolean field that applies only to the bubbles selector -- set to TRUE, means that during the players are a consistent color to one another. If one player appears GREEN to themselves, they appear GREEN to everyone else. Colors don't necessarily carry over from one period to the next. For the Chat feature to have an objective use to players, this field must be set to TRUE.

Period Five - Full Communication - Free Style Chat Window

period paid length subperiods groupSize matchType payoffFunction type name A smin smax min max mixed selector objectiveColors chatroom freeChat initial showSMinMax showPGMultiplier potential
5 TRUE 300 0 3 self sum public_goods pf 1.2 0 25 0 60 TRUE bubbles TRUE TRUE TRUE 0 TRUE TRUE FALSE
  • With both chatroom & freeChat set to TRUE, players see a second window pop-up during this period. The simple chat window allows players to chat freely.

Figure note that the chat window below is for a four-person game, while the tables above and config CSV demo file attached is for a three person game. We're just trying to confuse you.


'potential' with Bubbles

Period Six - Potential Set to True

period paid length subperiods groupSize matchType payoffFunction type name A smin smax min max mixed selector objectiveColors chatroom freeChat initial showSMinMax showPGMultiplier potential
6 TRUE 300 0 3 self sum public_goods pf 1.2 0 25 0 60 TRUE bubbles TRUE FALSEFALSE 0 TRUE TRUE TRUE
  • Potential: When set to TRUE, subjects see a 'potential curve' on the clients' window. Although not particularly interesting for the Public Goods game, this 'potential' option may be used in other experiments that use the Bubbles selector. See the Bubbles page for more details.


Config File Fields & Description

  • period - [1-n] Integer field which designates the period number.
  • paid - [TRUE - FALSE] Boolean field which determines whether the point from the round are counted towards the player's payoff.
  • length - - [1-n] Integer field which determines the length(in seconds) of the entire period.
  • subperiods - - [0-n] Integer field. When set to zero the game will be in continuous time. When set to greater than 0 the total period length in seconds will be divided by the number of subperiods. So for length=300 and subperiods=5 there will be five subperiods of 300/5 (one minute) length.
  • groupSize - [1-n] Integer field which determines the number of players in each group. The number of subjects chosen when first loading ConG must be evenly divisible by this number.
  • matchType - can we remove this field from the CSV???
  • payoffFunction - This field requires specific entries that designate the payoff function of the game. For this public goods game, this field must be set to "sum".
  • type - This field requires specific entries that designate the "sum" payoff function type. There are currently several sum payoff functions under development (for Cournot and Bertrand games, for example). For this public goods game, the type must be set to "public_goods".
  • name - set to "pf"
  • A - Integer field that sets the payoff function parameter "A".
  • smin - Integer field that sets the payoff function parameter "sMin".
  • smax - Integer field that sets the payoff function parameter "sMax".
  • min - - Integer field that sets the minimum payoff for the players.
  • max - Integer field that sets that maximum payoff for the players.
  • mixed - [TRUE - FALSE] Boolean field that determines whether the players can choose mixed strategies. This field must be set to TRUE for this public goods game.
  • selector - This field requires the specific entry that determines the selectors that players may use in the game. This game must be set to "bubble".
  • objectiveColors - [TRUE FALSE] A Boolean field that establishes whether or not the colors subjects see as they own is consistent with all players. If set to TRUE, then a player that appears GREEN on their own screen appears GREEN to all other subjects as well. Obviously for the Chat feature to have any objective use to players in the game, objectiveColors must be set to TRUE. Set to FALSE players aren’t colored consistently on each other’s screen – that is if one appears GREEN on one’s own screen that player may appear any number of a random set of colors on other subject’s screen. This field applies only apples to bubbles selector. The default is FALSE
  • chatroom - [TRUE FALSE] Boolean field that determine whether or not the addition chat window will be open and available during the period. If set to TRUE, a chatroom window will appear. Currently, there are two chatroom option,
  • freeChat - [TRUE FALSE] If the "chatroom" field above is set to TRUE, this boolean field determine which type of chatroom available during the period. Under "TRUE" the unlimited chatbox is available. Under "False", only the canned-response chatbox is available.
  • initial[0-1] A real number between zero and one, inclusive, that set’s all player’s initial endowment each period. The endowment is scaled to sMin and sMax (example; with sMin=0, sMax=25 and initial=0.2, each player will start with 5). The setting is global, applied to all players. Per-player endowments require additional configuration.
  • showSMinMax – for bubbles, whether or not sMin or sMax are shown on x-axis.
  • showPGMultiplier - whether or not the
  • potential - Boolean field, if set to TRUE, shows a ‘potential’ curve, displays for the subject the potential payoff he/she could achieve for every possible strategy. This makes the subject's job considerably easier, as the best strategy for the user to choose is at the peak of this curve. For most (if not all) payoff functions, however, one subject's payoff is affected not only the subject's own strategy, but by some or all of the other subjects' strategies as well; thus, the curve can shift during a period. See the Bubbles page for more details.

Attachments