Wiki języka r. Język programowania R i jego miejsce wśród programów statystycznych

Programowanie na R. Poziom 1. Podstawy

Język R jest najpopularniejszym na świecie narzędziem do statystycznej analizy danych. Zawiera najszerszy wachlarz możliwości analizy danych, wizualizacji oraz tworzenia dokumentów i aplikacji internetowych. Chcesz opanować ten potężny język pod okiem doświadczonego mentora? Zapraszamy na kurs „Programowanie w języku R. Poziom 1. Wiedza podstawowa”.

Ten kurs jest przeznaczony dla szerokiego grona profesjonalistów, którzy muszą szukać wzorców w dużej ilości danych, wizualizować je i wyciągać poprawne statystycznie wnioski: socjologowie, kierownicy badań klinicznych / farmakolodzy, badacze (astronomia, fizyka, biologia, genetyka, medycyna itp.), analitycy IT, analitycy biznesowi, analitycy finansowi, marketerzy. Kurs spodoba się również specjalistom, którzy nie nadają się do funkcjonalności (lub płatnej)/.

Na zajęciach zdobędziesz podstawowe umiejętności w zakresie analizy i wizualizacji danych w środowisku R. Większość czasu poświęca na zadania praktyczne i pracę z rzeczywistymi zbiorami danych. Poznasz wszystkie nowe narzędzia do pracy z danymi i dowiesz się, jak zastosować je w swojej pracy.

Po kursie wydawany jest certyfikat zaawansowanego szkolenia ośrodka.

Wiele przykładów i artykułów na tej stronie szeroko wykorzystuje język programowania „R”.

R dla systemu Linux można zazwyczaj zainstalować przy użyciu repozytoriów dystrybucji. Używam dystrybucji opartych na Debianie, w których standardowym poleceniem instalacji R jest:

sudo apt zainstaluj bazę r

Musisz wpisać to w terminalu.

Piękno R polega na tym, że:

  1. Ten program jest darmowy (rozpowszechniany na licencji GPL),
  2. Dla tego programu napisano wiele pakietów do rozwiązywania szerokiego zakresu zadań. Wszystkie z nich są również bezpłatne.
  3. Program jest bardzo elastyczny: rozmiary dowolnych wektorów i macierzy można zmieniać na życzenie użytkownika, dane nie mają sztywnej struktury. Właściwość ta okazuje się niezwykle przydatna w przypadku prognozowania, kiedy badacz musi sporządzić prognozę na dowolny okres.

Ta ostatnia właściwość jest szczególnie istotna, ponieważ inne pakiety statystyczne (takie jak SPSS, Eviews, Stata) sugerują, że możemy być zainteresowani tylko analizą danych, które mają stałą strukturę (na przykład wszystkie dane w pliku roboczym muszą mieć ten sam częstotliwość z tym samym początkiem i końcem).

Jednak R nie jest najbardziej przyjaznym programem. Na czas pracy z nim zapomnij o myszce - prawie wszystkie najważniejsze czynności w nim wykonywane są za pomocą wiersza poleceń. Aby jednak trochę ułatwić życie, a sam program uczynić trochę bardziej przyjaznym, istnieje program frontendowy (interfejs zewnętrzny) o nazwie RStudio. Możesz go pobrać stąd. Jest instalowany po zainstalowaniu samego R. RStudio ma wiele wygodnych narzędzi i ładny interfejs, jednak analiza i prognozowanie w nim nadal odbywa się za pomocą wiersza poleceń.

Spróbujmy przyjrzeć się temu wspaniałemu programowi.

Wprowadzenie do RStudio

Interfejs RStudio wygląda następująco:

W prawym górnym rogu w RStudio wskazana jest nazwa projektu (którą do tej pory mamy „Brak” - czyli brakuje). Jeśli klikniesz na ten napis i wybierzesz „Nowy projekt” (nowy projekt), zostaniemy poproszeni o utworzenie projektu. Do podstawowych celów prognozowania wystarczy wybrać „Nowy katalog” (nowy folder dla projektu), „Pusty projekt” (pusty projekt), a następnie wpisać nazwę projektu i wybrać katalog, w którym ma zostać zapisany . Włączcie wyobraźnię i spróbujcie sami wymyślić imię :).

Pracując z jednym projektem, zawsze masz dostęp do zapisanych w nim danych, poleceń i skryptów.

Konsola znajduje się po lewej stronie okna RStudio. To w nim wprowadzimy różne komendy. Na przykład napiszmy, co następuje:

To polecenie wygeneruje 100 zmiennych losowych z rozkładu normalnego z zerową średnią i jednostkową wariancją, a następnie utworzy wektor o nazwie „x” i zapisze w nim wynikowe 100 zmiennych. symbol "<-» эквивалентен символу «=» и показывает какое значение присвоить нашей переменной, стоящей слева. Иногда вместо него удобней использовать символ «->”, chociaż nasza zmienna w tym przypadku powinna znajdować się po prawej stronie. Na przykład poniższy kod utworzy obiekt „y” dokładnie identyczny z obiektem „x”:

Te wektory pojawiają się teraz w prawym górnym rogu ekranu, pod zakładką, którą nazwałem „Środowisko”:

Zmiany w zakładce „Środowisko”.

W tej części ekranu zostaną wyświetlone wszystkie obiekty, które zapiszemy podczas sesji. Na przykład, jeśli utworzymy taką macierz:

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

to jest polecenie:

następnie pojawi się w zakładce „Środowisko”:

Każda używana przez nas funkcja wymaga nadania pewnych wartości określonym parametrom. Funkcja matrix() ma następujące parametry:

  • dane to wektor z danymi do zapisania na macierz,
  • nrow to liczba wierszy w macierzy,
  • ncol to liczba kolumn w macierzy,
  • byrow jest parametrem boolowskim. Jeśli „TRUE” (prawda), wówczas wypełnianie macierzy będzie wykonywane wiersz po wierszu (od lewej do prawej, wiersz po wierszu). Domyślnie ten parametr jest ustawiony na „FALSE” (fałsz),
  • dimnames - arkusz z nazwami wierszy i kolumn.

Niektóre z tych opcji mają wartości domyślne (na przykład byrow=FALSE ), podczas gdy inne można pominąć (na przykład dimnames ).

Jedną z sztuczek „R” jest to, że dostęp do dowolnej funkcji (na przykład naszej matrix() ) można uzyskać, ustawiając wartości bezpośrednio:

lub możesz to zrobić tak, jak zrobiliśmy to wcześniej - zachowując kolejność i pomijając nazwy parametrów.

Aby zobaczyć zawartość dowolnego obiektu znajdującego się w zakładce „Środowisko”, wystarczy wpisać jego nazwę w konsoli:

Inną opcją jest kliknięcie na nazwę obiektu w zakładce „Środowisko”.

gdzie macierz to nazwa interesującej nas funkcji. W takim przypadku RStudio otworzy panel Pomoc z opisem:

Możesz również znaleźć pomoc dla funkcji wpisując nazwę funkcji w oknie "szukaj" (ikona z soczewką) w zakładce "Pomoc".

W przypadku, gdy nie pamiętasz dokładnie, jak zapisana jest nazwa funkcji lub jakich parametrów ona używa, po prostu zacznij pisać jej nazwę w konsoli i naciśnij przycisk „Tab”:

Oprócz tego wszystkiego możesz pisać skrypty w RStudio. Możesz ich potrzebować, jeśli chcesz napisać program lub wywołać sekwencję funkcji. Skrypty tworzy się za pomocą przycisku ze znakiem plus w lewym górnym rogu (w rozwijanym menu wybierz „R Script”). W oknie, które się później otworzy, możesz wpisać dowolne funkcje i komentarze. Na przykład, jeśli chcemy wykreślić wykres liniowy na serii x, można to zrobić w następujący sposób:

Wykreśl(x)linie(x)

Pierwsza funkcja tworzy prosty wykres punktowy, a druga dodaje linie na wierzchołkach punktów łączących punkty szeregowo. Wybranie tych dwóch poleceń i naciśnięcie klawiszy Ctrl + Enter spowoduje ich wykonanie, powodując otwarcie w programie RStudio karty Wykres w prawym dolnym rogu i wyświetlenie w niej wykresu.

Jeśli w przyszłości nadal będziemy potrzebować wszystkich wpisywanych poleceń, to ten skrypt można zapisać (dyskietka w lewym górnym rogu).

W przypadku, gdy musisz odwołać się do polecenia, które już wpisałeś kiedyś w przeszłości, w prawej górnej części ekranu znajduje się zakładka „Historia”. Możesz w nim znaleźć i wybrać dowolne polecenie, które Cię interesuje, a następnie kliknąć dwukrotnie, aby wstawić je do konsoli. W samej konsoli możesz uzyskać dostęp do poprzednich poleceń za pomocą przycisków „W górę” (w górę) i „W dół” (w dół) na klawiaturze. Skrót klawiaturowy „Ctrl+Up” umożliwia wyświetlenie listy wszystkich ostatnich poleceń w konsoli.

Ogólnie rzecz biorąc, RStudio ma wiele przydatnych skrótów klawiaturowych, które znacznie ułatwiają pracę z programem. Możesz przeczytać o nich więcej.

Jak wspomniałem wcześniej, istnieje wiele pakietów dla R. Wszystkie znajdują się na serwerze CRAN i aby zainstalować dowolny z nich, musisz znać jego nazwę. Instalacja i aktualizacja pakietów odbywa się za pomocą zakładki „Pakiety”. Przechodząc do niego i klikając przycisk „Zainstaluj”, zobaczymy coś w rodzaju następującego menu:

W oknie, które zostanie otwarte, wpisujemy: prognoza to pakiet napisany przez Roba J. Hyndmana, który zawiera garść przydatnych dla nas funkcji. Kliknij przycisk „Zainstaluj”, po czym pakiet „prognoza” zostanie zainstalowany.

Alternatywnie możemy zainstalować dowolny pakiet, znając jego nazwę, używając polecenia w konsoli:

