Erre Datos

Herramientas para validar la calidad de datos de presencia en MaxEnt R

Este artículo incluye enlaces de afiliado, tal como exige señalar la Ley 34/2002 (LSSI-CE) en su artículo 20 sobre comunicaciones comerciales. Si compra a través de alguno de ellos, el comerciante me paga una comisión y usted paga exactamente lo mismo.

El ventilador de pie sopla siempre hacia el monitor de la derecha, nunca hacia la torre del CPU, porque esa máquina se recalienta si le tapan la salida de aire. Es el arreglo fijo de mi escritorio, en un cuarto trasero de un apartamento en Los Yoses, San José, donde llevo casi tres años armando modelos de nicho con MaxEnt en R para el grupo de conteo de aves en el que ando metido. Ahí aprendí, a punta de errores, que el problema casi nunca está en el algoritmo: está en la calidad de los datos de presencia que uno le da de comer, y eso, más que estadística de laboratorio, es biogeografía práctica pura, sobre todo cuando ese mapa después se va a usar para una decisión real de conservación.

Vamos directo al ejemplo que mejor ilustra por qué la calidad del dato de presencia pesa más que cualquier ajuste fino del modelo. Tenía un modelo con un rango del valor AUC de 0.98, un número que en teoría dice que el modelo casi nunca se equivoca. Lo compartí orgulloso en el grupo de conteo de aves, hasta que alguien preguntó por qué el mapa ponía a un ave de montaña viviendo tan campante en pleno Parque Metropolitano La Sabana, a nivel del mar y rodeada de tráfico. (Aclaro de una vez, ya que estamos: sigo recomendando el mismo curso de siempre, el de Modelado de Nicho Ecológico con Maxent en R, porque fue el que me sacó del atolladero cuando ni sabía qué era una coordenada decimal.)

El AUC de 0.98 que no decía nada

El problema nunca estuvo en el algoritmo ni en las diecinueve variables bioclimáticas que bajé de WorldClim (ese tema de qué resolución de capa conviene da para su propio artículo, así que no me meto ahí). Ya tengo la tecla Tab del teclado sin brillo de tanto usarla para autocompletar nombres de funciones que se me olvidan a medio escribir, y aun con eso el error no era mío en el sentido técnico. Mis puntos venían de GBIF tal cual los bajé, sin pasarles ningún filtro: había coordenadas repetidas al detalle, un puñado que caía del otro lado del país, y un sesgo de muestreo brutal, porque casi todos los registros estaban pegados a caminos y carreteras, ahí es donde la gente se baja a tomar la foto, no necesariamente donde vive la especie. MaxEnt, sea que lo corras desde R o desde la versión Java original, no tiene forma de darse cuenta de eso, y ni el parámetro de regularización beta, que también merece su propio análisis, arregla un problema que nace en la entrada de datos. El mismo defecto aparece si comparás MaxEnt contra un GLM clásico: ninguno de los dos algoritmos limpia por vos lo que le diste sucio.

Libreta de campo con coordenadas de aves para validar datos de presencia en R

ArcGIS prestado o quedarse en R para validar

Hace poco me escribió Yadira Solano, una lectora que trabaja con reptiles endémicos del Pacífico mexicano, preguntándome directamente cuál camino le convenía más para depurar sus datos: quedarse en R o pasarse a un programa de escritorio tipo ArcGIS. Trabajar con una especie de rango tan chico ya complica la validación de por sí, porque hay pocos registros para empezar y ese es un tema aparte. Le conté lo que me pasó a mí: probé ArcGIS en una computadora prestada que se colgaba cada vez que intentaba cargar más de dos capas ambientales al mismo tiempo, y terminé perdiendo más tiempo esperando a que la máquina respondiera que limpiando datos de verdad. Con R, aunque la curva de aprendizaje pesa al principio, el mismo laptop modesto que uso hoy corre sin ahogarse los paquetes que necesito para filtrar duplicados y outliers. No digo que R le gane a QGIS o a ArcGIS en todo -- para digitalizar polígonos a mano, un programa con interfaz gráfica sigue siendo más cómodo -- pero para depurar miles de puntos de presencia de un tirón, un script reproducible le gana a hacer clic uno por uno. Si tu problema es justo decidir qué especies o qué hábitats vale la pena modelar primero, ya escribí algo sobre cómo identificar hábitats de aves en peligro que puede ahorrarte ese paso previo.

