Jūs esate čia

Įvarčių pasiskirstymas futbole

Šiame įraše apžvelgsime bene didžiausią įtaką futbolo rungtynių baigčiai darantį įvykį: pirmąjį įvartį. Škotų futbolo legenda Bill’as Shankly sakydavo, kad įmušus pirmam visad lengviau laimėti. Iš tikro, šį sezoną (2015-2016) Anglijos Premier lygoje komandos įmušusios pirmąjį įvartį laimėjo 68.4% rungtynių. Visgi mūsų tikslas yra ne tik įrodyti, kad Bill’as Shankly buvo teisus, bet tiriant pirmojo ivarčio pasiskirstymą, išsiaiškinti, kokį skirstinį turi įvarčiai varžybų tėkmėje ir kokį skirstinį turi varžybų baigtys. Daugiau apie skirstinius galite sužinoti čia.

Darbo metu futbolo rungtynes modeliuosime patys. Išvadose remsimės rungtynių simuliacijos gautais rezultatais.

Visų pirma, apibrėžkime, kokias futbolo varžybas modeliuosime.

Modeliuodami futbolo varžybas laikysimės prielaidų:
* įvarčiai neturi įtakos vienas kitam (yra nepriklausomi);
* laiko intervalai tarp įvarčių modeliuojami eksponentiniu skirstiniu (kuo daugiau laiko praėjo, tuo daugiau šansų, kad įvartis buvo įmuštas) su parametru λ = 0.025. Daugiau apie eksponentinį skirstinį čia;
* ingoruosime komandų strategijas;
* ignoruosime nuobaudas už taisyklių pažeidimą ir traumas;
* rungtynės trunka lygiai 90 minučių;
* rungtynėse daugiausia gali būti 100 įvarčių.

Modeliuokime futbolo rungtynes.

  1. y <- 0
  2. m <- 100 #rungtynėse gali būti daugiausia 100 įvarčių
  3. eksp <- function()
  4. {
  5. for(i in 1:m)
  6. {
  7. y[i] <- rexp(1, 0.025) #sugeneruojamas eksponentinis atsitiktinis dydis
  8. if(sum(y) > 90)
  9. {
  10. y = y[-i]
  11. }
  12. }
  13. }

Funkcijoje generuojame eksponentinius atsitiktinius dydžius su pasirinktu parametru tol, kol jų suma viršija 90 (rungtynių laiko limitą) arba kol įmušama 100 įvarčių. Funkcija grąžina reikšmes, kelintą minutę buvo įmušti įvarčiai.

Simuliuokime n rungtynių (mūsų atveju 100,000 rungtynių užtenka gauti pakankamai aiškius rezultatus ir daryti išvadas)

  1. n <- 100000
  2. sim = replicate(n, eksp())

Įvarčių pasiskirstymas varžybų tėkmėje

## laikas
##  (0,10] (10,20] (20,30] (30,40] (40,50] (50,60] (60,70] (70,80] (80,90] 
##   25104   25133   25305   25081   24906   25093   24983   24839   24774

Lentelėje matome, kada ir kiek įvarčių buvo įmušta simuliuojant n rungtynių.

1

Išbrėžiame įvarčių pasiskirstymo varžybų tėkmėje histogramą ir tankio funkciją.

Vaizdas labiausiai primena tolygųjį skirstinį. Jei nesate susipažinę su tolygiuoju skirstiniu, daugiau apie jį galite paskaityti čia.

Patikrinkime, ar įvarčių pasiskirstymas varžybų tėkmėje išsidėstęs pagal tolygųjį skirstinį.

Palyginkime teorinį skirstinį su empiriniu. Sugeneruokime n tolygiųjų atsitiktinių dydžių ir palyginkime jų tankio funkciją su prieš tai gauta įvarčių pasiskirstymo varžybų tėkmėje tankio funkcija. 2

Matome, kad tankio funkcijos turi nemažai panašumų. Visgi, kad įsitikintume geriau, atliksime χ2 (chi-kvadrato) testą, kuris palygina empirinį skirstinį su teoriniu. Šiuo testu galima formaliai patikrinti, ar turimi duomenys atitinka kokį nors teorinį skirstinį. Mūsų atveju patikrinsime hipotezę, ar įvarčiai varžybų tėkmėje pasiskirstę pagal tolygųji skirstinį su alternatyva, kad nėra pasiskirstę pagal tolygųjį skirstinį. Daugiau apie χ2 testą rasite čia. Chi-kvadrato testo atitikmuo R yra chisq.test funkcija. Jos pirmasis argumentas turi būti empirinių duomenų dažnių vektorius, o antrasis - vektorius sudarytas iš teorinių tikimybių ir papildinio. Daugiau apie chisq.test funkciją pasiskaityti galite čia

Apskaičiuosime teorines tolygiojo skirstinio tikimybes. chisq.test funkcija reikalauja, kad papildinys nebūtų tuščias, todėl intervalo (80;90] tikimybę paliekame jam.

  1. dazn <- as.vector(table(laikas))
  2. probs <- c(rep(1/9, 8))
  3. papild <- (1 - sum(probs)) #randame papildinį
  4. chisq.test(dazn, p = c(probs, papild)) #atliekame chi-kvadrato testą
## 
##  Chi-squared test for given probabilities
## 
## data:  dazn
## X-squared = 8.695, df = 8, p-value = 0.3687

p-value > 0.05, tai reiškia, kad neturime pagrindo atmesti nulinę hipotezę. Vadinasi χ2 testas mums leidžia teigti, kad įvarčiai varžybų tėkmėje pasiskirstę pagal tolygųjį skirstinį.

Remdamiesi šio testo rezultatais galime teigti, kad, iš tikro, per mūsų futbolo rungtynes, kiekvienu laiko momentu įmušti įvartį yra vienoda tikimybė.

O kaip pasiskirsčiusios varžybų baigtys (kiek įvarčių įmušama per runtynes)?

Varžybų baigčių pasiskirtymas

## ivarciai
##     0     1     2     3     4     5     6     7     8     9    10    11 
## 10549 23774 26459 20039 11349  5084  1930   573   196    37     9     1

Lentelėje matome, kiek rungtynių (apatinė eilutė) baigėsi su atitinkamu skaičiu įvarčių (viršutinė eilutė).

3

Išbrėžiame varžybų baigčių pasiskirstymo histogramą ir tankio funkciją.

Vaizdas labiausiai primena Poisson’o skirstinį. Jei nesate susipažinę su Poisson’o skirstiniu, daugiau apie jį galite paskaityti čia.

Patikrinkime, ar varžybų baigčių pasiskirstymas išsidėstęs pagal Poisson’o skirstinį.

Palyginkime teorinį skirstinį su empiriniu. Sugeneruokime n Poisson’o atsitiktinių dydžių ir palyginkime jų tankio funkciją su prieš tai gauta varžybų baigčių tankio funkcija.

4

Tankio funkcijos yra kone identiškos. Dėl šventos ramybės dar atlikime χ2 (chi-kvadrato) testą. Šiuo atveju patikrinsime hipotezę, ar varžybų baigtys pasiskirsčiusios pagal tolygųji skirstinį su alternatyva, kad nėra pasiskirsčiusios pagal tolygųjį skirstinį.

Sugeneruosime teorines Poisson’o skirstinio tikimybes. Kad papildinys nebūtų tuščias ir nebūtų metama klaida, paskutiniąją tikimybę priskirsime jam.

  1. dazn <- as.vector(table(ivarciai))
  2. probs = dpois(0:(length(dazn)-2), lambda = mean(ivarciai))
  3. papild <- (1 - sum(probs)) #randame papildinį
  4. chisq.test(dazn, p = c(probs, papild)) #atliekame chi-kvadrato testą
## 
##  Chi-squared test for given probabilities
## 
## data:  dazn
## X-squared = 10.55, df = 11, p-value = 0.4819

p-value > 0.05, tai reiškia, kad neturime pagrindo atmesti nulinę hipotezę. Vadinasi χ2 testas mums leidžia teigti, kad įvarčių baitys pasiskirsčiusios pagal Poisson’o skirstinį.

Remdamiesi šio testo rezultatais galime teigti, kad per mūsų futbolo rungtynes dažniausiai įmušama 2-3 įvarčiai. Todėl jei komanda sugeba įmušti pirma, ji iš tikrųjų įgija nemažą pranašumą.

Išvada:

Įsitikinome, kad jei laiko tarpai tarp įvarčių modeliuojami eksponentiniu skirstiniu, įvarčiai varžybų tėkmėje yra pasiskirstę pagal tolygųjį skirstinį, o varžybų baigtys pasiskirsčiusios pagal Poisson’o skirstinį. Šiame įraše pamatėme, kaip žiūrėdami iš įvairių perspektyvų galime pastebėti skirtingus skirstinius, ir kaip skirtingi skirstiniai gali būti glaudžiai susiję tarpusavy.

Komentuoti

Basic HTML

  • Web puslapių adresai ir el. pašto adresai automatiškai tampa nuorodomis.
  • Tags allowed: a, em, strong, u, s, cite, code, blockquote, ol, ul, li, dl, dt, dd, pre, p, br
  • Mathematics inside the configured delimiters is rendered by MathJax. The default math delimiters are $$...$$ and \[...\] for displayed mathematics, and $...$ and \(...\) for in-line mathematics.
  • Syntax highlight code surrounded by the <pre class="brush: lang">...</pre> tags, where lang is one of the following language brushes: php, python, r, sass, sql, vb.
  • Linijos ir paragrafai atskiriami automatiškai

Markdown

  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>, <c>, <cpp>, <drupal5>, <drupal6>, <java>, <javascript>, <php>, <python>, <r>, <ruby>. The supported tag styles are: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • Typographic refinements will be added.
  • Mathematics inside the configured delimiters is rendered by MathJax. The default math delimiters are $$...$$ and \[...\] for displayed mathematics, and $...$ and \(...\) for in-line mathematics.

Plain text

  • HTML žymės neleidžiamos.
  • Web puslapių adresai ir el. pašto adresai automatiškai tampa nuorodomis.
  • Linijos ir paragrafai atskiriami automatiškai
CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
Target Image

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer