Jezik r wiki. Programski jezik R i njegovo mjesto među statističkim programima

Programiranje na R. Nivou 1. Osnove

R jezik je najpopularniji alat za statističku analizu podataka na svijetu. Sadrži širok spektar mogućnosti za analizu podataka, njihovu vizualizaciju i kreiranje dokumenata i web aplikacija. Želite savladati ovaj moćni jezik uz vodstvo iskusnog mentora? Pozivamo vas na kurs "Programiranje u R jeziku. Nivo 1. Osnovno znanje".

Ovaj kurs je namijenjen širokom spektru specijalista koji treba da traže obrasce u velikim količinama podataka, vizualiziraju ih i izgrade statistički ispravne zaključke: sociolozima, voditeljima kliničkih ispitivanja/farmakolozima, istraživačima (astronomija, fizika, biologija, genetika, medicina, itd.), IT analitičari, poslovni analitičari, finansijski analitičari, marketinški stručnjaci. Kurs će se također svidjeti stručnjacima koji nisu zadovoljni s funkcionalnošću (ili naknadama) / .

Tokom nastave steći ćete osnovne vještine analize podataka i vizualizacije u okruženju R. Većina vremena je posvećena praktičnim zadacima i radu sa stvarnim skupovima podataka. Naučit ćete sve nove alate za rad s podacima i naučiti kako ih primijeniti u svom radu.

Nakon završenog kursa izdaje se sertifikat o usavršavanju centra.

Mnogi primjeri i članci na ovoj stranici aktivno koriste “R” programski jezik.

R za Linux se obično može instalirati pomoću spremišta vaše distribucije. Koristim distribucije zasnovane na Debianu, u kojima standardna naredba za instalaciju R izgleda ovako:

Sudo apt install r-base

Ovo morate upisati u terminal.

Ljepota R je ovo:

  1. Ovaj program je besplatan (distribuira se pod GPL licencom),
  2. Mnogi paketi su napisani za ovaj program za rješavanje širokog spektra problema. Svi oni su takođe besplatni.
  3. Program je vrlo fleksibilan: veličine bilo kojeg vektora i matrica mogu se mijenjati na zahtjev korisnika, podaci nemaju krutu strukturu. Ovo svojstvo se pokazalo izuzetno korisnim u slučaju predviđanja, kada istraživač treba dati prognozu za proizvoljan period.

Ovo posljednje svojstvo je posebno relevantno jer drugi statistički paketi (kao što su SPSS, Eviews, Stata) pretpostavljaju da možemo biti zainteresirani samo za analizu podataka koji imaju fiksnu strukturu (na primjer, svi podaci u radnoj datoteci moraju biti iste periodičnosti sa istim datumima početka i kraja).

Međutim, R nije najprijateljskiji program. Dok radite s njim, zaboravite na miša - gotovo sve najvažnije radnje u njemu se izvode pomoću komandne linije. Međutim, kako bi život bio malo lakši, a sam program malo prijatniji, postoji frontend program pod nazivom RStudio. Možete ga preuzeti ovdje. Instalira se nakon što je već instaliran sam R. RStudio ima mnogo praktičnih alata i lijepo sučelje, međutim, analiza i predviđanje u njemu se i dalje obavljaju pomoću komandne linije.

Hajde da pokušamo da pogledamo ovaj divan program.

Upoznavanje sa RStudiom

RStudio interfejs izgleda ovako:

U gornjem desnom uglu u RStudiu je naznačeno ime projekta (koji za sada imamo „Nijedan“ - odnosno nedostaje). Ako kliknemo na ovaj natpis i odaberemo “Novi projekat” (novi projekat), od nas će se tražiti da kreiramo projekat. Za osnovne svrhe predviđanja, samo odaberite “Novi direktorij” (nova mapa za projekt), “Prazan projekt” (prazan projekt), a zatim unesite naziv projekta i odaberite direktorij u koji ćete ga spremiti. Upotrijebite svoju maštu i pokušajte sami smisliti ime :).

Kada radite s jednim projektom, uvijek možete pristupiti podacima, naredbama i skriptama pohranjenim u njemu.

Na lijevoj strani prozora RStudio nalazi se konzola. Ovdje ćemo unijeti razne komande. Na primjer, napišimo sljedeće:

Ova naredba će generirati 100 slučajnih varijabli iz normalne distribucije s nultim očekivanjem i jediničnom varijansom, zatim kreirati vektor nazvan "x" i u njega upisati rezultirajućih 100 vrijednosti. simbol "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->“, iako bi naša varijabla u ovom slučaju trebala biti s desne strane. Na primjer, sljedeći kod će kreirati objekt "y" koji je apsolutno identičan objektu "x":

Ovi vektori se sada pojavljuju u gornjem desnom dijelu ekrana, ispod kartice, koju sam nazvao "Okruženje":

Promjene na kartici "Okruženje".

Ovaj dio ekrana će prikazati sve objekte koje sačuvamo tokom sesije. Na primjer, ako kreiramo matricu poput ove:

\(A = \begin(pmatrix) 1 & 1 \\ 0 & 1 \end(pmatrix) \)

sa ovom komandom:

tada će se pojaviti na kartici "Okruženje":

Bilo koja funkcija koju koristimo zahtijeva od nas da dodijelimo neke vrijednosti određenim parametrima. Funkcija matrix() ima sljedeće parametre:

  • data – vektor sa podacima koje treba upisati u matricu,
  • nrow – broj redova u matrici,
  • ncol – broj stupaca u matrici,
  • byrow - logički parametar. Ako je “TRUE” (tačno), tada će se matrica popunjavati u redovima (s lijeva na desno, red po red). Podrazumevano, ovaj parametar je postavljen na FALSE.
  • dimnames - list sa imenima redova i kolona.

Neki od ovih parametara imaju zadane vrijednosti (na primjer, byrow=FALSE), dok se drugi mogu izostaviti (na primjer, dimnames).

Jedan od trikova "R" je da se bilo kojoj funkciji (na primjer, našoj matrix()) može pristupiti direktnim navođenjem vrijednosti:

Ili možete to učiniti na način na koji smo to radili ranije - posmatrajući redoslijed i izostavljajući nazive parametara.

Da biste vidjeli sadržaj bilo kojeg objekta koji se nalazi na kartici "Okruženje", samo odštampajte njegovo ime u konzoli:

Druga opcija je da kliknete na naziv objekta na kartici "Okruženje".

gdje je matrica naziv funkcije koja nas zanima. U tom slučaju, RStudio će posebno za vas otvoriti panel “Pomoć” sa opisom:

Pomoć za funkciju možete pronaći i tako što ćete upisati naziv funkcije u prozor za pretragu (ikona sa sočivom) na kartici „Pomoć“.

Ako se ne sjećate kako točno napisati naziv funkcije ili koji se parametri koriste u njoj, samo počnite pisati njeno ime u konzoli i pritisnite tipku "Tab":

Uz sve ovo, možete pisati skripte u RStudiu. Možda će vam trebati ako trebate napisati program ili pozvati niz funkcija. Skripte se kreiraju pomoću dugmeta sa znakom plus u gornjem levom uglu (treba da izaberete „R skripta“ u padajućem meniju). U prozoru koji se otvori nakon ovoga možete napisati bilo koje funkcije i komentare. Na primjer, ako želimo iscrtati linijski graf preko serije x, možemo to učiniti ovako:

Grafikon (x) linije (x)

Prva funkcija gradi jednostavnu dijagram raspršenja, a druga funkcija dodaje linije na vrh tačaka koje povezuju tačke u seriji. Ako odaberete ove dvije komande i pritisnete “Ctrl+Enter”, one će se izvršiti, što će uzrokovati da RStudio otvori karticu “Plot” u donjem desnom uglu i prikaže iscrtani dijagram u njemu.

Ako nam i dalje budu potrebne sve upisane komande u budućnosti, onda ovu skriptu možemo sačuvati (disketa u gornjem levom uglu).

U slučaju da trebate da se pozovete na komandu koju ste već otkucali nekada u prošlosti, u gornjem desnom uglu ekrana nalazi se kartica „Istorija“. U njemu možete pronaći i odabrati bilo koju komandu koja vas zanima i dvaput kliknite da je zalijepite u konzolu. U samoj konzoli možete pristupiti prethodnim komandama pomoću dugmadi Gore i Dolje na vašoj tastaturi. Kombinacija tipki “Ctrl+Up” vam omogućava da prikažete listu svih nedavnih naredbi u konzoli.

Generalno, RStudio ima mnogo korisnih prečica na tastaturi koje znatno olakšavaju rad sa programom. Možete pročitati više o njima.

Kao što sam ranije spomenuo, postoji mnogo paketa za R. Svi se nalaze na CRAN serveru i da biste instalirali bilo koji od njih morate znati njegov naziv. Instalacija i ažuriranje paketa vrši se pomoću kartice „Paketi“. Odlaskom na njega i klikom na dugme “Instaliraj” videćemo nešto poput sledećeg menija:

Ukucajmo u prozor koji se otvori: forecast je paket koji je napisao Rob J. Hyndman, koji sadrži gomilu funkcija korisnih za nas. Kliknite na dugme "Instaliraj", nakon čega će se instalirati paket "prognoza".

Alternativno, možemo instalirati bilo koji paket, znajući njegovo ime, koristeći naredbu u konzoli:

Install.packages("smooth")

pod uslovom da je, naravno, u CRAN spremištu. smooth je paket čije funkcije razvijam i održavam.

Neki paketi su dostupni samo u izvornom kodu na stranicama kao što je github.com i zahtijevaju da se prvo naprave. Da biste napravili pakete pod Windowsom, možda će vam trebati program Rtools.

Da biste koristili bilo koji od instaliranih paketa, morate ga omogućiti. Da biste to učinili, morate ga pronaći na listi i označiti ga ili koristiti naredbu u konzoli:

biblioteka (prognoza)

U Windows-u se može pojaviti jedan neugodan problem: neki paketi se lako preuzimaju i sklapaju, ali se ni na koji način ne instaliraju. R u ovom slučaju piše nešto poput: "Upozorenje: nije moguće premjestiti privremenu instalaciju...". Sve što treba da uradite u ovom slučaju je da dodate folder sa R ​​izuzecima u vašem antivirusnom programu (ili ga isključite dok instalirate pakete).

Nakon preuzimanja paketa, sve funkcije uključene u njega bit će nam dostupne. Na primjer, funkcija tsdisplay() koja se može koristiti ovako:

Tsdisplay(x)

Ona će nam izgraditi tri grafikona, o kojima ćemo govoriti u poglavlju “Prognostički alati”.

Pored paketa prognoze, često koristim paket Mcomp za razne primjere. Sadrži niz podataka iz baze podataka M-Competition. Stoga preporučujem da ga i vi instalirate.

Vrlo često će nam biti potrebni ne samo skupovi podataka, već podaci klase “ts” (vremenske serije). Da biste napravili vremensku seriju od bilo koje varijable, potrebno je da pokrenete sljedeću naredbu:

Ovdje nam parametar start omogućava da odredimo datum od kojeg počinje naša vremenska serija, a učestalost specificira učestalost podataka. Broj 12 u našem primjeru označava da imamo posla s mjesečnim podacima. Kao rezultat izvršavanja ove naredbe, transformiramo naš vektor “x” u vremensku seriju mjesečnih podataka počevši od januara 1984.

Ovo su osnovni elementi R i RStudia koji će nam trebati.

P.P.S. Prilično dobar vodič za R je objavio Pavel Polishchuk na web stranici QSAR4U.

P.P.P.S. Mnogo informacija o R je predstavljeno na službenoj web stranici.

Samostalan rad

Evo nekoliko zadataka koje možete sami obaviti u R. Pokrenite sljedeće komande, pogledajte šta se dešava i pokušajte razumjeti zašto se to dogodilo:

(41/3 + 78/4)*2 2^3+4 1/0 0/0 max(1,min(-2.5),max(2,pi)) sqrt(3^2+4^2) exp (2)+3i log(1024) log(1024, baza=2) c(1:3) c(1:5)*2 + 4 x

]. "Proleter mentalnog rada." Po obrazovanju fizičar. U oblasti obrade medicinskih i bioloških informacija radim više od 30 godina.
Radim u R-u tačno 10 godina, a prešao sam na njega nakon 15 godina bliske saradnje sa Matlabom. Primarni razlog za migraciju na drugu radnu platformu bila je moja vlastita fizička migracija na suprotni kraj Zemlje u Auckland, Novi Zeland. Ovdje me život od prvih dana gurnuo u zagrljaj R, zbog čega još nisam morao požaliti.

Sve češće vidim izbijanje interesovanja za R u profesionalnoj mreži. Pa, članci o njemu se pojavljuju na ovom uglednom resursu. Dalje ispod reza je moj prvi pokušaj uvoda u R na ruskom jeziku - prvi (verbalni) dio prezentacije koju sam napravio za kolege sa Fakulteta za nauku o životinjama, Iova State University prije tri godine.
(na stranu: ali ispostavilo se da je teško sam sebe prevesti...)


U ovom postu

  • Šta je R
  • Odakle je došao
  • Zašto ga volim
  • Mitovi i istina

Šta se desilo R

Kao prvo R je sistem za statistička i druga naučna izračunavanja koristeći programski jezik S .

S- pisani jezik od statističara za statističare. kako je definirao autor John Chambers. Jezik je veoma dobro prihvaćen od svog uvođenja i testiran je od strane generacija veoma izbirljivih korisnika statistike. Može se smatrati da je prilično poznat i prihvaćen u svjetskoj statističkoj zajednici. Na jeziku S Brojni kritični epidemiološki, ekološki i finansijski modeli su implementirani i još uvijek rade širom svijeta iu mnogim industrijama. Kako je jezik sa stanovišta mene, kao „korisnika koji piše“, S je veoma prijatna alternativa jeziku SAS .

Iz vlastitog iskustva - Uvod i prve lekcije S I sam sam ga dobio početkom 90-ih od statističkih stručnjaka SZO sa kojima sam se u to vreme ukrštao u naučnim istraživanjima.

Prema mnogim procjenama, R (i za mene i ne mnogo pretjerano) je jedan od najuspješnijih projekata otvorenog koda, koji se besplatno distribuira sa desetina ogledala širom svijeta prema GNU licencnim standardima.
Autori kategorički odbijaju sve prijedloge za komercijalizaciju projekta, iako danas postoji razlog za pretpostavku da je broj instaliranih primjeraka R u svijetu veći od ukupnog broja primjeraka. svima drugi sistemi statističke analize.

Od samog početka do danas projekat u meni izaziva najdublje poštovanje (na granici divljenja) za stabilnost, korisničku podršku, kompatibilnost koda itd., što bih spojio u koncept kulture.
Međutim, posljednja rečenica je prije za naredne pododjeljke.

Odakle je došlo? S i kakve to veze ima sa R

Nesumnjivo, Wikipedia će vam dati još mnogo slova.
Napomenuću samo ono što smatram važnim za razumijevanje mjesta S i R u ovom životu na ovom svijetu.

Bell Laboratories (aka Bell Labs, AT&T Bell Labaratories) su prilično poznate u historiji nauke i tehnologije, a posebno IT-a. Statistička istraživanja tamo su se uvijek obavljala vrlo ozbiljno, a bila su i ozbiljno potpomognuta svim dostupnim kompjuterskim alatima (čitaj - tone Fortrana i Lisp koda).

Ono što je kasnije postalo S jezik nastalo je 1970-ih, na inicijativu i uputu Johna Chambersa, kao skup skripti koje su olakšale „unošenje“ podataka u Fortran kod. One. Glavni fokus je bio na zadatku interaktivne manipulacije podacima, kompaktnosti, jednostavnosti pisanja i čitljivosti koda i dobijanju pristojnog izlaza na raznim uređajima, tabelama i grafikonima.

Sintaksa jezika omogućava izgradnju gotovo proizvoljno složenih struktura podataka, alata za opisivanje specifičnih statističkih zadataka i objekata – statistike. testovi, modeli itd.

Od 1984. jezik je dobio ime, sopstvenu „Bibliju“ (objavljena je knjiga Chambersa i Beckersa: S: Interaktivno okruženje za analizu podataka i grafiku), počeo je podrazumevano sadržavati gotovo kompletan „džentlmenski skup“ statistike i „vjerovatnih naučnika“ – distribucije, generatore slučajnih brojeva, statističke testove, mnoge standardne statističke analize, rad sa matricama, itd., da ne spominjemo razvijen sistem naučne grafike. Najvažnije je da je postao dostupan korisnicima širom svijeta po vrlo pristupačnoj cijeni.

1988. (objavljena još jedna knjiga Novi S jezik) - modificirano korištenjem OOP-a, sve je postalo objekti sa vrlo razumnim zadanim vrijednostima, dostupnošću za modifikacije, elementima samodokumentacije, itd, itd.

Istovremeno, laboratorije su objavile izvorni kod i “Bell Lab” S postao besplatan za studente i za naučnu upotrebu. Sve je to bilo nekako povezano sa „dekulakizacijom“ AT&T-a, ali me ovi detalji više nisu mnogo zanimali.

Postojale su, a vjerovatno i dalje postoje, komercijalne implementacije jezika S. naišao sam S-Plus I S2000. Podržavale su ih različite kompanije u različito vrijeme, uglavnom žive (žive?) zahvaljujući podršci prethodno stvorenih S aplikacije. U ovim post-Bell verzijama S pojavila se nova verzija OOP motora, ali je za čistog korisnika bila gotovo beskrvna u smislu kompatibilnosti istorijskog koda.

R- jedina nekomercijalna, potpuno nezavisna (od originalnog Bella) implementacija jezika S.

I u rijetkom dogovoru ovih dana, na neki meni nezamisliv način, programeri trenutnih verzija reklame S i neprofitne R podržavaju njihovu gotovo potpunu kompatibilnost i kontinuitet.

A sada R

Iza svakog značajnog fenomena u ovom životu stoji neka vrsta harizmatične ličnosti. Međutim, to se može dogoditi i to je definicija značaja fenomena.

U slučaju R, postoje tri takve osobe.
Već sam spomenuo Johna Chambersa.

Ross Ihaka, student, a potom i istraživač na Odsjeku za statistiku na Univerzitetu u Aucklandu, odabrao je temu svoje disertacije (koja je izvedena na MIT-u, SAD) kako bi proučio mogućnost izgradnje virtualne mašine (VM) za statističke programski jezici. Odabran je srednji jezik Lisp (Common Lisp, CL) i implementira prototip VM koji „razumije“ male podskupove SAS I S.
Ross se vratio u Oakland kako bi završio svoju disertaciju, gdje je ubrzo upoznao Roberta Gentlemana i zainteresovao se za R projekat.
Ross nikada nije odbranio svoju disertaciju, ali već ima akademsku diplomu na nekoliko univerziteta „na osnovu zajedničkih zasluga“. Prošle godine je stekao zvanje i dobio zvanje vanrednog profesora (docenta) na svom matičnom univerzitetu.

