So I started to learn R…
Acum câteva luni mă jucam cu JASP și mi se pare un program bun pentru începătorii într-ale statisticii. SPSS nu e nici el de lepădat, fiind standard în statistică dar totodată bazat pe JAVA și efectiv mă enervează cât de greoi lucrezi cu el dacă n-ai hardware bun (în Linux, cel puțin). Așa că m-am pus pe R ieri și cu cât lucrez mai mult cu el cu atât îmi dau seama de ce a lucra în SPSS e ca și cum ai trage plugul cu găinile în comparație cu R care e combina futuristă multifuncțională care nu doar sădește, udă și dozează precis cantitatea de îngrășământ dar o face de vreo 50 de ori mai repede.
Ca să văd dau un exemplu, în SPSS ca să generezi o statistică descriptivă trebuie să deschizi programul, să deschizi baza de date prin câteva click-uri, să accesezi niște meniuri, să alegi niște chestii de la Descriptive Statistics și să-i dai să genereze un output. Output frumos structurat, gata de luat cu copy/paste și pus în studiul din DOC. Dacă baza de date SAV are vreo 900 de MB efectiv faci cu nervii până o deschide. Dar în R deschid un prompt BASH în Linux, tastez ”R” ca să pornesc programul, mi se dă un prompt R și de acolo lansez un script R dacă vreau. Cum am lucrat cu BASH de câțiva ani mi-e mai ușor să lucrez în R. De exemplu, în BASH avem head și tail și fac același lucru și-n R. Asta așa – ca idee.
Exemplu practic:

Am creat două grupuri: grup1 și grup2 și le-am atribuit niște valori. Apoi am făcut un simplu test T pentru eșantioane perechi și ni se returnează t-ul, abaterea standard și p-ul, plus mediile celor două variabile. Un test T pentru eșantioane independente s-ar face cu t.test(grup1), de exemplu.
chestie #deschidem baza de date CSV și-i atribuim numele ”chestie”
summary(chestie) #generăm statistica descriptivă (medie, mediană, valori minime, maxime)
Și asta e tot. Faci un script cu astea două linii de mai sus și-l poți modifica cum dorești și genera statistici descriptive pentru orice CSV. Din câte știu R importă și fișiere SAV din SPSS. Și le faci toate din consolă, fără JAVA hăplăind resurse ca un cal înfometat. Până pornești SPSS, R din BASH deja și-a făcut treaba.
Vreau media unei singure variabile? Simplu:
mean(chestie$variabila)
Vreau primele șase linii de date ale variabilei cutare?
head(chestie$variabilă)
Le vreau pe ultimele?
less(chestie$variabilă)
Vreau listate doar primele 3 rânduri din toată baza de date?
head(chestie, 3) # sau mai merge și cu head(x=chestie,n=3) dar de ce să ne complicăm?
Vrem să creăm o nouă variabilă care să fie rădăcina pătrată a unei alteia?
chestie$sqrt_varnoua # unde ”varnoua” e noua variabilă
Ca și-n SPSS putem pune label-uri ”human-readable” pe variabile:
chestie$Group
Mai sus presupunem că ”variabila” are două valori, 0 și 1 și că valoarea 0 e atribuită grupului de control iar 1 grupului experimental marcat în baza de date. E nevoie să specificați în cazul de mai sus, când avem doar două valori, prima condiție – cea de 0. R o ia ca implicită pe a doua.
Ah – uitasem – chestie elementară: vrei să vezi baza de date integral? În promptul R scrii numele ei și gata:
chestie
Dacă ați lucrat în BASH cu scripturi lucrurile de mai sus vi se vor părea familiare. În plus, R dispune de o sumedenie de interfețe grafice (eu folosesc RStudio care arată parcă mai bine). Și R are o mulțime de pachete gratuite pentru orice chestie la care v-ați putea gândi. Și e open-source, suportă scripting (fișierele .R pot fi rulate ca să nu mai repeți aceleași operații pe alte baze de date), tșie TAB autocompletion și e intuitiv ca limbaj de scripting. Și ca să nu căutați ca mine cum se iese din promptul R tastând ca demenții ba logout, ba exit, ba quit, ba !wq (lol, can’t blame me for trying), se iese cu q().

RStudio e doar una din interfețele grafice disponibile pentru R. Alternativa e RCommander; sau alte soluții mai mult sau mai puțin open-source.
Din consolă, odată ce deprinzi comenzile, devine mai simplu:
Am creat trei seturi de date cu câte 7 intrări numerice la fiecare variabilă [c() desemnând o variabilă numerică]. Aparte de statistica descriptivă putem primi separat media sau alte date care ne interesează, face testul T pentru eșantioane individuale sau perechi și alte chestii.
Alte similitudini cu un terminal BASH ar fi Ctr+L pentru curățarea promptului sau autocompletion în cazul comenzilor.Să vedem acum niște scoruri Z:

…unde n_grup1 e numărul, m_grup1 e media grup1, se_grup1 e eroarea standard iar z_grup1 e scorul Z.