Duplicados, océano y la proyección al revés en los datos de presencia

La limpieza en sí no tiene ningún truco mágico: se trata de borrar registros con coordenadas exactamente repetidas, cruzar los puntos contra una capa de países para pescar los que aparecen en pleno océano por confundir latitud con longitud, y descartar los que caen en valores ambientales sin sentido biológico, como un ave de páramo marcada a nivel del mar. Hay técnicas más finas, como el filtrado espacial que le baja densidad a los sitios sobremuestreados, pero esa herramienta en particular merece su propio artículo aparte, así que la dejo solo mencionada. Lo que sí quiero contarte es el susto de la proyección: imprimí un mapa para llevarlo a una reunión del grupo y, ya con la hoja en la mano, noté que el norte apuntaba hacia abajo -- la proyección estaba mal desde que exporté la capa, no desde que la imprimí. Desde entonces reviso que todo quede en el sistema de coordenadas de referencia estándar antes de tocar cualquier otra cosa. Si no querés lidiar con esa sorpresa, hay bases que ya vienen medianamente curadas y podés revisar antes dónde descargar puntos de presencia en vez de partir de cero. (Y comparar a fondo qué curso enseña mejor a limpiar datos de biodiversidad es tema para otro día -- acá solo cuento qué herramientas uso yo.)

Pantalla de RStudio con errores de código al validar datos de presencia para MaxEnt

Curso de MaxEnt o de teledetección: cuál te resuelve el problema

Acá es donde vale la pena separar las cosas, porque no es lo mismo modelar dónde vive una especie con datos de presencia que interpretar imágenes de satélite -- son dos oficios distintos aunque ambos se hagan en R. Si tu dolor de cabeza es justo el que describí arriba, duplicados, proyecciones y sesgo de muestreo, el curso de Modelado de Nicho Ecológico con Maxent en R ataca exactamente eso, sin pedirte experiencia previa de programación, aunque las primeras clases sí se sienten cuesta arriba si nunca abriste R. Ahora, si ya tenés ese proceso dominado y lo que te falta es trabajar con predictores derivados de satélite, sea de Sentinel o de Landsat, ahí entra el curso de Teledetección Satelital con R, que cuesta bastante más y tiene pocas reseñas todavía, así que conviene revisar el grupo de alumnos antes de pagar. Uno resuelve el problema de la calidad del dato de entrada; el otro te enseña a generar otro tipo de variable ambiental desde cero. Confundir los dos es la razón por la que mucha gente termina comprando el curso equivocado.

Validar en la pantalla versus validar con las botas puestas

Ningún AUC, por limpio que esté el dato detrás, reemplaza salir a comprobar en el terreno.

Manos sosteniendo un GPS junto a una guía de aves para validar en campo un modelo de MaxEnt

La última vez que fui con Isaías Morera, mi compañero de conteo de aves, a revisar un punto que el modelo marcaba como probable, terminamos en el rincón más incómodo del Parque Metropolitano La Sabana, el que él siempre insiste en revisar primero (le encanta el sitio más difícil de llegar, no sé qué le pasa). Y ahí estaba, tal cual lo había marcado el mapa ya depurado -- nada que ver con el ave de montaña de escritorio del principio. Esa diferencia, entre un modelo con datos sucios y uno con datos validados, es la que separa un mapa bonito de una herramienta útil de verdad. Si estás arrancando y no sabés por dónde empezar a filtrar tus propios puntos, dale un vistazo a las opciones de paquetes de R para modelado que existen, porque cada paquete tiene sus mañas y no todos hacen lo mismo.

Si preferís no pelearte solo con la consola llena de letras rojas cada cinco minutos, el curso de Modelado de Nicho con MaxEnt sigue siendo mi recomendación para no repetir el mismo rodeo que hice yo, empezando por lo que de verdad importa: la calidad del dato de presencia antes que cualquier ajuste del modelo. Y si no, con paciencia y las herramientas que mencioné acá, también se puede llegar solo -- tarde, con más tropiezos, pero se llega.

Artículos relacionados