7 maja 2009

R - język statystyczny do wizualizacji danych eksperymentalnych

Pomimo brzmiącego wzniośle tytułu i wielkiej litery R na czątku artykuł nadal dotyczy on dziedziny programowania. Tym razem dotykam nieco odmiennego aspektu - narzędzia do statystycznej analizy danych R, które cieszy się dość sporą popularnością w kręgach naukowych, gdyż cytując wikipedię:
GNU R to język programowania i środowisko do obliczeń statystycznych i wizualizacji wyników.
Każdy czytelnik w tym miejscu może zadawać sobie zasadnicze pytanie:
co można w tym zrobić i dlaczego lepej niżeli w moim języku programowania ?.



Oto kilka cech, które pozostawiają w tyle moje ulubiony języki programowania i skłaniają mnie do użycia języka R:

  • dostarcza szeroką gamę technik statystycznych (liniowe i nieliniowe modelowanie, klasyczne testy statystyczne, analiza szeregów czasowych, klasyfikacja, grupowanie, etc)

  • łatwość z jaką można tworzyć dobrze zaprojektowane wykresy z jakością nadającą się do publikacji. Dotyczy to także symboli i formuł matematycznych

  • repozytorium pakietów CRAN, które zawiera ponad 1500 gotowych bibliotek do użytku w naszych statystykach - zaimplementowana jest spora liczba metod oraz przekształceń statystycznych

  • tekstowa i graficzna konsola obsługi, jak również możliwość uruchamiania przygotowanych skryptów

  • stworzenie wykresu często polega na wczytaniu w jednej linii danych ze źródła siecowego, plikowego, w tym popularne formaty CSV oraz Excel ! przypisaniu do zmiennej oraz w kolejnej linii wywołana funkcji plot() ze zminną(zmiennymi) przechowującą(przechowującymi) dane w argumencie. Efekt jest widoczny natychmiast w specjalnym oknie graficzym wykresów

  • powalająca na kolana baza rodzajów wykresów w postaci galerii z przykładami kodu w języku R
  • polecenia języka są intuicyjne i uproszczone do niezbędnego minimum:

    • package.install("nazwaPakietu", depedencies=TRUE) - dodawania pakietu, w efekcie czego pakiet jest pobierany z wskazanego repozytorum CRAN oraz kompilowany wraz z dokumentacją i przykładami użycia

    • library("NazwaBiblioteki") - użycie zainstalowanej biblioteki

    • nazwaBibliotek.funcka(argumenty) - użycie funckcji z biblioteki


  • tworzenie interaktywnych wykresów oraz możliwość używania akceleratorów grafiki 3D w wykresach

  • wbudowane przestrzenie nazw, profiler, debuger, garbage collector :-), których niekiedy może pozazdrościć język PHP

  • programowanie objaśniającego (pakiet Sweave)

  • funkcje statystyczne do przeprowadzania analizy regresji i analizy wariancji

  • funkcje do przeprowadzania klasyfikacji oraz analizy klastrowania

  • generatory liczb losowych oraz generatory liczb losowych z określonych rodzin rozkładów prawdopodobieństwa

  • funkcje do radzenia sobie z brakującymi obserwacjami oraz wstępną analizą danych

  • funkcje do korzystania z metody bootstrap i analizy przeżycia

  • prognozowanie na podstawie posiadanych danych !

  • możliwa edukacja w zakresie testów statystycznych dotyczących testowania hipotez o równości parametrów położenia, o równości parametrów skali, dotyczących prawdopodobieństwa sukcesu, procedury testowania istotności dla wybranych współczynników zależności pomiędzy dwoma zmiennymi oraz testy zgodności



Przegląd możliwości systemu R w wygodny sposób zarysowuje możliwości tego specyficznego języka programowania. Liczne prezentacje oraz artykuły umacnają mnie w przekonaniu, że warto wykreślać w tym języku wykresy z danych pomiarowych, szczególnie jeśli zależy mi na dokładności oraz pewności, że dany wykres reprezentuje wskazaną porcję danych.



Niesamowite jest to, że w języku R możemy osadzać np: język Python i odrotnie w języku Python możemy osadzać język R, co widać na poniższych stronach:

http://rpy.sourceforge.net/rpy_demo.html

http://rpy.sourceforge.net/

Oczywiście to kolejny plus na korzyść Pythona :-)


Materiały wideo do nauki języka R:



Oto linki pomocnicze:

http://processtrends.com/Learn_R_Toolkit.htm

http://processtrends.com/

http://www.r-ekonomia.pl/?ksiazki,11

http://www.personality-project.org/r/r.plottingdates.html

http://orgmode.org/worg/org-tutorials/org-R/org-R.php

http://www.nceas.ucsb.edu/scicomp/Dloads/RCourse/RShortCourseMeetThreeNotes.pdf

http://www.nytimes.com/imagepages/2007/01/22/science/20070123_SCI_ILLO.html

http://learnr.wordpress.com/2009/05/10/import-a-text-file-with-repeating-titles/

http://learnr.wordpress.com/2009/05/05/ggplot2-two-time-series-with-different-dates/

http://chartsgraphs.wordpress.com/

http://www.scribd.com/doc/2171544/R-Programming

http://www.scribd.com/doc/288555/dataR

http://www.scribd.com/doc/6187359/R-Matrix-Tutor

http://www.math.ncu.edu.tw/~chenwc/R_note/index.php?item=plot

http://commons.wikimedia.org/wiki/File:R-US_state_areas-1D_log.svg

http://commons.wikimedia.org/wiki/File:R_sin(theta)_Surface_Plot.png

http://commons.wikimedia.org/wiki/File:R-horsekick_totals-quantileplot%2Bquartiles.svg

http://www.r-project.org/other-docs.html

http://processtrends.com/toc_trend_analysis_with_Excel.htm

http://skiadas.dcostanet.net/uploads/RandSweaveInTextMate.mov


Alternatywa dla wykresów - wykresy kołowe:

http://mkweb.bcgsc.ca/circos/tableviewer/

http://mkweb.bcgsc.ca/talks/circos/

http://mkweb.bcgsc.ca/circos/?gallery

Brak komentarzy: