DSC_2117

“Otvorena vrata” opservatorije na krovu PMF-a u Nišu (2022/23. godina)

Posle duže pauze AD Alfa i Laboratorija za astrofiziku, astronomiju i astrobiologiju Departmana za fiziku PMF-a u Nišu otvaraju svoja vrata za sve zainteresovane ljubitelje astronomije I organizuju teleskopska posmatranja.Tokom narednih nedelja, dok vremenski i ...
bpu11-v01

U Beogradu počinje 11. Međunarodna konferencija BPU

Pod pokroviteljstvom Balkanske unije fizičara (Balkan Physical Union - BPU), u organizaciji Srpske akademije nauka i umetnosti (SANU), Prirodno-matematičkog fakulteta u Nišu (PMF Niš), Fizičkog fakulteta Univerziteta u Beogradu, uz ...
Perseid-meteor-shower-today-main-220809-c3f975

Meteorska kiša - Perseidi 2022

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 oko 10. avgusta "zvezde padalice" ...
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 ...
posterM3-nis

Maj mesec matematike u Nišu

Da li informacija samo o proseku verno opisuje razne pojave? Jesu li dobra stara vremena zaista bila tako dobra? Šta je zajedničko dizajnu Renoove karoserije i fontova? Može li nam ...
cmsMasterclass

CERN Masterclass 2022

U ponedeljak 4. apila 2022. godine pod pokroviteljstvom CERN-a i grupe IPPOG (International Particle Physics Outreach Group) održaće se 18. međunarodni program “MasterClasses – Hands on Particle Physics” (MC2022).U ovom obrazovno-istraživačkom programu ...
cms-posetajpg

Virtuelna poseta CMS eksperimenta u CERN-u

U četvrtak, 17. marta sa početkom od 19:00 h, biće organizovan simpozijum sa pratećim predavanjima i virtuelnom posetom CMS eksperimentu u CERN-u.CERN i naučne institucije iz Republike Srbije redovno organizuju obrazovne programe za učenike i ...
odeljenje-cover

Pripremna nastava za upis u Odeljenje za fiziku (šk. 2022/23)

Ove godine u Odeljenje za učenike sa posebnim sposobnostima za fiziku Gimnazije “Svetozar Marković” u Nišu stiže 20. generacija učenika. Nastavnici i saradnici Departmana za fiziku PMF-a, u saradnji sa ...
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 ...
svetnauke 2021

Srećna nova 2022. godina

Dragi prijatelji i prijateljice, kolegenice i kolege, saradnici i saradnice, slučajne prolaznice i prolaznici,dok polako odbrojavamo poslednje "metre" još jednog kruga oko Sunca i bližimo se kraju još jedne godine ...
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 ...
NSF-blackhole-Ghez-NRFuller-768x551-1

Kako smo videli nevidljivo?

Povodom obeležavanja 50 godina studija fizike, hemije i matematike na Univerzitetu u Nišu i dana fakulteta, Prirodno-matematički fakultetu Nišu tokom septembra i oktobra organizuje seriju naučno-popularnih predavanja. Zbog epidemiološke situacija ...
nauke

50 godina fizike, hemije i matematike na PMF-u u Nišu

Povodom obeležavanja Dana Prirodno-matematičkog fakulteta u Nišu i 50 godina postojanja i uspešnog rada Departmana za hemiju, Departmana za fiziku i Departmana za matematiku PMF organizuje seriju naučno-popularnih predavanja. Predavanja ...
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 ...
Perseids_Meteor_Shower_2012

Predavanje “O meteoroidima, meteoritima i meteorima uz malo fizike i matematike”

Specijalan gost ovogodišnjeg programa Maj mesec matematike u Nišu biće prof. dr Dragan Gajić. U četvrtak 20. maja 2021. godine od 19:45 h, prof dr Dragan Gajić će održati online predavanjeO meteoroidima, meteoritima i meteorima uz malo ...
earth-living-conditions

Dan planete Zemlje - 22. april

Današnji dan se od 1970. godine u celom svetu obeležava kao međunarodni dan naše planete Zemlje. Kada je pre 48 godina američki senator Gajrold Nelson inicirao ideju da ovaj dan ...
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 ...
Slide9

Predavanje Saturn - gospodar prstenova

Predavanje „Najvišu planetu vidim trostruko ili Saturn - gospodar prstenova" biće održano u četvrtak 4. marta od 19:00 h. Predavač će biti prof. dr Dragan Gajić.Predavanje možete pratiti na sajtu i YouTube kanalu AD Alfa, kao i na ...
Slide8

Predavanje “Da Jupitera nije bilo, ni nas ne bi bilo!”

Predavanje „Da Jupitera nije bilo, ni nas ne bi bilo!“ biće održano u četvrtak 18. februara od 19:00 h. Predavač će biti prof. dr Dragan Gajić.Predavanje možete pratiti na sajtu i YouTube kanalu AD ...
Slide7

Predavanje: “Mars – Mirna planeta boga rata”

Predavanje „Mars – Mirna planeta boga rata“ biće održano u četvrtak 11. februara od 19:00 h. Predavač će biti prof. dr Dragan Gajić.Predavanje možete pratiti na sajtu i YouTube kanalu Astronomskog društva “Alfa” iz Niša, kao ...
predavanje-02

Predavanje “Sunce – zvezda Sunčevog sistema”

U četvrtak 24. decembra od 19 h biće održano online predavanjeSunce – zvezda Sunčevog sistemapredavač će biti dr Milan Milošević. Predavanje možete pratiti na sajtu AD Alfa i na našem YouTube kanalu, kao i na ...
Jupiter-and-Saturn-777x466-1

Velika konjunkcija Jupitera i Saturna

Sutra, u ponedeljak 21. decembra 2020. godine dve najveće planete Sunčevog sistema. Jupiter i Saturn, na nebu će izgledati vrlo blizu. Kad padne mrak, na zapadu, nisko na horizontu sijaće ...
solar-system-nasa

Serija predavanja: “Ekskurzija kroz Sunčev sistem”

Astronomsko društvo “Alfa”, u sklopu projekta “Malim koracima ka astronomiji” vas, kroz seriju predavanja “vodi” na ekskurziju kroz Sunčev sistem.Kroz niz tematskih predavanja imaćete priliku da se upoznate sa Sunčevim sistemom, Suncem, Zemljom i ...
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, ...

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.

%d bloggers like this: