Jezik r wiki. Programski jezik R in njegovo mesto med statističnimi programi

Programiranje na R. 1. stopnja. Osnove

Jezik R je najbolj priljubljeno orodje za analizo statističnih podatkov na svetu. Vsebuje široko paleto zmožnosti za analizo podatkov, njihovo vizualizacijo ter ustvarjanje dokumentov in spletnih aplikacij. Želite obvladati ta močan jezik pod vodstvom izkušenega mentorja? Vabimo vas na tečaj "Programiranje v jeziku R. 1. stopnja. Osnovna znanja".

Ta tečaj je namenjen širokemu krogu strokovnjakov, ki morajo iskati vzorce v velikih količinah podatkov, jih vizualizirati in graditi statistično pravilne zaključke: sociologom, vodjem kliničnih preskušanj/farmakologom, raziskovalcem (astronomije, fizike, biologije, genetike, medicine, itd.), IT analitiki, poslovni analitiki, finančni analitiki, tržniki. Tečaj bo všeč tudi strokovnjakom, ki jim funkcionalnost (ali stroški) niso najbolj všeč.

Med predavanji boste pridobili osnovne veščine analize podatkov in vizualizacije v okolju R. Največ časa je namenjeno praktičnim nalogam in delu z realnimi nabori podatkov. Spoznali boste vsa nova orodja za delo s podatki in se jih naučili uporabljati pri svojem delu.

Po tečaju se izda potrdilo o izpopolnjevanju centra.

Številni primeri in članki na tem spletnem mestu aktivno uporabljajo programski jezik »R«.

R za Linux je običajno mogoče namestiti z uporabo repozitorijev distribucije. Uporabljam distribucije, ki temeljijo na Debianu, v katerih standardni ukaz za namestitev R izgleda takole:

Sudo apt namestite r-base

To morate vnesti v terminal.

Lepota R je v tem:

  1. Ta program je brezplačen (distribuiran pod licenco GPL),
  2. Za ta program je bilo napisanih veliko paketov za reševanje najrazličnejših težav. Vsi so tudi brezplačni.
  3. Program je zelo prilagodljiv: velikosti poljubnih vektorjev in matrik se lahko spremenijo na zahtevo uporabnika, podatki nimajo toge strukture. Ta lastnost se izkaže za izjemno uporabno v primeru napovedovanja, ko mora raziskovalec podati napoved za poljubno obdobje.

Slednja lastnost je še posebej pomembna, ker drugi statistični paketi (kot so SPSS, Eviews, Stata) predpostavljajo, da nas morda zanima samo analiza podatkov s fiksno strukturo (na primer, vsi podatki v delovni datoteki morajo biti enake periodičnosti). z istimi začetnimi in končnimi datumi).

Vendar R ni najbolj prijazen program. Med delom z njim pozabite na miško - skoraj vsa najpomembnejša dejanja v njej se izvajajo z ukazno vrstico. Da pa bi bilo življenje nekoliko lažje, sam program pa nekoliko bolj prijazen, je na voljo frontend program, imenovan RStudio. Lahko ga prenesete od tukaj. Namesti se po tem, ko je že nameščen sam R. RStudio ima veliko priročnih orodij in lep vmesnik, vendar se analize in napovedi v njem še vedno izvajajo z ukazno vrstico.

Poskusimo si ogledati ta čudovit program.

Spoznavanje RStudia

Vmesnik RStudio izgleda takole:

V zgornjem desnem kotu v RStudiu je navedeno ime projekta (ki ga zaenkrat imamo »Brez« - to pomeni, da manjka). Če kliknemo na ta napis in izberemo “New Project” (nov projekt), bomo pozvani, da ustvarimo projekt. Za osnovne namene napovedovanja samo izberite »Nov imenik« (nova mapa za projekt), »Prazen projekt« (prazen projekt), nato pa vnesite ime projekta in izberite imenik, v katerega ga želite shraniti. Uporabite svojo domišljijo in poskusite sami izmisliti ime :).

Ko delate z enim projektom, lahko vedno dostopate do podatkov, ukazov in skriptov, shranjenih v njem.

Na levi strani okna RStudio je konzola. Tukaj bomo vnesli različne ukaze. Na primer, zapišimo naslednje:

Ta ukaz bo ustvaril 100 naključnih spremenljivk iz normalne porazdelitve z ničelnim pričakovanjem in varianco enote, nato pa ustvaril vektor z imenom "x" in vanj zapisal nastalih 100 vrednosti. Simbol "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->«, čeprav bi morala biti naša spremenljivka v tem primeru na desni. Naslednja koda bo na primer ustvarila objekt "y", ki je popolnoma enak objektu "x":

Ti vektorji se zdaj prikažejo v zgornjem desnem delu zaslona pod zavihkom, ki sem ga poimenoval »Okolje«:

Spremembe v zavihku "Okolje".

V tem delu zaslona bodo prikazani vsi objekti, ki jih shranimo med sejo. Na primer, če ustvarimo matriko, kot je ta:

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

s tem ukazom:

nato se prikaže v zavihku »Okolje«:

Vsaka funkcija, ki jo uporabljamo, zahteva, da določenim parametrom dodelimo nekaj vrednosti. Funkcija matrix() ima naslednje parametre:

  • podatek – vektor s podatki, ki naj se zapišejo v matriko,
  • nrow – število vrstic v matriki,
  • ncol – število stolpcev v matriki,
  • byrow - logični parameter. Če je »TRUE« (true), bo matrika zapolnjena v vrsticah (od leve proti desni, vrstica za vrstico). Privzeto je ta parameter nastavljen na FALSE.
  • dimnames - list z imeni vrstic in stolpcev.

Nekateri od teh parametrov imajo privzete vrednosti (na primer byrow=FALSE), druge pa je mogoče izpustiti (na primer dimnames).

Eden od trikov »R« je, da lahko do katere koli funkcije (na primer naše matrix()) dostopate z neposrednim podajanjem vrednosti:

Lahko pa to storite tako, kot smo to storili prej - z upoštevanjem zaporedja in izpuščanjem imen parametrov.

Če želite videti vsebino katerega koli predmeta, ki se nahaja na zavihku »Okolje«, samo natisnite njegovo ime v konzoli:

Druga možnost je klik na ime predmeta v zavihku "Okolje".

kjer je matrika ime funkcije, ki nas zanima. V tem primeru bo RStudio posebej za vas odprl ploščo »Pomoč« z opisom:

Pomoč za funkcijo lahko poiščete tudi tako, da vtipkate ime funkcije v okno »iskanje« (ikona z lečo) v zavihku »Pomoč«.

Če se ne spomnite natančno, kako napisati ime funkcije ali kateri parametri so v njej uporabljeni, preprosto začnite pisati njeno ime v konzoli in pritisnite gumb "Tab":

Poleg vsega tega lahko v RStudiu pišete skripte. Morda jih boste potrebovali, če boste morali napisati program ali poklicati zaporedje funkcij. Skripte ustvarite z gumbom z znakom plus v zgornjem levem kotu (v spustnem meniju morate izbrati »R Script«). V okno, ki se odpre po tem, lahko napišete poljubne funkcije in komentarje. Na primer, če želimo narisati črtni graf nad vrsto x, lahko to naredimo takole:

Izris (x) črt (x)

Prva funkcija zgradi preprost razpršeni graf, druga funkcija pa doda črte na vrhu točk, ki povezujejo točke v nizu. Če izberete ta dva ukaza in pritisnete “Ctrl+Enter”, se bosta izvršila, kar povzroči, da RStudio odpre zavihek “Plot” v spodnjem desnem kotu in v njem prikaže narisani izris.

Če bomo v prihodnje še potrebovali vse vtipkane ukaze, potem lahko ta skript shranimo (disketa v zgornjem levem kotu).

Če se morate sklicevati na ukaz, ki ste ga že vnesli v preteklosti, je v zgornjem desnem kotu zaslona zavihek »Zgodovina«. V njem lahko poiščete in izberete poljuben ukaz, ki vas zanima, ter ga z dvojnim klikom prilepite v konzolo. V sami konzoli lahko do prejšnjih ukazov dostopate z gumboma gor in dol na tipkovnici. Kombinacija tipk »Ctrl+Up« vam omogoča prikaz seznama vseh nedavnih ukazov v konzoli.

Na splošno ima RStudio veliko uporabnih bližnjic na tipkovnici, ki zelo olajšajo delo s programom. Več o njih lahko preberete.

Kot sem že omenil, obstaja veliko paketov za R. Vsi se nahajajo na strežniku CRAN in za namestitev katerega koli od njih morate poznati njegovo ime. Namestitev in posodabljanje paketov poteka na zavihku »Paketi«. Če gremo do njega in kliknemo gumb »Namesti«, bomo videli nekaj podobnega naslednjemu meniju:

V okno, ki se odpre, vtipkamo: weather je paket, ki ga je napisal Rob J. Hyndman in vsebuje kopico nam uporabnih funkcij. Kliknite gumb »Namesti«, nato pa bo nameščen paket »napoved«.

Druga možnost je, da namestimo kateri koli paket, če vemo njegovo ime, z uporabo ukaza v konzoli:

Install.packages("smooth")

pod pogojem, da je seveda v repozitoriju CRAN. smooth je paket, katerega funkcije razvijam in vzdržujem.

Nekateri paketi so na voljo samo v izvorni kodi na spletnih mestih, kot je github.com, in jih je treba najprej zgraditi. Za gradnjo paketov v sistemu Windows boste morda potrebovali program Rtools.

Če želite uporabljati katerega od nameščenih paketov, ga morate omogočiti. Če želite to narediti, ga morate najti na seznamu in ga označiti ali uporabiti ukaz v konzoli:

Knjižnica (napoved)

V sistemu Windows se lahko pojavi ena neprijetna težava: nekateri paketi se zlahka prenesejo in sestavijo, vendar niso nameščeni na noben način. R v tem primeru napiše nekaj takega: "Opozorilo: ni mogoče premakniti začasne namestitve ...". Vse kar morate storiti v tem primeru je, da dodate mapo z R med izjeme v protivirusnem programu (ali jo izklopite med nameščanjem paketov).

Po prenosu paketa nam bodo na voljo vse funkcije, ki jih vsebuje. Na primer funkcija tsdisplay(), ki jo lahko uporabite takole:

Tsdisplay(x)

Zgradila nam bo tri grafe, o katerih bomo razpravljali v poglavju »Forecaster Toolkit«.

Poleg napovednega paketa precej pogosto uporabljam paket Mcomp za različne primere. Vsebuje serije podatkov iz baze M-Competition. Zato priporočam, da ga namestite tudi vi.

Zelo pogosto ne bomo potrebovali samo nizov podatkov, ampak podatke razreda "ts" (časovne vrste). Če želite narediti časovno vrsto iz katere koli spremenljivke, morate zagnati naslednji ukaz:

Tu nam začetni parameter omogoča, da določimo datum, od katerega se začne naša časovna vrsta, frekvenca pa določa pogostost podatkov. Številka 12 v našem primeru pomeni, da imamo opravka z mesečnimi podatki. Kot rezultat izvajanja tega ukaza pretvorimo naš vektor "x" v časovno vrsto mesečnih podatkov od januarja 1984 naprej.

To so osnovni elementi R in RStudio, ki jih bomo potrebovali.

P.P.S. Precej dober vodnik po R je na spletni strani QSAR4U objavil Pavel Polishchuk.

P.P.P.S. Veliko informacij o R je predstavljenih na uradni spletni strani.

Samostojno delo

Tukaj je nekaj nalog, ki jih lahko opravite sami v R. Zaženite naslednje ukaze, poglejte, kaj se zgodi, in poskusite razumeti, zakaj se je to zgodilo:

(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, base=2) c(1:3) c(1:5)*2 + 4 x

]. "Proletarec duševnega dela." Po izobrazbi fizik. Na področju obdelave medicinskih in bioloških informacij delam že 30+ let.
V R delam točno 10 let, vanj sem prešel po 15 letih tesnega sodelovanja z Matlabom. Glavni razlog za selitev na drugo delovno platformo je bila moja fizična selitev na nasprotni konec Zemlje v Auckland na Novi Zelandiji. Tu me je življenje od prvih dni potisnilo v naročje R-ja, česar mi še ni bilo žal.

Vse pogosteje opažam izbruhe zanimanja za R v strokovni mreži. No, članki o njem se pojavljajo na tem spoštovanem viru. Nadalje pod izrezom je moj prvi poskus uvoda v R v ruskem jeziku - prvi (besedni) del predstavitve, ki sem ga pred tremi leti naredil za kolege s Fakultete za zootehniko Državne univerze Iova.
(na stran: vendar se je izkazalo, da je težko prevesti samega sebe ...)


V tej objavi

  • Kaj je R
  • Od kod je prišel
  • Zakaj ga ljubim
  • Miti in resnica

Kaj se je zgodilo R

Najprej R je sistem za statistične in druge znanstvene izračune z uporabo programskega jezika S .

S- napisan jezik statistiki za statistike. kot jih je opredelil avtor John Chambers. Jezik je bil od svoje uvedbe zelo dobro sprejet in so ga preizkusile generacije zelo zahtevnih uporabnikov statistike. Lahko se šteje, da je v svetovni statistični skupnosti precej splošno poznan in sprejet. Na jeziku SŠtevilni kritični epidemiološki, okoljski in finančni modeli so bili implementirani in še vedno delujejo po vsem svetu in v številnih panogah. Kakšen je jezik z vidika mene, kot »uporabnika pisca«, S je zelo prijetna alternativa jeziku SAS .

Iz lastnih izkušenj - Uvod in prve lekcije S Sam sem ga prejel v zgodnjih 90-ih od statističnih strokovnjakov WHO, s katerimi sem se takrat pogovarjal o znanstvenih raziskavah.

Po mnogih ocenah je R (tako zame in ne preveč pretirano) eden najuspešnejših odprtokodnih projektov, ki se prosto distribuira iz desetine ogledal po vsem svetu po licenčnih standardih GNU.
Avtorji kategorično zavračajo vse predloge za komercializacijo projekta, čeprav danes obstaja razlog za domnevo, da število nameščenih kopij R na svetu presega skupno število kopij vsi drugi sistemi statistične analize.

