R to język programowania do obliczeń statystycznych i tworzenia wykresów statystycznych. R został opracowany w połowie lat 90. na Uniwersytecie w Auckland (Nowa Zelandia).
Od tego czasu R stał się jednym bardziej popularnych narzędzi do analizy danych, używanym w wielu dyscyplinach naukowych
BTW: skąd taka dziwna jednoliterowa nazwa (R)? Ano dawno temu (lata 60-te) popularne było używanie krótkich nazw języków komputerowych (Na przykład C). W AT&T Bell Labs (John Chambers) w połowie lat 70. powstał język zorientowany na obliczenia statystyczne pn S (zapewne od statystyka). R to jedna litera przed literą S w alfabecie.
Rstudio to środowisko, dzięki któremu można wygodnie używać R. W Rstudio można jednocześnie pisać kod, uruchamiać program, zarządzać danymi, oglądać wynik obliczeń. Rstudio to produkt komercyjny rozpowszechniany na podwójnej licencji RStudio, Inc. Głównym twórcą RStudio jest Hadley Wickham kolejny genialny Nowozelandczyk (https://en.wikipedia.org/wiki/Hadley_Wickham)
Ostatnimi czasy R wiele zawdzięcza zaangażowaniu się firmy Microsoft, która w szczególności kupiła firmę Revolution Analytics, sprzedającej (od dawna) komercyjną wersję systemu. MS sprzedaje też R w wersji SaaS (Software as a Service) Wsparcie MS oznacza niechybnie że system będzie jeszcze bardziej popularny, np zostanie zintegrowany z popularnymi produktami MS…
Abandoning the habit of secrecy in favor of process transparency and peer review was the crucial step by which alchemy became chemistry. (Jawność zamiast sekretów było przełomowym momentem w którym alchemia zamieniła się w chemię)
Eric S. Raymond, E. S. Sztuka programowania w systemie UNIX: Addison-Wesley.
Replikowalność (replicability): niezależny badanie weryfikujące tą samą hipotezę potwierdza ją.
Powtarzalność (reproducibility): zdolność do powtórzenia obliczeń z dokładnie takim samym wynikiem jak pierwotnie otrzymane [do tego potrzebne jest udostępnienie opis metody, kodu, programu oraz danych.
Nauki ilościowe (comptational sciences) stoją w obliczu kryzysu wiarygodności: jest niemożliwa weryfikacja większość wyników obliczeń prezentowanych na konferencjach oraz publikowanych w czasopismach naukowych. (Donoho D. 2009)
google: `"reproducible research"
= 649000 (styczeń / 2021)
Wczytaj dane do Excela lub innego arkusza; przekształć dane surowe do czystych; wykonaj wstępną analizę (eksploracyjną) (problemy: Excel traktuje brakujące dane missing values niespójnie, a czasem nieprawidłowo; dokonuje nieoczekiwanych konwersji liczb na daty oraz wiele typowych funkcji jest słabo zaimplementowanych, słabo opisanych lub ich brakuje. a grafika jest niskiej jakości)
zaimportuj dane z arkusza kalkulacyjnego do SPSS/SAS/Stata w celu przeprowadzenia poważnej analizy (używanie SPSS/SAS/ Stata w trybie „wskaż i kliknij”.)
Przygotuj raport w edytorze zwykle biurowym (Kopiuj/wklej wyniki z SPSS/SAS/ Stata do Word/OpenOffice, dodaj opis/komentarz. Wyślij do wydawcy/recenzenta)
Powtórz 1–4 w odpowiedzi na recenzję
Żmudne/marnujące czas/kosztowne.
Nawet niewielkie zmiany danych/metody skutkują często koniecznością powtórnego wykonania obliczeń i poprawienia raportu.
Podatne na błędy (prone to errors): trudne do zarejestrowania/zapamiętania „historii kliknięć”.
Słynny przykład: kontrowersja Reinharta i Rogoffa
Kraje o bardzo wysokim wskaźniku PKB do zadłużenia cierpią z powodu niskiego wzrostu. Obliczenia RR okazały się w wielu miejscach ca całkowicie błędne, co odkryto gdy autorzy ujawnili zbiór danych, który wykorzystywali w swojej analizie (por. (https://en.wikipedia.org/wiki/Growth_in_a_Time)
Nie używać arkuszy kalkulacyjnych;
Nie używać trybu wskaż i kliknij zamiast tego stosować programowanie (Każdy poważny system do obliczeń statystycznych jest wyposażony w jakiś język programowania.)
Bardziej stroma krzywa uczenia się.
Być może wyższe koszty w krótkim okresie.
Literate Programming to koncepcja programowania w którym program i opis (komentarz) stanowią jedną całość.
Kod obliczeń statystycznych jest przepleciony opisem. System komputerowy potrafi zamienić to automatycznie na gotowy raport
Niezawodność: łatwiejsze do znalezienia / naprawienia błędów. Uzyskane wyniki nie zmienią się po przeliczeniu (przynajmniej w teorii).
Wydajność: ponowne wykorzystanie pozwala uniknąć powielania wysiłku (opłacalność w dłuższej perspektywie).
Przejrzystość: wyższy wskaźnik cytowań, szerszy wpływ, lepsza pamięć instytucjonalna
Wiele m.in. koszty i krzywa uczenia się
Język Markdown do opisu.
Język programu: R (lub Python)
Frontendy: RStudio
Github jest systemem kontroli treści (aka Systemy kontroli wersji VCS). Podstawową ideą systemu VCS jest to, że zamiast ręcznie rejestrować zmiany wprowadzone w danych, dokumentach itp., używa sie do tego programu komputerowego.
VCS nie tylko zarządza treścią, rejestrując każdą jej modyfikację, ale kontrolować również dostęp do treści. W ten sposób wiele osób może pracować nad wspólnym projektem (porównaj to z typowym scenariuszem kiedy wiele osób wymienia się danymi przez email – co najmniej wysoce nieefektywne)
Istnieją wysoce niezawodne i publicznie dostępne usługi VCS a GitHub jest najpopularniejszym z nich.
GitHub jest własnością Microsoft (nie używaj, jeśli bojkotujesz MS :-))
Darmowe konto GitHub jest publiczne. Jest to dla mnie ok. Jeśli chcesz ukryć to co przechowujesz na swoim koncie Github możesz kupić licencję na konto komercyjne (lub nie używać GitHuba.)
[Rstudio] (https://www.rstudio.com/resources/cheatsheets/)
[Tworzenie znaczących danych] (https://www.unece.org/stats/documents/writing/)
[bookdown: Authoring Books and Technical Documents with R Markdown] (https://bookdown.org/yihui/bookdown/)