Statistik Modelləşdirmə ilə Futbol Nəticələrini proqnozlaşdırmaq

Dünyanın ən populyar idman növünü hər kəsin sevdiyi diskret ehtimal paylaması ilə birləşdirən bu yazı, Poisson paylamasından istifadə edərək futbol matçlarını proqnozlaşdırır.

David Sheehan

İdman, siyasət və Simpsons istinadları ilə maraqlanan məlumat alimi

  • Cork vasitəsilə London

Futbol (və ya Amerikalı oxucularım üçün futbol) klişelərlə doludur: “İki yarıdan ibarət bir oyundur”, “Hər dəfə bir oyuna aparırıq” və “Liverpul Premyer Liqanı qazana bilmədi”. “Hər komandanın vurduğu qol sayını müstəqil Poisson prosesləri kimi qəbul etdiyimizi, statistik modelləşdirmə ev sahiblərinin bu gün 60% qazanma şansının olduğunu” eşitməyiniz daha azdır. Ancaq bu əslində bir az klişedir (burada, burada, burada və burada müzakirə edilmişdir). Kəşf edəcəyimizə görə, sadə bir Poisson modeli, həddindən artıq sadədir. Ancaq yaxşı bir başlanğıc nöqtəsi və statistik modelləşdirmə haqqında öyrənmək üçün gözəl bir intuitiv yoldur. Beləliklə, bura pul qazanmaq üçün gəlmişsinizsə, eşidirəm ki, bu adam evdən çıxmadan ayda 5000 funt qazanır.

Poisson Distribution

Model hər komandanın vurduğu / buraxdığı qol sayına görə qurulur. Keçmişdə daha yüksək bal toplayan komandaların gələcəkdə qol vurma ehtimalı daha yüksəkdir. Bütün matç nəticələrini bu yaxınlarda başa çatan Premyer Liqa (2016/17) mövsümündən idxal edəcəyik. Orada bu məlumatlar üçün müxtəlif mənbələr var (kaggle, football-data.co.uk, github, API). Tamamilə xudbinlik üçün (o kənara: Mən bunu özümüncülük kimi səhv yazmışam, bunu özümün özüm kimi səhv oxumuşam. Təəssüf ki, egostatistical.com götürülmüşdür) səbəblərə görə, bu API üçün R sarğı qurduğumuz üçün, fantastik footballR paketini istifadə edərək məlumatları idxal edəcəyik. .

Bu yazıdakı qrafikləri yaradan kodun əksəriyyətini buraxacağam. Narahat olma, bu kodu github səhifəmdə tapa bilərsiniz. Verilənləri necə formatladığım barədə bir fikir vermək üçün onu burada təqdim etdim (əsasən dplyr). Bu kod mürəkkəb görünsə də, əsasən Betfair API ilə uyğunlaşması üçün komanda adlarının dəyişdirilməsini nəzərdə tutur (daha sonra bu barədə). Bizim vəzifəmiz mövsümdəki fikstürün son turunu modelləşdirməkdir, buna görə son 10 sıranı çıxarmalıyıq (hər oyun matçı 10 matçdan ibarətdir).

Ev sahibi komandanın orta hesabla qonaq komandadan daha çox qol vurduğunu görəcəksiniz. Bu, "ev (sahə) üstünlüyü" (burada müzakirə olunur) adlanır və futbola xas deyil. Poisson paylamasını təqdim etmək üçün əlverişli bir zamandır. Müəyyən bir orta müddət nisbətində (məsələn, 90 dəqiqə) müəyyən bir müddət ərzində hadisələrin sayının ehtimalını təsvir edən ayrı-ayrı ehtimal paylanmasıdır. Əsas fərziyyə hadisələrin sayının zamandan asılı olmamasıdır. Kontekstimizdə bu, matçda vurulan qol sayına görə qolların az və ya çox olma ehtimalı deməkdir. Bunun əvəzinə, qol sayı sırf funksiya olaraq orta qol nisbətində ifadə edilir. Əgər bu aydın deyilsə, bəlkə bu riyazi formulasyon daha aydın olacaq:

orta dərəcəni təmsil edir (orta hədəf sayı, aldığınız orta məktub sayı və s.). Beləliklə, ev və qonaq komandanın vurduğu qol sayını Poisson bölgüsü kimi qəbul edə bilərik. Aşağıdakı süjet, vurulan qolların müvafiq Poisson bölgüsü ilə qiymətləndirilən qol sayına nisbətini göstərir.

Konkret hadisələrin baş vermə ehtimalını qiymətləndirmək üçün bu statistik modeli istifadə edə bilərik.

Heç-heçə ehtimalı sadəcə iki komandanın eyni miqdarda qol vurduğu hadisələrin cəmidir.

Qeyd edək ki, hər komandanın vurduğu qol sayını müstəqil hadisələr hesab edirik (yəni P (A n B) = P (A) P (B)). İki Poisson paylanmasının fərqinə əslində Skellam paylanması deyilir. Beləliklə, bu paylanmaya orta hədəf dəyərlərini daxil edərək çəkiliş ehtimalını hesablaya bilərik.

Beləliklə, ümid edirəm ki, bu yanaşmanı xüsusi matçlara necə uyğunlaşdıra biləcəyimizi görə bilərsiniz. Yalnız hər bir komandanın vurduğu orta qol sayını bilməli və bu məlumatları Poisson modelinə salmalıyıq. Çelsi və Sanderlendin vurduğu qol bölgüsünə nəzər salaq (müvafiq olaraq 1-ci və sonuncu yerləri tutan komandalar).

