The input table, project_cost, has data for three projects (players). The player position is represented by the three digits shown in the column project_index. The first digit corresponds to project1, the second digit to project2, and so on. The digit 1 indicates that the project is included; 0 indicates that it is excluded. The column projects_combined also indicates which projects are included.
Assume that you implemented all three projects and want to know the average contribution of each project to the total cost (capital_cost + operating_cost). Shapley value calculates that average cost contribution over all possible orderings of the players.
Given a cost-sharing game, let the players join the game one at a time in predetermined order. The cost contribution of a player is the net addition to cost when the player joins (that is, the incremental cost of adding the player to the group of players who have already joined).
The last line in the preceding table that includes all the projects (p_123) is analyzed as follows to derive the average contribution.
Sharing the Capital Cost of 16,000 for p_123
- Player p_1 adds nothing to any coalition and pays nothing.
- Players p_ 2 and p_ 3 are symmetric and pay equally.
- The players share the 16,000 capital cost as follows:
Player Cost p_1 0 p_2 8,000 p_3 8,000
Sharing Operation Cost of 4,000 for p_123
- Player p_3 adds nothing to any coalition and pays nothing.
- Players p_ 1 and p_ 2 are symmetric and pay equally.
- The players share the 4,000 capital cost as follows:
Player Cost p_1 2,000 p_2 2,000 p_3 0
Sharing Total Cost of 20,000 for p_123
- Player p_1 pays 0+2000=2000.
- Player p_2 pays 8000+2000=10,000.
- Player p_3 pays 8000+0=8000.
The preceding values are the Shapley values of the projects, which are also shown in the Shapley Value Functions Example: ShapleyGenerateCombination, ShapleyAddOnePlayer; Step 3 output.