R per a l'anàlisi estadística - Apunts bàsics
Materials
Per a qualsevol cerca relacionada amb R cal accedir primer de tot a la pàgina principal del projecte: http://www.r-project.org/. En aquest lloc podreu trobar tot tipus de documentació i ajut relacionat amb el projecte.
Un apartat relativament separat del lloc del projecte però igualment important és CRAN (Comprehensive R Archive Network). És l'espai des d'on es pot accedir al codi font del programa i de les extensions en forma de paquets que l'acompanyen. En el cas d'estar connectats a la xarxa a l'estat espanyol, seleccionarem el "mirror" http://cran.es.r-project.org/ adequat.
La documentació d'R és excel·lent. Un cop dins el programa es pot fer servir:
> ?comanda # obtenir ajuda sobre la 'comanda' concreta > help.search("text-a-buscar") # Buscarà totes les comandes que tinguin # a veure amb 'text-a-buscar'
Si, malgrat tot, no acabem de solucionar el dubte o la qüestió, hi ha tres llocs bàsics pels quals començar a buscar més documentació:
- Documentació pròpia del projecte: An Introduction to R. Manual imprescindible per on començar a buscar qualsevol mena de dubte.
- Documentació externa vinculada al projecte: "Contributed Docs". Docuements generalment extensos que abasten diferents aspectes de l'ús d'R. En castellà, i per a novells, recomano especialment "R para principiantes", que és la traducció d'"R for beginners" de Emmanuel Paradis.
- Arxius de la llista de distribució "R-help". Permeten buscar paraules clau i frases dins de la immensa quantitat d'ajuda i informació que es proporciona a la llista d'ajuda d'R.
- Sant-Google. Res no se li escapa.
- Rweb. Pàgina que permet executar codi d'R sense haver d'instal·lar-lo, a mode de demostració. També conté exemples.
A més a més:
- El wiki ja és actualment de molta utilitat. Conté codi amb exemples
- A R graph gallery es pot consultar el codi per elaborar qualsevol tipus de gràfiques
- Rseek cerca a tota la documentació d'R les aparicions dels termes que es busquin
- R Graphical Manual presenta gràfiques de tots els paquets d'R
- Vídeos en anàlisi de dades amb R
- Cookbook for R, receptes per fer gràfiques, especialment fent servir ggplot2.
- Reculls de tutorials d'R.
- Curs d'R
- Curs d'anàlisi de dades amb R, a Coursera
Paquets recomanats
- foreign: Permet importar/exportar dades des de diferents paquets estadístics (SPSS, Stata, ...)
- R2HTML: Permet exportar les taules a arxius html
- Els 10 paquets imprescindibles per a les ciències socials. Inclou paquets per gestionar dades "panel", valors perduts.
Eines complementàries útils
La consola d'R no és l'eina més adequada per a treballar-hi. La solució més fàcil passa per treballar paral·lelament amb un editor de textos i copiar i enganxar les comandes que vulguem. Tot i això, aquesta no és pas tampoc la millor solució. Hi ha dues aplicacions que treballen paral·lelament amb R per tal que la utilització d'aquest sigui molt més agradable: Emacs/XEmacs i Tinn-R. El primer parell és un editor de textos complet, mentre que Tinn-R és tan sols un acoloridor de sintaxi i poc més.
Emacs / XEmacs i ESS
Complets editors de textos (emacs i XEmacs) que, conjuntament amb ESS (Emacs Speaks Statistics) permeten interactuar amb R i amb molts d'altres llenguatges (entre ells, stata).
Tinn-R
Tinn-R és d'ús específic per a R. Permet acolorir la sintaxi i enviar comandes a R.
RStudio
RStudio és un entorn de desenvolupament integrat per a R molt potent.
Full de comandes més utilitzades (bàsic)
Full (pdf) de comandes. Malgrat que podria haver posat aquesta referència a l'apartat de documentació, considero que més aviat es tracta d'una eina molt útil per tenir al costat les primeres vegades que ens podem a treballar amb R.
Scripts comentats d'exemple
- 01-basics.R: Crear i manipular objectes senzills. (sense acolorir)
- 02-regression.R: Com especificar models de regressió senzills. (sense acolorir)
- 03-logistic.R: Com especificar models de regressió logística senzills (sense acolorir)
- 04-multilevel.R: Replicar l'anàlisi que fa el paquet estadístic HLM a la seva versió de demostració (no lliure). (sense acolorir)
- 05-matrix_algebra.R: Operacions amb matrius i resolució d'una regressió emprant àlgebra matricial. (sense acolorir)
- 06-variables.R: Recodificar diferents tipus de variables i especificar regressions. Especial èmfasi en el tipus de variables emprades en enquestes i Ciències Socials. (sense acolorir)
- 07-import_export.R: Importar i exportar dades des de fulls de càlcul, dades en format text pur i des d'altres paquets estadístics (sense acolorir)
Per què fer servir R?
Finalment, però no menys important, per què he de fer servir R si la universitat ja paga una llicència de SPSS/Stata/el-programa-que-sigui ?
Sense intenció de ser exhaustiu, heus ací uns quants motius pels quals us pot interessar de fer servir R tant per a la recerca en ciències socials com per a la docència:
Motius pràctics
- R és un llenguatge de programació en sí mateix. Està basat en S-PLUS, un llenguatge amb una tradició històrica important. D'una banda això li dóna una gran maduresa com a llenguatge i de l'altra fa que el ventall de possibilitats i d'usos d'R sigui enorme. A tall d'exemple, es pot fer interactuar fàcilment amb Google Charts per fer gràfiques en línia. De fet, fins i tot es pot demanar pizza a través d'R....
- R és un projecte molt ben documentat. Veieu-ne els exemples que he donat en aquesta pàgina, amb diferents manuals de més de 100 pàgines i alguns d'ells traduïts, entre d'altres, al castellà.
- Existeix una gran quantitat de paquets adaptats per a desenvolupar tasques concretes. De ben segur que en trobarem molts que ens facilitaran la feina. No cal reinventar la roda dues vegades.
- Codi font disponible. Podem saber en cada moment què és el que fa exactament cada funció i, doncs, adaptar-la a les nostres necessitats concretes.
- R s'entén bé amb tothom. R ofereix diferents eines per tal d'exportar i importar dades, matrius, gràfiques, taules, etc... a la immensa majoria de formats oberts i alguns de propietaris.
- Per les seves capacitats gràfiques (galeria de gràfiques)
Més arguments a Why use R?.
I una llista dels senyals que s'envien quan hom fa servir segons quin tipus de programari per a l'anàlisis de dades: Statistics Softwrare Signal.
Motius ètics
A banda de ser una eina útil, és també una Bona eina.
- És Programari lliure
- Les necessitats que es van cobrint són les que té la pròpia comunitat d'usuaris.
- El podem mostrar a classe i fer-lo servir a la docència sabent que l'estudiant el podrà fer servir a casa. Si ensenyem SPSS / Stata els estudiants o bé han de treballar als ordinadors de la universitat, o bé els estem demanant que per a aprovar una assignatura han de comprar una llicència concreta (¿qué diríen si els obligessim a utilitzar un bolígraf de la marca BIC/Montblanc/...?), o bé els induïm a què no respectin una llicència i, doncs, al delicte.
- Als estudiants no els hem d'ensenyar a ser consumidors d'un producte, ans a saber fer les coses de diferents maneres i amb diferents programes.
- Som una universitat pública. Si hi ha programes que fan el mateix que d'altres i són lliures i, molts d'ells, gratuïts, és ètic que invertim els diners en els que són de pagament?
Un bon article sobre programari i ètica el podeu trobar a Es ética, estúpido, de Ricardo Galli.
Línia de comandes? Però si estem a l'era del ratoli!
Hi ha també força motius per a preferir treballar amb l'austera línia de comandes d'R en lloc de fer-ho amb una interfície mega-ultra-genial que ho fa tot tan sols prement botonets:
- El fet de treballar amb el codi fa que l'estudiant adquireixi uns hàbits consistents en "pensar" i dissenyar el que ha de fer, més que no pas en "fer". Sovint "fer" vol dir anar prement botonets per treure models com a llonganisses sense saber ben bé què se li ha demanat al programa.
- Donat que som a la universitat per a fer ciència, és del tot imprescindible que siguem capaços de replicar els resultats que hem obtingut. Això només és possible si utilitzem sintaxi i ens centrem en el codi. Preu per preu, si hem de fer servir el codi, fem-ho amb un programa que està pensar per a treballar d'aquesta manera, té una sintaxi elegant i és un llenguatge de programació en sí mateix.
No obstant això, si preferiu treballar amb una interfície gràfica, R en disposa actualment de diferents models: