Симуляция проигрыша

#r #simulation

#r #Симуляция

Вопрос:

Я пытаюсь создать симуляцию для побед команды НФЛ за сезон. Я создал код, который создаст вектор длиной 16 с «выигрышем» или «проигрышем» в качестве элементов на основе созданных мной критериев.

Я изо всех сил пытаюсь заставить R подсчитывать количество выигрышей в векторе и настраивать его для имитации теста несколько раз

Вот код, который я использовал для создания вектора

 schedule <- c(0.707, 0.594, 0.455, 0.487, 0.505, 0.327, 0.643, 0.525, 0.513,0.545, 0.500, 0.293, 0.545,  0.487, 0.465, 0.500)

random <- runif(16)

trial <- ifelse(random < schedule, "win","loss")
  

Ответ №1:

Если вы хотите запустить это runs количество раз (измените значение с 10 на любое необходимое вам) и просто отслеживать количество выигрышей, это один из способов:

 set.seed(1)

schedule <- c(0.707, 0.594, 0.455, 0.487, 0.505, 0.327, 0.643, 0.525, 0.513,0.545, 0.500, 0.293, 0.545, 0.487, 0.465, 0.500)

runs = 10

results = rep(NA, runs)

for (trial_run in 1:runs) {
  random <- runif(16)
  #trial <- ifelse(random < schedule, "win","loss")
  results[trial_run] <- sum(random < schedule)
}
results
#>  [1]  8  7  7  9  8  9  5 11  6 11
  

Создано 2020-10-20 пакетом reprex (версия 0.3.0)

Ответ №2:

Я думаю, вы действительно близки к тому, что хотите. Может быть, вам стоит попробовать replicate table , как показано ниже

 runs <- 5
trial <- replicate(runs,table(ifelse(runif(16) < schedule, "win","loss")),simplify = FALSE)
  

что дает результат, подобный

 > trial
[[1]]

loss  win
   6   10

[[2]]

loss  win
  12    4

[[3]]

loss  win 
   6   10

[[4]]

loss  win
   5   11

[[5]]

loss  win
   6   10