Install.packages("gładkie")

pod warunkiem, że oczywiście znajduje się w repozytorium CRAN. smooth to pakiet, którego funkcje rozwijam i utrzymuję.

Niektóre pakiety są dostępne tylko jako źródła na stronach takich jak github.com i wymagają ich uprzedniego zbudowania. Aby zbudować pakiety pod Windows, możesz potrzebować programu Rtools.

Aby użyć dowolnego z zainstalowanych pakietów, musisz go włączyć. Aby to zrobić, musisz znaleźć go na liście i zaznaczyć lub użyć polecenia w konsoli:

Biblioteka (prognoza)

W systemie Windows może pojawić się jeden irytujący problem: niektóre pakiety są łatwe do pobrania i zbudowania, ale nie są instalowane w żadnym. R w tym przypadku pisze coś w stylu: „Ostrzeżenie: nie można przenieść tymczasowej instalacji…”. Wystarczy w takim przypadku dodać folder z literą R do wyjątków w programie antywirusowym (lub wyłączyć go na czas instalowania pakietów).

Po pobraniu pakietu wszystkie zawarte w nim funkcje będą dla nas dostępne. Na przykład funkcja tsdisplay(), której można użyć w następujący sposób:

Tswyświetl(x)

Wygeneruje dla nas trzy wykresy, które omówimy w rozdziale Forecaster's Toolkit.

Oprócz pakietu prognoz często używam pakietu Mcomp do różnych przykładów. Zawiera szereg danych z bazy M-Competition. Dlatego też zalecam zainstalowanie go.

Bardzo często będziemy potrzebować nie tylko zbiorów danych, ale również danych klasy „ts” (szeregi czasowe). Aby utworzyć szereg czasowy z dowolnej zmiennej, należy uruchomić następującą komendę:

Tutaj parametr start pozwala określić datę, od której zaczyna się nasz szereg czasowy, a częstotliwość określa częstotliwość danych. Liczba 12 w naszym przykładzie wskazuje, że mamy do czynienia z danymi miesięcznymi. W wyniku wykonania tego polecenia przekształcimy nasz wektor „x” w szereg czasowy danych miesięcznych począwszy od stycznia 1984 roku.

To są podstawowe elementy R i RStudio, których będziemy potrzebować.

PPS Dość dobry przewodnik po R jest opublikowany na stronie QSAR4U przez Pavla Polishchuka.

PPPS Wiele informacji o R jest prezentowanych na oficjalnej stronie internetowej.

Niezależna praca

A oto zadania do samodzielnego wykonania w R. Uruchom następujące polecenia, zobacz, co się stanie i spróbuj zrozumieć, dlaczego tak się stało:

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

]. „Proletariusz pracy umysłowej”. Fizyk z wykształcenia. Zajmuję się przetwarzaniem informacji medycznych i biologicznych od ponad 30 lat.
Pracuję w R dokładnie od 10 lat, migrując do niego po 15 latach bliskiej współpracy z Matlabem. Podstawową przyczyną mojej migracji na inną platformę roboczą była moja własna fizyczna migracja na drugą stronę Ziemi w Auckland w Nowej Zelandii. Tutaj od pierwszych dni życie pchnęło mnie w ramiona R, czego jeszcze nie musiałam żałować.

Coraz częściej widzę wybuchy zainteresowania R w profesjonalnym ru.net. Cóż, artykuły o nim pojawiają się w tym szanowanym zasobie. Dalej pod cięciem, moja pierwsza próba rosyjskiego wprowadzenia do R jest pierwszą (werbalną) częścią prezentacji, którą wykonałem dla kolegów z Wydziału Nauk o Zwierzętach Iova State University trzy lata temu.
(na bok: ale okazuje się, że trudno samemu przetłumaczyć...)


w tym poście

  • Co to jest r
  • Skąd on pochodzi
  • Dlaczego go kocham
  • Mity i prawda

Co się stało R

Przede wszystkim R to system do obliczeń statystycznych i innych obliczeń naukowych przy użyciu języka programowania S .

S- język pisany statystycy dla statystyków. zgodnie z definicją autora Johna Chambersa. Język od samego początku był bardzo dobrze przyjmowany i testowany przez pokolenia bardzo wybrednych statystyków. Można uznać, że jest ona powszechnie znana i akceptowana w światowym środowisku statystycznym. Na języku S wdrożono szereg krytycznych modeli epidemiologicznych, środowiskowych i finansowych, które nadal działają na całym świecie iw wielu branżach. Jako język z mojego punktu widzenia, jako „pisarza”, S jest bardzo fajną alternatywą dla języka SAS .

Z własnego doświadczenia - Znajomość i pierwsze lekcje S Ja sam otrzymałem na początku lat 90. od statystyków WHO, z którymi zetknąłem się w ówczesnych badaniach naukowych.

Według wielu szacunków R (zarówno moim zdaniem - i niezbyt przesadnie) jest jednym z najbardziej udanych projektów open source, dystrybuowanych bezpłatnie z kilkudziesięciu serwerów lustrzanych na całym świecie zgodnie ze standardami licencji GNU.
Autorzy odpowiadają kategoryczną odmową na wszelkie propozycje komercjalizacji projektu, choć już dziś istnieją powody, by sądzić, że liczba zainstalowanych egzemplarzy R na świecie przekracza łączną liczbę egzemplarzy Wszystko inne systemy analizy statystycznej.

Od samego początku i do dziś projekt budzi we mnie najgłębszy szacunek (na granicy podziwu) za stabilność, wsparcie użytkownika, kompatybilność kodu itp., które połączyłbym w koncepcji kultura.
Jednak ostatnie zdanie raczej do kolejnych podrozdziałów.

Skąd się to wzięło S a co to ma wspólnego z r

Niewątpliwie wikipedia da ci o wiele więcej listów.
Zaznaczę tylko to, co uważam za ważne dla zrozumienia miejsca S i R w tym życiu na tym świecie.

Bell Laboratories (alias Bell Labs, AT&T Bell Laboratories) są dość znane w historii nauki i technologii, aw szczególności IT Co. Badania statystyczne zawsze były tam bardzo poważne i również poważnie wspierane przez wszystkie dostępne narzędzia komputerowe (czytaj - tony kodu Fortran i Lisp).

To, co później stało się językiem S, powstało w latach 70. z inicjatywy i pod kierunkiem Johna Chambersa (John Chambers), jako zestaw skryptów ułatwiających „dostarczanie” danych do kodu Fortran. Te. Na pierwszy plan wysuwano zadanie interaktywnej manipulacji danymi, zwięzłości, przyjemności pisania i czytelności kodu oraz uzyskiwania przyzwoitych wyników na różnych urządzeniach w postaci tabel i wykresów.

Składnia języka przewiduje budowę niemal dowolnie złożonych struktur danych, środków do opisu określonych zadań i obiektów statystycznych - stat. testy, modele itp.

Od 1984 język przyjął nazwę, swoją własną „Biblię” (książka opublikowana przez Chambersa i Beckersa: S: Interaktywne środowisko do analizy danych i grafiki), zaczął domyślnie zawierać niemal kompletny „dżentelmeński zestaw” statystyk i „prawdopodobieństw” – rozkłady, generatory liczb losowych, testy statystyczne, wiele standardowych analiz statystycznych, pracę z macierzami itp., nie wspominając już o rozbudowanym systemie naukowym grafika. Co najważniejsze, stał się dostępny dla użytkowników na całym świecie w bardzo rozsądnej cenie.

W 1988 (kolejna książka opublikowana Nowy język S) - zmodyfikowane za pomocą OOP, wszystko stało się obiektami z bardzo rozsądnymi wartościami domyślnymi, dostępnością do modyfikacji, elementami samokomentującymi itp., itp.

W tym samym czasie laboratoria opublikowały kody źródłowe i „Bell Lab” S stał się darmowy dla studentów i do użytku naukowego. To wszystko miało jakiś związek z „wywłaszczeniem” AT&T, ale mało mnie te szczegóły interesowały.

Były i prawdopodobnie nadal istnieją komercyjne implementacje tego języka S. zmierzyłem się S Plus I S2000. Byli wspierani przez różne firmy w różnym czasie, w zasadzie żyli (żyli?) dzięki wsparciu wcześniej utworzonego na S Aplikacje. W tych wersjach post-Bell S pojawiła się nowa wersja silnika OOP, ale dla zwykłego użytkownika poszła niemal bezkrwawo pod względem historycznej kompatybilności kodu.

R- jedyna niekomercyjna, całkowicie niezależna (od oryginalnego Bella) implementacja języka S.

I na mocy rzadkiego w naszych czasach porozumienia, w jakiś dla mnie niewyobrażalny sposób, twórcy obecnych wersji komercyjnych S i non-profit R zachować ich niemal całkowitą kompatybilność i ciągłość.

A teraz r

Za każdym znaczącym zjawiskiem w tym życiu stoi jakaś charyzmatyczna osobowość. To jednak może się zdarzyć i jest definicją znaczenia zjawiska.

W przypadku R są trzy takie osoby.
Wspomniałem już o Johnie Chambersie.

Ross Ihaka, student, a następnie pracownik naukowy na Wydziale Statystyki Uniwersytetu w Auckland, jako temat swojej rozprawy doktorskiej (która została przeprowadzone w MIT, USA). został wybrany jako język pośredni. Seplenienie (Wspólny Lisp, CL) i zaimplementowano na nim prototyp VM, „rozumiejąc” małe podzbiory SAS I S.
Ross wrócił do Oakland, aby sfinalizować swoją rozprawę, gdzie wkrótce spotkał Roberta Gentlemana i zainteresował się projektem R.
Ross nigdy nie obronił swojej pracy doktorskiej, ale ma już dyplom z kilku uniwersytetów „na podstawie zasług”. W ubiegłym roku otrzymał tytuł i otrzymał stanowisko profesora nadzwyczajnego (profesora nadzwyczajnego) macierzystej uczelni.

Robert Gentleman, inny statystyk z zamiłowaniem do programowania, pochodzący z Kanady, podczas stażu na Uniwersytecie w Auckland (pracował wówczas w Australii), zasugerował Rossowi „napisanie jakiegoś języka”.
Zgodnie z legendą jaką ja sam zasłyszałem od owych "ojców założycieli" w nieco ponad miesiąc, w przypływie szaleńczego entuzjazmu, przepisali oni na CL prawie wszystkie zespoły S, w tym potężną bibliotekę do modelowania liniowego.

Silnik obliczeniowy R, kontynuując tradycje pierwowzoru, wybrano dobrze znaną, powszechnie uznaną i darmową bibliotekę BLAS (z możliwością korzystania z ATLAS itp. z tym samym interfejsem).
Paul Murrel, jeden z najbliższych przyjaciół Rossa, a także pracownik University of Oakland, zrobił wszystko, co w jego mocy, aby napisać (wydaje się, że w C) silnik graficzny od podstaw, który w pełni odwzorowuje funkcjonalność tego w S.

Rezultatem był bezpłatny, w pełni funkcjonalny pakiet, który natychmiast zyskał miejsce w programie nauczania Uniwersytetu Oaklanle, w pełni zgodny z opisami w bardzo szczegółowych i wysokiej jakości książkach Chambersa, które tradycyjnie były publikowane w miękkiej oprawie i drukiem średniej jakości, ale były tanie i dostępne.
Kilka grup aktywistów w ruchu GNU (np. GIS) przyjęło R jako platformę do obliczeń naukowych.

Ale naprawdę najszersza sława R zdobytą w bioinformatyce, kiedy to jeden z „ojców” Roberta Gentlemana, zaangażowanego w tym czasie w prace firmy Affimmetrix, zduplikował wszystkie funkcjonalności komercyjnego oprogramowania firmy i uruchomił (no, oczywiście nie jednego) projekt open source Bioprzewodnik. Obecnie Bioprzewodnik jest niekwestionowanym liderem bioinformatyki open source dla wszystkich „-omik” (genomiki, proteomiki, metabolomiki itp.).

Naturalnie, stał się jedynym językiem interfejsu dla tej burzy bioinformatycznych fantazji R.

Koło zamknęło się, gdy przeszedł na emeryturę Chambers, twórca języka S, został pełnoprawnym członkiem grona aktywnych programistów R.

Dlaczego go kocham (lista)

  1. Interaktywność, "Programowanie z danymi" to mój ulubiony styl pracy
  2. Elegancki (jak na amatora) język - uwielbiam listy, ramki danych, programowanie funkcyjne i funkcje lambda (a-la) yu Swoboda wypowiedzi: ten sam problem można rozwiązać na dziesięć sposobów (łagodzi poczucie rutyny)
  3. „Trzeźwo patrzy na ten świat” - rzadko „wpada” lub „zawiesza się” wątek, operacje logiczne na brakujących danych, obsługa błędów w czasie wykonywania (try-error), łatwa wymiana z systemem na poziomie standardowego I/ O, itp.
  4. Kompletny zestaw gotowych do użycia procedur statystycznych
  5. Dobrze udokumentowane i dobrze utrzymane - kompatybilność, ciągłość itp.
  6. Zgromadził wokół siebie sympatyczną po ludzku społeczność zawodową (fora, konferencje użytkowników itp.)
  7. Dobrze udokumentowany interfejs dla zewnętrznych bibliotek i funkcji na wszystko - Fortran, C, Java. Stąd morze dobrze udokumentowanych bibliotek dotyczących wszelkich aspektów statystyki i przetwarzania danych z niemal wszystkich dziedzin nauki, ale z głównym naciskiem na bioinformatykę/biostatystykę; wszystko jest regularnie i poprawnie aktualizowane, jeśli jest taka wola autora
  8. Brak obowiązkowego GUI w "podstawowej konfiguracji" - Cóż, nie jestem "myszką"!
Poza listą: Po prostu cieszę się, że moje główne narzędzie pracy ma… duszę.
Co tak naprawdę próbuję pokazać w moim artykule.

Dlaczego i jak go używać (przykłady)

Zacząłem pisać w tym dziale, ale przestałem.
Inaczej nigdy bym nie skończył.
Och, może później.

Mity i prawda

R wolno
R jest cienki, używa bibliotek blas/lapack/atlas do obliczeń, spróbuj napisać coś szybszego niż te dobre stare (często) konie pociągowe Fortran. Wszystkie funkcje krytyczne z reguły wykorzystują operacje wektorowe i są zaimplementowane w Z.
R nadużywa zasobów obliczeniowych, w szczególności - pamięci
Tak, twórcy uznają taki grzech. Ale czas pracy specjalisty jest teraz droższy niż sprzęt. Wyładuj zabawki z nowoczesnego działającego komputera, a przy większości rzeczywistych zestawów danych nie będziesz mieć problemów z R.
Wolne oprogramowanie nie może być niezawodne
Może: Fortran, Linux, C, Lisp, Java itp.
Zamiast epilogu
Jak wspomniano powyżej, poniższy post jest właściwie tłumaczeniem mojej prezentacji dla dość określonej grupy docelowej i krótko ją opiszę.

Wielu „czystych” IT Co. będzie musiało spotkać się z takimi ludźmi, ponieważ branża spożywcza od dawna konkuruje z ropą i innymi źródłami energii o pozyskanie kapitału i generowanie zysków. A pojemność rynku bioinformatyki w medycynie i farmakologii jest ograniczona, cokolwiek można powiedzieć.

Moją publicznością są więc osoby z podstawowym wykształceniem z zakresu genetyki i hodowli, weterynarii, rzadziej biologii (głównie molekularnej). Wujkowie i ciocie (tych drugich jest więcej), 20-30 lat... programowanie (!) na FORTRAN Lub VB.

Podstawą metodologiczną jest wybuchowa mieszanka starożytnych analiz wariancji z mieszanymi modelami, których nie można rozwiązać w żaden inny sposób niż metodą największej wiarygodności, „roztapiającymi mózgi” sieciami bayesowskimi itp.

Dane - tablice danych od jednostek do dziesiątek tysięcy wierszy, czasami zawierające 1-5 kolumn z fenotypami, ale częściej - dziesiątki lub setki kolumn "Ka" ze zmiennymi słabo skorelowanymi ze sobą iz fenotypami.

Cóż, tak, mają też „dobrą tradycję” rozpatrywania wszystkiego pod kątem więzi rodzinnych (w końcu genetyki). Tradycyjnie powiązania przedstawia się w postaci macierzy „więzów pokrewieństwa” (rodowodów) o wymiarach np. 40 000 x 40 000 (czyli 40 000 zwierząt). No, albo (na razie na szczęście tylko w projekcie) 20 000 000 x 20 000 000 – to ma „objąć” jednym modelem wszystkie 20 milionów historycznych zwierząt dostępnych w bazie danych ( DB2, jakby ktoś był zainteresowany, a nawet Cobol nie został jeszcze zewsząd „wycięty”…)

Na stołach zawalonych literaturą nt. (jednocześnie) Fortran, Java, C#, Scala, Octavia, Linux dla bystrzaków można rozpoznać niedawnych absolwentów bioinformatyki. Ale jakoś szybko wielu z nich odchodzi z nauki dla „programistów”.

Znam jednak również przypadek ruchu odwrotnego. Więc R wiele innych się przyda.

Chcę porozmawiać o korzystaniu z bezpłatnego środowiska analizy statystycznej R. Uważam je za alternatywę dla pakietów statystycznych, takich jak SPSS Statistics. Ku mojemu głębokiemu żalowi jest zupełnie nieznany w bezmiarze naszej Ojczyzny, ale na próżno. Uważam, że możliwość napisania dodatkowych procedur analizy statystycznej w języku S sprawia, że ​​system R jest użytecznym narzędziem do analizy danych.

W semestrze letnim 2010 r. miałem okazję prowadzić wykłady i zajęcia praktyczne z przedmiotu „Analiza danych statystycznych” dla studentów Wydziału Systemów Inteligentnych Rosyjskiego Państwowego Uniwersytetu Humanitarnego.

Moi studenci wcześniej uczestniczyli w semestralnym kursie teorii prawdopodobieństwa, obejmującym podstawy dyskretnych przestrzeni prawdopodobieństwa, prawdopodobieństwa warunkowe, twierdzenie Bayesa, prawo „wielkich liczb”, podstawy prawa normalnego i centralne twierdzenie graniczne.

Jakieś pięć lat temu prowadziłem już (wówczas ujednolicony) kurs semestralny „Podstawy prawdopodobieństwa i statystyki matematycznej”, więc rozszerzyłem swoje notatki (rozdawane studentom przed każdymi zajęciami) o statystykę. Teraz, gdy RSUH ma studencki serwer isdwiki.rsuh.ru wydziału, przesyłam je równolegle na FTP.

Pojawiło się pytanie: jakiego programu użyć do ćwiczeń praktycznych w klasie komputerowej? Powszechnie używany program Microsoft Excel został odrzucony ze względu zarówno na zastrzeżone, jak i nieprawidłowe wdrożenie niektórych procedur statystycznych. Można o tym przeczytać na przykład w książce A.A. Makarova i Yu.N. Tyurina „Analiza statystyczna danych na komputerze”. Arkusze kalkulacyjne Calc z darmowego pakietu biurowego Openoffice.org zostały zrusyfikowane w taki sposób, że z trudem mogę znaleźć potrzebną funkcję (ich nazwy są też obrzydliwie skrócone).

Najczęściej używanym pakietem jest SPSS Statistics. SPSS jest obecnie przejmowany przez IBM. Wśród zalet IBM SPSS Statistics wymienię:

  • Wygodne ładowanie danych w różnych formatach (Excel, SAS, przez OLE DB, przez ODBC Direct Driver);
  • Obecność zarówno języka poleceń, jak i rozbudowanego systemu menu umożliwiającego bezpośredni dostęp do różnych procedur analizy statystycznej;
  • Graficzne środki wyświetlania wyników;
  • Wbudowany moduł Statistics Coach, który w sposób interaktywny oferuje odpowiednią metodę analizy.
