Introducció

Aquest tutorial ofereix una breu explicació de la regressió lineal múltiple. Abans, però, repassa algunes qüestions bàsiques sobre R i l’anàlisi de dades. Aquest tutorial pressuposa un cert coneixement d’R, com a mínim de les seves funcions més bàsiques.

El primer que cal fer és descarregar-se la base de dades que s’utilitzarà. Us la podeu baixar prement aquí.

El primer pas consisteix en obrir la base de dades. En aquest cas, les dades es troben en format Excel. Per a obrir-la, necessitem una llibreria que tingui una funció que ens permeti obrir bases de dades d’excel. Després d’una cerca ràpida a internet (no patiu, quan més sovint useu R, més us enrecordareu del nom de les llibreries i les funcions), veiem que podem utilitzar la llibreria readxl.

Per tal d’obrir-la, hem de dir a R on és la base de dades. La ruta és diferent per tothom. En el meu cas, tinc ubicada la base de dades en una subcarpeta que es diu OLS. Per saber quina és la vostra ruta, cliqueu a la base de dades amb el botó dret i premeu propietats (o obtenir informació, si useu un MAC). Llegirem la base de dades amb les següents instruccions:

Inspecció i preparació de les dades

La base de dades té les variables següents:

  • ccode: Codi numèric que identifica a cada país basat en el protocol ISO-3166-1. Tots els codis són unics per a cada país. Són útils per fusionar diferents bases de dades (http://en.wikipedia.org/wiki/ISO_3166-1_numeric)
  • cname: Nom del país.
  • van_index: Índex de democratització segons The Quality of Government Institute.
  • ipu_l_sw: Percentatge de dones a la Cambra Baixa del país.
  • lp_legor: Origen històric del sistema legal del país. Codis: 1. English Common Law 2. French Commercial Code 3. Socialist/Communist Laws 4. German Commercial Code 5. Scandinavian Commercial Code.
  • mad_gdppc: PIB per càpita real (en US dòlars del 2011).
  • bci_bci: Indicador de corrupció basat en la percepció de la ciutadania en diferents enquestes.
  • ht_regtype1: Tipus de règim. Codis: 1. Monarchy 2. Military 3. One party 4. Multi-party 9. No-party 99. Other 100. Democracy
  • dpi_plurality: Sistemes electorals pluralistes (winner-take-all).

Si la base de dades és petita, una forma ràpida de saber el nom de la variable, el tipus i els primers valors que té, és utilitzar algunes comandes de la llibreria dplyr. Primer, com sempre, executem la llibreria. Després, executem la funció. Recordeu que el símbol # ens permet escriure instruccions (frases) sense que aquestes s’executin. És a dir, es tracta de línies que R no llegirà. Com a consell, sempre és bo escriure abans d’una comanda sobre allò que fa la comanda i per què ho fem. Penseu en el vostre jo futur: probablement no us enrecordareu d’allò que heu fet. Les notes us ajudaran a refrescar la memòria.

## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
## Observations: 194
## Variables: 9
## $ ccode         <dbl> 4, 8, 12, 20, 24, 28, 31, 32, 36, 40, 44, 48, 50, …
## $ cname         <chr> "Afghanistan", "Albania", "Algeria", "Andorra", "A…
## $ van_index     <dbl> 14.000000, 33.964287, 5.389050, 8.561865, 6.227712…
## $ ipu_l_sw      <dbl> 27.7, 20.7, 31.6, 50.0, 36.8, 11.1, 15.6, 36.2, 26…
## $ lp_legor      <dbl> 2, 3, 2, 2, 2, NA, NA, 2, 1, 4, 1, 1, 1, NA, 1, 2,…
## $ mad_gdppc     <dbl> 1928, 10947, 13024, NA, 8631, NA, 16045, 19316, 44…
## $ bci_bci       <dbl> 63.17051, 54.64883, 56.66900, 19.99668, 70.70883, …
## $ ht_regtype1   <dbl> 4, 100, 4, NA, 4, 100, 4, 100, 100, 100, 100, 1, 4…
## $ dpi_plurality <dbl> 1, 1, 0, NA, 0, NA, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, …

Tenim una base de dades amb 194 observacions i 9 variables. Després del nom de les variables, i entre “<>”, R et diu el tipus de variable. Per exemple, la variable dpi_plurality és tipus double.

El primer pas és comprovar que les variables estan en el format correcte (per exemple, comprovar que R ens ha llegit una variable categòrica com a factor). Així mateix, hem de comprovar si la variable està operacionalitzada tal i com ho volem (quelcom que comprovarem en el codebook de la base de dades o l’enquesta). Rarament és així. Per tant, haurem d’invertir un cert temps a fer que les variables estiguin llestes per a poder utilitzar-les. Per exemple, la variable dpi_plurality és, com hem vist, double. Tanmateix, com bé sabem, és una variable que només té zeros i uns i, per tant, s’ha de definir com a factor.

Comencem per la primera variable, la nostra variable dependent (van_index). En aquest cas, les funcions que utilitzarem ja venen integrades a R i no caldrà utilitzar cap llibreria.

class és una funció que ens permet saber el tipus de variable. Sempre hem de dir a R quina base de dades volem utilitzar (en el nostre cas, df) i, dins d’aquesta base de dades, quina variable volem inspeccionar (van_index). Per indicar la variable, fem servir el símbol de $.

La funció summary ens permet saber algunes dades descriptives addicionals.

Si executeu el codi que teniu a sota, veureu que la variable van_index oscil·la entre 0 i 47.719. La seva mediana és igual a 20.175 i la seva mitjana és 19.512. A més, hi ha 7 NA, és a dir, 7 cel·les en les quals no hi ha cap valor. R indica que hi ha valors perduts amb NA.

## [1] "numeric"
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##   0.000   8.107  20.175  19.512  28.487  47.719       7

En el cas de van_index no hem de fer cap transformació. van_index és una variable de tipus escala (numèrica). Tanmateix, sempre és recomanable inspeccionar les variables abans de fer una anàlisi estadística. No podem saber si les variables són correctes si abans no les examinem!

Aquest procediment l’hem d’anar repeting per cadascuna de les variables. La primera variable que ens trobem que hem de transformar és la variable lp_legor. Si comproveu la class, veureu que R us diu que és de tipus “numeric”. Això, com hem pogut veure al codebook de la base de dades, no és correcte. lp_legor conté diferents valors arbitraris que van de l’1 al 5. Cadascun d’aquests valors ens informa sobre l’origen legal del país. Recordem els codis: Codis: 1. English Common Law 2. French Commercial Code 3. Socialist/Communist Laws 4. German Commercial Code 5. Scandinavian Commercial Code.

Per tant, hem de transformar la variable. En aquest cas, hem de crear una variable categòrica. En el llenguate d’R aquests tipus de variables s’anomenen factors. El codi de sota ho implementa. Com podeu veure, no només la transformo en categòrica, sinó que dono una etiqueta als valors per tal que siguin més fàcils d’interpretar. També podeu observar que, enlloc de destruir la variable, en creo una de nova (lp_legor_cat). La instrucció c() que veieu a sota és una funció genèrica que permet a R llegir els diferents elements d’un vector. Si no la poseu, no us funcionarà!

Com sabem si ho hem fet bé? Per exemple, amb una taula. Com podeu veure, la recodificació té els mateixos valors en la variable original que en la nova variable recodificada.

## 
##  1  2  3  4  5 
## 53 76 13  6  5
## 
##      English       French    Socialist      Germany Scandinavian 
##           53           76           13            6            5

Ja només ens queden dues variables per modificar. La primera és ht_regtype1. Recordem els codis: 1. Monarchy 2. Military 3. One party 4. Multi-party 9. No-party 99. Other 100. Democracy. Per a fer-ho senzill, crearem una variable dicotòmica que distingeixi entre democràcies (1) i la resta (0). Important: la variable ha de ser de tipus factor. Enrecordeu-vos de fer-ho. El codi de sota fa el següent: primer, crea una variable en què totes les files tenen el valor 0. Després, substitueix els zeros si la variable ht_regtype1 és més petita que 100, és a dir, si es tracta de règims no democràtics. Finalment, la tercera línia converteix la variable de numèrica a factor (les variables binàries son també factors).

L’última variable és dpi_plurality. Si executeu la comanda class(df$dpi_plurality), veureu que us diu que és de tipus numèric. En aquest cas només cal convertir-la en factor. Tanmateix, aprofitarem per posar etiquetes als valors.

Ja tenim totes les variables preparades. Ja podem passar a la fase següent.

Anàlisi univariada

Abans d’entrar directament a la regressió, convé analitzar les variables de forma descriptiva. Ens ajudarà a veure la seva distribució, detectar valors anòmals i, de pas, veure possibles errors.

El tipus d’anàlisi que cal dur a terme depèn, primer, del tipus de variable i, segon, de la visualització de les dades que prioritzem. Tot seguit en podem veure alguns exemples.

Comencem per la nostra variable dependent van_index. Podem fer un histograma. Les opcions main i xlab ens canvien el títol principal i el títol de l’eix de les X.

Pel PIB per càpita podem fer un diagrama de caixa (es tracta, de fet, d’una bona manera de veure els valors anòmals).

Finalment, pel tipus de sistema legal podem utilitzar un gràfic de barres.

De nou, és important inspeccionar bé les variables abans d’entrar a analitzar-les.

Anàlisi bivariada

L’anàlisi bivariada la conformen tots aquells procediments estadístics que testen la relació empírica entre dues variables. És a dir, ens permeten veure si estan relacionades o associades. Una forma de fer-ho és a través d’un gràfic de dispersió. En el codi següent analitzem si hi ha relació entre la nostra variable dependent, van_index, que captura la qualitat democràtica d’un país, i la nostra variable independent, bci_bci, que captura la corrupció del país. Recordeu que aquest tipus de visualitzacions serveixen si les dues variables son contínues o ordinals. Amb variables binàries o categòriques haurem de buscar un altre tipus de visualització (per exemple un gràfic de barres) o un altre tipus d’anàlisi (per exemple, quan és binària, podem usar el coeficient de correlació).