CERN-MC2024

CERN Masterclass 2024

U periodu od 15. februara do 27. marta 2024. godine pod pokroviteljstvom CERN-a i grupe IPPOG (International Particle Physics Outreach Group) održaće se 20. međunarodni program “MasterClasses – Hands on Particle Physics” (MC2024). U ...
skolaPMN

Otvaranje Škole prirodno-matematičkih nauka u Nišu

U subotu, 18. novembra na Prirodno-matematičkom fakultetu u Nišu počinje Škola prirodno-matematičkih nauka. Ovu školu namenjenu učenicima 7. i 8. razreda osnovne i svih razreda srednje škole ove godine po ...
biosignatureNajava

Astrobiologija i astronomsko posmatranje povodom Noći istraživača

Povodom predstojeće Evropske noći istraživača AD "Alfa" i Departman za fiziku PMF-a u Nišu organizuju naučno-popularno predavanje (četvrtak, 28. septembar) i teleskopsko posmatranje (petak, 29. septembar).Jedno od kanonskih pitanja astrobiologije ...
Perseid Meteors over Mount Shasta

Letnji vatromet u epizodi Perseidi 2023

Svake vedre noći, ako odete negde daleko od svetla grada i ako ste dovoljno strpljivi možete da vidite nekoliko meteora svakog sata. Međutim, svake godine u vreme Nisville Jazz festivala, ...
Unearthed-SuperMoon-1611-1-web

Dva (plava) Supermeseca u avgustu 2023. godine

Ako sutra uveče pogledate u nebo videćete Supermesec, najveći Mesec u mnogo godina! Bićete svedok spektakularnog prizora kakav se retko viđa na nebu, pun Mesec će biti ogroman, najveći koji ...
kvark-kvazar

Od kvarka do kvazara - uz mnogo astrofizike i malo matematike u Maju mesecu matematike u Nišu

Obeležavanje Maja meseca matematike, u organizaciji Departmana za matematiku PMF-a u Nišu nastavlja se u petak, 26. maja, od 17:00 h, u amfiteatru Prirodno-matematičkog fakulteta u Nišu sa tri nova ...
Slika dana: Mesec u polusenci [18.10.2013]

Pomračenje Meseca polusenkom (5. maj 2023)

Za ovaj petak (5. maj) nebeska mehanika “pripremila” je pomračenje Meseca, Međutim, ovo pomračenje značajno će se razlikovati od onih atraktivnih delimičnih i totalnih pomračenja Meseca koja smo posmatrali tokom ...
slika2

Нобелова награда за физику 2022. године

Аутор: проф. др Мирољуб Дугић(Институт за физику, Природно-математички факултет, Универзитет у Крагујевцу)Нобелову награду за физику за 2022. годину поделила су тројица експерименталних физичара за област заснивања квантне механике, Ален Аспе ...
CometZtf_Hernandez_960

Kometa C/2022 E3 (ZTF)

Ako ste tokom prethodnih par meseci bili totalno izolovani od vesti ili toliko ne volite vesti iz astronomije da čim ih čujete menjate sajt/TV kanal/radio stanicu onda verovatno niste čuli ...
solar-eclipse

Delimično pomračenje Sunca (25. oktobar 2022)

Još tačno deset dana deli nas do predstojećeg delimičnog pomračenja Sunca koje će biti vidljivo iz Srbije. Pomračenje Sunca za mnoge je verovatno najznačajnija i najazanimljivija pojava koju možemo da ...
kosmicke-litice

Džejms Veb Teleskop - prve fotografije

Odavno je "Svet nauke" otišao u zimski... letnji... višegodišnji san i teško ga je probuditi ali neki događaji u nauci su toliko značajni da mogu da predstavljaju prekretnicu u budućem ...
800px-Benjamin_Franklin_1767

Bendžamin Frenklin (1706 - 1790)

Na današnji dan, 17. januara, 1706. godine, u Bostonu (Masačusets, SAD), rođen je Benžamin Frenklin (Benjamin Franklin), američki naučnik i političar, borac za ljudska prava, učesnik u Američkom ratu za ...
1280px-ALH84001_structures

Meteorit sa Marsa ALH84001

Najpoznatiji meteorit sa Marsa otkriven je 27. decembra 1984. godine na Antarktiku.Ovaj meteorit nosi oznaku ALH84001 i otkriven je u oblasti Allan Hills, grupi brda na Antarktiku. Pronašao ga tim ...
Slika dana: Galileo Galilej i teleskop [25.08.2014]

Prvi teleskop

Galileo Galilej i prvi teleskop (izvor: Physics Today)Na današnji dan 1609. godine Galileo Galilej predstavio je "prvi teleskop" Leonardu Donatu, vladaru Venecije, i njegovim savetnicima. Galileo Galilej napravio je ovaj ...
apolo11-pre-poletanja

52 godine od Malog koraka za čoveka - Apolo 11

Na današnji dan, pre tačno 52 godine, 20. jula 1969. godine čovek je prvi sleteo na površinu drugog nebeskog tela.Oko šest sati pre “malog koraka za čoveka, ali velikog za čovečanstvo” dvočlana posada ...
yuri_gagarin_01

Juri Gagarin - 60 godina od prvog leta u svemir

Pre tačno 60 godina, 12. aprila 1961. godine oko 9 sati po Moskovskom vremenu, raketa Vostok 1 poletela je ka svemiru. U raketi je sedeo Juri Gagarin koji je nekoliko minuta kasnije postao prvi čovek u ...
ada_lovelace_portrait

Rođendan Ejde King Lavlejs - prve programerke

Samo dan kasnije ali i mnogo godina pre rođenja Grejs Hoper, na današnji dan, 10. decembra 1815. godine rođena je Ejda King Lavlejs (Ada Lovelace), ćerka čuvenog engleskog pesnika Lorda Bajrona, ...
Grace-Hopper

Grejs Hoper: do ratne mornarice do kompajlera i buba

Kada govorimo o IT sektoru, matematici i vojsci verovatno nam prva asocijacija budu muškarci. Međutim, tu sliku menja žena rođena na današnji dan, 9. decembra 1906. godine u Njujorku. Doktorirala ...
kupola-atomske-bombe

Dan kada je eksplodirala prva atomska bomba

Pre tačno 75 godine, tačnije 6. avgusta 1945. američki avion bombarder bacio je jednu jedinu bombu na japanski grad. Taj grad bila je Hirošima, a posledice te bombe pamtiće generacije ...
530px-palebluedot

30 godina Plave tačke u beskraju i Porodičnog portreta

Šta mislite šta je ovo na slici? Ne znate? …  Ova svetla tačka je Zemlja, naša planeta. Generacije ljudi, hiljadama godina žive na toj svetloj tački, sve što ste ikada… nalazi se na njoj…A fotografije je ...
planeta-vlasina

Planeta Vlasina oko zvezde Morave

Povodom jubileja koji ove godine obeležava Međunarodna astronomska unija (MAU), 100 godina od svog osnivanja, sve zemlje članice MAU su imale jedinstvenu priliku da kumuju imenu jednoj od novootkrivenih planeta ...
sunbathing

Sunčanje i/ili zdravlje? Izaberite sami!

Sunce, taj žuti disk koji svakoga dana putuje po plavom nebeskom svodu, je samo jedna od nekoliko milijardi zvezda rasutih svuda po praznom prostoru svemira. Ono je jedna sasvim obična ...
davinci

Leonardo da Vinči: Umetnik. Naučnik. Pronalazač.

Pišu: Jovana Savić i Jovana Stanimirović“Onaj ko isključivo ceni praksu bez teorije je poput moreplovca koji se ukrca na brod bez kormila i kompasa, ne znajući kuda se plovi.” - ...
crna-rupa-prva

Prva fotografija crne rupe!

Već nekoliko decenija, a može se reći i vekova, crne rupe privlače ogromnu pažnju kako naučnika tako i javnosti, kroz popularne tekstove, različite ideje i SF romane i (visokobudžetne) filmove.Do ...
dositej-obradovic

Dositej Obradović – srpski prosvetitelj i reformator

„Knjige, braćo moja, knjige, a ne zvona i praporce!“Dositej ObradovićNa današnji dan 28. marta 1811. godine u Beogradu je umro najveći srpski prosvetitelj i reformator – Dositej Obradović. Sahranjen je ...

R i JavaScript u sjajnoj (Shiny) NBA analizi

Autor: Miloš Blagojević,
Blog Instituta za matematiku i informatiku, Kragujevac

R i JavaScript u sjajnoj (Shiny) NBA analizi 1

Programski jezik R je, tokom poslednjih desetak godina, doživeo ekspanziju i postao jedan od najčešće korišćenih “analitičkih” jezika. Prema ovogodišnjoj StackOverflow anketi, R se nalazi na listi ispred svih jezika sa kojima se često poredi, kao što su Matlab i Octave. Zahvaljujući svom specifičnom funkcionalnom pristupu kao i veoma brojnim i raznovrsnim korisnicima, R se posebno istakao kroz uspešnu primenu u akademskim krugovima, gde se intenzivno koristi u svim oblastima nauke o podacima (DataScience), od društvenih, preko prirodnih nauka, kao i u mnogim primenjenim disciplinama. Kao ilustraciju dovoljno je pogledati liste CRAN (Comprehensive R Archive Network) paketa. Pored klasične naučne primene, za analizu prikupljenih podataka, R se može koristiti i u edukativne svrhe, posebno u eri dominacije web-tehnologija, koje, za R, mogu biti “prozor u svet”. Dinamična priroda i fleksibilnost savremenih Javascript tehnologija omogućavaju konstruisanje efektivnih korisničkih aplikacija i apleta, koji se mogu povezati sa analitičkom osnovom koju pruža R. Upravo je način ovog povezivanja, kao i aktivan pristup obradi i analizi podataka i tema ovog teksta.

Po svom dizajnu R nije prilagodjen kreiranju korisničkih aplikacija, a posebno ne savremenom reaktivnom programiranju, gde se očekuje dinamčko ažuriranje vrednosti promenljivih, usklađeno sa akcijama korisnika. Upravo zbog toga razvijen je paket Shiny koji omogućava kreiranje interaktivnih web-aplikacija direktno iz bilo kog R okruženja, kao što su R studio (najkorišćeniji R IDE) ili ESS. Shiny kombinuje kreiranje korisničkog okruženja sa analitičkom logikom, koristeći se intuitivnim konvencijama čime se izbegava komplikovan proces konfiguracije, karakterističan za mnoge web-tehnologije. Pored toga, Shiny može direktno komunicirati sa pridruženim JS kodom, putem namespace promenljive koja sadrži više metoda za transfer informacija i podataka.

Sportske statistike kao primer dostupnih i kvalitetnih podataka

Beleženje sportskih statistika ima veoma dugu tradiciju, a njihova analiza i posebno mogućnost predviđanja budućih rezultata i evaluacija performansi timova i sportista, danas predstavlja jednu od najbrže rastućih disciplina nauke o podacima. Baze sportskih podataka su dobro organizovane i lako dostupne na globalnoj mreži, a razvoj sportske metrike doprinosi razvoju cele nauke o podacima. Najpoznatiji primer izuzetno dobre SQL baze je Lahmanova baza bejzbol statisika, od 1871 do 2006, koja se koristi i u profesionalnoj analitici i u edukativne svrhe. Još neke od poznatih stranica su Fangraphs i Basketball reference. Edukativni potencijal ovakvih podatka ogleda se u pružanju zanimljive i dobro strukturirane osnove za kreiranje mnogih softverskih rešenja i analitičkih strategija. Za analizu u okviru ovog teksta izabrane su dve tabele podataka sa stranice Basketbal reference, i to uobičajene mere performansi košarkaških timova NBA lige, za tim (Team Per Game Stats) i za protivnika (Opponent Per Game Stats), u sezoni 2016/2017. Obe tabele su preuzete u .csv formatu i uključene u izvorni kod Shiny aplikacije.

Performanse NBA timova kroz analizu glavnih komponenti

Funkcionalnost i dizajn ove Shiny aplikacije podređeni su ciljevima analize ali i dinamičnom i efektnom korisničkom iskustvu. Kako bismo opisali obrazac variranja u performansama NBA timova i eventualno otkrili neke pravilnosti ili obrazac grupisanja, iskoristićemo tehniku analize glavnih komponenti (Principal Components Analysis). PCA je jedna od osnovnih metoda multivarijantne statističke analize koja primarno služi redukciji većeg broja dimenzija (promenljivih) nekog skupa podataka, kako bi se ukupna varijabilnost sagledala kroz manji broj promenljivih. Svaki NBA tim je, u izabranim tabelama, opisan sa 17 veličina, a naš cilj će biti pronalaženje odgovora na sledeća pitanja:

  1. Da li postoji grupisanje timova prema performansama?
  2. Da li se i kako mogu opisati performanse timova kroz manji broj promenljivih koje predstavljaju linearne kombinacije originalnih 17 (glavne komponente)?
  3. Kakav je uticaj svake od izmerenih veličina na ukupnu performansu i eventualni konačni plasman.

Na ova pitanja se odgovor može naći i korišćenjem statistika za tim i statistika protivnika, čime će opis performansi timova biti obuhvaćen i sa aspekta napada i sa aspekta odbrane.

Struktura Shiny aplikacije

Način kreiranja Shiny aplikacija, kao i instruktivna uputstva za sve nivoe iskustva rada sa ovim paketom, mogu se naći u okviru zvanične dokumentacije, a posebno u člancima i lekcijama. Zbog visokog kvaliteta zvanične dokumnetacije, ovde će biti reči samo o osnovnim idejama paketa i specifičnostima aplikacije za analizu glavnih komponenti.

Kako bi se aplikacija pokrenula iz izvornog koda neophodno je instalirati R i u okviru njega pakete Shiny i jsonlite. Sam kod dostupan je na GitHub repozitorijumu, a jedna od veoma korisnih Shiny funkcija je runGitHub() koja direktno pokreće aplikaciju bez potrebe za kloniranjem repozitorijuma, čime se prethodno pripremljen sadržaj može lako predstaviti npr. prilikom predavanja ili prezentacija. Pokretanjem

runGitHub("nbastream", "paulidealiste")

aplikacija će se pokrenuti u bilo kom R okruženju (prvi string je naziv repozitorijuma a drugi je GitHub korisničko ime). U okviru okruženja R studio, dovoljno je otvoriti jednu od dve osnovne datoteke (server.R ili ui.R) i kliknuti na dugme Run app koje će se automatki pojaviti. U nastavku teksta biće opisani samo osnovni principi dok je preporuka direktna inspekcija koda, koji je bogat komentarima.

Shiny aplikacija sastoji se iz dve funkcionalne celine, odnosno uobičajene R funkcije – server, sa primarnom analitčkom logikom i ui, sa dizajnom aplikacije. Ove funkcije se mogu kreirati u okviru jedne .R datoteke, ali se mogu naći i u dve odvojene (što je stariji pristup), pod uslovom da se nalaze u istom direktorijumu, što će biti naš slučaj.

U datoteci ui.R nalazi se osnovna funkcija dizajna aplikacije (front-end):

shinyUI(fluidPage(
  # dizajn korisničkog okruženja
))

Već funkcija fluidPage() predstavlja Shiny strukturni element čija se lista može naći u zvaničnoj dokumentaciji u kategoriji UI Layout. Shiny nudi veliki broj funkcija za kreiranje različitih elemenata i njihov razmeštaj, od kojih većina funkcioniše slično kao i u okviru okruženja Bootstrap 3, koje predstavlja osnovu dizajna Shiny aplikacija. Tako se Bootstrap definisane CSS klase mogu koristiti za stilizovanje Shiny elemenata, a korišćenjem Shiny tags sistema moguće je dodavati i uobičajene HTML elemente. Pored strukturnih i korisničkih (input) elemenata Shiny poseduje i specifične elemente za prikaz (output) pomoću kojih se direktno mogu prikazati R grafici i formatirane tabele prema trenutno aktuelnim rezultatima. Sav dizajn izgleda aplikacije kreira se korišćenjem ugnježdenih poziva ovih strukturnih funkcija prema sledećem principu:

fluidPage(
  fluidRow(
    column(12,
      div(
        actionButton("button1", "Dugme 1", ...)
      )
    )
  )
)

Navedeni kod rezultovaće kreiranjem stranice sa jednim div elementom klase row koji sadrži jednu kolonu (div klase column) koji sadrži div sa jednim dugmetom.

Datoteka server.R sadrži osnovnu funkciju serverske logike, pokreće se prva prilikom pokretanja aplikacije i odlikuje se sledećim potpisom:

shinyServer(function(input, output, session) {
  # izvodjenje analize i kao i reaktivni (data-binding) izrazi
})

Nastavak teksta možete da pročitate na blgu Instituta za matematiku i informatiku PMF-a u Kragujevcu.

R i JavaScript u sjajnoj (Shiny) NBA analizi 2

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.