Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Este trabajo contiene una guía práctica muy completa (y compleja) para modelar la
distribución de especies. Trata todo el proceso de modelado, desde la confección de
las variables ambientales hasta la preparación de los resultados para publicación.
Todo el material contenido se basa en la bibliografía existente, pero usted debe en-
tender que no es una transcripción literal, sino una interpretación de ese material
bibliográfico, basada en la experiencia del autor en el campo de los modelos de dis-
tribución. Teniendo en cuenta que es un campo en desarrollo activo, será fácil
encontrar investigadores y literatura que no estén en acuerdo con el modo en que al-
gunas cuestiones relativas a los modelos de distribución.
blasbp@ugr.es blasbenito@gmail.com
Según los términos de esta licencia, usted puede distribuir y copiar este trabajo,
siempre que otorgue al autor el crédito que le corresponde. Usted no puede obtener
beneficio comercial de los contenidos, ni puede realizar obras derivadas de los mis-
mos.
Índice
SECCIÓN 1: PREPARACIÓN DEL ENTORNO DE TRABAJO.............................................................1
1.1 Instalación de GRASS.................................................................................................................1
1.2 Instalación de Notepad++............................................................................................................1
1.3 Instalación de Open Office..........................................................................................................1
1.4 Instalación de Google Earth........................................................................................................2
1.5 Instalación de OpenModeller.......................................................................................................2
1.6 Instalación de Octave..................................................................................................................2
BIBLIOGRAFÍA....................................................................................................................................91
Modelos de distribución y estudios de flora amenazada Guión de prácticas
Ahora que tenemos ambas bases de datos configuradas, habrás observado que en
ambas se crea automáticamente un Mapset denominado PERMANENT, en el que
se almacenarán todos los datos geográficos.
Para entrar en GRASS, en Project Location selecciona ALMERIA_latlong, y en Ac-
cesible Mapsets selecciona PERMANENT. Pulsa Enter GRASS para iniciar el
programa.
Habrás observado que el interfaz de GRASS tiene varias ventanas (ver Figura 1):
● GRASS 6.3.0 GIS Manager:
○ barra de menús de esta ventana accedemos a la mayor parte de las fun-
cionalidades de procesamiento de GRASS: menús Raster, Imagery y
Vector para operaciones con cada tipo de capa. Menú File para importa-
ción, exportación y conversión de archivos. Menú Databases, para trabajar
con tablas, y menú Config para configurar el entorno de trabajo.
○ Ventana de mapas activos: en la que se listan los mapas que queremos
visualizar.
○ Configuración de mapas activos: se configuran opciones de visualiza-
ción de los mapas.
● Map Display: es el visualizador de mapas, y tiene las típicas opciones de
cualquier navegador de mapas, incluida la exportación a distintos formatos de
imagen.
● Output GIS.m: muestra el estado de las operaciones en curso, muestra resul-
tados (aquellos que por su naturaleza se dan en formato texto), y permite
lanzar comandos.
Figura 1: Interfaz gráfico de GRASS, mostrando las ventanas principales y las he-
rramientas más importantes.
● GIS Manager > Raster > Terrain analysis > Slope and aspect, para abrir el
módulo r.slope.aspect.
○ Pestaña Options:
■ Raster elevation file name = ELEV
■ Output slope filename = PEND
■ Output aspect filename = OR_360
○ Run
○ Cierra r.slope.aspect.
Los valores 0-360 de la variable ORIENTACION no son apropiados para trabajar con
ellos en modelos de distribución, porque tanto el valor 0 como el 360 indican el mis-
mo azimut, y esto crea problemas en los algoritmos de modelado. Para
transformarla, vamos a crear dos gradientes:
● OR_NS: con valores 100 en las exposiciones norte, y valores 0 en las sur,
con toda la gama intermedia de valores (este y oeste presentan ambos valor
50).
● OR_EO: que sigue el mismo esquema que el anterior, pero con valores 100
en la orientación oeste, y 0 en las este (norte y sur presentan ambos valor
50).
Esta operación se denomina recodificación (lo hiciste antes, al crear el mapa MAS-
CARA_ELEV), porque implica un cambio en los valores de las celdas; por ejemplo,
los valores 360 y 0 de la capa ORIENTACIÓN, serán sustituidos por el valor 100 en
la capa OR_NS. Previamente a la recodificación de un mapa raster es necesario cre-
ar un fichero que indique los valores que van a variar y sus reemplazos. En GRASS,
este fichero debe tener la extensión “.csv” (comma separate values) y el siguiente
formato:
0:0:100:100
1:1:100:100
2:2:100:100
3:3:99:99
“cambia los valores de 0 a 0 por valores de 100 a 100”, o sustituye 0 por 100.
Para elaborar estos ficheros es muy útil disponer de una hoja de cálculo (para esto
funciona mejor Calc qué Excel), y el editor de texto Notepad++,
Los ficheros correspondientes a las dos reclasificaciones que hay que realizar se en-
cuentran en C:\CURSO_MODELOS\GUIONES (GRADIENTE_EO.txt y
GRADIENTE_NS.txt). Puedes abrirlos con Notepad++ para observar su contenido
(aparecerán modificados si los abres con el bloc de notas de windows).
Para recodificar el mapa de orientaciones:
● GIS Manager > Raster > Change category values and labels > Recode using
rules file, para abrir el módulo r.recode.
■ Raster map to be recoded = OR_360
■ Name for output raster map = OR_NS
■ File containing recode rules =
C:/CURSO_MODELOS/GUIONES/GRADIENTE_NS.csv
○ Run
■ Raster map to be recoded = OR_360
■ Name for output raster map = OR_EO
■ File containing recode rules =
C:/CURSO_MODELOS/GUIONES/GRADIENTE_EO.csv
○ Run
○ Cierra r.recode.
■ Run
■ Cierra r.neighbors.
2. Para restar la capa ELEV_MEDIA_1000m a la capa ELEV, en el cuadro de
ejecución de comandos de la ventana Output teclea y ejecuta:
r.mapcalc POS_TOPO=ELEV-ELEV_MEDIA_1000m
3. Para eliminar el mapa ELEV_MEDIA_1000m (no lo necesitarás más), teclea
y ejecuta la siguiente expresión en la línea de comandos:
g.remove ELEV_MEDIA_1000m
● Cierra r.neighbors.
NOTA: Vuelve al punto 2.4.4 para comprobar si se terminó el primer cálculo de ra-
diación solar. Si terminó, pon a funcionar el siguiente, y vuelve aquí para continuar.
● Pestaña Options:
○ Override projection = marcado
● Pestaña Required:
○ Raster file to be imported = C:/CURSO_MODELOS/GEODATOS/LAND-
SAT/U18_MS.bil/U18_MS.bil
○ Name for output raster map = U18
● Run
El conjunto de imágenes U19 se importa del mismo modo, nombrando los re
sultados como U19.
● Cierra r.in.gdal.
Ahora tenemos en nuestra base de datos de GRASS 6 parejas de imágenes (U18.1
y U19.1; U18.2 y U19.2, etc...), cada una de las cuales corresponde a una banda
Landsat concreta. Las labores que deberíamos realizar ahora son:
● Unir las imágenes que pertenecen a una misma banda: tenemos las imáge-
nes U18.1 y U19.1, que corresponden a una misma banda Landsat, cada una
de las cuáles cubre parcialmente la provincia de Almería. Es necesario unir-
las.
● Borrar las imágenes parciales (U18.1 y U19.1 en el ejemplo anterior).
En total hay que hacer 6 uniones y borrar 12 imágenes, una labor relativamente te-
diosa. Para hacer operaciones repetitivas, lo más operativo es escribir las órdenes
en un fichero de texto plano (script, o guión) para que GRASS las ejecute secuen-
cialmente.
En nuestro caso, para unir las imágenes se utiliza la orden r.patch, que tiene la si-
guiente sintaxis:
g.remove nombre_imagen_A
Ahora que conoces la sintaxis apropiada, puedes escribir y ejecutar las siguientes
órdenes secuencialmente en la línea de comandos, cambiando los números corres-
pondientes a cada capa según el caso.
r.patch input=U18.1,U19.1 output=LSAT_1
r.patch input=U18.2,U19.2 output=LSAT_2
r.patch input=U18.3,U19.3 output=LSAT_3
r.patch input=U18.4,U19.4 output=LSAT_4
r.patch input=U18.5,U19.5 output=LSAT_5
r.patch input=U18.6,U19.6 output=LSAT_6
g.remove U18.1
g.remove U18.2
g.remove U18.3
g.remove U18.4
g.remove U18.5
g.remove U18.6
g.remove U19.1
g.remove U19.2
g.remove U19.3
g.remove U19.4
g.remove U19.5
g.remove U19.6
2.5.2 NDVI
El Índice Diferencial de Vegetación Normalizado estima la cantidad, calidad y desa-
rrollo de la vegetación a partir de la intensidad de la radiación que la vegetación
emite o refleja en distintas bandas del espectro electromagnético. El sensor ETM+
del satélite Landsat recoge información para componer este índice, que se computa
a partir de las bandas 3 (rojo) y 4 (infrarrojo cercano) según la siguiente expresión:
2.6.1 Precipitación
La precipitación es una variable con gran influencia en la distribución de las especies
vegetales, porque representa la disponibilidad de un recurso vital como es el agua.
Pero es una variable para la que es muy difícil obtener modelos espaciales y tempo-
rales fiables. Distintos métodos proporcionan resultados muy diferentes, a la hora de
calcular modelos de precipitación.
Para hacer un modelo de precipitaciones de un área concreta, en primer lugar son
necesarios los datos de pluviometría y las georreferencias de las estaciones meteo-
rológicas que la cubren. Una vez obtenidos, es necesario realizar el análisis
estadístico para obtener los valores descriptivos que nos interesa expresar espacial-
mente, como podrían ser la precipitación acumulada anual, la precipitación durante
el mes mas seco, etc.
En la carpeta C:\CURSO_MODELOS\GEODATOS\CLIMA puedes encontrar una
hoja de cálculo (PRECIPITACION.ods) con los datos de precipitación de la provincia
de Almería. Estos datos son el resultado de un análisis estadístico sobre una base
de datos proporcionada por la AEMET, con información meteorológica del periodo
1960-1990.
Las coordenadas de las estaciones meteorológicas están en coordenadas geográfi-
cas, datum WGS84 (NOTA: las georreferencias de las estaciones meteorológicas
proporcionadas por la AEMET están originalmente en ED50. Las que aparecen en
las tablas han sido transformadas para este tutorial).
Las precipitaciones se muestran en milímetros, y los campos de la tabla son:
2.6.2 Temperatura
Esta ecuación proporciona un mapa de temperatura que no tiene en cuenta los valo-
res de los residuales de cada una de las estaciones meteorológicas. Para incorporar
los residuos, se interpolan espacialmente los valores de los residuales de cada esta-
ción, y el mapa resultante se suma al anterior, para obtener el mapa de temperatura
final.
r.mapcalc TMED_ANU_reg=1387.94-31.85*LATITUD
+8.42*LONGITUD-0.05*ELEV
5. Para calcular los valores puntuales de los residuales, creamos una nueva co-
lumna en la tabla abierta en Calc, al final, con el nombre TMED_ANr,N,20,6 y
en la primera celda escribimos la ecuación siguiente, en la que restamos el
valor estimado por la ecuación de regresión (sección entre paréntesis) al valor
de temperatura real de cada registro (celdas de la columna TMED_ANU):
=F2-(1387,94-31,85*B2+8,42*C2-0,05*D2+0*E2)
○ Ahora arrastramos esta ecuación a todas las celdas inferiores para calcu-
lar el residual de cada registro. Después borramos la matriz de resultados
de la función ESTIMACION.LINEAL. Puedes guardar la tabla, para que los
datos de los residuales queden escritos en el archivo vectorial ESTACIO-
NES_TERMOMETRICAS.
6. Interpolación espacial de los residuos. Utilizaremos un algoritmo distinto al
empleado para calcular la precipitación. En este caso es IDW.
○ GIS Manager > Raster > Interpolate surfaces > IDW from vector points,
para abrir el módulo v.surf.idw.
■ Name of input vector map = ESTACIONES_TERMOMETRICAS
■ Name for output raster map = TMED_ANU_res
■ Number of interpolation points = 12
■ Attribute table column with values to interpolate = TMED_ANr
■ Run
■ Cierra v.surf.idw.
7. Suma del mapa obtenido por regresión múltiple y el mapa de residuos para
obtener el mapa de temperatura final: Teclea y ejecuta en la línea de coman-
dos la siguiente expresión:
r.mapcalc TMED_ANU=TMED_ANU_reg+TMED_ANU_res
Ahora que ya no los necesitas, puedes borrar los archivos TMED_ANU_res y
TMED_ANU_reg ejecutando la siguiente expresión en la línea de comandos:
g.remove TMED_ANU_reg,TMED_ANU_res
Hemos visto que el cálculo de mapas de temperatura es laborioso, y por motivos de
tiempo, no vamos a calcular ninguno más. Sin embargo, sería ideal disponer de, al
menos, el mapa de temperaturas medias máximas del mes más cálido (columna
TMED_MAX en la base de datos), el de temperaturas medias mínimas del mes más
frío (columna TMED_MIN), y el rango anual de temperatura (TMED_MAX –
TMED_MIN).
RAD_VER TMED_ANU.
○ Copia la fila con los nombres de las variables, y pégala en la primera co-
lumna, utilizando la opción Transponer del Pegado especial. Ahora tienes
la matriz de correlaciones completa. Para mejorar la visibilidad, puedes
borrar todos los valores por encima o por debajo de la diagonal de “unos”.
○ Es el momento de establecer un umbral máximo de correlación entre dos
variables. No existe una norma concreta al respecto, pero lo habitual es
establecer este umbral dentro del intervalo [0.5, 0.8]. En este caso lo esta-
bleceremos en 0.7 (incluyendo -0.7). Para localizar estos valores en la
matriz, lo mejor es utilizar la función Formato condicional, para destacar
los valores por encima del umbral.
■ Pulsa la tecla F11 para abrir el cuadro Estilo y formato.
■ Crea un nuevo estilo de celda, usando el botón derecho del ratón so-
bre el cuadro (zona blanca) y pulsando Nuevo.
● Pestaña Administrar
○ Nombre = CORRELACION
● Pestaña Fondo
○ Selecciona un color a tu gusto para destacar los valores por en-
cima del umbral.
● Aceptar
■ Selecciona todas las celdas con valores, y en el menú Formato, abre el
diálogo Formato condicional.
● Condición 1: El valor de la celda mayor o igual que 0,7; Estilo de
celda = CORRELACION
● Condición 2: El valor de la celda menor o igual que -0,7; Estilo de
celda = CORRELACION
● Aceptar.
Si observamos las celdas destacadas, observamos que:
● Las variables PEND y DIV_TOPO tienen una correlación igual 0.78; seleccio-
naremos PEND como representante de esta pareja.
● Las variables TMED_ANU y ELEV tienen una correlación igual -0.97; selec-
cionaremos TMED_ANU como representante de esta pareja.
● Las variables OR_NS y RAD_INV tienen una correlación igual -0.78; seleccio-
naremos RAD_INV como representante de esta pareja.
● Las variables PRE_ANU y PRE_MAX tienen una correlación igual 0.88; selec-
cionaremos PRE_MAX como representante de esta pareja.
● Las variables PRE_RAN y PRE_MAX tienen una correlación igual 0.99; selec-
cionaremos PRE_MAX como representante de esta pareja.
● Las capas Landsat tienen todas un índice de correlación mayor de 0.7. Esta
cuestión la resolveremos en el siguiente apartado.
Observando estos resultados, resulta que para mantener una correlación entre ca-
pas inferior al umbral establecido, deberíamos descartar para trabajar las capas:
DIV_TOPO, ELEV, OR_NS, PRE_ANU y PRE_RAN. En adelante, no trabajaremos
más con ellas. Entenderás que fue necesario tomarse el trabajo en generarlas, para
llegar a este punto...
Una cuestión importante: si para el trabajo que estamos desarrollando nos interesara
expresamente conocer la importancia de la precipitación anual (PRE_ANU) en la dis-
tribución de la especie, no deberíamos descartar esta variable, sino la
correlacionada con ella.
● POS_TOPO
● PRE_MAX
● PRE_MIN
● RAD_INV
● RAD_VER
● TMED_ANU
● cpLSAT_1
● cpLSAT_2
Sin embargo, aún tenemos algún preprocesamiento más que hacer...
2.9.1 Introducción
Disminuir la resolución espacial de las variables en este caso no debería ser necesa-
rio, porque lo ideal es buscar siempre una máxima resolución de trabajo. Sin
embargo, para este curso, en algún momento será necesario acelerar el tiempo de
cómputo de los modelos de distribución, por lo que vamos a generar conjuntos de
variables a dos resoluciones distintas: 90 metros y 1000 metros.
Hasta el momento se ha trabajado con una resolución horizontal de 90 metros (0º
00' 03''), tal y como está establecida en la región de trabajo de GRASS. Esta sería la
resolución de las variables para los modelos de distribución si las exportáramos en
este momento. GRASS permite cambiar la resolución de trabajo muy rápidamente,
ejecutando el comando g.region res=n, siendo n la resolución en formato g/m/s (por
ejemplo, 0:00:03, que es la resolución actual de trabajo). Por tanto, si cambiamos la
resolución de trabajo con g.region res=0:00:06, a partir de este momento estaríamos
trabajando a una resolución en torno a los 180 metros, y las variables se exportarían
en esa resolución.
Esta operación rápida de cambio de resolución afecta levemente a la calidad de las
variables si el cambio en resolución es pequeño, pero puede ser grave si el cambio
de resolución es significativo (por ejemplo, de 0:00:03 a 0:00:30), porque el algoritmo
de interpolación que utiliza GRASS por defecto, llamado Vecino Más Próximo (Nea-
rest Neighbor) funciona de modo muy simple (para ganar velocidad), sesgando la
información: imagina cuatro celdas con los valores de altitud (observa que se trata
de una variable contínua) 1, 2, 3 y 4, teniendo en cuenta que la resolución espacial
es 0:00:03:
12
34
Al cambiar la resolución a 0:00:06, estas celdas se transformarían en una sola.
Cuando GRASS utiliza el interpolador Nearest Neighbor, el valor de la nueva celda
sería igual al de la celda superior izquierda (porque es la “vecina más próxima” se-
gún GRASS lee el mapa para cambiar la resolución) del conjunto de cuatro celdas,
que en este caso es 1.
caso es recomendable disminuir la densidad de puntos dentro del polígono, bien ha-
ciendo un muestreo aleatorio dentro del mismo (CASO 2), o un muestreo sistemático
(CASO 3).
El modo más rápido de crear un archivo de texto con los campos separados por ta-
bulaciones es copiar y pegar los datos directamente desde una hoja de cálculo al
archivo de texto plano en blanco:
arrastra hacia abajo la función ALEATORIO, hasta que todos los registros ten-
ga su valor aleatorio.
5. La función aleatorio tiene un comportamiento incómodo: sus valores se actua-
lizan cada vez que modificamos algo en la hoja de cálculo; para fijarlos,
cópialos y pégalos en la columna de la derecha usando la opción Pegado Es-
pecial, desmarcando Pegar todo y Fórmulas, y marcando Números. Elimina la
columna original en la que insertaste la función ALEATORIO.
6. Selecciona todas las columnas con datos, y en el menú Datos, selecciona Or-
denar.
○ Pestaña Opciones:
■ El intervalo contiene etiquetas de columnas = marcado
○ Pestaña Ordenar por criterios:
■ Ordenar según = Columna F
○ Aceptar
7. En la columna A (cabecera #id) crea números correlativos para identificar
cada registro.
8. Rellena la columna abundance con valores 1.
9. Elimina la columna F, en la que están los valores aleatorios.
10. Separaremos el conjunto de datos en dos conjuntos, uno con el 60%, y otro
con el 40% (111 y 75 respectivamente). En la última columna, hasta el registro
112, escribe calibrado. Desde el registro 113 hasta el final, en la misma co-
lumna escribe evaluación.
11. Cambia el nombre de la hoja de TALLER a LNIGRICANS.
12. Copia las cinco columnas (olvida por el momento esa en la que has escrito
calibrado y evaluación; más adelante veremos que significado y utilidad tiene
todo esto) desde la cabecera hasta el registro 112 y pégalos en el documento
de texto Linaria_nigricans.txt. Ahora puedes guardar el archivo de presencias
de que has creado, y la hoja de cálculo.
4.3.1 Bioclim
Para cada una de las variables se define una envuelta bioclimática cuadrangular
para la especie, calculando la media y la desviación estándar de los valores de los
registros de presencia sobre la variable, asumiendo una distribución normal.
De este modo, para cada variable se tiene en cuenta una envuelta bioclimática ópti-
ma para la especie, representada por el intervalo [m-c*s, m+c*s], donde m es la
media, s es la desviación estándar, y c un parámetro que define qué porcentaje del
rango de desviación estándar queda dentro de la envuelta. Por defecto está estable-
cido en 0.674 que corresponde con un 50% del rango de la desviación estándar,
mientras que un valor 3.000 corresponde con un 99.7% del rango de desviación es-
tándar incluido dentro de la envuelta óptima. Este parámetro, por tanto, controla la
extensión de la envuelta bioclimática óptima.
Adicionalmente se define una envuelta subóptima, a partir de los valores máximo y
mínimo de los puntos de presencia sobre la variable.
Cada celda del mapa de idoneidad resultante se clasifica según los siguientes crite-
rios:
● Apropiada para la especie (celdas en color verde): los valores de todas las
variables quedan dentro de la envuelta bioclimática óptima para la especie.
● Marginalmente apropiada para la especie (celdas en color rojo): los valores
de al menos una de las variables quedan fuera de la envuelta bioclimática óp-
tima, pero dentro de la subóptima.
● No apropiada (celdas en color azul): los valores de al menos una de las va-
riables quedan fuera de la envuelta subóptima para la especie.
● Number of random eigenvalues: entero, dentro del rango [1, 1000], con un
valor típico de 8. Es el número de veces que el algoritmo baraja al azar las fi-
las de la matriz de variables para obtener un valor propio aleatorio, que se
usa como referencia para la selección del número de componentes a retener.
● Number of standard deviations: real, dentro del rango [-10, 10], con un valor
típico de 2.0. Cuando los valores propios de la matriz barajada al azar se su-
man, este número es añadido a la media de todos los valores propios.
Cualquier componente cuyo valor propio está por encima de el umbral esta-
blecido se retiene.
● Minimum number of components in model: entero, dentro del rango [1, 20],
con un valor típico de 3. Determina el número mínimo de componentes en el
modelo.
El mapa de idoneidad resultante muestra un gradiente de colores, indicando los más
cálidos zonas idóneas para la especie.
nes. Mide la distancia entre los valores de las variables de la celda y los valores de
las variables del punto de presencia más cercano, expresándola como un índice de
similaridad.
Distancia de Chebyshev (http://en.wikipedia.org/wiki/Chebyshev_distance): Es la
máxima distancia posible entre dos puntos, en cualquier dimensión de los ejes de
coordenadas. Se denomina también “distancia del tablero de ajedrez” (ver Figura 5).
La siguiente figura es bastante explicativa al respecto; la distancia del rey a las es-
quinas es la misma que al lado del tablero al que pertenece la esquina.
4.3.5 GARP
GARP (Genetic Algorithm for Rule Set Prediction) es un algoritmo genético que ge-
nera modelos que describen las condiciones ecológicas bajo las que la especie
puede mantener poblaciones viables.
Un algoritmo genético es un método de inteligencia artificial inspirado en el concepto
de la evolución guiada por la selección natural. La idea clave es tratar de desarrollar
soluciones a los problemas utilizando el mismo mecanismo que los organismos vivos
utilizan para evolucionar. Con este objetivo se crea un conjunto de soluciones poten-
ciales y alternativas a un problema (por ejemplo, distintos genotipos generados por
mutaciones), y posteriormente, y de modo iterativo, se modifica y testea este conjun-
to, hasta que una solución óptima se encuentra (supervivencia del genotipo más
apropiado al ambiente).
GARP busca iterativamente correlaciones no aleatorias entre la presencia de las es-
pecies y las variables ambientales, utilizando distintos tipos de reglas. Cada regla
implementa un método diferente de construir modelos de nicho ecológico. Las reglas
son atómica, rango regresión logística, envuelta bioclimática, y envuelta bioclimática
inversa (atomic, range, logistic regression, bioclimatic envelope y negative bioclima-
tic envelope).
Una regla atómica es una conjunción de valores únicos de las variables ambientales.
Un ejemplo de regla atómica en lenguaje natural sería: Si la temperatura media
anual es igual a 19.5ºC y la precipitación anual es igual a 380mm, entonces la espe-
cie está presente.
Una regla de rango es una generalización de la regla Bioclim. Según esta regla, de-
terminadas variables pueden considerarse irrelevantes, y tener cualquier valor. La
regla de rango permite negación, para aplicarse fuera de determinados rangos. Por
ejemplo: Si la temperatura media anual no es mayor de 23ºC y es menor o igual que
26ºC, entonces la especie está presente.
Una regresión logística es una forma de ecuación de regresión en la que el resultado
es transformado en una probabilidad. La regla de regresión logística es una adapta-
ción de los modelos de regresión logística para funcionar como reglas. Resulta útil
cuando la especie tiene una respuesta ecológica basada en los gradientes ambien-
tales. La regresión logística proporciona la probabilidad p de que una regla sea
aplicada. p se calcula según la expresión p=1/(1-e-y), donde y es la suma de la ecua-
ción lineal que representa la regla a+(a*a)+b+(b*b)+...+n+(n*n), donde a...n
representa las variables y sus coeficientes. Si p es mayor de 0.75, entonces la regla
logística predice presencia.
Una regla de envuelta bioclimática es una conjunción de rangos de todas las varia-
bles tenidas en consideración. Un ejemplo de regla de envuelta bioclimática sería: Si
la temperatura media anual está entre 16ºC y 19ºC, y la precipitación anual está en-
tre 300 y 410mm, entonces la especie está presente.
Una regla de envuelta bioclimática negativa es la inversa a la anterior, definiendo
rangos de ausencia.
En GARP, una población es un conjunto de reglas individuales para predecir la pre-
sencia o ausencia de la especie en una celda. Las reglas están compuestas de
cromosomas, cada uno de los cuales codifica los coeficientes de las distintas varia-
bles. El éxito de cada individuo de la población se mide en cada iteración
(generación) según la significación estadística de la regla prediciendo presencia y
ausencia, determinado su éxito reproductivo. La siguiente generación está formada
por los individuos (reglas) con mayor éxito reproductivo. Este procedimiento se repite
haste que un criterio de parada es alcanzado. GARP almacena en un archivo las
mejores reglas, que forman el conjunto de soluciones al problema.
Estas reglas son aplicadas a cada celda del territorio (una sola regla o muchas por
celda), seleccionando la de mayor perspectiva de éxito para determinar la presencia
o ausencia de la especie. El resultado es un mapa que indica las áreas apropiadas
(presencia), no apropiadas (ausencia) y sin datos (sus valores quedaron fuera de las
reglas seleccionadas). Al repetir el proceso en múltiples ocasiones, se observa que
los resultados nunca coinciden; el sistema no es determinista, y cada modelo es di-
ferente (porque GARP introduce mutación estocástica de generación a generación).
Un único modelo por tanto suele ser poco significativo, y el tratamiento más actual
es el ensamblado de múltiples resultados (sumándolos) para formar un mapa predic-
tivo.
En la versión que utilizamos de OpenModeller, hay cuatro implementaciones distin-
tas de este algoritmo, dos de ellas basadas en el software Desktop Garp, y otras
dos, nueva implementaciones del código exclusivas para OpenModeller, que consi-
gue resultados mejor ajustados.
GARP (single run) – DesktopGARP implementation: genera una única simulación
binaria de distribución, que solo indica presencia y ausencia, aunque en ocasiones
podemos encontrar áreas sin predicción, si sus valores quedaron fuera del rango de
la regla que define el modelo.
Los parámetros de esta implementación son:
● Max generations: valor entero, en el rango [1, oo], con un valor típico de 400.
Determina el número de generaciones a lo largo de las cuales evoluciona la
regla de clasificación.
● Convergence limit: valor real, en el rango [0, 1], con un valor típico de 0.01.
Es la medida de cuanto cambia un set de reglas de una iteración a otra. En el
tiempo el límite de convergencia decrece, y decrece más rápido cuando el set
de reglas se vuelve estable. Es necesario configurarlo con cuidado, porque
pude ocasionar largos tiempos de cálculo y modelos muy sobreajustados.
● Population size: valor entero, en el rango [1, 500], con un valor típico de 50.
Determina el tamaño del conjunto de reglas.
● Resamples: valor entero, en el rango [1, 100000], con un valor típico de
2500.
de modelado.
● Hard Omission Threshold: valor real, en el rango [0, 100]. Determina el error
de omisión máximo aceptable (error que consiste en dejar fuera del área de
presencia del modelo un registro de presencia de la especie) en porcentaje
del número de registros de presencia. Si se establece en 100, se permiten
modelos con cualquier valor de omisión.
● Models Under Omissión Threshold: valor entero, en el rango [0, 10000],
con un valor típico de 20. Determina el número de modelos que deben quedar
por debajo del Hard Omission Threshold. Debería ser inferior al número total
de “Runs”, pero no está configurado de este modo por defecto (desconozco el
motivo, tal vez un error).
● Commission Threshold: valor real, en el rango [0, 100], y valor típico 0.5.
Determina el porcentaje de modelos de distribución que deben retenerse te-
niendo en cuenta el error de comisión (error de incluir en el área de presencia
del modelos puntos con ausencia de la especie. En este caso se sustituyen
ausencia por puntos aleatorios).
● Commission Sample Size: valor entero, en el rango [1, oo], con valor típico
10000. Determina el tamaño de la muestra utilizada para calcular el error de
comisión.
GARP with best subsets – OpenModeller implementation: Igual a la anterior,
pero utiliza un algoritmo mejorado para obtener resultados más precisos.
Las Support Vector Machines son métodos de aprendizaje artificial utilizados para
clasificación. Teniendo en cuenta el conjunto de datos de entrada como dos vectores
en un espacio de n-dimensiones, una SVM tratará de construir un hiperplano (objeto
geométrico mínimo para dividir un espacio en dos) que maximice las diferencias en-
tre los dos vectores. Los objetos se clasifican según su distancia al hiperplano.
Cuanto mayor es la distancia entre el objeto y el hiperplano, más robusta es la clasi-
ficación.
En el ejemplo anterior hemos utilizado para evaluar el modelo los mismos registros
de presencia con los que lo calibramos; esta técnica de evaluación, que se llama re-
sustitución, siempre proporciona resultados muy optimistas que nos pueden llevar
a error (como ejemplo, el valor de sensibilidad del modelo b en la Figura 9, o los va-
lores de BIOCLIM y GARP desktop en el caso de estudio). La resustitución no se
considera una técnica válida para evaluar modelos, y la alternativa habitual es la
partición aleatoria de datos (data-splitting). El conjunto de presencias se divide, al
azar, en dos grupos, uno de calibrado y otro de evaluación, con una proporción va-
riable entre 0.5 y 0.8, aproximadamente, y según el número de presencias
disponibles (cuanto mayor es el número de presencias, más grande puede ser el
conjunto de evaluación).
En la Figura 10 siguiente se representa un ejemplo de dos modelos calibrados con
los registros de presencia (verde) que se evaluarán con los registros de evaluación
(azul). Los registros de evaluación no se han utilizado para calibrar el modelo.
delOutputs/L_nigricans_binarios_90m/Bioclim/Linaria_nigricans_pro-
jection.tif
■ Name for output raster map = BIOCLI
● Run
○ Pestaña Required:
■ Raster file to be imported =
C:/CURSO_MODELOS/RESULTADOS/modelOutputs/L_nigricans_bi-
narios_90m/GARP_(single_run)_-
_DesktopGARP_implementation/Linaria_nigricans_projection.tif
■ Name for output raster map = GARPDK
○ Run
○ Pestaña Required:
■ Raster file to be imported =
C:/CURSO_MODELOS/RESULTADOS/modelOutputs/L_nigricans_bi-
narios_90m/GARP_(single_run)_-
_new_openModeller_implementation/Linaria_nigricans_projection.tif
■ Name for output raster map = GARPOM
○ Run
○ Cierra r.in.gdal
3. Adaptación de la región de trabajo a los modelos: teclea y ejecuta en la línea
de comandos:
g.region rast=BIOCLI
4. El modelo Bioclim importado a GRASS presenta tres valores: 0 para zonas no
aptas, 50 para zonas marginalmente aptas, y 100 para zonas completamente
aptas. No distinguiremos entre los valores 50 y 100. Los modelos binarios
GARP importados desde OpenModeller tienen valores 0 en las áreas clasifi-
cadas como aptas, y valores 100 en las áreas clasificadas como no aptas.
Ahora recodificaremos los valores de presencia a 1: GIS Manager > Raster >
Change categorie values and labels > Recode interactively, para abrir la ven-
tana Interactive rules entry.
○ Map to recode = BIOCLI
○ Recoded map = LNBIOCLI
○ En la ventana escribe:
100:100:1:1
50:50:1:1
0:0:0:0
○ Apply
○ Aceptar en la ventana de error (ignórala, todo ha salido bien)
○ Map to recode = GARPDK
○ Recoded map = LNGARPDK
○ En la ventana escribe:
100:100:1:1
0:0:0:0
○ Apply
○ Aceptar
○ Map to recode = GARPOM
○ Recoded map = LNGARPOM
○ En la ventana mantén los valores anteriores
○ Apply
○ Ok
5. Borra los mapas que ya no nos sirven, tecleando y ejecutando en la línea de
comandos:
g.remove BIOCLI,GARPDK,GARPOM
6. Ahora importaremos los puntos de evaluación a GRASS:
○ En la carpeta C:\CURSO_MODELOS\GEODATOS\PRESENCIAS está la
hoja de cálculo PRESENCIAS.ods; ábrela. En la hoja LNIGRICANS debes
tener diferenciados los registros de calibrado y evaluación.
■ Crea una nueva hoja (puedes nombrarla EVALUACION_Ln), pega los
registros de evaluación en ella, elimina las dos últimas columnas, y a
las restantes ponles de nombre de campo ID, ESPECIE, LONGITUD y
LATITUD respectivamente.
■ Crea una nueva columna a la derecha, nómbrala CASO, y rellena las
celdas con el valor de texto “presencia”.
■ Crea tres columnas nuevas con los nombres LNBIOCLI, LNGARPDK y
LNGARPOM, y rellena todas las celdas con valores 0,0.
■ Guarda el resultado tal cuál está (Archivo > Guardar)
■ Guarda el resultado con el nombre EVALUACION_Ln, en formato dBA-
SE (.dbf), en la carpeta
C:\CURSO_MODELOS\GEODATOS\GRASSDB\ALMERIA_latlong\MO
DELOS\dbf.
○ Cierra el fichero, vuelve a abrirlo (menú Archivo, Documentos recientes),
y en el nombre del primer campo, sustituye el 2 por un 0. Ahora guárdalo y
cierra Calc.
○ Para transformar los puntos de evaluación en un archivo vectorial de
GRASS: GIS Manager > Vector > Generate points > Generate points from
database, para abrir el módulo v.in.db.
■ Input table name = EVALUACION_Ln
■ Driver name = dbf
■ Name of column containing x coordinate = LONGITUD
■ Name of column containing y coordinate = LATITUD
En los ejemplos anteriores, “sabemos” que los modelos están identificando como ap-
tas áreas que posiblemente no lo son. ¿de qué modo podemos evaluar esta
circunstancia?. Una posibilidad es disponer de registros de ausencia de la especie.
Con la inclusión de las ausencias, ahora aparece un nuevo tipo de acierto: dejar fue-
ra del modelo un registro de ausencia; y ya es posible medir el error de comisión:
incluir registros de ausencia dentro del área de presencia potencial del modelo(error
de comisión).
En este momento podemos resumir los posibles tipos de aciertos y errores de un
modelo binario en lo que se denomina matriz de confusión (ver Tabla 3):
Datos reales
(registros de presencia
y ausencia)
presencia ausencia
Datos simulados presencia A B
(modelo de distribución) ausencia C D
Tabla 3: Matriz de confusión, que resume los errores (en gris) y los aciertos posibles al evaluar un
modelo de distribución usando presencias y ausencias
Nota que los términos que indican algún tipo de error están marcados en gris
En la matriz de confusión los términos son:
● A: presencias correctamente clasificadas por el modelo.
● B: ausencias erróneamente clasificadas por el modelo como presencias; falso
positivo, o error de comisión.
● C: presencias erróneamente clasificadas por el modelo como ausencias; falso
negativo o error de omisión.
● D: ausencias correctamente clasificadas por el modelo.
● N: suma de todos lo casos
NOTA: En la matriz de confusión, además de valores de conteo, se pueden utilizar
proporciones.
¿Qué utilidad tiene esta matriz de confusión?: A partir de la matriz de confusión pue-
den calcularse diversas medidas de precisión de los modelos. Algunas, como la
sensibilidad (A/(A+C)) o la especificidad (capacidad de discriminar ausencias; D/
(B+D)), solo hacen uso de dos de los términos de la matriz, mientras que hay algu-
nas que utilizan los cuatro términos.
Figura 11: Tres modelos generados con distintos algoritmos mostrando registros de calibrado, eva-
luación y ausencias
Tabla 4: Matrices de confusión de los modelos de la Figura 11; pres. = presencia; aus. = ausencia.
Figura 12: Resultados de evaluación de los modelos BIOCLIM, GARPDK y GARPOM utilizando au-
sencias.
Los modelos LNBIOCLI y LNGARPOM tienen la misma sensibilidad (en este caso),
es decir, clasifican presencias con la misma precisión. Sin embargo, LNGARPOM
presenta una especificidad superior, es decir, clasifica las ausencias mejor que LN-
BIOCLI. Por tanto, su índice Kappa es mucho mejor. Tal y como sospechábamos
desde el principio, LNGARPOM es el modelo mejor ajustado de los tres.
Sin embargo hay una cuestión a tener en cuenta, y es importante: el valor de Kappa
(y el de cualquier otra medida de precisión) depende de la localización espacial de
los registros de presencia y ausencia. Las presencias tienen un carácter inequívoco
(salvo error de determinación); la especie ha sido observada, y no hay duda al res-
pecto. Sin embargo, la localización de las ausencias depende del criterio del
investigador: pueden determinarse ausencias en áreas adyacentes a las poblaciones
conocidas, en áreas alejadas, en la puerta de casa o en mitad del Mediterráneo...y
cada uno de estos criterios va a condicionar el valor de kappa. Además un registro
de ausencia puede ser realmente una falsa ausencia si se da alguno de los siguien-
tes casos:
● La planta estaba en el lugar, pero no fue detectada, porque era poco aparen-
te, o aún no había germinado;
● El hábitat es apropiado, pero una barrera o limitación dispersiva ha impedido
que la planta llegue allí;
● Se ha extinguido recientemente por un suceso ambiental estocástico, etc...
Los modelos de distribución con los que estamos trabajando no utilizan registros de
ausencia durante la fase de calibrado, por lo que “diseñar” muestras de ausencia
para evaluarlos supone un trabajo extra que no redunda en la precisión de los mode-
los, y este “diseño” está sujeto a los errores que anteriormente hemos comentado.
Llegados a este punto, podemos obviar los problemas intrínsecos de las ausencias y
utilizarlas teniendo en cuenta las posibles consecuencias, o podemos olvidarnos de
ellas, cambiar de concepto y utilizar puntos aleatorios como sustitutos de las au-
sencias. Los puntos aleatorios se disponen al azar sobre el territorio, y permiten
evaluar hasta que punto un modelo puede distinguir entre un patrón de distribución
real (representado por los puntos de presencia del conjunto de evaluación) de un pa-
trón de distribución aleatorio (representado por los puntos aleatorios). Los puntos
aleatorios tienen la ventaja de que no existen problemas conceptuales ni posibles
errores relacionados con ellos; pueden estar en cualquier parte del área de trabajo, y
todos son igual de válidos.
El reemplazo de registros de ausencia por puntos aleatorios exige redefinir algunos
conceptos, como la matriz de confusión descrita en la Tabla 3 (ver Tabla 6). Notarás
que el término B, que anteriormente representaba un error (error de comisión), ahora
ya no lo representa (aunque tampoco es un acierto). Esto supondrá un cambio en el
modo de hacer los cálculos, e interpretar los resultados. Trataremos de aclarar esto
a continuación.
Datos reales
(registros de presencia
y puntos aleatorios)
presencia aleatorio
Datos simulados presencia A B
(modelo de distribución) ausencia C D
Tabla 6: Matriz de confusión modificada para trabajar con puntos aleatorios en lugar de ausencias.
Tabla 7: Evaluación del modelo de la Figura 13 según dos grupos distintos de puntos aleatorios.
Sí, el mismo modelo ofrece resultados muy diferentes, de hecho, “más” diferentes
que los que obtendríamos utilizando ausencias, porque independientemente del cri-
terio utilizado para diseñarlas, estas nunca caerían dentro del área de distribución
conocida de la especie.
La solución idónea es generar muchos puntos aleatorios (cientos, o miles, según el
tamaño de área de trabajo), y computar los valores de evaluación cientos o miles de
veces con subgrupos de puntos aleatorios (con el mismo tamaño que la muestra de
presencias de evaluación), para ofrecer como resultado una media y una dispersión
de los valores de evaluación.
Veamos como ejemplo la Figura 14; para el modelo de la imagen, si tomamos los
puntos aleatorios en grupos del mismo tamaño que el conjunto de puntos de presen-
cia, los casos posibles son los establecidos en la Figura 15.
Figura 15: Valores posibles de evaluación que pueden obtenerse en el caso de la Figura 14.
Puedes ver que el valor máximo posible de Kappa es 0.6 (debido al error de omisión
del modelo), y el menor, -0.4, queda muy por debajo de lo recomendable. Aunque
estos son los casos posibles, la media de Kappa (que estará comprendida entre -0.4
y 0.6) y su desviación estándar estarán determinadas por la relación entre el área de
trabajo y el área apta según el modelo, la distribución de los puntos aleatorios, la se-
lección de grupos de aleatorios, y el número de iteraciones de cálculo. Si utilizamos
esta técnica para comparar modelos, es necesario que en todos se efectúe el cálcu-
lo bajo las mismas condiciones.
A continuación realizaremos un ejercicio práctico probando esta aproximación.
g.remove ALEATORIOS_1
Ahora dispones de un archivo vectorial con unos 10000 puntos aleatorios cubriendo
la provincia de Almería. Los registros de presencia ya los tienes en el archivo vecto-
rial PRESENCIAS. Estas presencias ya llevan asociado su valor para cada uno de
los tres modelos, por lo que no es necesario repetir la consulta. Los puntos aleato-
rios aún no los tienen, pero antes de hacer la consulta, hay que añadirles las
columnas correspondientes con los nombres de cada uno de los modelos. En la car-
peta C:\CURSO_MODELOS\GEODATOS\GRASSDB\ALMERIA_latlong\MODELOS\
dbf está el archivo ALEATORIOS.dbf; ábrelo con Calc. Elimina las columnas
value,N,11,0 y label,C,17, y añade tres columnas llamándolas LNBIOCLI,N,20,2, LN-
GARPDK,N,20,2 y LNGARPOM,N,20,2. Rellena todas las celdas de estas nuevas
columnas con valores 0 (cero), y guarda el fichero.
Ahora utilizaremos este archivo vectorial consultar los valores de los puntos aleato-
rios sobre los modelos.
○ GIS Manager > Vector > Update point attributes from raster > Sample ras-
ter map at point locations, para abrir el módulo v.what.rast.
■ Name of input vector ... = ALEATORIOS
■ Name of existing raster ... = LNBIOCLI
■ Column name = LNBIOCLI
■ Run; ten un poco de paciencia, ¡son muchos puntos!;
■ Name of existing raster ... = LNGARPDK
■ Column name = LNGARPDK
■ Run
■ Name of existing raster ... = LNGARPOM
■ Column name = LNGARPOM
■ Run
■ Cierra v.what.rast.
Para preparar los datos para el remuestreo de aleatorios y cálculo de kappa:
1. Abre con Calc los ficheros ALEATORIOS.dbf y PRESENCIAS.dbf, que están
en C:\CURSO_MODELOS\GEODATOS\GRASSDB\ALMERIA_latlong\ MO-
DELOS\dbf.
2. En la carpeta C:\CURSO_MODELOS\EVALUACION\KAPPA crea dos archi-
vos de texto vacíos; uno llámalo PRESENCIAS.txt y otro, ALEATORIOS.txt.
(¡NO BORRES LOS DEMÁS ARCHIVOS QUE HAY EN LA CARPETA!).
3. Abre PRESENCIAS.txt con Notepad++; pega en él los valores de las colum-
nas LNBIOCLI,N,20,6, LNGARPDK,N,19,2 y LNGARPOM,N,19,2 de la hoja
de cálculo PRESENCIAS, y guárdalo. Debe quedar así:
0 0 0
1 1 1
0 1 1
...
BIOCLIM
GARPDK
GARPOM
entre ellos. Debes introducir sucesivamente, según el programa lo pida, los números
correspondiente a los modelos que quieres evaluar, en orden de izquierda a dere-
cha, tal y como están representados en el gráfico.
El programa almacena los resultados en C:\CURSO_MODELOS\EVALUACION\
KAPPA, y se componen de:
● Un archivo de texto llamado RESULTADOS_KAPPA.txt, que guarda un resu-
men de los resultados de la ejecución. Los valores correspondientes a cada
modelo están en el mismo orden en el que se introdujeron las columnas en
los archivos PRESENCIAS.txt y ALEATORIOS.txt. Los parámetros que mues-
tra este archivo son:
○ Nombre de la especie
○ Nombres de los modelos evaluados
○ Número de presencias
○ Número de puntos aleatorios
○ Iteraciones computadas
○ Kappa medio: este es el valor más importante
○ Desviación estándar de Kappa
○ Kappa máximo: no es muy relevante, porque puede darse en un solo caso
○ Kappa mínimo: tiene el mismo grado de significación que el anterior
○ Sensibilidad: es un valor importante, pro no define cual es el mejor modelo
○ Especificidad: importante; cuanto mayor es, menor es el error de comisión
del modelo
○ Desviación estándar de la especificidad
○ Tabla ANOVA comparando todos los modelos entre sí
○ Primer modelo: el primero de los modelos que seleccionaste para una
comparación
○ Segundo modelo: el segundo de los modelos que seleccionaste para una
comparación
○ Tabla ANOVA comparando los dos modelos anteriores
● Una imagen con el gráfico de cajas comparando los valores Kappa de los dis-
tintos modelos. El gráfico correspondiente a cada modelo indica, de arriba a
abajo: outliers, máximo, 3er cuartil, límite de confianza superior para la media-
na, mediana, límite de confianza inferior para la mediana, 1er cuartil, mínimo,
outliers.
NOTA SOBRE EL PROGRAMA “KAPPA”: Para evaluar diferencias significativas
entre los valores kappa de los distintos modelos, el programa aplica un primer test
ANOVA de medidas repetidas, usando todos los modelos, con el algoritmo como fac-
tor. Si el estadístico F es menor que el p-valor, podemos concluir que no hay
diferencias significativas entre los valores Kappa de los distintos modelos.
Como mejor modelo seleccionaríamos aquel con Kappa más alto.
Una vez examinados los resultados, cierra Octave tecleando exit en la línea de co-
mandos.
Figura 16: Valores de evaluación del modelo de la Figura 15, teniendo en cuenta todos los posibles
umbrales de corte.
Observa que en lugar de la especificidad, tal y como hemos calculado hasta ahora,
calculamos 1-especificidad, que es la fracción de falsos positivos.
La sensibilidad (fracción de aciertos) va disminuyendo progresivamente, según el
umbral de corte se hace más alto; cada vez más presencias quedan fuera del área
idónea según el modelo. Progresivamente disminuye también el número de ausen-
cias dentro de área idónea (de ahí la disminución de 1-especificidad). Ambas
circunstancias provocan el comportamiento de kappa: crece hasta que el umbral de
corte es 3, y vuelve a decrecer hasta que el umbral se hace igual a 5.
Si en un gráfico representamos los valores de sensibilidad en el eje y, y los de 1-es-
pecificidad en el eje x, obtenemos un gráfico como el de la Figura 17:
Si en este gráfico unimos los puntos mediante líneas, y trazamos la diagonal corres-
pondiente obtenemos una curva que delimita un área bajo ella, tal y como puedes
observar en la Figura 18:
El resultado es una curva ROC (de “Receiver Operating Characteristic”), cuyo área
inferior (AUC = Area Under Curve) indica la probabilidad de que el modelo, ante una
presencia y una ausencia escogidas al azar, clasifique con un valor de idoneidad
mayor a la presencia que a la ausencia. En este caso, suponiendo que el AUC de
esta curva fuera 0.74, para el modelo evaluado, de cada 100 veces que sean selec-
cionadas al azar una presencia y una ausencia, en 74 ocasiones dará un valor
mayor de idoneidad al registro de presencia.
El valor de AUC oscila entre 0.5 (valor de la diagonal dibujada en negro) y 1 (vértices
de la curva cercanos a la esquina superior izquierda). Los valores cercanos a 0.5 in-
dican que el modelo no puede distinguir presencias de ausencias más allá de lo
esperado por azar (“mal modelo”), mientras que valores cercanos a 1 indican una
discriminación perfecta entre casos de presencia y ausencia. De modo general se
consideran malos los valores por debajo de 0.70 (este varía según los autores).
Cuando en lugar de ausencias se utilizan puntos aleatorios, la interpretación de AUC
cambia ligeramente, tomándose como la probabilidad de que el modelo discrimine
correctamente entre una presencia y un punto aleatorio tomados al azar. Como en el
caso de cálculo de Kappa con puntos aleatorios, es necesario generar una cantidad
importante de ellos, y realizar técnicas de remuestreo para calcular un valor prome-
dio de AUC y una desviación estándar, que caracterizarán la precisión del modelo
evaluado.
En este contexto, el máximo valor de AUC será siempre menor que 1, porque los
puntos aleatorios pueden caer dentro de áreas con alta idoneidad de hábitat. Si la
distribución de la especie cubre una proporción a de las celdas del área de trabajo,
entonces el valor máximo de AUC será 1-a/2. Pero el valor a es desconocido (no co-
nocemos la distribución real de la especie), por lo que no podemos saber como de
óptimo es un valor de AUC. Sin embargo, sí que podemos utilizar los valores AUC
obtenidos mediante este método para distinguir entre modelos mejor o peor ajusta-
dos a los registros de evaluación.
Aunque AUC se ha utilizado muy frecuentemente como medida de precisión de mo-
delos de distribución, algunos autores le encuentran ciertas desventajas a este
método:
● La curva ROC resume la precisión del modelo teniendo en cuenta regiones
del espacio ROC en los que el usuario raramente trabaja, como los extremos
de la curva, en los que las tasas de error son elevadas.
● Pondera por igual los errores de comisión y omisión.
● No proporciona información acerca de la distribución espacial de los errores.
● Las áreas de trabajo amplias resultan en valores de AUC más altos. La preci-
sión de distintos modelos de la misma especie no puede hacerse si las áreas
de trabajo difieren en extensión.
● No pueden compararse modelos de distintas especies.
● Los registros de ausencia tienen un alto grado de incertidumbre, y tienen gran
importancia en el cálculo de AUC.
La crítica más contundente procede de Lobo et al. (2007). En este trabajo se conclu-
ye que AUC proporciona información sobre lo generalista o especialista que es una
especie teniendo en cuenta el rango de variables predictoras utilizadas, pero no pro-
porciona información sobre el ajuste del modelo.
Sin embargo los mismos autores especifican que siempre que se trate de una misma
especie y el mismo área de trabajo, AUC permite distinguir modelos por su grado de
ajuste con los datos de evaluación. Por el momento no se ha propuesto ninguna al-
ternativa sólida a este método para evaluar modelos de distribución.
Caso práctico: Cálculo de la curva ROC para los modelos de Linaria nigri-
cans
A continuación vamos a realizar un proceso que es tan tedioso como valioso: evalua-
remos mediante la curva ROC nueve modelos de distribución de alta resolución de
la especie Linaria nigricans, para establecer cual de ellos se ajusta mejor a la distri-
bución espacial de la especie.
En primer lugar comprobaremos si OpenModeller ha terminado de ejecutar todos los
modelos que le encargamos al comienzo de la sección dedicada a la evaluación de
modelos. Para evaluar los modelos que hemos generado es necesario seguir estos
pasos:
1. Añadir las columnas con los nombres de los nuevos modelos a los archivos
vectoriales PRESENCIAS y ALEATORIOS del mapset MODELOS.
○ En C:\CURSO_MODELOS\GEODATOS\GRASSDB\ALMERIA_latlong\
MODELOS\dbf están los archivos ALEATORIOS.dbf y PRESENCIAS.dbf.
Ábrelos con Calc, y añádeles a ambos los siguientes nombres de colum-
na:
■ CSM,N,20,2 (Climate Space Model)
CSM
ES
EDEUC
EDCHE
EDMAH
EDMAN
GARPDK
GARPOM
SVM
● Maximización de Kappa
● Idoneidad media de los registros de presencia
● Maximización de la suma sensibilidad-especificidad
● Métodos basados en la curva ROC
La complejidad de cálculo de algunos métodos no garantiza los mejores resultados;
un método sencillo que proporciona resultados, que al menos son tan certeros como
los obtenidos mediante métodos más complejos, es el segundo de la lista: estable-
cer el umbral de corte en el valor medio de los registros de presencia (hablando
siempre de registros de evaluación, no utilizados para calibrar los modelos).
Sin embargo la adopción de un criterio concreto depende de la utilidad que se va a
dar al modelo. Suponiendo que trabajamos en el diseño de una reserva para una es-
pecie amenazada en un área remota sobre la que no podemos hacer prospecciones,
es deseable un umbral “generoso”, que garantice una alta sensibilidad (inclusión de
muchos de los registros de presencia), para no dejar fuera de la reserva poblaciones
potenciales.
Trabajando con especies invasoras, se da el mismo caso, siendo necesario pronosti-
car nuevas áreas de expansión, para lo que utilizaremos un criterio relajado.
Un caso contrario puede ser el diseño de una prospección de campo para encontrar
poblaciones de una especie amenazada. Como interesa optimizar el tiempo de
muestreo, lo indicado es utilizar un criterio restrictivo, para reducir el área total de
búsqueda.
Similar es la utilización de un modelo de distribución para estimar un tamaño pobla-
cional; si no utilizamos un criterio restrictivo, estaremos sobreestimando el tamaño
poblacional.
En todo caso, independientemente del criterio, siempre es importante describir el
Figura 19: Comparación de dos criterios de selección de umbral de corte para transformar modelos
continuos en binarios. En gris se destacan los valores del modelo que mejor valor AUC obtuvo duran-
te la evaluación.
Figura 20: Transformación del modelo continuo EDMAN en binario según los
dos criterios comparados en la Figura 19.
Como puedes observar, para reducir la omisión del modelo binario un 15% se incre-
menta el área potencial en 71244 celdas (¡un 861%!). Es crucial ser cauto en la
elección del umbral de corte, sobre todo cuando se desconoce la biología propia de
la especie.
n:100:1:1
0:n:0:0
○ Apply
● Raster > Reports and statistics > Sum area by map and category, para abrir el
módulo r.report.
○ Raster map to report on = EDMAN_bin
○ k = marcado (para obtener el área en kilómetros cuadrados)
○ h = marcado (para obtener el área en hectáreas)
○ c = marcado (para obtener el número de celdas ocupadas)
○ Run
○ Cierra r.report.
Los resultados se mostraran en la ventana de salida, en formato texto. Los co
rrespondientes al área ocupada tienen el valor 1 en el campo description.
○ Neighborhood size = 5
○ Run
○ Cierra r.neighbors.
3. Para vectorizar EDMAN_bin_moda_5, es necesario transformar los valores 0
(cero) en Null de nuevo: Raster > Develop map > Null values, para abrir r.null.
○ Raster map for wich edit null file = EDMAN_bin_moda_5
○ List of cell values to be set to null = 0
○ Run
○ Cierra r.null.
4. Para vectorizar la capa: File > Map type conversions > Raster to vector, para
abrir r.to.vect.
○ Smooth corners of area features = marcado
○ Name of input raster map = EDMAN_76_moda_5
○ Name of output vector map = Linaria_nigricans_RECONOCIMIENTO
○ Feature type = area
○ Run
○ Cierra r.to.vect.
5. Para preparar una visualización sobre una imagen Landsat en color verdade-
ro, es necesario hacer la composición de color “fundiendo” varias bandas. En
GIS Manager pulsa el icono a la derecha de abrir nueva capa raster (se llama
Add RGB or HIS layer). Selecciónalo en la ventana de mapas activos, y en la
configuración de mapas activos establece la siguiente configuración (recuerda
que las bandas Landsat están en el mapset PERMANENT):
○ red = LSAT_3
○ green = LSAT_2
○ blue = LSAT_1
6. Añade a la vista la capa Linaria_nigricans_RECONOCIMIENTO, y juega con
los colores de línea, relleno (fill areas) y transparencia, para conseguir una
buena visualización de la cartografía.
Figura 21: Comparación entre las cartografías obtenidas usando un modelo de distribución como
base, y una cartografía real de gran precisión con la distribución conocida de Linaria nigricans.
7.1.5 Discusión
Los pasos serán: calcular las distancias a las poblaciones conocidas, reclasificar el
modelo de distancias para utilizar solo las mayores a 10 kilómetros, ensamblar los
modelos de distribución de la planta, y cruzar el ensamblado con la capa de distan-
cias.
1. Cálculo de las distancias a las poblaciones conocidas de Linaria nigricans.
○ Transformación el archivo vectorial Linaria_nigricans_REAL: GIS Manager
> File > Map type conversions > Vector to raster, para abrir el módulo v.to.-
rast.
■ Name of input vector map = Linaria_nigricans_REAL
■ Name for output raster map = Linaria_nigricans_REAL
■ Source of raster values = val
■ Type = area
■ Run
■ Cierra v.to.rast.
○ Mapa de distancias a las poblaciones: GIS Manager > Raster > Terrain
analysis > Cost surface, para abrir el diálogo r.cost.
■ Use the Knight's move = marcado
■ Name of raster map containing grid cell cost information = COSTE (en
el mapset PERMANENT)
■ Name for output raster map = DISTANCIA_LINARIA
Raster > Develop map > Null values, para abrir r.null.
■ Raster map for wich edit null file = NUEVAS_POBLACIONES_Ln
■ List of cell values to be set to null = 0
■ Run
■ Cierra r.null.
5. Preparación para visualización. Le pondremos a la capa NUEVAS_POBLA-
CIONES_Ln colores que nos faciliten identificar las áreas con mayor
consenso (mayor número de modelos predicen presencia): Raster > Manage
map colors > Color tables, para abrir el módulo r.colors.
○ Pestaña Required:
■ Name of input raster map = NUEVAS_POBLACIONES_Ln
○ Pestaña Colors:
■ Type of color table = gyr
○ Run
El mapa resultante puede superponerse con transparencia sobre una imagen satéli-
te, o mejor, sobre imágenes aéreas para preparar mapas guía sobre los que diseñar
prospecciones.
Figura 22: Ejemplo de un mapa diseñado para la búsqueda de nuevas poblaciones de la planta ame-
nazada Linaria nigricans.
7.2.2 Discusión
Este tipo de aplicaciones han sido probadas con éxito por varios investigadores, en-
tre los que nos incluimos. Lo habitual es disponer de un número limitado de
Figura 23: Aspecto de la hoja de cálculo para generar la primera parte del guión de GRASS
"BIODIVERSIDAD_POTENCIAL.txt"
r.in.gdal o input=C:/MODELOS/Adiantum_capillus_projection.tif
output=Adiantum_capillus
○ La siguiente operación es transformar los modelos en binarios, aplicándo-
les un umbral de corte con valor 50. Añadiremos las operaciones
necesarias al guión anterior, para realizarlas todas en una sola ejecución.
■ Crea en la carpeta CURSO_MODELOS\GUIONES un archivo de texto
con el siguiente contenido, y guárdalo como UMBRAL_CORTE.txt:
50:100:1:1
0:49:0:0
■ En la hoja de cálculo GUION_BIODIVERSIDAD_POTENCIAL.ods in-
serta una hoja nueva llamándola CORTE para crear la siguiente parte
del guión. Debe quedar como indica la Figura 24 (ten en cuenta los es-
pacios delante de output y rules):
Figura 24: Aspecto de la hoja de cálculo para crear la parte del guión que transforma los modelos
continuos en binarios.
r.series input=Adiant...mays_bin
output=BIODIVERSIDAD_POTENCIAL_ESPECIES method=sum
Figura 26: Comparación de mapas de biodiversidad: a) biodiversidad aparente, o número real de es-
pecies por km2; b) biodiversidad potencial, en número potencial de especies por km2: b) sumatorio de
idoneidad, para todas las especies modeladas.
Ahora que tienes los resultados, te propongo como ejercicio que selecciones crite-
rios de protección y diseñes una red de reservas lo más razonada posible.
7.3.2 Discusión
Tratar de generar una red de reservas a partir de los datos reales de presencia de
las especies da una imagen sesgada de la biodiversidad de Almería, y reduce enor-
memente el número de enclaves con posibilidades de ser incluidos en una red de
reservas. Por ejemplo, tomando como criterio un número mínimo de 20 especies
para que una celda entre a formar parte de la red, solo 11 km 2 serían protegidos, y
muy probablemente, gran cantidad de localidades con alta diversidad que no hayan
sido muestreadas quedarían fuera de la red. Además las reservas seleccionadas se-
rían puntuales, sin otra estructura espacial que la definida por un radio concreto
alrededor de la celda de presencia.
Utilizar la biodiversidad potencial como criterio, según el mismo umbral de 20 espe-
cies, supondría la protección de 316 km2, y permitiría trazar reservas con una
estructura espacial determinada, más acordes con la realidad del paisaje.
Sin embargo el criterio de número de especies excluye localidades con pocas espe-
cies que pueden ser importantes por su grado de amenaza o interés biogeográfico
ción privilegiada para que sus descendientes colonicen localidades en las que apa-
recen condiciones apropiadas; es lo que se denomina frente de avance.
7.4.4 Discusión
Se utilizan los mismos escenarios presente y futuro del ejercicio anterior, pero en su
versión de baja resolución (1000m). Las capas están en las carpetas
0:3:0:0
4:6:1:1
Con estos dos mapas que acabas de crear puedes medir las áreas de ocupación ac-
tuales y futuras, para calcular potenciales pérdidas o ganancias, y puedes componer
un mapa que muestre visualmente la información, cambiando colores y transparen-
cias de las capas.
7.4.4 Discusión
Ya se han comentado las debilidades de estas técnicas, y todas sus aplicaciones es-
tán limitadas por las mismas circunstancias. Aún así, es un campo de investigación
muy activo, y se está utilizando este método para el diseño de redes de reserva y
corredores ecológicos que tengan en cuenta variaciones en la distribución de las es-
pecies debidas al cambio climático.
En cualquier caso, utilizando datos climáticos regionalizados como los que propor-
ciona la AEMET, variables de alta resolución, un tamaño apropiado de tamaño de
muestra, y métodos robustos de evaluación, selección y análisis de modelos, los re-
sultados muestran una significación mucho mayor que la que hayas podido obtener
con el rápido ejemplo que has trabajado.
BIBLIOGRAFÍA