Нахождение максимальных значений в распределении Пуассона в R - PullRequest
0 голосов
/ 16 мая 2019

У меня есть сценарий на R, который дает мне прогнозы на футбольные матчи. Он использует формулу распределения Пуассона, чтобы найти результаты, которые наиболее вероятны в матче, и, работая над ними, вы можете определить, кто выиграет или проиграет (если вы суммируете вероятности для 1-0,2-0,2-1 и т. д ... вы найдете шанс выиграть для команды 1 и т. д.)

Что мне нужно, так это определить 2 самых высоких значения в таблице распределения Пуассона и их относительных «отцов».

Я имею в виду, как вы видите на рисунке ниже, я должен идентифицировать 0.08652817 и 0.07346077 и их относительных "отцов" (3-2 и 4-2)

poisson distribution example

Так что скрипт должен предоставить что-то вроде

1°: 0,0865 (3-2)
2°: 0,073 (4-2)

Я пытался использовать

max(match, na.rm=T)

но, очевидно, это просто показывает 0,0865, а не его "отец" (3-2) Мне нужно то же самое и для второго по величине значения.

Что мне делать?

1 Ответ

0 голосов
/ 16 мая 2019

с использованием пакетов dplyr и purrr:

m <- matrix(ncol=7, nrow=7, runif(49)) #Fake data that look like your probabilities
d <- expand.grid(home=1:7, away=1:7) #data.frame with all possible outcomes
d$prob <- purrr::pmap_dbl(d, function(home, away){m[home,away]}) 
dplyr::top_n(d, 3, prob)  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...