Summary
Upcoming football match win/draw/loss probabilities
Description
Slik lages prediksjoner
Hver kamp evalueres gjennom en kombinasjon av statistisk modellering og markedsodds. Her er en gjennomgang av hvert steg.
1. Datakilder
| Kilde | Hva vi henter |
|---|---|
| FotMob | Tabelldata (poeng, mål, form) og kommende kamper |
| The Odds API | Markedsodds (h2h) fra europeiske bookmakers |
2. Lagstyrke — Points Per Game (PPG)
Grunnlaget for modellen er hvert lags poeng per kamp (PPG) fra ligatabellen. Siden en sesong starter med lite data, blandes nåværende sesong med forrige sesong:
| Kamper spilt | Vekt nåværende sesong | Vekt forrige sesong |
|---|---|---|
| 0 | 0 % | 100 % |
| 2 | 15 % | 85 % |
| 4 | 40 % | 60 % |
| 5+ | 60 % | 40 % |
Nyopprykkede lag eller lag uten historikk får en nøytral PPG på 1.0.
3. Vinnersannsynlighet
Fra PPG beregnes en forventet styrkeforskjell:
ppg_diff = hjemme_PPG + hjemmefordel (0.15) − borte_PPG
Hjemmefordel er satt til 0.15 PPG, som tilsvarer det moderne snittet i europeisk fotball.
Differansen konverteres til en vinnersannsynlighet via en logistisk funksjon (ELO-inspirert):
p_hjemme = 1 / (1 + 10^(−elo_diff / 400))
Form (siste 5 kamper, W=3 / U=1 / T=0) blandes inn med lavere vekt jo større styrkeforskjellen er — fordi form betyr mer mellom jevnbyrdige lag.
Trekkandelen beregnes separat og synker jo større styrkeforskjellen er, siden klare favoritter sjelden spiller uavgjort.
4. Målprediksjon — Poisson-modell
Forventet antall mål per lag beregnes fra:
λ_hjemme = hjemme_mål_per_kamp × borte_sluppet_inn_per_kamp / liga_snitt
λ_borte = borte_mål_per_kamp × hjemme_sluppet_inn_per_kamp / liga_snitt
Fra disse lambdaverdiene beregnes en sannsynlighetsmatrise over alle mulige sluttresultater (0–7 mål per lag), som gir:
- xG — forventet antall mål for hvert lag
- Mest sannsynlig resultat — kombinasjonen med høyest sannsynlighet
- Over 2.5 mål — summen av alle utfall med 3+ mål totalt
- BTTS — sannsynlighet for at begge lag scorer
5. Odds-blending
Der markedsodds er tilgjengelige, blandes modellens prediksjon med bookmaker-odds:
endelig = 45 % modell + 55 % marked
Odds hentes som best-available på tvers av bookmakers (høyeste pris per utfall), og bookmakermarginen fjernes før blending.
Navn-matching mellom FotMob og The Odds API håndterer variasjoner som Bayern München vs Bayern Munich ved å normalisere unicode-tegn og fjerne organisasjonssuffikser (FC, CF, etc.).
6. Rangering
Innenfor hver liga sorteres kampene etter høyeste enkeltutfall-sannsynlighet — kamper der én utfallssannsynlighet (hjemme, uavgjort eller borte) er høyest, vises øverst. Dette prioriterer kamper der modellen har størst tiltro til resultatet.