Model qurmaq

Artıq hər komandanın vurduğu qol sayının Poisson paylanması ilə təqribən edilə biləcəyinə əmin olmalısınız. Nisbətən seçmə ölçüsünə görə (hər komanda ən çox 19 ev / səfər oyunu oynayır) bu yaxınlaşmanın dəqiqliyi əhəmiyyətli dərəcədə dəyişə bilər (xüsusən mövsümün əvvəlində komandaların az oyun keçirdiyi). Əvvəlki kimi, indi də bu Chelsea Sunderland matçında müxtəlif hadisələrin baş vermə ehtimalını hesablaya bildik. Ancaq hər matça ayrı-ayrılıqda baxmaqdansa, daha ümumi bir Poisson regresiya modeli quracağıq (bu nədir?).

Glm (.) Hissəsi ilə maraqlanırsınızsa, burada daha çox məlumat tapa bilərsiniz. Model xülasə cədvəlindəki Təxmin sütununda təqdim olunan dəyərlər daha çox məni maraqlandırır. Bu dəyər xətti reqressiyadakı yamaca bənzəyir. Logistik reqressiyaya bənzər olaraq, parametr dəyərlərinin göstəricisini alırıq. Pozitiv dəyər daha çox hədəf (), sıfıra yaxın dəyərlər isə daha neytral təsirləri () nəzərdə tutur. İlk fərq etdiyiniz şey evin 0.29693 qiymətləndirməsinə sahib olmasıdır. Bu, ev komandalarının ümumiyyətlə qonaq komandadan daha çox qol vurduğunu göstərir (xüsusən, = 1,35 dəfə çox). Ancaq bütün komandalar bərabər deyil. Chelsea-nin hesabı 0,07890, Sunderland üçün uyğun dəyər isə -0,96194 (Çelsi (Sunderland) ortalamadan daha yaxşıdır (çox pis!).) Nəhayət,rəqib * dəyərlər komandalarını rəqiblərinin keyfiyyətinə görə cəzalandırır / mükafatlandırır. Bu, hər komandanın müdafiə gücünü təqlid edir (Chelsea: -0.30364; Sunderland: 0.37067). Başqa sözlə, Chelsea-yə qol vurma ehtimalı azdır. İnşallah, hamısı həm statistik, həm də intuitiv bir məna kəsb edir.

Gələcək matç üçün bəzi proqnozlar verməyə başlayaq. Komandalarımızı poisson_model-ə ötürürük və bu, komandanız üçün gözlənilən orta qol sayını qaytaracaq (iki dəfə çalışmalıyıq - hər komanda üçün gözlənilən orta qol sayını ayrı-ayrılıqda hesablayırıq). Beləliklə, gəlin görək Çelsi və Sanderlendin neçə qol vuracağını gözləyirik.

Əvvəlki kimi, iki Poisson paylamamız var. Buradan müxtəlif hadisələrin baş vermə ehtimalını hesablaya bilərik. Bunu simulyasiya_matç funksiyasına bağlayacağam.

Bu matris sadəcə Chelsea (matris sıraları) və Sunderland (matrix sütunları) nın müəyyən bir qol vurma ehtimalını göstərir. Məsələn, diaqonal boyunca hər iki komanda eyni sayda qol vurur (məsələn, P (0-0) = 0.031). Beləliklə, bütün çapraz girişləri toplayaraq çəkmə nisbətlərini hesablaya bilərsiniz. Çaprazın altındakı hər şey Chelsea zəfərini təmsil edir (məs. P (3-0) = 0.149). Üst / Alt bazarlarına üstünlük verirsinizsə, sütun nömrəsi və satır nömrəsinin cəminin (hər ikisi sıfırdan başlayan) 3-dən az olduğu girişləri (yəni yuxarı hissəni təşkil edən 6 dəyər) toplayaraq P (2,5 qoldan az) qiymətləndirə bilərsiniz. sol üçbucaq). Xoşbəxtlikdən, bu hesablamaları yerinə yetirmək üçün əsas matris manipulyasiya funksiyalarından istifadə edə bilərik.

Hmm, modelimiz Sunderlanda% 2.7 qazanma şansı verir. Bəs bu doğrudurmu? Proqnozların doğruluğunu qiymətləndirmək üçün modelimiz tərəfindən qaytarılmış ehtimalları Betfair mübadilə təklif etdiyi nisbətlərlə müqayisə edəcəyik.

İdman mərc / ticarət

Ənənəvi bukmeker kontorlarından fərqli olaraq, bahis mübadilələrində (və Betfair yeganə deyil - yalnız ən böyüyüdür), digər insanlara qarşı mərc edirsiniz (Betfair uduşlar üçün komissiya götürərək). İdman tədbirləri üçün bir növ birja rolunu oynayır. Birja bazarı kimi, səmərəli bazar fərziyyəsi sayəsində Betfair-də mövcud olan qiymətlər, baş verən hadisələrin həqiqi qiymətini və ehtimalını əks etdirir (hər halda nəzəri olaraq). Aşağıda, 21 May Bazar günü Betfair mübadiləsinin ekran görüntüsünü göndərdim (bu matçların başlamasından bir neçə saat əvvəl).