Wady IBM SPSS Statistics moim zdaniem to:
  • Płatne nawet dla studentów;
  • Konieczność uzyskania (dodatkowo płatnych) modułów zawierających specjalne procedury;
  • Obsługa tylko 32-bitowych systemów operacyjnych Linux, chociaż system Windows obsługuje zarówno 32-bitowe, jak i 64-bitowe.
Jako alternatywę wybrałem tzw. System ten zaczął być rozwijany dzięki wysiłkom Roberta Gentlemana i Rossa Ihaka na Wydziale Statystyki Uniwersytetu w Melbourne w 1995 roku. Pierwsze litery nazwisk autorów określały jego tytuł. Następnie czołowi statystycy włączyli się w rozwój i rozbudowę tego systemu.

Rozważam zalety omawianego systemu:

  • Dystrybucja programu na licencji GNU Public License;
  • Dostępność zarówno kodów źródłowych, jak i modułów binarnych w rozbudowanej sieci repozytoriów CRAN (The Comprehensive R Archive Network). W przypadku Rosji jest to serwer cran.gis-lab.info;
  • Obecność pakietu instalacyjnego dla systemu Windows (działa zarówno w 32-bitowej, jak i 64-bitowej wersji Vista). Przypadkowo dowiedziałem się, że instalacja nie wymaga uprawnień administratora pod Windows XP;
  • Możliwość instalacji z repozytorium w systemie Linux (działa dla mnie na 64-bitowej wersji Ubuntu 9.10);
  • Obecność własnego języka programowania dla procedur statystycznych R, który faktycznie stał się standardem. Jest on na przykład w pełni obsługiwany przez nowy system IBM SPSS Statistics Developer;
  • Język ten jest rozszerzeniem języka S opracowanego w Bell Labs i stanowi obecnie podstawę komercyjnego systemu S-PLUS. Większość programów napisanych dla S-PLUS można z łatwością uruchomić w środowisku R;
  • Możliwość wymiany danych z arkuszami kalkulacyjnymi;
  • Możliwość zapisania całej historii obliczeń w celach dokumentacyjnych.
Na pierwszą lekcję przygotowano płyty CD, na których nagrano pliki instalacyjne, dokumentację i instrukcje obsługi. O tym drugim opowiem więcej. CRAN zapewnia szczegółowe instrukcje użytkownika dotyczące instalacji, R (i jego podzbioru S), pisania dodatkowych procedur statystycznych, eksportowania i importowania danych. Dział Dokumentacja wniesiona zawiera dużą liczbę publikacji nauczycieli statystyki wykorzystujących ten pakiet w procesie edukacyjnym. Niestety po rosyjsku nic nie ma, choć np. jest nawet po polsku. Z anglojęzycznych książek chciałbym wymienić „Using R for introductory Statistics” profesora Johna Verzaniego z City University of New York oraz „Introduction to the R project for Statistical Computing” profesora Rossitera (Holandia) z International Instytut Geoinformatyki i Obserwacji Ziemi.

Pierwsza lekcja poświęcona była instalacji i nauce obsługi pakietu, zapoznaniu się ze składnią języka R. Jako zadanie testowe wykorzystaliśmy obliczanie całek metodą Monte Carlo. Oto przykład obliczania prawdopodobieństwa r.v. o rozkładzie wykładniczym z parametrem 3 przyjmą wartość mniejszą od 0,5 (10000 - ilość prób).
> x=runif(10000;0;0,5)
> y=runif(10000,0,3)
>t=y<3*exp(-3*x)
>u=x[t]
>v=y[t]
>wykres (u, v)
> i=0,5*3*długość(u)/10000

Pierwsze dwie linie ustalają równomierny rozkład punktów w prostokącie x, następnie wybierane są te punkty, które mieszczą się pod wykresem gęstości wykładniczej 3*exp(-3*x), funkcja plot wyświetla punkty w oknie wyniku graficznego , a na koniec obliczana jest wymagana całka.
Druga sesja poświęcona była obliczaniu statystyk opisowych (kwantyle, mediana, średnia, wariancja, korelacja i kowariancja) oraz kreśleniu (histogramy, wąsy).
W kolejnych lekcjach wykorzystano bibliotekę „Rcmdr”. Jest to graficzny interfejs użytkownika (GUI) dla środowiska R. Biblioteka jest tworzona przez profesora Johna Foxa z McMaster University w Kanadzie.

Ta biblioteka jest instalowana przez wykonanie polecenia install.packages("Rcmdr", dependencies=TRUE) w środowisku R. Standardowe procedury statystyczne. Jest to szczególnie wygodne w przypadku kursów, na których najważniejsze jest nauczenie kursanta wciskania przycisków (niestety jest ich teraz coraz więcej).

