Por: Raymond L. Tremblay

NotaQué es este capítulo

Este capítulo es una guía práctica de uso del paquete Rcompadre. No introduce conceptos nuevos sobre dinámica poblacional —para eso están los capítulos del 4 al 16—, sino que enseña a manejar la base COMPADRE con confianza: cómo descargarla, filtrarla, validar las matrices, extraer las submatrices U/F/C, y conectar los datos con los análisis del resto del libro. El paquete Rcompadre no es trivial: tiene su propia clase de objetos (CompadreDB), funciones con nombres similares pero comportamientos distintos, y trampas que cuestan tiempo si uno las descubre por prueba y error. Este capítulo busca acortar esa curva de aprendizaje.

Los datos demográficos comparables son la base para analizar la dinámica de poblaciones de orquídeas a través de especies, regiones y contextos ambientales. Este capítulo presenta el conjunto de datos de orquídeas derivado de la base COMPADRE y describe su organización para usarlos en los modelos y análisis del libro.

16.1 Alcance y organización de los datos demográficos de orquídeas

El conjunto de datos de orquídeas reúne matrices de proyección poblacional y metadatos asociados (especie, ubicación, periodo de muestreo, tipo de hábitat y notas metodológicas) que permiten comparar la dinámica demográfica entre poblaciones y especies. La estructura de los datos facilita la construcción de matrices U, F y C, el cálculo de la tasa de crecimiento poblacional (λ) y la implementación de análisis de sensibilidad, elasticidad y LTRE, así como simulaciones bajo distintos escenarios.

En esta sección se describe cómo están organizadas las tablas principales —una tabla de matrices y una tabla de metadatos—, las claves que las conectan (especies/poblaciones/estudios) y las precauciones habituales al trabajar con información heterogénea (año de referencia, definición de estadios, unidades de medida y supuestos de reclutamiento). También se presenta una vista general de la cobertura taxonómica y geográfica del conjunto, con el fin de contextualizar cualquier patrón observado.

A diferencia de los capítulos analíticos, este capítulo no introduce nuevos métodos; su objetivo es proporcionar un recurso de datos listo para analizar que permita replicar ejemplos, comparar patrones demográficos entre orquídeas y vincular resultados con decisiones de manejo y conservación. La documentación clara de la estructura y las variables garantiza que los análisis posteriores sean reproducibles e interpretables en el marco del libro.

16.2 Estructura del conjunto de datos y carga en el entorno

A continuación se describen las tablas principales y se muestra cómo cargar y verificar el conjunto de datos en el entorno de trabajo.

Los datos aquí descritos se integran directamente en la descomposición en matrices U, F y C y en el cálculo de crecimiento poblacional. La comparación de la importancia relativa de transiciones puede realizarse mediante elasticidad poblacional y la explicación de diferencias observadas entre poblaciones mediante LTRE. Para explorar escenarios alternativos, puede utilizarse el capítulo de métodos de simulaciones.

16.2.1 Cobertura y limitaciones

La cobertura taxonómica y espacial es heterogénea entre especies y poblaciones. Algunas series temporales son cortas o presentan años sin muestreo; en estos casos se debe documentar cualquier decisión de imputación o agregación. Las definiciones de estadios y los supuestos de reclutamiento pueden variar entre estudios; por ello, al comparar poblaciones conviene revisar la documentación asociada y mantener criterios consistentes de armonización.

Advertencia

COMPADRE agrega estudios diversos — la armonización es responsabilidad del usuario. Las matrices de la base provienen de estudios con definiciones de estadios distintas, periodos de muestreo variables (mensual a multianual) y supuestos de reclutamiento diferentes. La columna MatrixComposite indica si una matriz es individual, promedio o pooled. Antes de comparar matrices entre estudios, conviene revisar:

  • MatrixDimension: ¿el número de estadios es comparable?
  • StudyDuration y Periodicity: ¿los pasos de tiempo son iguales?
  • MatrixCriteriaSize / MatrixCriteriaAge / MatrixCriteriaOntogeny: ¿los criterios de clasificación son compatibles?

Sin esta armonización, las “comparaciones entre especies” pueden ser artefactos del diseño metodológico, no diferencias biológicas reales.

16.2.1.1 Librerías de R requeridas para el siguiente módulo

Código
library(Rcompadre) # Paquete para trabajar con la base de datos de COMPADRE y COMADRE
library(tidyverse) # Paquete para activar múltiples paquetes
library(flextable) # Paquete para formatear tablas

library(broom)
library(ggdist)
library(distributional)
library(leaflet)
library(Rage) # función para calcular el largo de vida esperada entre otras
library(car)
library(popdemo)

Uno de los esfuerzos más grandes para compilar el conocimiento actual sobre la ecología de poblaciones es la creación y mantenimiento de las bases de datos de COMPADRE y COMADRE. COMPADRE es una base de datos de matrices de proyección poblacional de plantas; COMADRE es la base correspondiente para animales. En este capítulo se presenta una introducción a COMPADRE y algunas de las funciones del paquete Rcompadre. En el próximo capítulo se presentan funciones del paquete Rage. La información aquí no sustituye la documentación oficial en la página web de COMPADRE ni los tutoriales en la sección Education.

El valor de las bases de datos reside en tener en un mismo sitio una gran cantidad de información  organizada de manera uniforme y accesible, además de que su formato permite utilizarla directamente en diferentes análisis. En el caso de COMPADRE y COMADRE, la información está organizada en matrices de transición de estados de poblaciones (MPP) que se pueden usar para evaluar la dinámica de poblaciones de plantas y animales y con múltiples variables, tal como sus coordenadas geográficas, el tipo de hábitat, la temporalidad de los datos, la fuente de la información, entre otros.

En este capítulo se aprenderá a utilizar COMPADRE para evaluar la dinámica de poblaciones de orquídeas, extrayendo diferentes tipos de datos para responder preguntas específicas.

Tip

Flujo de trabajo recomendado con COMPADRE.

  1. Cargar la base completa una sola vez (compadre).
  2. Filtrar a la familia, género o especie de interés (filter()).
  3. Validar con cdb_flag() para detectar problemas (NAs, no ergodicidad, etc.).
  4. Extraer las matrices (matU(), matF(), matC(), matA()).
  5. Analizar con popbio/popdemo/Rage según la pregunta.

Este capítulo cubre los pasos 1–4. El paso 5 se desarrolla en los capítulos analíticos (elasticidad, LTRE, simulaciones, funciones de transferencia).

Tip¿Qué función de Rcompadre necesito? — Árbol de decisión
Si quiero… Use
Bajar la base completa por primera vez cdb_fetch("compadre")
Ver los metadatos (especie, año, ubicación, etc.) cdb_metadata(x)
Filtrar a una familia subset(x, Family == "Orchidaceae") o x %>% filter(Family == "Orchidaceae")
Filtrar a una especie subset(x, SpeciesAccepted == "Lepanthes caritensis")
Marcar matrices con problemas (NAs, no-ergódicas, no-irreducibles) cdb_flag(x) — añade columnas check_*, no filtra
Quedarme sólo con matrices “limpias” subset(cdb_flag(x), check_NA_A == FALSE & check_ergodic == TRUE)
Extraer la matriz de transición completa A matA(x) → lista de matrices
Extraer las submatrices matU(x), matF(x), matC(x)
Una matriz individual matA(x)[[i]] (la i-ésima)
Aplicar una función a todas las matrices purrr::map_dbl(matA(x), ~ popbio::lambda(.x))

Regla práctica. Si no está seguro de qué función usar, casi siempre necesita: cdb_fetch()subset() o filter()cdb_flag()subset(check_* )matU() / matF() / matA().

AdvertenciaTrampas comunes con Rcompadre
  • subset() no es base-R. Rcompadre exporta su propio método subset() para objetos CompadreDB; la sintaxis se parece a base-R pero respeta la estructura interna del objeto. No uses [] para subconjuntos directos.
  • matmatA(). mat es una columna del data-frame interno; matA() es la función que extrae la matriz A de cada fila. Use siempre la función.
  • cdb_flag() añade columnas, no filtra. Después de cdb_flag() hay que filtrar manualmente con las columnas check_* (check_NA_A, check_ergodic, check_irreducible).
  • Lat y Lon a veces son character, no numeric. Verifíquelo con class() antes de mapear o calcular distancias; convierta con as.numeric() si es necesario.
  • MatrixComposite indica si una matriz fue promediada o agrupada (pooled). Para análisis comparativo conviene quedarse con MatrixComposite == "Individual" para evitar pseudoreplicación.
  • MatrixCriteriaSize / MatrixCriteriaAge / MatrixCriteriaOntogeny describen cómo se definieron los estadios. Antes de comparar matrices entre estudios, conviene verificar que estos criterios sean compatibles.
NotaCampos de metadatos esenciales

De los más de 50 campos en COMPADRE, estos 9 son los que usará el 95% del tiempo:

Campo Qué contiene
Family Familia taxonómica (ej. "Orchidaceae")
SpeciesAccepted Nombre científico aceptado
MatrixPopulation Identificador de la población (varias por especie en muchos estudios)
StudyStart/StudyEnd Años de inicio y fin del muestreo
MatrixDimension Número de estadios en la matriz
OrganismType “Epiphyte”, “Herbaceous perennial”, etc.
Lat, Lon Coordenadas de la población (a menudo como texto, ver Trampas)
MatrixComposite “Individual” / “Mean” / “Pooled” — clave para análisis comparativos
DOI_ISBN Identificador del estudio original

Para la lista completa: ?Rcompadre::CompadreDB y la documentación oficial.


16.3 Acceso a los datos de COMPADRE

Hay tres formas de obtener la base. Las tres dejan en el entorno un objeto llamado compadre que contiene todas las matrices y metadatos.

16.3.1 Opción 1 — Descarga manual desde la página web

La forma más sencilla es descargar el archivo .RData desde la página oficial: https://compadre-db.org/Data/Compadre. Al momento de la edición de este libro la versión más reciente es la 6.28.8.0 (agosto 2025). Una vez descargado, se carga con load():

Código
load("ruta/a/COMPADRE_v.6.28.8.0.RData")

16.3.2 Opción 2 — Descarga directa desde R

El paquete Rcompadre incluye la función cdb_fetch() que descarga la última versión directamente desde R, sin necesidad de descargar el archivo manualmente:

Código
compadre <- cdb_fetch("compadre")

16.3.3 Opción 3 — Archivo precompilado de este libro

Para garantizar reproducibilidad, este libro distribuye una copia local del snapshot de COMPADRE usado en los ejemplos. Esta es la opción que se usa en el resto del capítulo:

Código
compadre <- readRDS("data/COMPADRE_2026.rds")

16.3.4 Verificar la base cargada

Una vez cargada, conviene verificar el tamaño y la estructura. Al momento de edición la base tiene 9149 filas (matrices) y 59 columnas (variables/metadatos).

Código
dim(compadre)
[1] 9146   59

16.3.5 Explorando la base de datos de COMPADRE

Se estará evaluando múltiples funciones en Rcompadre para aprender a usar la base de datos de COMPADRE.

Para evaluar si la base de datos contiene información sobre especies particulares de orquídeas,  se utilizará la función ‘cdb_check_species’. Es relevante mencionar que se puede evaluar múltiples especies de forma simultánea. Aquí se evaluó si la base contiene información sobre las especies Epidendrum xanthinum, Epipactis gigantea y Caladenia latifolia.

Como podrán notar, solamente existen datos para una de las tres que probamos en la base de datos de COMPADRE.

Código
especies<- c("Epidendrum xanthinum", "Epipactis gigantea", "Caladenia latifolia")
cdb_check_species(compadre, especies) |> flextable() |> ft_wide()

species

in_db

Epidendrum xanthinum

true

Epipactis gigantea

false

Caladenia latifolia

false


16.3.6 Crear un subconjunto de la base de datos de COMPADRE

Antes de seguir vamos a extraer de la base de datos de COMPADRE las especies de orquídeas y crear un nuevo objeto con todas las especies de orquídeas. La ventaja de crear un conjunto de datos es reducir el tamaño del archivo y facilitar los análisis posteriores.

Seleccionaremos todas las matrices que pertenecen a la familia Orchidaceae. Se observa que la base contiene 788 filas, es decir 788 matrices de transición de estados de poblaciones de orquídeas.

Código
index_O = compadre %>%
  filter(Family %in% c("Orchidaceae")) # Extraer la orquídeas de la base de datos.

16.3.7 La metadata de la base de datos de COMPADRE

Con la función cdb_metadata() se puede evaluar la metadata de la base de datos. La función muestra el número de filas y columnas, que incluye múltiples variables, tal como el nombre de la especies usada en la fuente de información ‘SpeciesAuthor’, el nombre del taxón reconocido “SpeciesAccepted”, la fuente de información como el DOI_ISBN, los años de estudio, sus coordenadas geográficas, el tipo de hábitat, la fuente de la información, entre otros.

Código
cdb_metadata(index_O) %>% head() |> flextable() |> ft_wide() # Evaluar la metadata de la base de datos de COMPADRE

MatrixID

SpeciesAuthor

SpeciesAccepted

CommonName

Kingdom

Phylum

Class

Order

Family

Genus

Species

Infraspecies

InfraspeciesType

OrganismType

DicotMonoc

AngioGymno

Authors

Journal

SourceType

OtherType

YearPublication

DOI_ISBN

AdditionalSource

StudyDuration

StudyStart

StudyEnd

ProjectionInterval

MatrixCriteriaSize

MatrixCriteriaOntogeny

MatrixCriteriaAge

MatrixPopulation

NumberPopulations

Lat

Lon

Altitude

Country

Continent

Ecoregion

StudiedSex

MatrixComposite

MatrixSeasonal

MatrixTreatment

MatrixCaptivity

MatrixStartYear

MatrixStartSeason

MatrixStartMonth

MatrixEndYear

MatrixEndSeason

MatrixEndMonth

CensusType

MatrixSplit

MatrixFec

Observations

MatrixDimension

SurvivalIssue

_Database

_PopulationStatus

_PublicationStatus

238,285

Caladenia_amonea

Caladenia amonea

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

amonea

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

North-eastern Melbourne, Vic

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

1996

Summer

8

2007

Autumn

9

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

238,286

Caladenia_argocalla

Caladenia argocalla

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

argocalla

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Adelaide Hills and Clare Valley, SA

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

2003

Autumn

9

2007

Autumn

10

Divided

No

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

238,287

Caladenia_clavigera

Caladenia clavigera

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

clavigera

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

North-eastern Melbourne, Vic

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

1997

Autumn

9

2007

Autumn

10

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

238,288

Caladenia_elegans

Caladenia elegans

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

elegans

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Western Australia

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

1998

Summer

7

2007

Summer

8

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

238,289

Caladenia_graniticola

Caladenia graniticola

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

graniticola

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Western Australia

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

2004

Spring

9

2007

Spring

9

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

238,290

Caladenia_macroclavia

Caladenia macroclavia

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

macroclavia

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Yorke Peninsula, SA

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

2001

Autumn

9

2007

Autumn

10

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released


16.3.8 Extraer matrices

¿Cómo extraer matrices de transición de estados de las poblaciones de orquídeas?

Vamos a seleccionar solamente unas matrices de transición de estados de poblaciones de orquídeas. En este caso se selecciona la primera fila del objeto index_O que corresponde a la especie Laelia speciosa.

Observamos que hay 4 matriz en la lista. La matriz de transición de estados de poblaciones (matU), la matriz de fecundidad (matF), la matriz de clonación (matC) y la suma de las tres matrices (matA=matU+MatF+matC).

Código
index_O %>% filter(SpeciesAccepted %in% c("Laelia speciosa")) -> Laeliasp # Extraer la información de la especie

head(cdb_metadata(Laeliasp), n = 3) |>
  flextable() |> ft_wide()  # Visualizar la información de la especie Laelia speciosa

MatrixID

SpeciesAuthor

SpeciesAccepted

CommonName

Kingdom

Phylum

Class

Order

Family

Genus

Species

Infraspecies

InfraspeciesType

OrganismType

DicotMonoc

AngioGymno

Authors

Journal

SourceType

OtherType

YearPublication

DOI_ISBN

AdditionalSource

StudyDuration

StudyStart

StudyEnd

ProjectionInterval

MatrixCriteriaSize

MatrixCriteriaOntogeny

MatrixCriteriaAge

MatrixPopulation

NumberPopulations

Lat

Lon

Altitude

Country

Continent

Ecoregion

StudiedSex

MatrixComposite

MatrixSeasonal

MatrixTreatment

MatrixCaptivity

MatrixStartYear

MatrixStartSeason

MatrixStartMonth

MatrixEndYear

MatrixEndSeason

MatrixEndMonth

CensusType

MatrixSplit

MatrixFec

Observations

MatrixDimension

SurvivalIssue

_Database

_PopulationStatus

_PublicationStatus

252,937

Laelia_speciosa_

Laelia speciosa

Flor de Corpus, Flor de mayo

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Laelia

speciosa

variety

Epiphyte

Eudicot

Angiosperm

Mariana Hernández-Apolinar

Thesis

1992

3

1987

1989

1

Yes

Yes

Yes

Cerro El Olvido

2

19.43333

-101.4667

2,100

MEX

S America

TBM

H

Individual

Unmanipulated

W

1987

Spring

5

1989

Winter

1

Birth-pulse

Indivisible

Yes

This site was disturbe by ilegal extraction, both matrices were presented

5

COMPADRE

Released

Released

252,938

Laelia_speciosa_

Laelia speciosa

Flor de Corpus, Flor de mayo

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Laelia

speciosa

variety

Epiphyte

Eudicot

Angiosperm

Mariana Hernández-Apolinar

Thesis

1992

3

1987

1989

1

Yes

Yes

Yes

Cerro El Olvido

2

19.43333

-101.4667

2,100

MEX

S America

TBM

H

Individual

Unmanipulated, anthropic

W

1987

Spring

5

1989

Winter

1

Birth-pulse

Indivisible

Yes

Matrix includes data after ilegal extraction of whole plants and/or the two most recent pseudobulbs, including the newest in bloom

5

COMPADRE

Released

Released

252,939

Laelia_speciosa_

Laelia speciosa

Flor de Corpus, Flor de mayo

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Laelia

speciosa

variety

Epiphyte

Eudicot

Angiosperm

Mariana Hernández-Apolinar

Thesis

1992

3

1987

1989

1

Yes

Yes

Yes

Cerro El Olvido

2

19.43333

-101.4667

2,100

MEX

S America

TBM

H

Individual

Unmanipulated

W

1987

Spring

5

1989

Winter

1

Birth-pulse

Indivisible

Yes

Matrix of Conserved site that includes only 4 stage categories. Seed category was not included.

4

COMPADRE

Released

Released


16.3.9 Extraer la matriz de transición de estados de poblaciones

En el siguiente script se muestra cómo extraer la matriz de transición de estados de poblaciones (matA) de Laelia speciosa y las etapas de estas matrices. Nota que el objeto mat es una lista de matrices que incluye la matriz de transición (matU) de estados de una población, la matriz de fecundidad (matF), la matriz de clonaje (matC) y la suma de las tres matrices (matA = matU + matF + matC); vea el capítulo de Matrices de transición, fecundidad y clonaje.

Código
Laeliaspmat = matA(Laeliasp) # Extraer la matriz de transiciones de estados de la población (matA) de las cuatro filas
Laeliaspmat
[[1]]
        A1   A2   A3       A4        A5
A1 0.0e+00 0.00 0.00 52686.00 127342.00
A2 2.2e-05 0.00 0.00     0.00      0.00
A3 0.0e+00 0.71 0.93     0.00      0.00
A4 0.0e+00 0.00 0.07     0.76      0.00
A5 0.0e+00 0.00 0.00     0.24      0.75

[[2]]
        A1   A2   A3       A4        A5
A1 0.0e+00 0.00 0.00 52686.00 127324.00
A2 2.2e-05 0.00 0.00     0.00      0.00
A3 0.0e+00 0.71 0.64     0.00      0.00
A4 0.0e+00 0.00 0.05     0.61      0.00
A5 0.0e+00 0.00 0.00     0.19      0.33

[[3]]
     A1   A2   A3    A4
A1 0.00 0.00 1.64 11.25
A2 0.71 0.93 0.00  0.00
A3 0.00 0.07 0.76  0.00
A4 0.00 0.00 0.24  0.75

[[4]]
     A1   A2   A3    A4
A1 0.00 0.00 1.64 11.25
A2 0.71 0.64 0.00  0.00
A3 0.00 0.05 0.61  0.00
A4 0.00 0.00 0.19  0.33

16.4 Extraer matA, matU, matF y matC

Note que esta función es muy práctica porque extrae la matriz de transición de estados de poblaciones (matA), la matriz de supervivencia (matU), la matriz de fecundidad (matF) y la matriz de clonaje (matC) sin necesidad de usar el código largo en adición de los nombres de las etapas.

Se selecciona la segunda fila del objeto Laeliasp que corresponde a la especie Laelia speciosa y la segunda matriz en la fila[[2]].

Código
Laeliasp$mat[[2]]
  MatrixClassOrganized                                 MatrixClassAuthor
1               active                                          S(Seeds)
2               active Pl(Seedlings): one small pseudobulb of 3mm height
3               active                    I(Juveniles): 2-10 pseudobulbs
4               active                    II(Adult 1): 11-20 pseudobulbs
5               active                     III(Adult 2): >21 pseudobulbs

matA:
        1    2    3        4         5
1 0.0e+00 0.00 0.00 52686.00 127324.00
2 2.2e-05 0.00 0.00     0.00      0.00
3 0.0e+00 0.71 0.64     0.00      0.00
4 0.0e+00 0.00 0.05     0.61      0.00
5 0.0e+00 0.00 0.00     0.19      0.33

matU:
  1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0

matF:
  1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0

matC:
  1 2 3 4 5
1 0 0 0 0 0
2 0 0 0 0 0
3 0 0 0 0 0
4 0 0 0 0 0
5 0 0 0 0 0

16.4.0.1 Evaluar si un género o especie está en la base de datos de COMPADRE

  • Para filtrar un género específico se puede usar el siguiente código.
    • Aquí seleccionamos todas las matrices del género Epipactis.
    • Nota que hay 59 filas, que corresponden típicamente a 59 matrices de diferentes poblaciones, tiempos o análisis teóricos.
Código
Epipactis = compadre %>%
  filter(Genus %in% c("Epipactis")) # Filtrar la información de *Epipactis* en la base de datos.

head(cdb_metadata(Epipactis), n = 3) |>
  flextable() |> ft_wide()

MatrixID

SpeciesAuthor

SpeciesAccepted

CommonName

Kingdom

Phylum

Class

Order

Family

Genus

Species

Infraspecies

InfraspeciesType

OrganismType

DicotMonoc

AngioGymno

Authors

Journal

SourceType

OtherType

YearPublication

DOI_ISBN

AdditionalSource

StudyDuration

StudyStart

StudyEnd

ProjectionInterval

MatrixCriteriaSize

MatrixCriteriaOntogeny

MatrixCriteriaAge

MatrixPopulation

NumberPopulations

Lat

Lon

Altitude

Country

Continent

Ecoregion

StudiedSex

MatrixComposite

MatrixSeasonal

MatrixTreatment

MatrixCaptivity

MatrixStartYear

MatrixStartSeason

MatrixStartMonth

MatrixEndYear

MatrixEndSeason

MatrixEndMonth

CensusType

MatrixSplit

MatrixFec

Observations

MatrixDimension

SurvivalIssue

_Database

_PopulationStatus

_PublicationStatus

238,565

Epipactis_atrorubens_3

Epipactis atrorubens

Darkred helleborine

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Epipactis

atrorubens

Herbaceous perennial

Monocot

Angiosperm

Hens; Pakanen; Jäkäläniemi; Tuomi; Kvist

Biol Conserv

Journal Article

2017

10.1016/j.biocon.2017.04.019

Hens Biol Conserv 2017 Appendix A. Supplementary Data

16

2000

2015

1

No

Yes

No

Ampumavaara; Kiutaköngäs N; Patoköngäs; Mataraniemi; Kiutaköngäs b; Kiutaköngäs E; Kiutaköngäs NWb; Kiutaköngäs NWc; Kiutaköngäs Swa; Kiutaköngäs SWc; Kiutaköngäs W

12

FIN

Europe

BOR

A

Mean

No

Unmanipulated

W

2000

2015

Divided

8

0.989091

COMPADRE

Released

Released

238,566

Epipactis_atrorubens_3

Epipactis atrorubens

Darkred helleborine

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Epipactis

atrorubens

Herbaceous perennial

Monocot

Angiosperm

Hens; Pakanen; Jäkäläniemi; Tuomi; Kvist

Biol Conserv

Journal Article

2017

10.1016/j.biocon.2017.04.019

Hens Biol Conserv 2017 Appendix A. Supplementary Data

16

2000

2015

1

No

Yes

No

Ampumavaara

12

66.37472

29.31944

214

FIN

Europe

BOR

A

Mean

Unmanipulated

W

2000

2015

Divided

The GPS coordinates were approximated to the closest geographic location described in the reference

8

1.001000

COMPADRE

Released

Released

238,568

Epipactis_atrorubens_3

Epipactis atrorubens

Darkred helleborine

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Epipactis

atrorubens

Herbaceous perennial

Monocot

Angiosperm

Hens; Pakanen; Jäkäläniemi; Tuomi; Kvist

Biol Conserv

Journal Article

2017

10.1016/j.biocon.2017.04.019

Hens Biol Conserv 2017 Appendix A. Supplementary Data

16

2000

2015

1

No

Yes

No

Patoköngäs

12

66.38944

29.26778

208

FIN

Europe

BOR

A

Mean

Unmanipulated

W

2002

2015

Divided

The GPS coordinates were approximated to the closest geographic location described in the reference

8

1.001000

COMPADRE

Released

Released

Código
# Nota que en el género *Epipactis* tenemos 51 filas, pero todas son de la misma especie de dos estudios distintos.

16.5 Matrices promedio

Tip

Pseudorreplicación: cuándo colapsar matrices. Cuando un estudio reporta múltiples matrices para la misma población-año (e.g., diferentes tratamientos o réplicas dentro de un sitio), incluirlas todas en un análisis comparativo entre estudios infla artificialmente el tamaño de muestra. La función mpm_mean() reduce el conjunto a una sola matriz promedio por grupo, eliminando la pseudorreplicación. Para ver la dispersión interna del grupo, mpm_sd() calcula la matriz de desviaciones estándar elemento por elemento.

Para un estudio y especie determinados, la base de datos COMPADRE puede contener múltiples matrices que reflejan diferentes combinaciones de población, año y/o tratamiento. Hay una función que permite obtener una única matriz promedio para cada grupo de interés (p. ej., MatrixPopulation) y, por lo tanto, limitar la pseudorreplicación. El término usado es colapsar las matrices, con la función mpm_mean.

Seleccionamos la búsqueda anterior y seleccionamos solamente el estudio de Hens et al. en 2017.

El primer paso es convertir cada una de las matrices de transición de estados de poblaciones en una lista de matrices y luego usar la función mpm_mean para calcular la matriz promedio de todas las matrices de transición de estados de poblaciones. De igual manera se puede calcular la mediana de los elementos de la matriz con la función mpm_median.

Código
Epi_Hens = index_O %>%
  filter(SpeciesAuthor %in% c("Epipactis_atrorubens_3"))   # Filtrar la información de *Epipactis* en la base de datos.

mpms <- Epi_Hens$mat[Epi_Hens$SpeciesAuthor == "Epipactis_atrorubens_3"] # convertir en lista de matrices

mpm_mean(mpms) # calcular la matriz promedio de todas las matrices de transición de estados de poblaciones. Se consigue una matriz para matA, matU, matF y matC.
  MatrixClassOrganized
1               active
2               active
3               active
4               active
5                 dorm
6                 dorm
7                 dorm
8                 dorm
                                                                                                                                MatrixClassAuthor
1                                                                                          S: seedling (smaller than 3 cm; maximum of two leaves)
2                                                                                                  V: vegetative (one vegetative shoot (>= 3 cm))
3 MV: mature vegetative (more than one vegetative shoot; no fertile shoots or a plant with no fertile shoots that flowered in the previous years)
4                                                                                                         F: fertile (at least one fertile shoot)
5                                                                                                                            DS: dormant seedling
6                                                                                                                          DV: dormant vegetative
7                                                                                                                  DMV: dormant mature vegetative
8                                                                                                                             DF: dormant fertile

matA:
          1          2            3          4         5          6          7
1 0.0000000 0.00000000 0.0000000000 0.02707658 0.0000000 0.00000000 0.00000000
2 0.2133690 0.64094625 0.0000000000 0.00000000 0.2121606 0.57071866 0.00000000
3 0.0000000 0.01668078 0.4676567012 0.16649091 0.0000000 0.01921026 0.36824727
4 0.0000000 0.11313765 0.3863594378 0.73172276 0.0000000 0.06576934 0.13218976
5 0.1416013 0.00000000 0.0000000000 0.00000000 0.0995277 0.00000000 0.00000000
6 0.0000000 0.16240300 0.0000000000 0.00000000 0.0000000 0.13653180 0.00000000
7 0.0000000 0.00000000 0.0970043717 0.00000000 0.0000000 0.00000000 0.09879857
8 0.0000000 0.00000000 0.0002894286 0.08886667 0.0000000 0.00000000 0.00000000
             8
1 0.000000e+00
2 0.000000e+00
3 2.671518e-01
4 3.401361e+06
5 0.000000e+00
6 0.000000e+00
7 0.000000e+00
8 1.963378e-01

matU:
          1          2            3          4         5          6           7
1 0.0000000 0.00000000 0.0000000000 0.00000000 0.0000000 0.00000000 0.000000000
2 0.2133690 0.64094625 0.0000000000 0.00000000 0.2121606 0.57071866 0.008163265
3 0.0000000 0.01668078 0.4676567012 0.16649091 0.0000000 0.01921026 0.364165641
4 0.0000000 0.11313765 0.3863594378 0.73172276 0.0000000 0.06576934 0.128108131
5 0.1416013 0.00000000 0.0000000000 0.00000000 0.0995277 0.00000000 0.000000000
6 0.0000000 0.16240300 0.0000000000 0.00000000 0.0000000 0.13653180 0.000000000
7 0.0000000 0.00000000 0.0970043717 0.00000000 0.0000000 0.00000000 0.098798574
8 0.0000000 0.00000000 0.0002894286 0.08886667 0.0000000 0.00000000 0.000000000
            8
1 0.000000000
2 0.005102041
3 0.264600740
4 0.326799803
5 0.000000000
6 0.000000000
7 0.000000000
8 0.196337845

matF:
  1 2 3          4 5 6 7 8
1 0 0 0 0.02707658 0 0 0 0
2 0 0 0 0.00000000 0 0 0 0
3 0 0 0 0.00000000 0 0 0 0
4 0 0 0 0.00000000 0 0 0 0
5 0 0 0 0.00000000 0 0 0 0
6 0 0 0 0.00000000 0 0 0 0
7 0 0 0 0.00000000 0 0 0 0
8 0 0 0 0.00000000 0 0 0 0

matC:
  1 2 3 4 5 6 7 8
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0

16.6 Calcular la desviación de los elementos de la matriz

De igual manera se puede calcular la desviación estándar de los elementos de la matriz de transición de estados de poblaciones con la función mpm_sd.

Código
mpm_sd(mpms) # calcular la desviación estándar de los elementos de la matriz de transición de estados de poblaciones. Se consigue una matriz para matA, matU, matF y matC.
  MatrixClassOrganized
1               active
2               active
3               active
4               active
5                 dorm
6                 dorm
7                 dorm
8                 dorm
                                                                                                                                MatrixClassAuthor
1                                                                                          S: seedling (smaller than 3 cm; maximum of two leaves)
2                                                                                                  V: vegetative (one vegetative shoot (>= 3 cm))
3 MV: mature vegetative (more than one vegetative shoot; no fertile shoots or a plant with no fertile shoots that flowered in the previous years)
4                                                                                                         F: fertile (at least one fertile shoot)
5                                                                                                                            DS: dormant seedling
6                                                                                                                          DV: dormant vegetative
7                                                                                                                  DMV: dormant mature vegetative
8                                                                                                                             DF: dormant fertile

matA:
          1          2           3          4         5         6         7
1 0.0000000 0.00000000 0.000000000 0.04774682 0.0000000 0.0000000 0.0000000
2 0.3625333 0.22980249 0.000000000 0.00000000 0.3816246 0.3695790 0.0000000
3 0.0000000 0.02864846 0.302153080 0.14768233 0.0000000 0.0607252 0.4063030
4 0.0000000 0.12468319 0.301021644 0.19016152 0.0000000 0.1488403 0.2284169
5 0.2788961 0.00000000 0.000000000 0.00000000 0.2610421 0.0000000 0.0000000
6 0.0000000 0.16508248 0.000000000 0.00000000 0.0000000 0.2014153 0.0000000
7 0.0000000 0.00000000 0.121154533 0.00000000 0.0000000 0.0000000 0.2191404
8 0.0000000 0.00000000 0.001861297 0.11273170 0.0000000 0.0000000 0.0000000
             8
1 0.000000e+00
2 0.000000e+00
3 3.151303e-01
4 2.380952e+07
5 0.000000e+00
6 0.000000e+00
7 0.000000e+00
8 2.411732e-01

matU:
          1          2           3         4         5         6          7
1 0.0000000 0.00000000 0.000000000 0.0000000 0.0000000 0.0000000 0.00000000
2 0.3625333 0.22980249 0.000000000 0.0000000 0.3816246 0.3695790 0.05714286
3 0.0000000 0.02864846 0.302153080 0.1476823 0.0000000 0.0607252 0.40698137
4 0.0000000 0.12468319 0.301021644 0.1901615 0.0000000 0.1488403 0.22896623
5 0.2788961 0.00000000 0.000000000 0.0000000 0.2610421 0.0000000 0.00000000
6 0.0000000 0.16508248 0.000000000 0.0000000 0.0000000 0.2014153 0.00000000
7 0.0000000 0.00000000 0.121154533 0.0000000 0.0000000 0.0000000 0.21914041
8 0.0000000 0.00000000 0.001861297 0.1127317 0.0000000 0.0000000 0.00000000
           8
1 0.00000000
2 0.03571429
3 0.31577729
4 0.36251239
5 0.00000000
6 0.00000000
7 0.00000000
8 0.24117318

matF:
  1 2 3          4 5 6 7 8
1 0 0 0 0.04774682 0 0 0 0
2 0 0 0 0.00000000 0 0 0 0
3 0 0 0 0.00000000 0 0 0 0
4 0 0 0 0.00000000 0 0 0 0
5 0 0 0 0.00000000 0 0 0 0
6 0 0 0 0.00000000 0 0 0 0
7 0 0 0 0.00000000 0 0 0 0
8 0 0 0 0.00000000 0 0 0 0

matC:
  1 2 3 4 5 6 7 8
1 0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 0 0
3 0 0 0 0 0 0 0 0
4 0 0 0 0 0 0 0 0
5 0 0 0 0 0 0 0 0
6 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0
8 0 0 0 0 0 0 0 0

Muchas veces es tedioso evaluar la base de datos completa de COMPADRE. Una manera facilitar el acceso a los datos es extraer las matrices con la función cdb_flatten. Nota lo que hace esta función es extraer todas las matrices de transición de estados de poblaciones (matA, matU, matF, matC) y las etapas de cada matriz y crear una lista con esa información.

Aquí hay 49 filas que corresponden a las 49 matrices de transición de estados de poblaciones de orquídeas del estudio de Hens et al. 2017.

Código
Epi_flat = cdb_flatten(Epi_Hens) # Extraer las matrices de transición de estados de la población

Epi_flat$matA[1] # miramos solamente la primera matriz
[1] "[0 0 0 0.018636 0 0 0 0 0.314 0.723818 0 0 0.190727 0.639182 0 0 0 0.010818 0.448 0.145273 0 0.007636 0.255545 0.308818 0 0.115091 0.412 0.775727 0 0.098455 0.063727 0.433636 0.091182 0 0 0 0.082 0 0 0 0 0.137545 0 0 0 0.073 0 0 0 0 0.046364 0 0 0 0.044273 0 0 0 0.001182 0.068091 0 0 0 0.105727]"

16.6.1 Evaluación de cumplimiento de condiciones

Nota

cdb_flag() agrega una columna por cada chequeo. Para una base con muchas matrices, no se filtran las problemáticas: se les agrega banderas (check_NA_A, check_ergodic, check_irreducible, etc.) y luego el usuario decide qué excluir según la pregunta. Por ejemplo, para análisis de elasticidad se requiere ergodicidad e irreducibilidad; para descripciones cualitativas del ciclo de vida, una matriz reducible puede ser perfectamente válida. La filosofía es transparencia: nunca se eliminan matrices automáticamente, siempre se documenta por qué se excluyen.

Es sumamente importante el cumplimiento de los supuestos de los análisis. Si no evaluamos críticamente las condiciones de las matrices, los resultados podrían no ser biológicamente relevantes. Para los análisis de MPP es necesario que las matrices cumplan ciertas condiciones, y dependiendo de la pregunta científica se evalúan las condiciones específicas. La función cdb_flag() corre todos los chequeos de calidad disponibles y agrega una columna por cada uno; los principales son:

  • check_NA_A: Determinar si hay valores faltantes en ‘matA’ Los valores faltantes (“NA”) en las matrices impiden que la mayoría de los cálculos utilicen esas matrices.

  • check_NA_U: Determinar si hay valores faltantes en ‘matU’ Los valores faltantes (“NA”) en las matrices impiden que la mayoría de los cálculos utilicen esas matrices. La matriz de supervivencia es la matriz más importante para evaluar el cálculo del largo de vida de una especie.

  • check_NA_F: Determinar si hay valores faltantes en ‘matF’ Los valores faltantes (“NA”) en las matrices impiden que la mayoría de los cálculos utilicen esas matrices. La matriz de fecundidad es la matriz más importante para evaluar el crecimiento de la población, cualquier especie sin fecundidad tenderá a disminuir a través del tiempo.

  • check_NA_C: Determinar si hay valores faltantes en ‘matC’. Los valores faltantes (“NA”) en las matrices impiden que la mayoría de los cálculos utilicen esas matrices.

  • check_zero_U: Determinar si la ‘matU’ tiene todos ceros (incluido ‘NA’). Las submatrices compuestas enteramente de valores cero pueden resultar problemáticas. Puede haber buenas razones biológicas para este fenómeno. Por ejemplo, en la población focal particular en el año focal particular, realmente no se registró una supervivencia. Sin embargo, las submatrices de valor cero pueden provocar que algunos cálculos fallen y puede ser necesario excluirlas.

  • check_zero_F: Determinar si la ‘matF’ tiene todos ceros (incluido ‘NA’). Las submatrices compuestas enteramente de valores cero pueden resultar problemáticas. Puede haber buenas razones biológicas para este fenómeno o que se asocien con preguntas científicas específicas. Por ejemplo, en la población particular en el año particular, realmente no se registró reproducción. Sin embargo, las submatrices con valores de cero pueden provocar que algunos cálculos fallen y puede ser necesario excluirlas. En otros estudios no se evaluó la fecundidad ya que estos parámetros no eran necesarios para contestar las preguntas científicas.

  • check_zero_U_colsum: Determinar si las columnas de ‘matU’ suman a cero, esto implica que no hay supervivencia de esa etapa en particular. Esta puede ser una parametrización perfectamente válida para un año/lugar en particular, pero es biológicamente irracional a largo plazo y los usuarios pueden desear excluir matrices problemáticas de su análisis.

  • check_singular_U: Determinar si ‘matU’ es singular. Se dice que las matrices son singulares si no se pueden invertir. Se requiere inversión para muchos cálculos matriciales y, por lo tanto, la singularidad puede hacer que algunos cálculos fallen.

  • check_component_sum: Determinar si las submatrices ‘matU’/‘matF’/‘matC’ suman a ‘matA’. Un MPP completo (“matA”) se puede dividir en las submatrices que lo componen (es decir, “matU”, “matF” y “matC”). La suma de estas submatrices debe ser igual al MPP completo (es decir, ‘matA’ = ‘matU’ + ‘matF’ + ‘matC’). A veces, sin embargo, se producen errores de modo que las submatrices NO suman ‘matA’. Normalmente, esto se debe a errores de redondeo, pero es posible que se produzcan errores más importantes.

  • check_ergodic: Determinar si ‘matA’ es ergódico (ver isErgodic). Algunos cálculos matriciales requieren que el MPP (“matA”) sea ergódico. Los MPP ergódicos son aquellos en los que existe un único estado estable asintótico que no depende de la estructura de la etapa inicial. Por el contrario, los MPP no ergódicos son aquellos en los que existen múltiples estados estables asintóticos, que dependen de la estructura de la etapa inicial. Los MPP que no son ergódicos suelen ser biológicamente irracionales, tanto en términos de la descripción de su ciclo de vida como de su dinámica proyectada. Por tanto, hacen que algunos cálculos fallen.

  • check_irreducible: Determinar si ‘matA’ es irreducible (ver isIrreducible). Algunos cálculos matriciales requieren que el MPP (“matA”) sea irreducible. Los MPP irreductibles son aquellos en los que las tasas de transición parametrizadas facilitan el paso de todas las etapas a todas las demás etapas. Por el contrario, los MPP reducibles representan ciclos de vida incompletos donde no son posibles caminos desde todas las etapas a todas las demás etapas. Los MPP que son reducibles suelen ser biológicamente irracionales (pero no siempre), tanto en términos de la descripción de su ciclo de vida como de su dinámica proyectada. Por ello, hacen que algunos cálculos fallen. La irreductibilidad es necesaria pero no suficiente para la ergodicidad.

  • check_primitive: Determinar si ‘matA’ es primitivo (ver isPrimitive). Una matriz primitiva es una matriz no negativa que es irreducible y tiene un solo valor propio de módulo máximo. Por lo tanto, esta verificación es redundante debido a la superposición con ‘check_irreducible’ y ‘checkErdogic’.

  • check_surv_gte_1: Determinar si ‘matU’ contiene valores iguales o mayores que 1. La supervivencia está limitada entre 0 y 1. Los valores superiores a 1 no son biológicamente razonables (ver el capítulo de Impacto de datos sin sentido).

Usando la función cdb_flag se puede evaluar todas las opciones en la base de datos de COMPADRE.

Usando la función cdb_flag se identifican problemas potenciales en las matrices de transición de estados de las poblaciones. Esa función añade una fila por opciones en la matriz. Nota que para cada prueba anterior crea una columna con TRUE o FALSE para cada matriz en la base de datos.

Para facilitar el análisis usamos solamente las especies de Caladenia y enseñamos solamente las tres primeras filas.

Código
Caladenia = index_O %>%
  filter(Genus %in% c("Caladenia")) # Filtrar la información de *Caladenia* en la base de datos.

Compadre_flagged <- cdb_flag(Caladenia) # Evaluación de todas las opciones en la base de datos de COMPADRE

flagged=Compadre_flagged %>% select(mat, SpeciesAccepted, starts_with("check"))

head(cdb_metadata(flagged), n = 3) |>
  flextable() |> ft_wide()

SpeciesAccepted

check_NA_A

check_NA_U

check_NA_F

check_NA_C

check_zero_U

check_zero_F

check_zero_C

check_zero_U_colsum

check_singular_U

check_component_sum

check_ergodic

check_irreducible

check_primitive

check_surv_gte_1

Caladenia amonea

false

false

false

false

false

true

true

false

false

true

true

true

true

false

Caladenia argocalla

false

false

false

false

false

true

true

false

false

true

true

true

true

false

Caladenia clavigera

false

false

false

false

false

true

true

false

false

true

true

true

true

false


16.6.2 Ergodicidad e Irreductibilidad

En los siguientes procedimientos se aplican filtros específicos a matrices de transición poblacional con el objetivo de evaluar dos propiedades fundamentales en el análisis demográfico: la ergodicidad y la irreductibilidad. Se observa que toda matriz ergódica cumple con la condición de ser irreducible; sin embargo, no todas las matrices irreducibles son necesariamente ergódicas. Para ilustrar esta relación, se cuantificó el número de matrices que cumplen con cada propiedad, permitiendo así una comparación entre ambos conjuntos.

16.6.2.1 Matrices ergódicas

Código
Mat_ergodic <- subset(
  Compadre_flagged,
  check_NA_A == FALSE & check_ergodic == TRUE
) # para evaluar si las matrices son ergódicas solamente
head(cdb_metadata(Mat_ergodic), n=2) |>
  flextable() |> ft_wide()

MatrixID

SpeciesAuthor

SpeciesAccepted

CommonName

Kingdom

Phylum

Class

Order

Family

Genus

Species

Infraspecies

InfraspeciesType

OrganismType

DicotMonoc

AngioGymno

Authors

Journal

SourceType

OtherType

YearPublication

DOI_ISBN

AdditionalSource

StudyDuration

StudyStart

StudyEnd

ProjectionInterval

MatrixCriteriaSize

MatrixCriteriaOntogeny

MatrixCriteriaAge

MatrixPopulation

NumberPopulations

Lat

Lon

Altitude

Country

Continent

Ecoregion

StudiedSex

MatrixComposite

MatrixSeasonal

MatrixTreatment

MatrixCaptivity

MatrixStartYear

MatrixStartSeason

MatrixStartMonth

MatrixEndYear

MatrixEndSeason

MatrixEndMonth

CensusType

MatrixSplit

MatrixFec

Observations

MatrixDimension

SurvivalIssue

_Database

_PopulationStatus

_PublicationStatus

check_NA_A

check_NA_U

check_NA_F

check_NA_C

check_zero_U

check_zero_F

check_zero_C

check_zero_U_colsum

check_singular_U

check_component_sum

check_ergodic

check_irreducible

check_primitive

check_surv_gte_1

238,285

Caladenia_amonea

Caladenia amonea

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

amonea

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

North-eastern Melbourne, Vic

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

1996

Summer

8

2007

Autumn

9

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

false

false

false

false

false

true

true

false

false

true

true

true

true

false

238,286

Caladenia_argocalla

Caladenia argocalla

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

argocalla

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Adelaide Hills and Clare Valley, SA

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

2003

Autumn

9

2007

Autumn

10

Divided

No

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

false

false

false

false

false

true

true

false

false

true

true

true

true

false

16.6.2.2 Matrices irreductibles

Código
Mat_irred <- subset(
  Compadre_flagged,
  check_NA_A == FALSE & check_irreducible == TRUE
) # para evaluar si las matrices son irreducibles solamente

head(cdb_metadata(Mat_irred), n=2) |>
  flextable() |> ft_wide()

MatrixID

SpeciesAuthor

SpeciesAccepted

CommonName

Kingdom

Phylum

Class

Order

Family

Genus

Species

Infraspecies

InfraspeciesType

OrganismType

DicotMonoc

AngioGymno

Authors

Journal

SourceType

OtherType

YearPublication

DOI_ISBN

AdditionalSource

StudyDuration

StudyStart

StudyEnd

ProjectionInterval

MatrixCriteriaSize

MatrixCriteriaOntogeny

MatrixCriteriaAge

MatrixPopulation

NumberPopulations

Lat

Lon

Altitude

Country

Continent

Ecoregion

StudiedSex

MatrixComposite

MatrixSeasonal

MatrixTreatment

MatrixCaptivity

MatrixStartYear

MatrixStartSeason

MatrixStartMonth

MatrixEndYear

MatrixEndSeason

MatrixEndMonth

CensusType

MatrixSplit

MatrixFec

Observations

MatrixDimension