Robert Gentleman, još jedan statističar sa strašću za programiranjem, porijeklom iz Kanade, dok je bio na praksi na Univerzitetu u Oklandu (tada je radio u Australiji), predložio je Rosu da „napiše neki jezik“.
Prema legendi koju sam i sam čuo od ovih „očeva osnivača“, oni su za samo mesec dana, u naletu ludog entuzijazma, prepisali C.L. skoro sve ekipe S, uključujući moćnu biblioteku linearnog modeliranja.

Računarski motor R, slijedeći tradiciju prototipa, odabrana je poznata, općeprihvaćena i besplatna BLAS biblioteka (sa mogućnošću korištenja ATLAS-a i sl. sa istim interfejsom).
Paul Murrel, jedan od Rossovih najbližih prijatelja i također zaposlenik Univerziteta u Oaklandu, dao je sve od sebe i napisao (izgleda na C-u) grafički motor od nule koji u potpunosti reproducira funkcionalnost tog u S.

Rezultat je bio besplatan, potpuno funkcionalan paket koji je odmah dobio mjesto u obrazovnom procesu na Univerzitetu Oakland, u potpunosti u skladu s opisima u Chambersovim vrlo detaljnim i visokokvalitetnim knjigama, koje su tradicionalno objavljivane u mekim povezima i prosječnog kvaliteta štampe, ali bile jeftine i pristupačne.
Nekoliko aktivističkih grupa u GNU (npr. GIS) pokretu usvojilo je R kao platformu za naučno računarstvo.

Ali zaista najšira slava R stečeno u bioinformatici kada je jedan od “očeva” Robert Gentleman, koji je u to vrijeme bio uključen u rad kompanije Affimmetrix, duplirao svu funkcionalnost komercijalnog softvera kompanije i pokrenuo (pa, više od jednog, naravno) izvorni projekat Bioconductor. Trenutno Bioconductor je neprikosnoveni lider u bioinformatici otvorenog koda za sve "omike" (genomika, proteomika, metabolomika, itd.).

Naravno, jedinstveni jezik interfejsa za ovaj bunt bioinformatičkih fantazija je postao R.

Krug je postao pun krug kada je penzionisan Chambers, tvorac jezika S, postao je punopravni član grupe aktivnih programera R.

Zašto ga volim (lista)

  1. Interaktivnost, “Programiranje sa podacima” - moj omiljeni stil rada
  2. Elegantan (za amatere) jezik - volim liste, okvire podataka, funkcionalno programiranje i lambda funkcije (a-la) Sloboda izražavanja: isti problem se može riješiti na deset načina (ublažava osjećaj rutine)
  3. “Trezveno gleda na ovaj svijet” - rijetko koga “sruši” ili “suspendira”, logičke operacije sa nedostajućim podacima, rukovanje greškama u runtime-u (pokušaj-greška), laka razmjena sa sistemom na nivou standardnog I/O, itd.
  4. Kompletan set statističkih procedura spremnih za upotrebu
  5. Dobro dokumentirano i dobro održavano - kompatibilnost, kontinuitet, itd.
  6. Okupio oko sebe ljudski ugodnu profesionalnu zajednicu (forumi, korisničke konferencije itd.)
  7. Dobro dokumentovan interfejs za eksterne biblioteke i funkcije na bilo čemu - Fortran, C, Java. Otuda more dobro dokumentovanih biblioteka o svim aspektima statistike i nauke o podacima u gotovo svim oblastima nauke, ali sa primarnim fokusom na bioinformatiku/biostatistiku; sve se ažurira redovno i korektno, ako za to postoji volja autora
  8. Nedostatak obaveznog GUI-a u "osnovnoj konfiguraciji" - Pa, ja nisam "miš" osoba!
Van liste: Samo mi je drago što moj glavni radni alat ima... dušu.
To je ono što zapravo pokušavam pokazati u svom članku.

Zašto i kako ga koristim (primjeri)

Počeo sam pisati u ovom dijelu, ali sam prestao.
Inače nikada ne bih završio.
Oh, vjerovatno nešto kasnije.

Mitovi i istina

R sporo
R je “tanak”, koristi blas/lapack/atlas biblioteke za proračune, pokušajte napisati nešto brže od ovih dobrih starih Fortran (često) “radnih konja”. Sve kritične funkcije po pravilu koriste vektorske operacije i implementiraju se u WITH.
R neracionalno koristi računarske resurse, posebno memoriju
Da, programeri priznaju ovaj grijeh. Ali radno vrijeme stručnjaka sada je mnogo skuplje od hardvera. Ispraznite igračke sa modernog radnog računara i nećete imati problema sa R ​​sa većinom stvarnih skupova podataka.
Besplatni softver možda nije pouzdan
Možda: Fortran, Linux, C, Lisp, Java itd.
Umjesto epiloga
Kao što je gore navedeno, post ispod je zapravo prijevod moje prezentacije za prilično specifičnu ciljnu publiku, a ja ću ukratko opisati ovu publiku.

Mnoge “čiste” IT kompanije će morati da se susreću sa takvim ljudima, jer se proizvodnja hrane već dugo takmiči sa naftom i drugim energetskim resursima kako bi privukla kapital i ostvarila profit. A kapacitet tržišta bioinformatike u medicini i farmakologiji je ograničen, ma kako na to gledali.

Dakle, moja publika su ljudi sa osnovnim obrazovanjem iz genetike i uzgoja, veterinarske medicine i, rjeđe, biologije (uglavnom molekularne). Momci i tetke (još ove poslednje), 20-30 godina... programiranje (!) na FORTRANe ili VB, slavno upravljaju Excel tablicama sa 100.000 redaka/kolona i povremeno "ispuštaju" svoje zadatke (i njihovo programiranje) na svoj Linux računarski klaster od 500+ jezgara sa 12TB dijeljene memorije i s vremena na vrijeme zahtijevajući proširenje disk memorije od strane drugog deset terabajta.

Metodološka osnova je eksplozivna mješavina analiza varijanse drevnih koliko i svijet s mješovitim modelima koji se rješavaju ni na koji drugi način nego metodom maksimalne vjerovatnoće, Bayesovskim mrežama koje „topi mozak“ itd.

Podaci - tabele podataka od jedinica do desetina hiljada redova, ponekad uključujući 1-5 kolona sa fenotipovima, ali sve češće - desetine ili stotine "Ka" kolona varijabli koje su u slaboj korelaciji jedna s drugom i sa fenotipovima.

Pa da, i oni imaju „dobru tradiciju“ da sve posmatraju u smislu porodičnih veza (uostalom, genetika). Rodbinske veze se tradicionalno predstavljaju u obliku matrice „srodstvenih veza” (rodoslovlja) dimenzija, na primjer, 40.000 x 40.000 (ovo je ako ima 40.000 životinja). Pa, ili (za sada, na sreću, samo u projektu) 20.000.000 x 20.000.000 - ovo je da se jednim modelom "pokrije" svih 20 miliona istorijskih životinja dostupnih u bazi podataka ( DB2, ako nekoga zanima, a ni Cobol jos nije odasvud "isjecan"...)

Na stolovima prepunim literature o (istovremeno) Fortran, Java, C#, Scala, Octavia, Linux za lutke možete prepoznati nedavne diplomce bioinformatike. Ali nekako brzo mnogi od njih napuštaju nauku i postaju "koderi".

Međutim, znam i slučaj obrnutog kretanja. Dakle R bit će od koristi još mnogima.

Želeo bih da pričam o korišćenju besplatnog okruženja za statističku analizu R. Smatram ga alternativom statističkim paketima kao što je SPSS Statistics. Na moju duboku žalost, to je potpuno nepoznato u prostranstvima naše domovine, ali uzalud. Vjerujem da sposobnost pisanja dodatnih procedura statističke analize u S čini R korisnim alatom za analizu podataka.

U prolećnom semestru 2010. godine imao sam priliku da držim predavanja i izvodim praktičnu nastavu iz predmeta „Statistička analiza podataka“ za studente Katedre za inteligentne sisteme Ruskog državnog univerziteta za humanističke nauke.

Moji studenti su prethodno pohađali semestralni kurs teorije vjerovatnoće koji pokriva osnove diskretnih prostora vjerovatnoće, uslovne vjerovatnoće, Bayesovu teoremu, zakon velikih brojeva, neke osnove o normalnom zakonu i Centralnu graničnu teoremu.

Prije otprilike pet godina već sam držao nastavu u (tada kombinovanom) semestralnom kursu „Osnove teorije vjerovatnoće i matematičke statistike“, pa sam proširio svoje bilješke (date studentima prije svakog časa) o statistici. Sada kada Ruski državni univerzitet za humanističke nauke ima studentski server isdwiki.rsuh.ru odeljenja, istovremeno ih postavljam na FTP.

Postavilo se pitanje: koji program da koristim za izvođenje praktične nastave u računarskoj nastavi? Često korišćeni Microsoft Excel odbijen je i zato što je bio vlasnički i zato što je nepravilno implementirao neke statističke procedure. O tome možete pročitati, na primjer, u knjizi A. A. Makarova i Yu. N. Tyurina „Statistička analiza podataka na računaru“. Calc tabele iz besplatnog uredskog paketa Openoffice.org su rusificirane tako da jedva mogu pronaći traženu funkciju (njihova imena su također odvratno skraćena).

Najčešće korišteni paket je SPSS Statistics. SPSS je sada preuzeo IBM. Među prednostima IBM SPSS Statistics želim istaknuti:

  • Pogodno učitavanje podataka u različitim formatima (Excel, SAS, preko OLE DB, preko ODBC Direct Driver-a);
  • Dostupnost komandnog jezika i opsežnog sistema menija za direktan pristup raznim procedurama statističke analize;
  • Grafička sredstva za prikazivanje rezultata;
  • Ugrađeni Statistics Coach modul koji interaktivno predlaže adekvatnu metodu analize.
Nedostaci IBM SPSS Statistics po mom mišljenju su:
  • Plaćanje čak i za studente;
  • Potreba za dobijanjem (dodatno plaćenih) modula koji sadrže posebne procedure;
  • Podržava samo 32-bitne Linux operativne sisteme, iako Windows podržava i 32-bitne i 64-bitne.
Kao alternativu, izabrao sam . Ovaj sistem je počeo da se razvija kroz napore Roberta Gentlemana i Rossa Ihaka na Odsjeku za statistiku Univerziteta u Melburnu 1995. godine. Prva slova imena autora odredila su njen naslov. Nakon toga, vodeći statističari su se uključili u razvoj i proširenje ovog sistema.

Razmatram prednosti sistema o kojem se raspravlja:

  • Distribucija programa pod GNU javnom licencom;
  • Dostupnost i izvornog koda i binarnih modula u opsežnoj mreži riznica CRAN (The Comprehensive R Archive Network). Za Rusiju, ovo je server cran.gis-lab.info;
  • Dostupnost instalacionog paketa za Windows (radi na 32-bitnoj i 64-bitnoj Visti). Slučajno se pokazalo da instalacija ne zahtijeva administratorska prava pod Windows XP;
  • Mogućnost instaliranja iz spremišta na Linuxu (radi mene na 64-bitnoj verziji Ubuntu 9.10);
  • Dostupnost sopstvenog programskog jezika za statističke procedure R, koji je zapravo postao standard. Nju, na primjer, u potpunosti podržava novi IBM SPSS Statistics Developer;
  • Ovaj jezik je proširenje S jezika razvijenog u Bell Labs-u, koji trenutno čini osnovu komercijalnog S-PLUS sistema. Većina programa napisanih za S-PLUS može se lako izvršiti u R okruženju;
  • Sposobnost razmjene podataka sa tabelama;
  • Mogućnost pohranjivanja cjelokupne historije proračuna za potrebe dokumentacije.
Za prvi čas pripremljeni su CD-ovi na kojima su snimljeni instalacioni fajlovi, dokumentacija i priručnici. Reći ću vam više o ovom drugom. CRAN pruža detaljne korisničke vodiče o instalaciji, jeziku R (i njegovom podskupu S), pisanju dodatnih statističkih procedura i izvozu i uvozu podataka. Odjeljak Priložena dokumentacija sadrži veliki broj publikacija nastavnika statistike koji koriste ovaj paket u obrazovnom procesu. Nažalost, na ruskom nema ništa, iako, na primjer, postoji čak i na poljskom. Među knjigama na engleskom jeziku, želeo bih da pomenem „Using R for introductory statistics“ profesora Johna Verzanija sa City University of New York i „Introduction to the R project for Statistical Computing“ profesora Rossitera (Holandija) sa Međunarodnog univerziteta. Institut za geoinformatiku i posmatranje Zemlje.

Prva lekcija je bila posvećena instalaciji i učenju korištenja paketa, upoznavanju sa sintaksom jezika R. Kao testni zadatak korišteno je izračunavanje integrala Monte Carlo metodom. Evo primjera izračunavanja vjerovatnoće r.v. sa eksponencijalnom distribucijom sa parametrom 3, uzeti vrijednost manju od 0,5 (10000 je broj pokušaja).
> x=runif(10000,0,0.5)
> y=runif(10000,0,3)
>t=y<3*exp(-3*x)
> u=x[t]
>v=y[t]
> plot(u,v)
> i=0,5*3*dužina(u)/10000

Prva dva reda specificiraju uniformnu raspodjelu tačaka u pravokutniku x, zatim se odabiru one tačke koje potpadaju pod eksponencijalni graf gustoće 3*exp(-3*x), funkcija plot prikazuje tačke u grafičkom izlaznom prozoru i konačno se izračunava traženi integral.
Druga lekcija je bila posvećena izračunavanju deskriptivne statistike (kvantili, medijana, srednja vrednost, varijansa, korelacija i kovarijansa) i izradi grafova (histogrami, kutija i brkovi).
U narednim časovima korištena je biblioteka Rcmdr. Ovo je grafički korisnički interfejs (GUI) za okruženje R. Biblioteku je kreirao profesor John Fox sa Univerziteta McMaster u Kanadi.

Instalacija ove biblioteke se vrši izvršavanjem naredbe install.packages("Rcmdr", dependencies=TRUE) unutar okruženja R. Ako je samo okruženje tumač R jezika, onda je dodatak "Rcmdr" dodatni prozor opremljen sistem menija koji sadrži veliki broj komandi koje odgovaraju standardnim statističkim procedurama. Ovo je posebno zgodno za kurseve gdje je glavna stvar naučiti studenta da pritisne dugmad (na moju žalost, oni su sada sve češći).

Napomene sa seminara sa mog prethodnog kursa su proširene. Dostupni su i putem FTP-a sa stranice isdwiki.rsuh.ru. Ove bilješke su sadržavale tabele kritičnih vrijednosti koje su korištene za proračune na ploči. Ove godine učenici su podstaknuti da rješavaju ove probleme na računaru i također provjere tabele koristeći (normalne) aproksimacije koje su također navedene u bilješkama.

Bilo je i mojih grešaka. Na primjer, prekasno sam shvatio da Rcmdr omogućava uvoz podataka iz preuzetih paketa, pa su relativno veliki uzorci obrađeni samo u klasama na regresijskoj analizi. Prilikom predstavljanja neparametarskih testova, učenici su ručno unosili podatke koristeći moje bilješke. Još jedan nedostatak, kako sada razumijem, bio je nedovoljan broj domaćih zadataka za pisanje prilično složenih programa na jeziku R.

Treba napomenuti da je nekoliko učenika viših razreda pohađalo moju nastavu, a neki su preuzimali materijale sa predavanja i seminara. Studenti Odseka za inteligentne sisteme Ruskog državnog univerziteta za humanističke nauke dobijaju osnovnu obuku iz matematike i programiranja, pa mi se upotreba R okruženja (umesto tabela i statističkih paketa sa fiksnim statističkim procedurama) čini veoma korisnim.

Ako ste suočeni sa zadatkom proučavanja statistike, a posebno pisanja nestandardnih procedura za statističku obradu podataka, onda preporučujem da skrenete pažnju na R paket.

Nedavno sam naišao na takav fenomen - mnogi ljudi su čuli za programski jezik R. Ali vrlo malo ljudi zna šta je to.

Pošto sam ja izvorni govornik ovog jezika i zainteresovana sam za njegovu popularizaciju, pokušaću da malo obradim temu u ovom postu. Bit će zanimljivo!

Plan je jednostavan:

1) Šta je R jezik

2) Popularnost u Rusiji

Šta je R jezik

R (wiki) je programski jezik za statističku obradu podataka i grafiku i besplatno računarsko okruženje otvorenog koda u okviru GNU projekta.

Po našem mišljenju: jezik je idealan za traženje tržišnih obrazaca. Besplatno, brzo i besplatno.

Omogućava vam da provodite statističke studije svega što vam može doći pod ruku. Tokom godina postojanja pojavile su se desetine i stotine ekstenzija koje su riješile gotovo svaki problem aplikacije.

Ovo je NAJPOPularniji programski jezik za algoritamske trgovce na Zapadu. Ovo je na vrhuncu onoga što je trenutno dostupno u mašinskom učenju i statistici.

Da biste pisali programe u R-u, samo preuzmite R-Studio i to je to



Prije nekog vremena, u sklopu popularizacije jezika, snimio sam mini-kurs “R za sve”. Besplatno. Pogledajte kako sve to jednostavno funkcionira i koliko brzo možete pisati skripte na njemu. Ovo je jednostavno odlično!

Popularnost u Rusiji

Ostavlja mnogo da se poželi.

Ako se na Zapadu 90% svih istraživanja provodi na ovom jeziku, onda u Rusiji rijetka sedmica prođe na SmartLabu, u kojoj možete pronaći barem jedno spominjanje. One. broj ljudi koji poznaju R je kritično mali.

Među razlozima za ovu situaciju: nedostatak priručnika na ruskom do nedavno, nedostatak kurseva obuke, niska pismenost trgovaca i još mnogo toga. Hajde da ne pričamo o ovome.

Važno je samo da popularnost ovog jezika u Rusiji i ZND stalno raste.

Ruski korisnici su umorni od pokvarenih API-ja i skupih sistema trgovanja. Besplatni R jezik, u kontekstu trgovanja, vrlo brzo će zauzeti svoje mjesto u njihovom kompletu alata. Pridruži nam se!

To je sve za danas. Nadam se da je bilo zanimljivo.

Pogledajte moj besplatni kurs da vidite koliko je lako napisati kod. Pišite robote!

Najnoviji materijali u sekciji:

Polimeri s tekućim kristalima
Polimeri s tekućim kristalima

Ministarstvo obrazovanja i nauke Ruske Federacije Kazan (Volga Region) Federalni univerzitetski hemijski institut im. A. M. Butlerov...

Početni period Hladnog rata gdje
Početni period Hladnog rata gdje

Glavne događaje međunarodne politike u drugoj polovini 20. stoljeća odredio je Hladni rat između dvije supersile - SSSR-a i SAD-a. Ona...

Formule i mjerne jedinice Tradicionalni sistemi mjera
Formule i mjerne jedinice Tradicionalni sistemi mjera

Prilikom kucanja teksta u Word uređivaču, preporučuje se pisanje formula pomoću ugrađenog uređivača formula, čuvajući u njemu postavke određene...