Нормирование суммы оценочных вероятностей до 1 - PullRequest
0 голосов
/ 30 апреля 2019

Я использую ИНС для оценки вероятности выигрыша в баскетболе.Следовательно, обе команды данного матча имеют вероятности выигрыша, которые должны логически складываться до 100%.К сожалению, сумма вероятностей для совпадения везде между 95% и 105%.Прямо сейчас я использую Excel, чтобы обойти проблему и разделить вероятность с суммой обеих вероятностей, чтобы всегда получить сумму 100%.Я хотел бы сделать это в R, но не знаю как, так как сумма вероятностей никогда не бывает одинаковой для любой пары вероятностей.Любая помощь приветствуется!

Пример двух совпадений:

Example A:
0.7177853
0.3038550
sum = 102.2

Example B:
0.4401672
0.5872775
sum = 102.7

Для примера A он должен преобразоваться примерно в 70,3% и 29,7% после выполнения расчетов.

1 Ответ

0 голосов
/ 30 апреля 2019
x <- c(0.7177853, 0.3038550)


recalc <- function(x, y) {
  values <- sum(x, y)
  mult <- 1 / values
  newx <- x * mult
  newy <- y * mult
  return(c(newx, newy))
}

recalc(0.7177853, 0.3038550)

[1] 0.7025812 0.2974188

Если ваши данные хранятся в кадре данных, мы можем Vectorize функцию:

df <- data.frame(
  x = c(0.7177853, 0.7677853, 0.5177853),
  y = c(0.3038550, 0.438550, 0.7038550)
)

newfunc <- Vectorize(recalc)
newfunc(x = df$x, y = df$y)

          [,1]      [,2]      [,3]
[1,] 0.7025812 0.6364609 0.4238443
[2,] 0.2974188 0.3635391 0.5761557

Вы хотите это, я думаю.

...