SurvivalIssue

_Database

_PopulationStatus

_PublicationStatus

check_NA_A

check_NA_U

check_NA_F

check_NA_C

check_zero_U

check_zero_F

check_zero_C

check_zero_U_colsum

check_singular_U

check_component_sum

check_ergodic

check_irreducible

check_primitive

check_surv_gte_1

238,285

Caladenia_amonea

Caladenia amonea

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

amonea

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

North-eastern Melbourne, Vic

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

1996

Summer

8

2007

Autumn

9

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

false

false

false

false

false

true

true

false

false

true

true

true

true

false

238,286

Caladenia_argocalla

Caladenia argocalla

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

argocalla

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Adelaide Hills and Clare Valley, SA

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

2003

Autumn

9

2007

Autumn

10

Divided

No

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

false

false

false

false

false

true

true

false

false

true

true

true

true

false

16.6.2.3 Matrices ergódicas e irreductibles

Código
Mat_erg_irred <- subset(
  Compadre_flagged,
  check_NA_A == FALSE & check_irreducible == TRUE & check_ergodic == TRUE
) # para evaluar si las matrices son ergódicas e irreducibles al mismo tiempo

head(cdb_metadata(Mat_erg_irred), n=2) |>
  flextable() |> ft_wide()

MatrixID

SpeciesAuthor

SpeciesAccepted

CommonName

Kingdom

Phylum

Class

Order

Family

Genus

Species

Infraspecies

InfraspeciesType

OrganismType

DicotMonoc

AngioGymno

Authors

Journal

SourceType

OtherType

YearPublication

DOI_ISBN

AdditionalSource

StudyDuration

StudyStart

StudyEnd

ProjectionInterval

MatrixCriteriaSize

MatrixCriteriaOntogeny

MatrixCriteriaAge

MatrixPopulation

NumberPopulations

Lat

Lon

Altitude

Country

Continent

Ecoregion

StudiedSex

MatrixComposite

MatrixSeasonal

MatrixTreatment

MatrixCaptivity

MatrixStartYear

MatrixStartSeason

MatrixStartMonth

MatrixEndYear

MatrixEndSeason

MatrixEndMonth

CensusType

MatrixSplit

MatrixFec

Observations

MatrixDimension

SurvivalIssue

_Database

_PopulationStatus

_PublicationStatus

check_NA_A

check_NA_U

check_NA_F

check_NA_C

check_zero_U

check_zero_F

check_zero_C

check_zero_U_colsum

check_singular_U

check_component_sum

check_ergodic

check_irreducible

check_primitive

check_surv_gte_1

238,285

Caladenia_amonea

Caladenia amonea

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

amonea

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

North-eastern Melbourne, Vic

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

1996

Summer

8

2007

Autumn

9

Divided

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

false

false

false

false

false

true

true

false

false

true

true

true

true

false

238,286

Caladenia_argocalla

Caladenia argocalla

Plantae

Tracheophyta

Liliopsida

Asparagales

Orchidaceae

Caladenia

argocalla

Herbaceous perennial

Monocot

Angiosperm

Raymond L. Tremblay; Pérez; Larcombe; Brown; Quarmby; Bickerton; French; Bould

Aust J Bot

Journal Article

2009

10.1071/BT08167

12

1996

2007

1

No

Yes

No

Adelaide Hills and Clare Valley, SA

1

AUS

Oceania

TBM

A

Mean

No

Unmanipulated

W

2003

Autumn

9

2007

Autumn

10

Divided

No

Locations of surveyed areas are kept vague to reduce the likelihood of unauthorised disturbance of the populations

3

1

COMPADRE

Released

Released

false

false

false

false

false

true

true

false

false

true

true

true

true

false


16.7 ¿Qué sigue?

Una vez identificadas las matrices que cumplen los chequeos relevantes para tu pregunta, los siguientes pasos típicos son:

  • Calcular métricas demográficas (esperanza de vida, edad de primera reproducción, generación) con el paquete Rage — ver el capítulo siguiente.
  • Comparar λ entre poblaciones, especies o tratamientos — ver los capítulos de Crecimiento poblacional y LTRE.
  • Evaluar sensibilidad y elasticidad — ver el capítulo de Elasticidad.
  • Simular dinámicas bajo escenarios alternativos — ver el capítulo de Métodos de simulación.

El conjunto filtrado (Mat_erg_irred en el ejemplo) está listo para alimentar cualquiera de estos análisis sin preocuparse por matrices defectuosas.


16.8 Ejercicios — Pruebe usted mismo

Aprender Rcompadre requiere ensuciarse las manos. Estos ejercicios usan exclusivamente las funciones presentadas en este capítulo. Las soluciones se construyen combinando cdb_fetch(), subset()/filter(), cdb_flag(), matU()/matF()/matA() y verbos de dplyr.

TipEjercicio 1 — Lepanthes en COMPADRE

¿Cuántas matrices de proyección hay en COMPADRE para el género Lepanthes? ¿Cuántas son ergódicas e irreducibles al mismo tiempo? ¿De cuántas especies distintas son?

Pista: filtre por Genus == "Lepanthes", aplique cdb_flag(), y use length(unique(SpeciesAccepted)).

TipEjercicio 2 — Cosecha sostenible

Encuentre todas las matrices de orquídeas en COMPADRE asociadas a estudios de cosecha (busque las palabras clave harvest o cosecha en Authors o el DOI). ¿Qué especies aparecen? ¿Para cuáles existen matrices de la misma población con y sin cosecha?

Pista: la base no tiene un campo “cosecha” estructurado; tendrá que filtrar el conjunto cargado por palabras en metadatos como MatrixPopulation o usar DOI_ISBN para identificar pares de estudios.

TipEjercicio 3 — Estudios largos

Liste todas las orquídeas de COMPADRE cuyo estudio duró ≥ 5 años (StudyEnd - StudyStart >= 5) y que tengan al menos 4 estadios en la matriz (MatrixDimension >= 4). ¿Qué tienen en común estas especies en términos de hábitat (OrganismType)?

Pista: este filtro le permite identificar el subconjunto de estudios “robustos” para análisis comparativos —tamaño de muestra suficiente y resolución demográfica suficiente.

TipEjercicio 4 — Calidad de los datos

Para el conjunto del ejercicio 3, ¿qué proporción de matrices pasa los tres chequeos (check_NA_A == FALSE, check_ergodic == TRUE, check_irreducible == TRUE)? ¿Las que fallan, fallan por NAs, por reducibilidad, o por no-ergodicidad?

Pista: después de cdb_flag(), use table(Mat$check_NA_A, Mat$check_ergodic) o summarise() con dplyr para contar los modos de falla.

Estos ejercicios son representativos del trabajo real con COMPADRE: nunca se cargan todas las matrices, siempre se filtra primero, casi siempre hay que combinar criterios biológicos (hábitat, género) con criterios técnicos (check_*), y a menudo el resultado es un conjunto menor de matrices “limpias” sobre las que se hacen los análisis del resto del libro.