A payoff simulation maps scenario labels to numeric gains or losses. Changing the stake scales every simulated payoff.

Program

Play the script to change the stake and watch the average payoff scale.

stake
scenario_payoff.R
Replay: real traced execution (multi-file project)
scenarios <- c("win", "lose", "win", "win", "lose", "lose")
stake <- 10
payoff <- ifelse(scenarios == "win", stake * 2, -stake)
average <- mean(payoff)
label <- paste("avg", average)
cat(label, "\n", sep = "")
scenarios <- c("win", "lose", "win", "win", "lose", "lose")
stake <- 5
payoff <- ifelse(scenarios == "win", stake * 2, -stake)
average <- mean(payoff)
label <- paste("avg", average)
cat(label, "\n", sep = "")
scenarios <- c("win", "lose", "win", "win", "lose", "lose")
stake <- 20
payoff <- ifelse(scenarios == "win", stake * 2, -stake)
average <- mean(payoff)
label <- paste("avg", average)
cat(label, "\n", sep = "")
  1. scenarios ← win, lose, win, win, lose, lose

    1scenarios <- c("win", "lose", "win", "win", "lose", "lose")2stake <- 10
    values this stepwin, lose, win, win, lose, losescenarios
  2. stake ← 10

    1scenarios <- c("win", "lose", "win", "win", "lose", "lose")2stake <- 103payoff <- ifelse(scenarios == "win", stake * 2, -stake)
    values this step10stake
  3. payoff ← 20, -10, 20, 20, -10, -10

    2stake <- 103payoff <- ifelse(scenarios == "win", stake * 2, -stake)4average <- mean(payoff)
    values this step20, -10, 20, 20, -10, -10payoff3 wins, 3 lossesscenarios10stake
  4. average ← 5

    3payoff <- ifelse(scenarios == "win", stake * 2, -stake)4average <- mean(payoff)5label <- paste("avg", average)
    values this step5average20, -10, 20, 20, -10, -10payoff
  5. label ← avg 5

    4average <- mean(payoff)5label <- paste("avg", average)6cat(label, "\n", sep = "")
    values this stepavg 5label5average
  6. cat(label, " ", sep = "")

    5label <- paste("avg", average)6cat(label, "\n", sep = "")
    outputavg 5
    values this stepavg 5label
  1. scenarios ← win, lose, win, win, lose, lose

    1scenarios <- c("win", "lose", "win", "win", "lose", "lose")2stake <- 5
    values this stepwin, lose, win, win, lose, losescenarios
  2. stake ← 5

    1scenarios <- c("win", "lose", "win", "win", "lose", "lose")2stake <- 53payoff <- ifelse(scenarios == "win", stake * 2, -stake)
    values this step5stake
  3. payoff ← 10, -5, 10, 10, -5, -5

    2stake <- 53payoff <- ifelse(scenarios == "win", stake * 2, -stake)4average <- mean(payoff)
    values this step10, -5, 10, 10, -5, -5payoff3 wins, 3 lossesscenarios5stake
  4. average ← 2.5

    3payoff <- ifelse(scenarios == "win", stake * 2, -stake)4average <- mean(payoff)5label <- paste("avg", average)
    values this step2.5average10, -5, 10, 10, -5, -5payoff
  5. label ← avg 2.5

    4average <- mean(payoff)5label <- paste("avg", average)6cat(label, "\n", sep = "")
    values this stepavg 2.5label2.5average
  6. cat(label, " ", sep = "")

    5label <- paste("avg", average)6cat(label, "\n", sep = "")
    outputavg 2.5
    values this stepavg 2.5label
  1. scenarios ← win, lose, win, win, lose, lose

    1scenarios <- c("win", "lose", "win", "win", "lose", "lose")2stake <- 20
    values this stepwin, lose, win, win, lose, losescenarios
  2. stake ← 20

    1scenarios <- c("win", "lose", "win", "win", "lose", "lose")2stake <- 203payoff <- ifelse(scenarios == "win", stake * 2, -stake)
    values this step20stake
  3. payoff ← 40, -20, 40, 40, -20, -20

    2stake <- 203payoff <- ifelse(scenarios == "win", stake * 2, -stake)4average <- mean(payoff)
    values this step40, -20, 40, 40, -20, -20payoff3 wins, 3 lossesscenarios20stake
  4. average ← 10

    3payoff <- ifelse(scenarios == "win", stake * 2, -stake)4average <- mean(payoff)5label <- paste("avg", average)
    values this step10average40, -20, 40, 40, -20, -20payoff
  5. label ← avg 10

    4average <- mean(payoff)5label <- paste("avg", average)6cat(label, "\n", sep = "")
    values this stepavg 10label10average
  6. cat(label, " ", sep = "")

    5label <- paste("avg", average)6cat(label, "\n", sep = "")
    outputavg 10
    values this stepavg 10label
ifelse `ifelse(condition, yes, no)` maps each scenario to a payoff.
scenario vector A scenario vector can be reused while changing assumptions such as `stake`.
mean `mean(payoff)` summarizes the simulated payoff distribution.