Tag Archives: R

Primeros pasos con el entorno estadístico R

26 Sep

Comenté hace mucho tiempo que R es un entorno para estadística libre que tiene, entre muchísimas otras cosas, varios paquetes para la realización de metanálisis. Al carecer de presupuesto para mis investigaciones no puedo permitirme usar SPSS (sí que podría, en los ordenadores de la Universidad de Navarra, pero me resulta complicado ir hasta allí), y el programa PSPP, con el que hice los cálculos de mi tesis sirvió, pero tiene enormes limitaciones, así que he decidido seguir trabajando con R.

Mi intención es contar en esta entrada los primeros problemas que un completo novato como yo tiene con él. No tuve especiales dificultades con la instalación, pero una vez que pones en marcha R lo que encuentras es el signo

>

A diferencia de otros paquetes, aquí no hay una tabla donde se definen las variables y se incluyen los datos para luego seleccionar las funciones que quieras aplicar, sino que se hace todo “a mano”, como si fuera un lenguaje de programación (en cierto modo es eso). Me entero de que existe la posibilidad de completar el programa con un interfaz gráfico, pero, por ahora no voy a explorar esa posibilidad.

La ayuda ayuda poco

R tiene sus manuales y ayuda online. Basta con escribir

> help()

poniendo entre paréntesis el comando sobre el que se quiera la ayuda para acceder a una completa ficha sobre ese comando. Por ejemplo, si quiero saber saber más sobre cómo calcular una media, solo tengo que escribir

help(mean)

claro que, para eso, hay que saber que la función para calcular medias se llama “mean”, y la información que encuentro es exhaustiva, detallada y poco útil. Así que, asumiendo que no tengo ni idea busco algún manual diseñado para gente como yo. Los que me permiten avanzar son: R para principiantes, El entorno estadístico R: ventajas de su uso para docencia e investigación, e Introducción al entorno R. Además de eso, basta con introducir en un buscador lo que estás buscando (por ejemplo “calcular ancova en R”) para encontrar un montón de explicaciones. Afortunadamente hay mucha gente que trabaja con este entorno.

Los signos <- y ->

Una de las cosas que llama enseguida la atención es que se emplean mucho los signos <- y -> para asignar valores. Son algo así como “esto equivale a la cosa que le está apuntando”. Por ejemplo (yo escribo lo que está en rojo, y el programa de devuelve lo que está en azul)

> a <- 7+6
> a
[1] 13
> c <- a + 9
> c
[1] 22

Pero las cosas no solo se convierten en un número, sino que se pueden convertir en vectores o tablas. Por ejemplo:

> resultados <- c(4,3,2,9,3)
> resultados
[1] 4 3 2 9 3
> mean(resultados)
[1] 4.2
En este caso, he utilizado “c”, que sirve para combinar valores en un vector o una lista, de modo que “resultados” equivale a todos los elementos de la lista, de modo que puedo calcular su media (“mean”).

Importar datos

Trabajar de esa forma con colecciones muy grandes de datos es muy engorroso, pero R permite importar tablas de datos generadas con otros programas. Yo he creado una tabla con Open Office Calc y la he exportado como fichero .csv (valores separados por comas).  Es importante que el fichero se encuentre en el directorio de trabajo de R. Para saber cuál es se escribe

> getwd()

(Si no te gusta lo puedes cambiar con el comando “setwd()”). Una vez que el fichero con los datos está en el directorio de trabajo lo importo de la siguiente manera:

> datos <- read.table(“comparacionmedias.csv”, sep=”,”)
> datos
   V1 V2
1 22 36
2 22 17
3 15 19
4 13 22
5 13 42
6 27 19
7 25 33
8 36 21
9 24 24
10 18 28

En este caso “sep=”,”” quiere decir que los datos de la tabla están separados por coma. Si no lo hubiera incluido las filas importadas hubieran sido

 V1 V2
1 22 ,36
2 22 ,17
3 15 ,19

R asigna a cada columna, de forma automática un nombre de variable (V1, V2). Si yo hubiera puesto en la primera fila de mi tabla nombres para las variables como “experimental” y “control”, hubiera tenido que escribir

> datos <- read.table(“comparacionmedias.csv”, sep=”,”, header = TRUE)

para que R reconociese esa primera línea como los nombres de las variables.

Existen otras formas de importar datos como “scan” pero, no voy a escribir de lo que no he probado.

Primeros cálculos

Una de las cosas que más quebraderos de cabeza me dio fue descubrir cómo operar con las variables (las columnas de mi tabla). La forma de hacerlo es referirse a ellas de la siguiente forma: nombre de la tabla + $ + nombre de la variable. En mi caso datos$V1 y datos$V2.

> datos$V1
[1] 22 22 15 13 13 27 25 36 24 18 23 26 17 27 26 31 25 28 14 21 25 28 29 28 26
[26] 23 NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[51] NA NA NA NA

(NA es una casilla en blanco en la tabla). Incluso puedo asignarles otros nombres

> datos$V1 -> control

Una vez que he hecho estas cosas he avanzado mucho. Por ejemplo, puedo comparar los resultados del grupo experimental y de control mediante una prueba T

> t.test(datos$V1, datos$V2)

Welch Two Sample t-test

data: datos$V1 and datos$V2
t = -0.8269, df = 57.732, p-value = 0.4117
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-4.113143 1.708584
sample estimates:
mean of x mean of y
23.53846 24.74074

Desde aquí hasta la metarregresión queda un difícil camino por recorrer pero, por ahora, con estos sencillos ejercicios me queda la sensación de que he entendido el funcionamiento elemental del entorno.

Software para metanálisis

16 Oct

El paquete estadístico más utilizado en ciencias sociales, el SPSS, carece de funciones para realizar un metanálisis, y realizar los cálculos introduciendo manualmente las fórmulas es lento y te expone a numerosos fallos por errores en la escritura.

Existen programas especialmente pensados para el metanálisis. Algunos, como Comprehensive Meta-Analysis o ClinTools, son de pago, por lo que quedan fuera del alcance del investigador no subvencionado. He leído maravillas sobre un programa de Schmidt y Le, que realiza metanálisis según el método de Hunter y Schmidt, y que se puede solicitar directamente a Frank Schmidt, de la Universidad de Iowa. Evidentemente, esta forma de distribuión hace que sea poco conocido.

El RevMan de la fundación Cochrane es un excelente programa y es gratuito. No se centra solo en los cálculos, sino que abarca todo el proceso de revisión incluyendo, por ejemplo, un lugar donde añadir las hipótesis o preguntas que originan la investigación o una base de datos para introducir los estudios de los que se obtienen los distintos tamaños del efecto. El programa está diseñado especialmente para la medicina, y resulta poco flexible para otros usos.

The Meta-Analysis Calculator es un programa online muy sencillo, pero no me atreví a utilizarlo porque los resultados de las varianzas eran distintos a los que obtenía al calcularlas “a mano” (cabe la posibilidad de que el error fuera mío). También es gratuito Metastat, que no he probado.

Una posibilidad distinta es utilizar añadidos que doten de herramientas de metanálisis a otros programas. Existen algunos, que no he probado, para Excel y SPSS.

He dejado para el final el programa con el que voy a enredar próximamente. Se trata de Metafor,  un añadido para el entorno estadístico R especializado en metanálisis. Tanto R como Metafor son gratuitos, y, según he leído, ofrecen bastantes ventajas en comparación con otros programas de estadística, siendo una de las más notorias sus aplicaciones de generación de gráficas.

Bueno, espero poder contar dentro de poco mis primeras impresiones.