Membuat Prediksi Pertandingan English Premier League
English Premier League musim 2020/2021 akan segera dimulai dalam beberapa hari lagi. Menarik jika kita melihat beberapa geliat di bursa transfer. Walaupun pertandingan nanti tidak akan disaksikan oleh penonton dalam waktu dekat, tapi tensi pertandingannya saya rasa masih tetap sama.
Sejak kuliah di Matematika dulu, ada satu pertanyaan yang muncul:
Apakah bisa saya membuat prediksi hasil akhir pertandingan di Premier League? Kalau bisa, bagaimana caranya?
Sampai akhirnya saya mendarat di suatu website yang membahas tentang
statistika di dunia judi. Berbekal ilmu
yang saya dapatkan ini, saya
akan coba membuat prediksi dari pertandingan English Premier League
musim 2020/2021.
Bagaimana cara kerjanya?
Sebenarnya membuat prediksinya relatif cukup mudah. Pendekatan yang dilakukan adalah dengan memanfaatkan distribusi Poisson. Walaupun masih ada pro dan kontra, tapi kebanyakan scientist setuju bahwa banyaknya gol dalam suatu pertandingan pertandingan sepakbola itu memenuhi asumsi distribusi Poisson.
Apa saja asumsinya?
- is the number of times an event occurs in an interval and can take values 0, 1, 2, ….
- The occurrence of one event does not affect the probability that a second event will occur. That is, events occur independently.
- The average rate at which events occur is independent of any occurrences. For simplicity, this is usually assumed to be constant, but may in practice vary with time.
- Two events cannot occur at exactly the same instant; instead, at each very small sub-interval exactly one event either occurs or does not occur.
Jadi saya akan memprediksi banyak gol yang tercipta oleh tim home dan tim away dalam suatu pertandingan menggunakan distribusi Poisson!
Dalam distribusi Poisson, parameter yang perlu diketahui adalah .
Apakah arti dari ?
Pada distribusi Poisson, salah satu sifatnya adalah .
- berarti mean atau expected value.
- berarti variansi.
Jadi pada distribusi Poisson, nilai mean dan variansinya adalah sama, yakni sebesar .
Kalau teman-teman membaca tulisan saya sebelumnya terkait mitos home vs away, sebenarnya ada easter eggs di salah satu tabel bahwa nilai hampir mirip dengan nilai .
Dengan mengetahui nilai expected value (dalam hal ini adalah expected goals) setiap tim pada saat laga home dan away, saya bisa menghitung peluang gol yang tercipta dalam suatu pertandingan!
Berikut adalah alur pengerjaannya:
Data Mentah
Data yang digunakan adalah statistik pertandingan EPL pada musim lalu. Variabel yang akan masuk kedalam perhitungan adalah:
- Nama
tim_home
- Nama
tim_away
- Goal yang dicetak
tim_home
- Goal yang dicetak
tim_away
Berikut adalah sampel data dari musim lalu:
date | home_team | away_team | home_goals | away_goals |
---|---|---|---|---|
09/08/2019 | Liverpool | Norwich | 4 | 1 |
10/08/2019 | West Ham | Man City | 0 | 5 |
10/08/2019 | Bournemouth | Sheffield United | 1 | 1 |
10/08/2019 | Burnley | Southampton | 3 | 0 |
10/08/2019 | Crystal Palace | Everton | 0 | 0 |
10/08/2019 | Watford | Brighton | 0 | 3 |
10/08/2019 | Tottenham | Aston Villa | 3 | 1 |
11/08/2019 | Leicester | Wolves | 0 | 0 |
11/08/2019 | Newcastle | Arsenal | 0 | 1 |
11/08/2019 | Man United | Chelsea | 4 | 0 |
Pecah Menjadi Data home
dan away
Sebagaimana yang telah saya sampaikan, bahwa ada perbedaan antara tim
home
dan tim away
dalam hal ketajaman mencetak goal. Oleh karena
itu, saya akan bagi dua datanya menjadi data tim home
dan data tim
away
.
Apa sih gunanya? Kelak saya akan menghitung skor attack
dan defense
masing-masing tim pada laga home
dan away
.
Begini caranya:
Misalkan tim Man United
selama berlaga di home
pada musim lalu
(misalkan ada 40
laga) berhasil mencetak gol sebanyak 100
kali dan
kebobolan 50
kali.
Apabila rata-rata gol yang dicetak semua tim pada laga home
adalah
1.7
dan rata-rata kebobolan semua tim pada laga home
adalah 0.8
,
maka:
Attack
timMan United
pada lagahome
adalah: 1.4705882.Defense
timMan United
pada lagahome
adalah: 1.5625.Overall
timMan United
pada lagahome
adalah selisih antaraAttack
danDefense
= -0.0919118
Perhitungan ini diulang kembali saat Man United
berlaga di away
dengan nilai attack
dan defense
yang terbalik dengan laga home
.
home\_team | home\_attack | home\_defense | overall\_home |
---|---|---|---|
Arsenal | 1.2500000 | 1.048035 | 0.2019651 |
Aston Villa | 0.7638889 | 1.310044 | \-0.5461548 |
Bournemouth | 0.7638889 | 1.310044 | \-0.5461548 |
Brighton | 0.6944444 | 1.179039 | \-0.4845949 |
Burnley | 0.8333333 | 1.004367 | \-0.1710335 |
Chelsea | 1.0416667 | 0.698690 | 0.3429767 |
away\_team | away\_attack | away\_defense | overall\_away |
---|---|---|---|
Arsenal | 0.8733624 | 0.8333333 | 0.0400291 |
Aston Villa | 0.8296943 | 1.2847222 | \-0.4550279 |
Bournemouth | 0.7860262 | 1.2152778 | \-0.4292516 |
Brighton | 0.8296943 | 0.9375000 | \-0.1078057 |
Burnley | 0.8296943 | 0.9375000 | \-0.1078057 |
Chelsea | 1.7030568 | 1.3194444 | 0.3836123 |
Menghitung expected goals
Sekarang saatnya saya menghitung expected goals masing-masing tim yang berlaga. Bagaimana caranya?
Misalkan saya ambil contoh pertandingan Community Shield yang digelar
pekan lalu: Arsenal
vs Liverpool
. Meskipun pertandingan ini bukan
pertandingan home
vs away
, tapi akan saya asumsikan demikian untuk
mempermudah penjelasan.
Dari sini, saya definisikan:
tim_home
=Arsenal
tim_away
=Liverpool
Maka expected goals masing-masing tim adalah:
Yakni 1.1184211 untuk Arsenal
dan 1.8202712 untuk Liverpool
.
Menghitung Peluang Terjadinya Gol
Berbekal informasi di atas, kita akan menghitung peluang gol yang tercipta pada pertandingan.
Misalkan, saya ingin menghitung peluang pertandingan berakhir dengan
skor 0 - 2
, maka caranya adalah:
Maka untuk menghitung semua kombinasi skor yang mungkin, saya akan membuat matrix peluang sebagai berikut:
## [,1] [,2] [,3] [,4] [,5]
## [1,] NA NA NA NA NA
## [2,] NA NA NA NA NA
## [3,] NA NA NA NA NA
## [4,] NA NA NA NA NA
## [5,] NA NA NA NA NA
Nantinya sumbu x menandakan tim home
dan sumbu y menandakan tim
away
.
Jadi, hasil perhitungan untuk laga Arsenal
kontra Liverpool
adalah
sebagai berikut:
Menarik yah, ternyata peluang terbesar itu terjadi pada saat skor: 1-1
lalu 1-2
.
Jika saya summary-kan hasil akhir dari berbagai kemungkinan skor tersebut:
Liverpool
masih dijagokan untuk menang.
Faktanya:
Hasil pertandingan berakhir seri 1-1
, namun ada saat penalty
shootout Arsenal
berhasil menang.
What’s next?
Wajar saja jika perhitungan di atas miss pada pertandingan semacam community shield, tapi nanti pada saat laga resmi bergulir akan saya coba pantau kinerja dari model perhitungan ini secara berkala dengan menambahkan data pertandingan terbaru.
Laga Pembuka EPL 2020/2021
Sebagai penutup, saya akan coba memprediksi laga pembuka Premier League
2020/2021 untuk 2 tim: Man United
dan Chelsea
. Untuk Man City
mohon maaf, kalian hitung sendiri saja ya. haha
Sedangkan Liverpool
melawan Leeds
belum bisa dihitung karena Leeds
baru saja promosi musim ini. Sama juga dengan Fulham
kontra Arsenal
belum bisa dihitung karena Fulham
baru promosi musim ini.