Programski jezik R i njegova primena u nauci o podacima (1. deo)
Autor: Nadica Miljković
Definicija R-a i nauke o podacima
R je programski jezik za statistička izračunavanja i vizuelizaciju. Međutim, treba napomenuti da je ovo zastarela definicija koja je odgovarala R-u u trenutku kada je nastao i koja se zadržala uprkos izmenama kroz koje su prošli i R i nauka o podacima (eng. data science). Danas je nemoguće spomenuti programski jezik R, a da se ne pomisli na nauku o podacima čije metode ne moraju nužno da uključuju statistička izračunavanja. U prilog tome ide i činjenica da nauku o podacima nije jednostavno definisati jer obuhvata veliku multidisciplinarnu oblast u kojoj se koriste naučne metode, procesi, algoritmi i sistemi koji omogućavaju ekstrakciju znanja i zaključaka iz podataka. Odličan pregled prošlosti, sadašnjosti i budućnosti R-a dat je u članku prof. Rodžera Penga sa Džon Hopkins Blumberg škole za javno zdravlje (eng. John Hopkins Bloomberg School of Public Health). Prof. Peng je predložio novu definiciju koja najviše odgovara trenutnoj nameni R-a: “R je jezik za analizu podataka”.
Iako se Autorka ovog članka slaže sa novom definicijom prof. Penga, važno je napomenuti da, pored analize različitih podataka (npr. biomedicinskih, finansijskih, ekonomskih), postoje i drugi primeri primene R-a. Ovde su navedena samo dva: (1) Moguće je pomoću serial paketa koji omogućava da se upisuju i čitaju binarni i aski (eng. ASCII) podaci sa serijskog porta meriti signale (ovo je jedan od načina da se R poveže sa hardverom, npr. sa Arduino UNO mikrokontrolerom), (2) Iako je automatsko generisanje izveštaja važno za analizu podataka i nauku o podacima, može se koristiti i u drugim oblastima, primenom Markdown R paketa. Ovde treba napomenuti da postoje i knjige kao što je Data analysis for the life sciences with R7 koje su u potpunosti napisane u R-u. Po mišljenju Autorke članka, R Markdown će biti uskoro transformisan ili integrisan sa drugim platformama. Razlog tome je postojanje otvorenih platformi za interaktivno programiranje kao što je Jupyter i sve veće težnje za neposrednom komunikacijom programskih jezika. Pa se može očekivati da će se uloga Markdown paketa u automatskom kreiranju različitih sadržaja sigurno promeniti, ali ne i nestati.
Relativno veliki broj članaka je objavljen sa ciljem poređenja različitih programskih jezika i preporuke najboljeg za primenu u nauci o podacima. Ovakvi članci, na prvi pogled, ukazuju na veliko rivalstvo između programskih jezika R i Pajton, ali situacija je potpuno drugačija. Naime, R Studio je 2018. godine objavio paket Reticulate kao interfejs za Pajton u R-u koji omogućava i automatski prelazak između R i Pajton objekata. Sa druge strane, za pisanje R koda u Pajtonu, postoji Python biblioteka rpy2 koja je objavljena 2016. godine. Ova integracija programskih jezika je prirodan sled najčešćih situacija u praksi, a to je da se od početka do kraja jednog inženjerskog projekta koristi više programskih jezika. Uprkos činjenici da se broj članaka na temu odabira jednog jedinog i “pravog” programskog jezika ne smanjuje, praksa je potpuno drugačija. Trenutno su veoma aktuelne višejezične platforme za kreiranje tzv. prenosivih biblioteka za primenu u nauci o podacima koje mogu da se primene u R-u, Pajtonu i drugim programskim jezicima. Među najpoznatijim višejezičnim platformama nalaze se Ursa Labs i Apache Arrow.
Mnogo se piše o analitici i o nauci o podacima, a retko se govori o njihovim razlikama. Vrlo često se u literaturi mogu sresti ova dva pojma kao sinonimi, jer su sličnosti očigledne tj. metodologije manipulacije podacima i ekstrakcije informacija su slične, a često i identične. Odličan pregled ove dve oblasti dat je u članku Dane Liberti iz 2019. godine. Dana je istakla da su osnovne razlike u tome što u nauci o podacima ne znamo šta želimo da saznamo iz podataka u odnosu na analitiku koja je mnogo fokusiranija i u kojoj znamo koja su pitanja (znamo zbog čega su nam podaci potrebni), ali ne znamo koji su odgovori.
Cilj ovog članka je da upozna čitateljke i čitaoce sa programskim jezikom R i njegovom primenom u nauci o podacima, bez namere da se programskom jeziku R daje prednost nad bilo kojim drugim alatom(ili alatima). Specifično, cilj ovog teksta je da motiviše čitateljke i čitaoce da se bave analizom signala, programiranjem u R-u, da koriste slobodan softver, da nastave profesionalno usavršavanje, da im pruži informacije o novim trendovima u nauci o podacima i potpuno neočekivano da im ispriča jednu priču iz istorije.
R na Elektrotehničkom fakultetu u Beogradu
Programski jezik R je zvanično uveden na Elektrotehničkom fakultetu, Univerziteta u Beogradu pre dve godine u školskoj 2016/17 godini na Master akademskim studijama na modulu za Signale i sisteme. Kurs 13E051TOBS (Tehnike obrade biomedicinskih signala) se, pored programiranja u R-u, bavi i analizom biosignala i primenom nauke o podacima u biomedicinskom inženjerstvu. TOBS kurs je Autorka ovog članka koncipirala tako da ga mogu birati svi koje generalno zanima nauka o podacima, programiranje u R-u i kojima je biomedicinsko inženjerstvo privlačna oblast, a bez ikakvog prethodnog znanja o ovim oblastima. Iako 80% ocene pokrivaju test i ispit koji su formalno gledano teorijski orijentisani, predmet je vrlo praktičan. Na primer, test i ispit se rade na računarima u R-u, a samo testiranje sadrži vrlo malo ili skoro nimalo provere teorijskog znanja tj. repeticije činjenica. Projekat čini 20% ocene i od 2018/19. godine u saradnji sa Elektrotehničkim fakultetom Univerziteta u Ljubljani uvedena je i nagrada za najbolji projekat. Svi projekti, do sada, su bili koncipirani tako da imaju direktnu primenu u praksi i većina je realizovana na skupovima podataka koji su mereni u laboratorijama na Elektrotehničkom fakultetu, Univerziteta u Beogradu ili na drugim univerzitetima.