Od samega začetka do danes projekt vzbuja v meni najgloblje spoštovanje (na meji občudovanja) do stabilnosti, uporabniške podpore, združljivosti kod itd., kar bi združil v koncept kultura.
Vendar je zadnji stavek bolj za naslednje pododdelke.

Od kod je prišlo? S in kaj ima to opraviti z R

Nedvomno vam bo Wikipedia dala veliko več črk.
Omenil bom samo tisto, kar se mi zdi pomembno za razumevanje mesta S in R v tem življenju na tem svetu.

Bell Laboratories (alias Bell Labs, AT&T Bell Labaratories) so precej znani v zgodovini znanosti in tehnologije, še posebej IT. Statistične raziskave so tam vedno potekale zelo resno in so bile tudi resno podprte z vsemi razpoložljivimi računalniškimi orodji (beri – na tone kode Fortran in Lisp).

Kar je pozneje postalo jezik S, je nastalo v sedemdesetih letih 20. stoletja na pobudo in po navodilih Johna Chambersa kot nabor skript, ki je olajšal »dovajanje« podatkov v kodo Fortran. Tisti. Glavni poudarek je bil na nalogi interaktivne manipulacije podatkov, kompaktnosti, enostavnosti pisanja in berljivosti kode ter pridobivanju spodobnega rezultata na različnih napravah, tabelah in grafih.

Sintaksa jezika omogoča gradnjo skoraj poljubno kompleksnih podatkovnih struktur, orodij za opis specifičnih statističnih nalog in objektov - statistik. testi, modeli itd.

Od leta 1984 je jezik dobil ime, lastno »Biblijo« (izšla je knjiga Chambersa in Beckersa: S: Interaktivno okolje za analizo podatkov in grafiko), je začel privzeto vsebovati skoraj popoln »gentlemanski nabor« statistike in »verjetnostnih znanstvenikov« - distribucije, generatorje naključnih števil, statistične teste, številne standardne statistične analize, delo z matrikami itd., da ne omenjamo razvitega sistema znanstvena grafika. Najpomembneje pa je, da je postal na voljo uporabnikom po vsem svetu po zelo ugodni ceni.

Leta 1988 (izšla še ena knjiga Novi jezik S) - spremenjeno z OOP, vse je postalo objekt z zelo razumnimi privzetimi vrednostmi, dostopnostjo za spreminjanje, elementi samodokumentacije itd., itd.

Istočasno so laboratoriji objavili izvorno kodo in "Bell Lab" S postala brezplačna za študente in za znanstveno uporabo. Vse to je bilo nekako povezano z "dekulakizacijo" AT&T, vendar me te podrobnosti niso več preveč zanimale.

Obstajale so in verjetno še vedno obstajajo komercialne izvedbe jezika S. Naletel sem S-Plus in S2000. V različnih obdobjih so jih podpirala različna podjetja, predvsem živeča (živeča?) zaradi podpore predhodno ustvarjenih S aplikacije. V teh različicah po Zvonu S pojavila se je nova različica pogona OOP, ki pa je bila za čistega uporabnika skoraj brez krvi v smislu združljivosti zgodovinske kode.

R- edina nekomercialna, popolnoma neodvisna (od prvotnega Bella) izvedba jezika S.

In v redkem dogovoru v teh dneh, zame na nek način nepredstavljiv, razvijalci trenutnih različic reklame S in neprofitna R podpirajo njihovo skoraj popolno združljivost in kontinuiteto.

In zdaj R

Za vsakim pomembnim pojavom v tem življenju je nekakšna karizmatična osebnost. Vendar se to lahko zgodi in to je definicija pomena pojava.

V primeru R so takšne osebe tri.
Johna Chambersa sem že omenil.

Ross Ihaka, študent in nato raziskovalec na Oddelku za statistiko na Univerzi v Aucklandu, je za temo svoje disertacije (ki je bila opravljena na MIT, ZDA) izbral proučevanje možnosti izgradnje virtualnega stroja (VM) za statistične programski jeziki. Izbran je bil vmesni jezik Lisp (Common Lisp, CL) in implementira prototip VM, ki "razume" majhne podmnožice SAS in S.
Ross se je vrnil v Oakland, da bi dokončal svojo disertacijo, kjer je kmalu srečal Roberta Gentlemana in se začel zanimati za projekt R.
Ross ni nikoli zagovarjal svoje disertacije, vendar že ima akademsko diplomo več univerz "na podlagi skupnih zaslug". Lani je pridobil naziv in dobil mesto izrednega profesorja (docenta) na domači univerzi.