Z mojego poprzedniego kursu poszerzyły się notatki do seminariów. Są one również dostępne przez FTP z isdwiki.rsuh.ru. Notatki te zawierały tabele wartości krytycznych, które posłużyły do ​​obliczeń tablicowych. W tym roku uczniowie zostali poproszeni o rozwiązanie tych zadań na komputerze, a także o sprawdzenie tabel przy użyciu (normalnych) przybliżeń, również wskazanych w notatkach.

Było też trochę moich błędów. Na przykład zbyt późno zorientowałem się, że Rcmdr umożliwia import danych z pobranych pakietów, więc stosunkowo duże próbki przetwarzano dopiero na lekcjach dotyczących analizy regresji. W przypadku prezentacji testów nieparametrycznych dane były wprowadzane przez studentów odręcznie, korzystając z moich notatek. Inną wadą, jak teraz rozumiem, była niewystarczająca liczba zadań domowych do pisania dość skomplikowanych programów w języku R.

Należy zaznaczyć, że na moje zajęcia przychodziło kilku maturzystów, a niektórzy ściągali materiały z wykładów i seminariów. Studenci Katedry Systemów Inteligentnych RSUH przechodzą podstawowe szkolenie z matematyki i programowania, więc korzystanie ze środowiska R (zamiast arkuszy kalkulacyjnych i pakietów statystycznych z ustalonymi procedurami statystycznymi) wydaje mi się bardzo przydatne.

Jeśli stajesz przed zadaniem studiowania statystyki, a zwłaszcza pisania niestandardowych procedur przetwarzania danych statystycznych, to polecam zwrócić uwagę na pakiet R.

Ostatnio spotkałem się z takim zjawiskiem - wielu słyszało o języku programowania R. Ale bardzo niewiele osób wie, co to jest.

Ponieważ jestem native speakerem tego języka i interesuje mnie jego popularyzacja, postaram się przybliżyć trochę ten temat w tym poście. To będzie interesujące!

Plan jest prosty:

1) Co to jest język R

2) Popularność w Rosji

Co to jest język R

R (wiki) to język programowania do przetwarzania danych statystycznych i grafiki, a także wolne i otwarte środowisko obliczeniowe w ramach projektu GNU.

Nasz sposób: język jest idealny do znajdowania wzorców rynkowych. Za darmo, szybko i za darmo.

Pozwala na prowadzenie badań statystycznych wszystkiego, do czego sięgają Twoje ręce. Przez lata jego istnienia pojawiły się dziesiątki i setki rozszerzeń, które rozwiązują prawie wszystkie stosowane problemy.

Jest to NAJBARDZIEJ popularny język programowania dla inwestorów algorytmicznych na Zachodzie. Jest to najnowocześniejsze to, co jest obecnie dostępne w dziedzinie uczenia maszynowego i statystyki.

Aby pisać programy w R wystarczy pobrać R-Studio i to wszystko.



Jakiś czas temu w ramach popularyzacji języka nagrałem mini-kurs „R dla każdego”. Bezpłatny. Zobacz, jak łatwo to wszystko działa i jak szybko można pisać skrypty. To jest po prostu świetne!

Popularność w Rosji

Pozostawia wiele do życzenia.

Jeśli na Zachodzie 90% wszystkich badań jest przeprowadzanych przy użyciu tego języka, to w Rosji mija rzadki tydzień na SmartLab, w którym można znaleźć przynajmniej jedną wzmiankę o nim. Te. liczba osób znających R jest krytycznie mała.

Wśród przyczyn tej sytuacji: brak do niedawna instrukcji w języku rosyjskim, brak szkoleń, niski poziom umiejętności traderów i wiele innych. Nie rozmawiajmy o tym.

Jedyną ważną rzeczą jest to, że popularność tego języka w Rosji i krajach WNP stale rośnie.

Rosyjscy użytkownicy są zmęczeni niedziałającymi interfejsami API i drogimi systemami handlowymi. Wolny język R w kontekście handlu już wkrótce zajmie należne mu miejsce w ich zestawie narzędzi. Dołącz teraz!

To wszystko na dzisiaj. Mam nadzieję, że było ciekawie.

Obejrzyj mój darmowy kurs, aby dowiedzieć się, jak łatwo pisać kod. Pisz roboty!

Ostatnie artykuły w sekcji:

Zajęcia korekcyjne w szkołach
Zajęcia korekcyjne w szkołach

Zakłady poprawcze typu VII (w terminologii poprzednich przepisów oświatowych) zostały utworzone w celu kształcenia i wychowania dzieci z opóźnieniem ...

połączenie spójników na początku zdania
połączenie spójników na początku zdania

Sekcje: język rosyjski Cele: Edukacyjny: Wiedzieć: warunki interpunkcji w zdaniach złożonych na styku dwóch ...

Projekt
Projekt „Nowe znaczenia starych słów” Starożytne słowa używane teraz

Archaizmy to słowa, które z powodu pojawienia się nowych słów wyszły z użycia. Ale ich synonimy są we współczesnym języku rosyjskim. DO...