Robert Gentleman, še en statistik s strastjo do programiranja, po rodu iz Kanade, medtem ko je bil na pripravništvu na Univerzi v Aucklandu (takrat je delal v Avstraliji), je Rossu predlagal, naj »napiše nekaj jezika«.
Po legendi, ki sem jo sam slišal od teh »ustanoviteljev«, so v samo skoraj mesecu dni v navalu norega navdušenja prepisali C.L. skoraj vse ekipe S, vključno z zmogljivo knjižnico linearnega modeliranja.

Računalniški motor R, po tradiciji prototipa je bila izbrana znana, splošno sprejeta in brezplačna knjižnica BLAS (z možnostjo uporabe ATLAS-a itd. z istim vmesnikom).
Paul Murrel, eden Rossovih najbližjih prijateljev in tudi uslužbenec Univerze v Oaklandu, se je zelo potrudil in iz nič napisal (zdi se, da v C-ju) grafični mehanizem, ki popolnoma ponavlja funkcionalnost tega v S.

Rezultat je bil brezplačen, popolnoma delujoč paket, ki je takoj dobil mesto v izobraževalnem procesu na Univerzi v Oaklandu, popolnoma skladen z opisi v Chambersovih zelo podrobnih in kakovostnih knjigah, ki so tradicionalno izhajale v mehkih vezavah in povprečne kakovosti tiska, vendar so bile poceni in dostopne.
Več aktivističnih skupin v gibanju GNU (npr. GIS) je sprejelo R kot platformo za znanstveno računalništvo.

Toda resnično najširša slava R pridobila v bioinformatiki, ko je eden od »očetov« Robert Gentleman, ki je takrat sodeloval pri delu podjetja Affimmetrix, podvojil vse funkcionalnosti komercialne programske opreme podjetja in lansiral (no, več kot enega, seveda) odprto izvorni projekt Bioconductor. Trenutno Bioprevodnik je nesporen vodja v odprtokodni bioinformatiki za vse "omike" (genomika, proteomika, metabolomika itd.).

Seveda je postal edini jezik vmesnika za ta nered fantazij o bioinformatiki R.

Krog se je sklenil, ko se je Chambers, tvorec jezika, upokojil S, postal polnopravni član skupine aktivnih razvijalcev R.

Zakaj ga ljubim (seznam)

  1. Interaktivnost, “Programiranje s podatki” - moj najljubši stil dela
  2. Eleganten (amaterski) jezik - obožujem sezname, podatkovne okvire, funkcijsko programiranje in lambda funkcije (a-la) Svoboda izražanja: isti problem je mogoče rešiti na deset načinov (blaži občutek rutine)
  3. “Trezno gleda na ta svet” - redko kogarkoli “zruši” ali “ustavi”, logične operacije z manjkajočimi podatki, obravnavanje napak med izvajanjem (poskusi-napaka), enostavna izmenjava s sistemom na ravni standardnega V/I itd.
  4. Popoln nabor statističnih postopkov, pripravljenih za uporabo
  5. Dobro dokumentirano in dobro vzdrževano - združljivost, kontinuiteta itd.
  6. Okrog sebe sem zbral človeško prijetno strokovno skupnost (forumi, uporabniške konference itd.)
  7. Dobro dokumentiran vmesnik za zunanje knjižnice in funkcije za karkoli - Fortran, C, Java. Zato morje dobro dokumentiranih knjižnic o vseh vidikih statistike in znanosti o podatkih na skoraj vseh področjih znanosti, vendar s primarnim poudarkom na bioinformatiki/biostatistiki; vse se redno in korektno posodablja, če je avtorjeva volja za to
  8. Pomanjkanje obveznega GUI v "osnovni konfiguraciji" - No, nisem "miška" oseba!
Izven seznama: vesel sem, da ima moje glavno delovno orodje ... dušo.
To je tisto, kar pravzaprav poskušam pokazati v svojem članku.

Zakaj in kako ga uporabljam (primeri)

Začel sem pisati v tej rubriki, vendar sem nehal.
Sicer ne bi nikoli končal.
Oh, verjetno kdaj kasneje.

Miti in resnica

R počasi
R je "tanek", uporablja knjižnice blas/lapack/atlas za izračune, poskusite napisati kaj hitreje od teh dobrih starih Fortranovih (pogosto) "delovnih konjev". Vse kritične funkcije praviloma uporabljajo vektorske operacije in so implementirane v Z.
R neracionalno uporablja računalniške vire, zlasti pomnilnik
Da, razvijalci priznavajo ta greh. Toda delovni čas specialista je zdaj veliko dražji od strojne opreme. Sprostite igrače iz sodobnega delovnega računalnika in ne boste imeli težav z R z večino resničnih nizov podatkov.
Brezplačna programska oprema morda ni zanesljiva
Mogoče: Fortran, Linux, C, Lisp, Java itd.
Namesto epiloga
Kot rečeno, je spodnji prispevek pravzaprav prevod moje predstavitve za dokaj specifično ciljno publiko in to publiko bom na kratko opisal.

Mnoga »čista« IT podjetja se bodo morala srečati s takimi ljudmi, saj proizvodnja hrane že dolgo tekmuje z nafto in drugimi energetskimi viri za privabljanje kapitala in ustvarjanje dobička. In zmogljivost trga bioinformatike v medicini in farmakologiji je omejena, kakor koli pogledate.

Moja publika so torej ljudje z osnovno izobrazbo genetike in reje, veterine in redkeje biologije (predvsem molekularne). Fantje in tete (bolj slednje), 20-30 let... programiranje (!) na FORTRANe oz VB, slavno upravljanje Excelovih tabel s 100.000 vrsticami/stolpci in občasno "opuščanje" svojih nalog (in njihovo programiranje) na njihovi Linux računalniški 500+ jedrni gruči z 12 TB skupnega pomnilnika in od časa do časa zahtevajo razširitev diskovnega pomnilnika z drugim deset terabajtov.

Metodološka osnova je eksplozivna mešanica analiz variance, starodavnih kot svet, z mešanimi modeli, ki se rešujejo na noben drug način kot z metodo največje verjetnosti, Bayesovimi mrežami, ki »topijo možgane« itd.

Podatki - tabele podatkov od enot do več deset tisoč vrstic, včasih vključujejo 1-5 stolpcev s fenotipi, vendar vse pogosteje - desetine ali stotine stolpcev "Ka" spremenljivk, ki so med seboj in s fenotipi šibko povezane.

No, ja, tudi oni imajo "dobro tradicijo", da na vse gledajo z vidika družinskih vezi (navsezadnje genetike). Sorodstvene vezi so tradicionalno predstavljene v obliki matrike »sorodstvenih vezi« (rodovnika) z dimenzijami npr. 40.000 x 40.000 (to velja, če je živali 40.000). No, ali (zaenkrat na srečo samo v projektu) 20.000.000 x 20.000.000 - to naj bi z enim samim modelom "pokrili" vseh 20 milijonov zgodovinskih živali, ki so na voljo v bazi ( DB2, če koga zanima, pa tudi Cobol še niso "izrezali" od vsepovsod...)

Na mizah, obloženih z literaturo o (hkrati) Fortran, Java, C#, Scala, Octavia, Linux za telebane lahko prepoznate nedavne diplomante bioinformatike. Toda nekako hitro mnogi od njih zapustijo znanost in postanejo »koderji«.

Poznam pa tudi primer vzvratnega gibanja. torej R bo koristno še mnogim.

Rad bi govoril o uporabi brezplačnega okolja za statistično analizo R. Menim, da je to alternativa statističnim paketom, kot je SPSS Statistics. Na moje globoko obžalovanje je v prostranosti naše domovine popolnoma neznano, a zaman. Menim, da je R zaradi zmožnosti pisanja dodatnih postopkov statistične analize v S uporabno orodje za analizo podatkov.

V spomladanskem semestru 2010 sem imel priložnost predavati in izvajati praktične vaje pri predmetu “Statistical Data Analysis” za študente Oddelka za inteligentne sisteme Ruske državne univerze za humanistične vede.

Moji študenti so pred tem opravili semesterski tečaj teorije verjetnosti, ki je pokrival osnove diskretnih verjetnostnih prostorov, pogojne verjetnosti, Bayesov izrek, zakon velikih števil, nekaj ozadja normalnega zakona in centralni mejni izrek.

Pred približno petimi leti sem že poučeval pouk pri (takrat kombiniranem) semesterskem predmetu "Osnove teorije verjetnosti in matematične statistike", zato sem svoje zapiske (ki jih študentom dam pred vsako uro) razširil na statistiko. Zdaj, ko ima Ruska državna univerza za humanistične študije študentski strežnik oddelka isdwiki.rsuh.ru, jih hkrati naložim na FTP.

Postavilo se je vprašanje: kateri program naj uporabim za izvajanje praktičnega pouka v računalniškem razredu? Microsoft Excel, ki se pogosto uporablja, je bil zavrnjen, ker je bil zaščiten in ker je nekatere statistične postopke izvajal nepravilno. O tem lahko preberete na primer v knjigi A. A. Makarova in Yu. N. Tyurina "Statistična analiza podatkov v računalniku." Preglednice Calc iz brezplačnega pisarniškega paketa Openoffice.org so rusificirane, tako da komaj najdem želeno funkcijo (tudi njihova imena so zoprno okrajšana).

Najpogosteje uporabljen paket je SPSS Statistics. SPSS je zdaj prevzel IBM. Med prednostmi IBM SPSS Statistics bi izpostavil:

  • Priročno nalaganje podatkov v različnih formatih (Excel, SAS, preko OLE DB, preko ODBC Direct Driver);
  • Razpoložljivost tako ukaznega jezika kot obsežnega sistema menijev za neposreden dostop do različnih postopkov statistične analize;
  • Grafična sredstva za prikaz rezultatov;
  • Vgrajen modul Statistics Coach, ki interaktivno predlaga ustrezno metodo analize.
Po mojem mnenju so slabosti IBM SPSS Statistics:
  • Plačilo tudi za študente;
  • Potreba po pridobitvi (dodatno plačanih) modulov, ki vsebujejo posebne postopke;
  • Podpira samo 32-bitne operacijske sisteme Linux, čeprav Windows podpira tako 32-bitne kot 64-bitne.
Kot alternativo sem izbral. Ta sistem so leta 1995 začeli razvijati Robert Gentleman in Ross Ihak na Oddelku za statistiko Univerze v Melbournu. Prve črke imen avtorjev so določile njen naslov. Pozneje so se v razvoj in širitev tega sistema vključili vodilni statistiki.

Menim, da so prednosti obravnavanega sistema:

  • Distribucija programa pod javno licenco GNU;
  • Razpoložljivost izvorne kode in binarnih modulov v obsežnem omrežju skladišč CRAN (The Comprehensive R Archive Network). Za Rusijo je to strežnik cran.gis-lab.info;
  • Razpoložljivost namestitvenega paketa za Windows (deluje na 32 in 64-bitni Vista). Po naključju se je izkazalo, da namestitev ne zahteva skrbniških pravic v sistemu Windows XP;
  • Možnost namestitve iz repozitorija v Linuxu (pri meni deluje na 64-bitni različici Ubuntu 9.10);
  • Razpoložljivost lastnega programskega jezika za statistične postopke R, ki je dejansko postal standard. Na primer, v celoti ga podpira novi IBM SPSS Statistics Developer;
  • Ta jezik je razširitev jezika S, razvitega v Bell Labs, ki trenutno predstavlja osnovo komercialnega sistema S-PLUS. Večino programov, napisanih za S-PLUS, je mogoče enostavno izvesti v okolju R;
  • Možnost izmenjave podatkov s preglednicami;
  • Možnost shranjevanja celotne zgodovine izračuna za potrebe dokumentacije.
Za prvo uro so bile pripravljene zgoščenke, na katerih so bile posnete namestitvene datoteke, dokumentacija in priročniki. Povedal vam bom več o slednjem. CRAN ponuja podrobne uporabniške priročnike o namestitvi, jeziku R (in njegovem podnaboru S), pisanju dodatnih statističnih postopkov ter izvozu in uvozu podatkov. Rubrika Prispevana dokumentacija vsebuje veliko število publikacij učiteljev statistike, ki ta paket uporabljajo v izobraževalnem procesu. Na žalost v ruščini ni ničesar, čeprav je na primer celo ena v poljščini. Med knjigami v angleškem jeziku bi rad omenil »Uporaba R za uvodno statistiko« profesorja Johna Verzanija z Mestne univerze v New Yorku in »Uvod v projekt R za statistično računalništvo« profesorja Rossiterja (Nizozemska) z mednarodne Inštitut za geoinformatiko in opazovanje Zemlje.

Prva lekcija je bila namenjena namestitvi in ​​učenju uporabe paketa, seznanitvi s sintakso jezika R. Kot testna naloga je bil uporabljen izračun integralov po metodi Monte Carlo. Tukaj je primer izračuna verjetnosti r.v. pri eksponentni porazdelitvi s parametrom 3 vzemite vrednost manjšo od 0,5 (10000 je število poskusov).
> 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*dolžina(u)/10000

Prvi dve vrstici določata enakomerno porazdelitev točk v pravokotniku x, nato so izbrane tiste točke, ki spadajo pod graf eksponentne gostote 3*exp(-3*x), funkcija plot prikaže točke v grafičnem izhodnem oknu in končno se izračuna zahtevani integral.
Druga lekcija je bila namenjena izračunu deskriptivne statistike (kvantili, mediana, povprečje, varianca, korelacija in kovarianca) in izdelavi grafov (histogrami, box-and-whiskers).
V naslednjih razredih je bila uporabljena knjižnica Rcmdr. To je grafični uporabniški vmesnik (GUI) za okolje R. Knjižnica je nastala s prizadevanji profesorja Johna Foxa z univerze McMaster v Kanadi.

Namestitev te knjižnice se izvede z izvedbo ukaza install.packages("Rcmdr", dependencies=TRUE) znotraj okolja R. Če je samo okolje tolmač jezika R, potem je dodatek "Rcmdr" dodatno okno opremljen z menijskim sistemom, ki vsebuje veliko število ukazov, ki ustrezajo standardnim statističnim postopkom. To je še posebej priročno za tečaje, kjer je glavna stvar naučiti študenta pritiskati gumbe (na mojo žalost so ti zdaj vedno pogostejši).

Seminarski zapiski iz prejšnjega predmeta so bili razširjeni. Na voljo so tudi prek FTP na spletnem mestu isdwiki.rsuh.ru. Te opombe so vsebovale tabele kritičnih vrednosti, ki so bile uporabljene za izračune na tabli. Letos smo študente spodbujali, da te naloge rešujejo na računalniku in tudi pregledujejo tabele z (običajnimi) približki, ki so prav tako navedeni v opombah.

Bilo je tudi nekaj mojih napak. Na primer, prepozno sem ugotovil, da Rcmdr omogoča uvoz podatkov iz prenesenih paketov, zato so bili relativno veliki vzorci obdelani le v razredih regresijske analize. Pri predstavitvi neparametričnih testov so učenci ročno vnašali podatke po mojih zapiskih. Druga pomanjkljivost, kot zdaj razumem, je bilo nezadostno število domačih nalog za pisanje dokaj zapletenih programov v jeziku R.

Treba je poudariti, da je več študentov višjih letnikov obiskovalo moje ure, nekateri pa so si naložili gradiva s predavanj in seminarjev. Študenti Oddelka za inteligentne sisteme Ruske državne univerze za humanistične vede so deležni temeljnega usposabljanja iz matematike in programiranja, zato se mi zdi uporaba okolja R (namesto preglednic in statističnih paketov s fiksnimi statističnimi postopki) zelo koristna.

Če se soočate z nalogo preučevanja statistike in še posebej pisanja nestandardnih postopkov za statistično obdelavo podatkov, priporočam, da se obrnete na paket R.

Pred kratkim sem naletel na takšen pojav - veliko ljudi je slišalo za programski jezik R. Toda zelo malo ljudi ve, kaj je to.

Ker sem materni govorec tega jezika in me zanima njegova popularizacija, bom v tem prispevku skušal temo nekoliko obdelati. Zanimivo bo!

Načrt je preprost:

1) Kaj je jezik R

2) Priljubljenost v Rusiji

Kaj je jezik R

R (wiki) je programski jezik za statistično obdelavo podatkov in grafiko ter brezplačno, odprtokodno računalniško okolje v okviru projekta GNU.

Po našem mnenju: Jezik je idealen za iskanje tržnih vzorcev. Brezplačno, hitro in brezplačno.

Omogoča vam izvajanje statističnih študij vsega, kar vam pride pod roke. V letih obstoja se je pojavilo na desetine in stotine razširitev, ki so rešile skoraj vsako težavo aplikacije.

To je NAJBOLJ priljubljen programski jezik za algoritemske trgovce na Zahodu. To je vrhunec tega, kar je trenutno na voljo v strojnem učenju in statistiki.

Če želite pisati programe v R, preprosto naložite R-Studio in to je to



Pred časom sem v okviru popularizacije jezika posnel mini tečaj »R za vsakogar«. Prost. Oglejte si, kako preprosto vse deluje in kako hitro lahko napišete skripte. To je preprosto super!

Priljubljenost v Rusiji

Pušča veliko želenega.

Če na Zahodu 90% vseh raziskav poteka v tem jeziku, potem v Rusiji na SmartLabu mine redek teden, v katerem lahko najdete vsaj eno omembo tega. Tisti. število ljudi, ki poznajo R, je kritično majhno.

Med razlogi za to stanje: pomanjkanje priročnikov v ruščini do nedavnega, pomanjkanje tečajev usposabljanja, nizka pismenost trgovcev in še veliko več. Ne govoriva o tem.

Pomembno je le, da priljubljenost tega jezika v Rusiji in CIS vztrajno raste.

Ruski uporabniki so utrujeni od pokvarjenih API-jev in dragih trgovalnih sistemov. Brezplačni jezik R bo v kontekstu trgovanja zelo kmalu zasedel pravo mesto v njihovem kompletu orodij. Pridruži se nam!

To je vse za danes. Upam, da je bilo zanimivo.

Oglejte si moj brezplačni tečaj, da vidite, kako preprosto je pisanje kode. Pišite roboti!

Najnovejši materiali v razdelku:

Polimeri s tekočimi kristali
Polimeri s tekočimi kristali

Ministrstvo za izobraževanje in znanost Ruske federacije Kazan (Volga Region) Zvezni univerzitetni kemijski inštitut poimenovan po. A. M. Butlerov ...

Začetno obdobje hladne vojne, kjer
Začetno obdobje hladne vojne, kjer

Glavno dogajanje v mednarodni politiki v drugi polovici 20. stoletja je določila hladna vojna med dvema velesilama - ZSSR in ZDA. Njena...

Formule in merske enote Tradicionalni sistemi mer
Formule in merske enote Tradicionalni sistemi mer

Pri vnašanju besedila v urejevalniku Word je priporočljivo, da formule pišete z vgrajenim urejevalnikom formul in vanj shranite nastavitve, ki jih določi...