19  Impactos de datos sin sentido biológico

Por: Raymond L. Tremblay

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

Código
#devtools::install_github("rich-iannone/DiagrammeR") # Instalar directamente de github para tener la versión más reciente
if (!require("pacman")) {
  install.packages("pacman")
}
pacman::p_load(
  "DiagrammeR",
  "Rage",
  "popdemo",
  "popbio",
  "interpretCI",
  "MCMCpack",
  "ggplot2",
  "plyr",
  "reshape2"
)

library(DiagrammeR)
library(Rage)
library(popdemo)
library(popbio)
library(tidyverse)
library(flextable)
library(interpretCI)
library(MCMCpack)
library(plyr)
library(reshape2)
Código
rlt_theme <- theme(
  axis.title.y = element_text(colour = "grey20", size = 10, face = "bold"),
  axis.text.x = element_text(colour = "grey20", size = 10, face = "bold"),
  axis.text.y = element_text(colour = "grey20", size = 15, face = "bold"),
  axis.title.x = element_text(colour = "grey20", size = 15, face = "bold")
) +
  theme(
    # Remover los bordes
    panel.border = element_blank(),
    # Remover las líneas
    panel.grid.major = element_blank(),
    panel.grid.minor = element_blank(),
    # Remover el fondo del panel
    panel.background = element_blank(),
    # añadir lineas más gruesas
    axis.line.x = element_line(colour = "black", linewidth = 1),
    axis.line.y = element_line(colour = "black", linewidth = 1)
  )

diverging= c("#009392","#CF597E","#E9E29C", "#39B185","#EEB479" , "#9CCB86" )

# --- 2. Combinarlos en un objeto de tipo lista ---
# Esta lista se puede añadir al gráfico con un solo '+'
rlt_style_fill <- function() {
  list(
    rlt_theme,
    scale_fill_manual(values = diverging)
  )
}

rlt_style_colour <- function() {
  list(
    rlt_theme,
    scale_colour_manual(values = diverging)
  )
}

El valor principal de los estudios científicos radica en el supuesto de que los datos obtenidos representan una versión suficientemente cercana de la realidad y cuanto a la biología de campo que pueden ser utilizados para inferir sobre la ecología y conservación de las especies de interés. Este supuesto de que los datos representan realmente a la realidad es un mito, ya que solamente son una muestra, que esperamos que se acerque lo suficiente para tener confianza en los resultados. En ningún estudio ecológico se podrán obtener TODOS los datos para evaluar todas las relaciones bióticas y abióticas que mantiene un organismo y sus interacciones. Dicho modelo sería demasiado complejo e irreal dentro del concepto de lo que se puede lograr en un trabajo científico. Es por ello que, el objetivo de estos trabajos es tener una apreciación de los parámetros más importantes para definir patrones e interacciones suficientemente cercanas a la realidad para ser útiles. Por consiguiente, la base de estos estudios está sostenida en las unidades de muestreo y en la recolección de datos. Si los datos no representan la realidad, las interpretaciones de los análisis pueden ser erróneas. La matemática, con sus ecuaciones y sus modelos, no hará que la biología se aproxime más a la realidad, si desde el principio los datos y el método de recolección de datos son erróneos.

Es por ello que en esta sección evaluaremos diferentes aspectos de los análisis matriciales poblacionales de proyección (MPP) y diferentes aspectos de la recolección de datos que pudiesen ser problemáticos cuando uno considera la biología de una especie. La lista de Impactos no pretende incluir todos los posibles efectos de datos sin sentido; sino más bien, brindar algunos ejemplos de lo que pasa cuando uno no considera estos problemas y cómo pueden distorsionar las interpretaciones. Por lo tanto, se les extiende una advertencia a todos los biólogos de poblaciones, para que estén conscientes de estos temas y siempre evalúen críticamente sus datos desde la forma de recolección, su análisis e interpretaciones de sus resultados y aceptar que son solamente un modelo (una caricatura) de muchos posibles modelos.


19.1 Cuatro familias de errores

Los problemas que pueden invalidar un análisis matricial poblacional caen en cuatro grandes grupos. Conocerlos por separado ayuda a saber dónde mirar cuando algo no cuadra:

  1. Errores en la recolección de datos. Tamaños de muestra pequeños, eventos raros que nunca se observaron en el periodo de estudio, etapas crípticas (semillas, latencia, juveniles ocultos) que no se detectan. Síntoma típico: probabilidades de transición exactamente iguales a 0 o a 1.

  2. Errores en la construcción de la matriz. Supervivencia perfecta (columnas que suman 1 sin reproducción), columnas que suman más de 1 por redondeo excesivo, transiciones biológicamente posibles que faltan en la matriz (matrices reducibles).

  3. Errores en la fecundidad. Usar el número crudo de semillas/huevos en vez de los individuos que efectivamente reclutan al primer estadio del modelo, omitir el banco de semillas, no especificar si el censo es pre- o post-reproductivo (ver el protocolo estandarizado del capítulo 121).

  4. Errores en la inferencia estadística. Calcular intervalos de confianza con la distribución normal sobre proporciones acotadas en [0, 1] —que produce límites negativos o mayores que 1—, no comunicar la incertidumbre de los parámetros.

Para cada error mostraremos tres cosas: cómo se ve en el código y la matriz, cómo detectarlo en R, y cómo evitarlo o corregirlo. Así el capítulo sirve tanto como guía de lectura crítica de la literatura como lista de verificación al construir su propio MPP.

Tip¿Cuándo regresar a este capítulo?

Este capítulo está diseñado para consultarse en dos momentos distintos: antes de comenzar el muestreo, para anticipar qué decisiones de diseño afectarán la matriz, y después de tener una matriz preliminar, para diagnosticarla antes de pasar a inferencias o publicación. Léalo con su matriz al lado.


19.2 Tamaños de muestra pequeños o eventos raros

Sin duda, el tema principal para el uso de MPP ha sido evaluar la proyección de población de especies raras o en peligro de extinción (Caswell, 1989; Gascoigne et al., 2023). En consecuencia, las especies raras o en peligro de extinción son naturalmente pequeñas y el tamaño de la muestra del estudio o de algunas de las etapas/edades del ciclo de vida son frecuentemente pequeños. Estos tamaños de muestra reducidos suelen provocar estimaciones sesgadas de los parámetros y, a menudo, resultados sin sentido biológico. Algunos de los problemas incluyen no haber observado eventos raros (transiciones poco comunes), como la muerte de un adulto o la germinación de una semilla. En estos casos, la probabilidad de supervivencia o transición pudiese ser de cero, lo que pudiese resultar en una matriz reducible o no irreducible.


19.2.1 Supervivencia Perfecta

Muestreos en donde no se observa mortalidad, que equivaldrían a una supervivencia perfecta, son problemáticos. Esto se pudiese observar generalmente en especies longevas, en donde la mortalidad de los individuos, en especial de los individuos adultos es rara, pero la probabilidad existe. Considere una especie donde se recopilan datos de la especie Sp1 y se crea una matriz de transición Sp1matU y una matriz de fertilidad Sp1matF. Note que ninguno de los individuos adultos muestreados murió, por lo que el valor de la permanencia es de 1 (supervivencia perfecta). En consecuencia, el tamaño de la población nunca disminuye. Sin embargo, esto es completamente irreal. Así, bajo todos los modelos biológicamente realistas, esperaríamos que el tamaño de la población comience a disminuir si una población no tiene reproducción. Sin embargo, en nuestro ejemplo, a pesar de que la fecundidad es cero, nuestra población se mantiene ya que los individuos adultos presentan una supervivencia perfecta, lo cual es biológicamente imposible.

Código
Sp1matU <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.5, 0.3, 0.0),
  c(0.0, 0.4, 1.0)
) # transition matrix

Sp1matF <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0)
) # fertility matrix

Sp1matA = Sp1matU + Sp1matF # TF matrix

lambda(Sp1matA) # lambda es 1, lo que indica que la población no cambia
[1] 1
Código
stages <- c("plantula", "juvenil", "adulto")

plot_life_cycle(Sp1matA, stages = stages, fontsize = 0)

Si analizamos Sp1matU, asumimos que ninguno de los individuos muestreados en etapa adulta muere, en ningún momento!!! Claramente esto no es realista. Para cualquier especie, la probabilidad de muerte en cualquier etapa nunca es cero (aunque podría ser muy pequeña) y, por lo tanto, nuestra matriz no tiene sentido biológico. Considere una especie de árbol, como los árboles de Sequoia, en donde es muy probable que la supervivencia de los árboles grandes sea muy alta entre un año y otro y por lo tanto la supervivencia observada sea del 100%, pero, este 100% no es realista a largo plazo. Hay que diferenciar entre lo que se observa en un periodo de muestreo y las probabilidades a largo plazo. Es posible que en el sitio de estudio NO se observó mortalidad de los árboles grandes entre los dos periodos de muestreo, lo que resultaría en una mortalidad de cero, sin embargo, este valor no es real a largo plazo. Ese estimado de campo puede ser un resultado de un tamaño de muestra insuficiente o de eventos raros (aun con tamaños de muestra grandes).

En el siguiente script mostramos que la población no cambia después de 7-8 periodos/años y se mantiene cercana a uno (usamos la matriz de transición sin fecundidad). Si no hay reclutas (matriz de fertilidad), el tamaño de la población debería reducirse con el tiempo. Todos los modelos de transiciones que no incluyan a la matriz de fertilidad (solamente la matU), deberían resultar en reducción de tamaño poblacional en el tiempo, debido a la no incorporación de nuevos individuos (fecundidad), de la pérdida de individuos muestreados (mortalidad).

Código
n = c(50, 50, 50)

truelambda(Sp1matU) # despues de unos periodos de tiempo vemos que el crecimiento poblacional es 1
          [,1] [,2]
[1,] 0.9999999    1
[2,] 0.9999999    1
[3,] 0.9999999    1
Código
pop.projection(Sp1matU, n = n)$pop.changes # lista del cambio poblacional en 19 años
 [1] 0.7333333 0.8909091 0.9632653 0.9885593 0.9965281 0.9989548 0.9996861
 [8] 0.9999058 0.9999717 0.9999915 0.9999975 0.9999992 0.9999998 0.9999999
[15] 1.0000000 1.0000000 1.0000000 1.0000000 1.0000000
AdvertenciaCómo detectar y resolver — supervivencia perfecta

Detección en R:

any(diag(matU) >= 1)              # ¿hay estasis con probabilidad 1?
any(colSums(matU) >= 1 & colSums(matF) == 0)  # ¿columna que suma 1 sin reproducción?

Causa típica: tamaño de muestra insuficiente para observar la mortalidad rara de los adultos durante el periodo de estudio.

Cómo evitarlo o corregirlo:

  1. Reportar el tamaño de muestra de cada etapa y la incertidumbre asociada (ver capítulo bayesiano).
  2. Usar un previo bayesiano informado vía raretrans o una distribución de Dirichlet para inferir una mortalidad pequeña pero > 0.
  3. Si se decide mantener 0.995 o similar, justificar el valor con literatura sobre la longevidad de la especie y reconocer la limitación.

19.2.1.1 Un cambio pequeño en la mortalidad.

El efecto de aumentar el tamaño de muestra impacta directamente los posibles valores en la matriz. Considere la siguiente situación. Si tenemos solamente cinco individuos en la etapa uno, ¿cuáles son los posibles valores de mortalidad? Esto dependería del número de individuos que mueran, que pudiera ser ninguno,1, 2,…o todos. Entonces las probabilidades que pudieran entrar en la matriz dependiendo el número de individuos muertos serían: 0, 0.2, 0.4, 0.6, 0.8, 1.0. Note que los valores intermedios no pueden existir en la matriz. Por lo tanto, si uno tiene un tamaño de muestra pequeño, es probable que los valores en la matriz no representen la realidad biológica, pero si representan lo observado en el muestreo de campo.

Si consideramos la matriz del script 3 y observamos el valor de la permanencia (sobrevivencia) de los individuos adultos podemos deducir que se muestrearon 1000 individuos y que 995 sobrevivieron. Así con tamaños muestrales superiores, por ejemplo 1000, además de conferir una mayor confianza en el parámetro, permite la existencia de valores intermedios. Tenga en cuenta que en este nuevo modelo de la especie SP1, aunque la tasa de supervivencia es muy cercana a 100% (0,995), existe mortalidad y por tanto existiría una disminución de la población en cada período de tiempo (aunque solo sea en una pequeña fracción), si los valores de la de fecundidad fueran de cero. Siempre hay que considerar si esta tasa de mortalidad es biológicamente real o es un resultado del tamaño de la muestra.

Código
Sp1matU_2 <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.5, 0.3, 0.0),
  c(0.0, 0.4, 0.995)
) # transition matrix

Sp1matF <- rbind(
  c(0.0, 0.0, 1.0),
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0)
) # fertility matrix

Sp1matA_2 = Sp1matU_2 + Sp1matF

lambda(Sp1matA_2) # lambda es 0.995, lo que indica que la población disminuye
[1] 1.185514
Código
pop.projection(Sp1matU_2, n = n)$pop.changes # lista del cambio poblacional en 19 años
 [1] 0.7316667 0.8874829 0.9586555 0.9836264 0.9915311 0.9939504 0.9946832
 [8] 0.9949045 0.9949712 0.9949913 0.9949974 0.9949992 0.9949998 0.9949999
[15] 0.9950000 0.9950000 0.9950000 0.9950000 0.9950000

Erycina crista-galli. Foto: Diana Molina Ozuma

En la mayoría de las investigaciones el tamaño de muestra es limitado. Por lo tanto, es importante considerar si la tasa/transición de mortalidad es realista y si el tamaño de la muestra es suficiente para estimar la tasa/transición de mortalidad es de confianza. Si la tasa de mortalidad es muy baja, cercana a cero o a 100%, es probable que el tamaño de la muestra sea demasiado pequeño para estimar la tasa de mortalidad con precisión. En consecuencia, la tasa de mortalidad estimada puede estar lejos de la realidad si hubiese tenido un estimado basado en un N más grande.






19.3 ¿Cuáles son los tamaños de muestra típicos en los estudios de orquídeas?

Usando el artículo de Ticktin 2020, vemos algunos de los tamaños de muestra de los estudios de orquídeas usando MPP. Esta tabla representa solamente parte de los datos en la publicación. El objetivo es demostrar el tamaño de muestra en algunos de los estudios de orquídeas. Note que en algunos estudios el tamaño por etapa es muy pequeño, lo que puede resultar en estimaciones sesgadas de los parámetros y, a menudo, resultados sin sentido biológico.

Especie

Población

Etapas

Tamaño de Muestra

Referencia

*Erycina crista-galli*

Pop_1

Plántulas

41

@mondragon2007life

Juveniles

50

Adultos 1

221

Adultos 2

226

*Erycina crista-galli*

Pop_2

Plántulas

4

@mondragon2007life

Juveniles

32

Adultos 1

25

Adultos 2

531

*Euchile karwinskii*

Sin cosecha

Plántulas

20

@elliott2014demography

Juveniles 1

74

Juveniles 2

91

Adultos

44

*Euchile karwinskii*

Con cosecha

Plántulas

3

@elliott2014demography

Juveniles 1

26

Juveniles 2

47

Adultos

20

*Lepanthes caritensis*

Carite

Plántulas

4

@tremblay1997lepanthes

Juveniles

54

Adulto no reproductivo

24

Adultos

12

*Oncidium poikilostalix*

Sin cosecha

Etapa 1

284

@garcia2017impact

Etapa 2

194

Etapa 3

270

Etapa 4

338


19.3.1 Irreductibilidad: cuando faltan transiciones entre etapas

La irreductibilidad es un concepto importante en los análisis de matrices poblacionales. Como lo muestra (Caswell, 1989) y más recientemente por (Stott et al., 2010), las matrices deben de ser irreducibles. El concepto de irreductibilidad está asociado con el ciclo de vida de la especie y la matriz debe incluir las transiciones de todas las etapas a todas las demás etapas. En la figura del ciclo de vida siguiente, faltan dos componentes importantes en la historia de vida de la especie, ningún juvenil crece para convertirse en adulto y ninguno de los adultos produce plántulas (semillas que crecen hasta convertirse en plántulas).

Por tal motivo, la matriz sugiere que los juveniles no crecen para convertirse en adultos, y todos los juveniles siguen siendo juveniles o mueren, ya que no hay una flecha que conecte a los juveniles con los adultos. En tanto que en el caso de los adultos no existe una flecha que los conecte con las plántulas, lo que sugiere que no hay producción de nuevas plántulas por parte de los adultos.

Código
Sp1matU_NT <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.5, 0.7, 0.0),
  c(0.0, 0.0, 0.995)
) # transition matrix

Sp1matF <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0)
) # fertility matrix

Sp1matA_NT = Sp1matU_NT + Sp1matF # TF matrix

stages <- c("plantula", "juvenil", "adulto")

plot_life_cycle(Sp1matA_NT, stages = stages, fontsize = 0)

19.3.1.1 Función para evaluar si una matriz es irreducible

Una manera fácil de determinar si la matriz es irreducible es correr el siguiente script isIrreducible del paquete popdemo. Tenga en cuenta que, en este caso, el resultado es FALSE para la matriz anterior. Para comparar, si evaluamos la matriz Sp1matA_2 el resultado es TRUE ya que todas las etapas pueden llegar a todas las demás etapas. En este caso, la matriz es irreducible y por tanto cumple con los requisitos necesarios para muchos de los análisis de matrices poblacionales.

Código
isIrreducible(Sp1matU_NT) # para la matriz de transición, faltando una etapa de transición y fertilidad
[1] FALSE
Código
isIrreducible(Sp1matA_NT) # para la matriz TF, falta una etapa de transición
[1] FALSE
Código
# Ahora considerando Sp1matA_2
# En esta matriz que incluye todas las transiciones y la fertilidad el resultado es "TRUE"
Sp1matA_2
     [,1] [,2]  [,3]
[1,]  0.0  0.0 1.000
[2,]  0.5  0.3 0.000
[3,]  0.0  0.4 0.995
Código
isIrreducible(Sp1matA_2)
[1] TRUE
AdvertenciaCómo detectar y resolver — matriz reducible

Detección en R:

popdemo::isIrreducible(matA)      # FALSE indica el problema
popdemo::isErgodic(matA)          # complementaria: ¿la población converge?

Causa típica: una transición biológicamente posible (juvenil → adulto, adulto → plántula vía reproducción) tiene valor 0 en la matriz, ya sea por no haberse observado en el muestreo o por no haber incluido la fecundidad correctamente en la matriz F.

Cómo evitarlo o corregirlo:

  1. Dibujar el gráfico del ciclo de vida y verificar que cada etapa puede llegar a cualquier otra etapa por algún camino.
  2. Si la transición existe biológicamente pero es rara, asignarle un valor pequeño positivo (p. ej., 1/(N+1)) en lugar de cero, o usar un previo bayesiano.
  3. Si la transición no existe en la biología (etapas post-reproductivas, dispersión unidireccional), reportar la matriz como reducible justificadamente y elegir métodos compatibles con esta estructura (ver capítulo de Propiedades de las matrices).

19.3.2 Ninguna supervivencia

La mortalidad es uno de los estadios del ciclo de vida de cada especie, pero raramente se añade al diagrama del ciclo de vida, porque es implícito en los cálculos ya que si restamos 1 a la suma de la columna de transición de un estadio dado, el resultado será la mortalidad de dicho estadio. A menudo se observa que la supervivencia de los individuos más pequeños o la primera etapa del ciclo de vida de una especie es muy reducida, por lo que la probabilidad de supervivencia es muy baja. Por ejemplo, la mayoría de las semillas no sobreviven para germinar. Esta es la norma en las orquídeas donde la producción de semillas es muy alta, a veces millones de semillas en una cápsula (Arditti & Ghani, 2000), pero los porcentajes de germinación en el campo suelen ser menores. Al momento no conocemos trabajos sistemáticos evaluando la probabilidad de germinación en orquídeas. Sin embargo, esto no se limita a las orquídeas, en los árboles se puede observar el mismo patrón, por ejemplo, en Nothofagus pumilio el reclutamiento de plántulas fue inferior al 1,5 % (Torres et al., 2015). En general los patrones de germinación in situ varían por grupos taxonómicos, distribución y condiciones ecológicas (Iralu, Barbhuyan & Upadhaya, 2019).

Como es bien conocido en el campo, la germinación de semillas en las orquídeas no es sencilla ya que depende de la disponibilidad de micorrizas (Rasmussen, 1995). Si bien existe controversia, hay especificidad de las orquídeas por ciertas especies de hongos micorrízicos, ya que hay evidencias de que ciertas especies de orquídeas presentan dicha especificidad (Balducci, Calevo & Duffy, 2024), en tanto que otras no la presentan (Petrolli et al., 2022), es indiscutible que para la germinación de las semillas de las orquídeas, las cuales carecen de endospermo la asociación con un hongo micorrízico es indispensable para su germinación (Rasmussen et al., 2015). Pero la germinación no sólo depende de esta asociación ya que muchas variables pueden influir incluyendo las condiciones bióticas y abióticas (Callaway et al., 2002; Rasmussen et al., 2015; González-Orellana et al., 2024).

En el siguiente gráfico del ciclo de vida emergido, se puede observar que ninguna de las plántulas sobrevive o crece a la siguiente etapa. Tenga en cuenta que en la primera columna de la matriz de transición todos los valores son cero. La población puede haber comenzado con muchas (incluso miles o cientos de miles) de plántulas, pero ninguna creció hasta convertirse en un juvenil o permaneció como plántula antes del siguiente muestreo. Esto da como resultado una matriz que es reducible isIrreducible = FALSE y por consecuencia no cumple con los requisitos necesarios para muchos de los análisis de matrices poblacionales.

Código
Sp1matU_NS <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.0, 0.7, 0.0),
  c(0.0, 0.25, 0.995)
) # transition matrix

Sp1matF <- rbind(
  c(0.0, 0.0, 1.0),
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0)
) # fertility matrix

Sp1matA_NS = Sp1matU_NS + Sp1matF # TF matrix

stages <- c("plantula", "juvenil", "adulto")

plot_life_cycle(Sp1matU_NS, stages = stages, fontsize = 0)
Código
isIrreducible(Sp1matU_NS)
[1] FALSE
AdvertenciaCómo detectar y resolver — sobrevivencia cero en una etapa temprana

Detección en R:

which(colSums(matU) == 0)          # ¿columnas enteras de ceros?

Causa típica: la primera etapa (semillas, plántulas) tiene una probabilidad de germinación o supervivencia genuinamente baja, y ningún individuo de los muestreados sobrevivió al siguiente censo. El valor observado es 0, pero el valor real no lo es.

Cómo evitarlo o corregirlo:

  1. Aumentar el tamaño de muestra de la etapa crítica si es posible.
  2. Acoplar muestreos ex situ (cajas de germinación, paquetes de malla) para estimar el reclutamiento con precisión separada del tamaño poblacional.
  3. Usar un previo bayesiano biológicamente informado por la literatura (ver capítulo bayesiano y raretrans).
  4. Si se decide reportar 0, declararlo como un límite inferior y reportar el tamaño de muestra que produjo esa estimación.

19.4 Redondeo excesivo de valores

Uno de los errores más comunes en la construcción de los elementos de la matriz es el error de redondeo excesivo u otras estimaciones que dan como resultado valores de supervivencia superiores a 100%. Una estimación de supervivencia mayor a 1.00, genera que de manera artificial (por un milagro matemático) aumente la cantidad de individuos, ya que su origen no es debido a la reproducción (sexual u asexual), si no a un artificio matemático. El estimado de supervivencia de una etapa siempre tiene que ser menor o igual a 1. Tomemos el ejemplo del análisis de Serapias cordigera (Pellegrino & Bellusci, 2014) en donde los autores evaluaron las transiciones entre latencia, plántulas, roseta vegetativa y floración, en este ejemplo podemos observar que al sumar los valores de transición de la columna de plántulas de la matriz SerapiaU, obtenemos un valor de 1.01, lo que significa que no solamente las plántulas presentan una sobrevivencia perfecta, que ya vimos que es biológicamente imposible, si no que además están apareciendo plántulas de la nada (ya que las plántulas son incapaces de reproducirse sexual o asexualmente y por tanto su entrada en la matriz de fecundidad-SerapiaF- es cero), que provocan que la población de plántulas aumente en un 1% en cada período. Estos valores de sobrevivencia superiores a 1 son el resultado de errores en la recolección de datos y/o en el cálculo de la supervivencia de la etapa, pero más frecuentemente por el redondeo excesivo de los valores de sobrevivencia calculada al momento de incorporarlos a la matriz, en donde generalmente sólo se utilizan entre dos y tres decimales.

Código
SerapiaU <- rbind(
  c(0.668, 0.122, 0.294, 0.401),
  c(0.128, 0.000, 0.000, 0.000),
  c(0.000, 0.302, 0.453, 0.366),
  c(0.214, 0.364, 0.185, 0.207)
) # transition matrix

colSums(SerapiaU) # la suma de las columnas, nota que la primera columna es mayor de 100%. 
[1] 1.010 0.788 0.932 0.974
Código
SerapiaF <- rbind(
  c(0.0, 0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0, 0.0)
) # fertility matrix

SerapiaA = SerapiaU + SerapiaF # TF matrix

stages <- c("latente", "plantulas", "vegetativa", "adulto")

plot_life_cycle(SerapiaA, stages = stages)
Código
# Tenga en cuenta que la suma de supervivencia para la etapa inicial es mayor de 1, igual a 1.01
AdvertenciaCómo detectar y resolver — columna de U que suma más de 1

Detección en R:

which(colSums(matU) > 1)           # ¿qué etapas tienen sobrevivencia > 100%?
round(colSums(matU), 4)            # imprime las sumas con 4 decimales

Causa típica: redondeo a 2 ó 3 decimales en cada componente de la transición. Si las cuatro entradas que salen de una etapa se redondean independientemente, los errores se acumulan en el último decimal.

¿Por qué importa? Una columna que suma 1.01 en lugar de 1.00 implica un crecimiento artificial del 1 % por periodo —en 10 periodos, una sobreestimación de $$10 % de \(\lambda\) que no proviene de ninguna tasa vital biológica.

Cómo evitarlo o corregirlo:

  1. Trabajar con al menos 4–5 decimales en los cálculos intermedios y reportar al menos 3 decimales en la matriz final.
  2. Forzar la consistencia: calcular mortalidad <- 1 - colSums(matU) y verificar que es no-negativa.
  3. Si la suma sigue excediendo 1, regresar al paso de cálculo de las tasas vitales —no es un problema de redondeo sino de doble conteo (un mismo evento entró en dos celdas).

19.5 Estimaciones de fertilidad y ciclo de vida

La fecundidad influye considerablemente los resultados de los modelos. Es por ello que cometer errores en la incorporación de valores, tanto en el ciclo de vida como en las matrices, puede dar lugar a interpretaciones sin sentido biológico. Por esa razón, en esta sección mostramos algunos ejemplos de errores al incorporar la fecundidad en el ciclo de vida y la matriz, que dan como resultado problemas de causa. Vea el capítulo de Fecundidad para más detalles.

19.5.1 Ciclo de vida y etapa de fertilidad incorrectos

Suponga que tiene una especie en la que modela el ciclo de vida con los siguientes estadíos: plántula, juvenil y adulto, en donde la fecundidad se calcula con base en el número de semillas producidas por un adulto (número medio de semillas por adulto). Después de analizar los datos y calcular los valores de transición (Sp1matU), se determinó que el número medio de semillas producido por adulto es 1100, a partir del cual se construyó la matriz de fecundidad (Sp1matF). Si agregamos a la matriz de transición la matriz de fertilidad, y a continuación evaluamos el valor de lambda y graficamos el crecimiento de la población con la función proyect, tenemos un valor de lambda de 4.93 y después de tan solo 5 períodos de tiempo, el número de adultos supera los 250,000 individuos!!! Por consecuencia, la estimación de la tasa de crecimiento de la población sería incorrecta y engañosa, donde 30% de 11,000 semillas llegan a ser plántulas, un total de 3,300 plántulas!!!

Este error es el resultado del cálculo de la fecundidad, que debiera ser estimada con base en la primera etapa de la matriz, en este caso la etapa de plántula. Por lo tanto, la esquina superior derecha de la matriz de fertilidad no debe ser la cantidad media de semillas por planta, sino la cantidad media de semillas que transitan a plántulas producidas por una planta adulta. Recuerde que el número de semillas que llegan a plántula, son el resultado de múltiples factores; por ejemplo el porcentaje de viabilidad de las semillas por adulto, el porcentaje de semillas que arriban a un micro nicho propicio, el porcentaje de semillas que germinan y el porcentaje de sobrevivencia de las plántulas hasta el momento del muestreo, en donde se contabiliza el número de nuevas plántulas reclutadas. Por consecuencia el valor de esfuerzo reproductivo que entra en la matriz es condicional a todas estas condiciones.

Código
Sp1matU_Fert <- rbind(
  c(0.0, 0.0, 0.0),
  c(0.3, 0.7, 0.0),
  c(0.0, 0.25, 0.995)
) # matriz de transición

Sp1matF <- rbind(
  c(0.0, 0.0, 1100.0),
  c(0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0)
) # matriz de fertilidad

Sp1matA_Fert = Sp1matU_Fert + Sp1matF # TF matriz combinada: matA = matU + matF

stages <- c("plantula", "juvenil", "adulto")

lambda(Sp1matA_Fert)
[1] 4.937718
Código
# El cambio de tamaño de la población en 5 periodos de tiempo
n
[1] 50 50 50
Código
pr <- project(Sp1matA_Fert, vector = "n", time = 5)
plot(pr) # Nota que después de solamente 5 años ya la población aumentó a 250,000 individuos

AdvertenciaCómo detectar y resolver — fecundidad sobreestimada en la celda equivocada

Detección: en la matriz de fecundidad, la celda superior derecha contiene un número muy grande (cientos o miles) y produce \(\lambda\) irreal (p. ej. >2 en una especie longeva). Compare el reclutamiento real anual a la primera etapa con el valor en la matriz.

Causa típica: se anotó el número medio de semillas producidas por adulto, sin multiplicar por las probabilidades concatenadas de viabilidad, dispersión a un micrositio favorable, germinación y sobrevivencia hasta el primer censo.

Cómo evitarlo o corregirlo:

  1. La entrada \(f_{1,k}\) debe ser el número de plántulas observadas reclutándose por adulto (la primera etapa del modelo), no el número de semillas producidas.
  2. Documente explícitamente cómo se calculó la fecundidad —ya sea contando reclutas directamente o multiplicando \(\text{semillas} \times P_{\text{viabilidad}} \times P_{\text{germinación}} \times P_{\text{sobrevivencia plántula}}\) (ver el capítulo de Fecundidad).
  3. Especifique el tipo de censo (pre- o post-reproductivo) y si el modelo es birth-flow o birth-pulse (ver el protocolo estandarizado del capítulo 121).
  4. Si quiere modelar la cadena completa, agregue una etapa de semillas explícita —pero entonces debe reportar la transición semilla → plántula, lo que en orquídeas es un dato muy difícil de obtener.

19.5.2 Añadir una etapa de semillas

Si deseamos agregar una etapa de semilla a nuestro modelo, debemos incluir la etapa en nuestro modelo y crear una matriz con una nueva etapa semilla, para lo cual será necesario tener una estimación del número de semillas que germinan y se convierten en plántulas para poder calcular la transición de semillas a plántulas de nuestro modelo. En el caso de las orquídeas, dicha estimación es bastante difícil de lograr ya que las semillas de las orquídeas, debido a su tamaño minúsculo, son difíciles de seguir en la naturaleza. Aunque existen métodos para seguir las semillas como el de paquetes de malla de fitoplancton donde uno añade las semillas para monitorear esa etapa (Rasmussen & Whigham, 1993; Batty et al., 2006; Shao, Jacquemyn & Selosse, 2024) o algún método de huella genética para determinar la procedencia de las plántulas, que nos pueden ayudar a tener una estimación de esta transición, esta será incorrecta la mayoría de las veces, ya que en el caso de los paquetes de semillas se estará sobre-estimando la transición ya que no se estaría considerando la perdida de semillas por dispersión, en tanto que en el método de huella genética es muy probable que se subestime la transición ya que es muy difícil encontrar las plántulas en campo, sobre todo en orquídea epifitas. Por lo tanto, la estimación de la fertilidad en las orquídeas es un desafío y requiere un muestreo y análisis cuidadoso.

Código
Sp1matU_Fert2 <- rbind(
  c(0.0, 0.0, 0.0, 0.0),
  c(0.0001, 0.0, 0.0, 0.0),
  c(0.0, 0.3, 0.7, 0.0),
  c(0.0, 0.0, 0.25, 0.995)
) # transition matrix

Sp1matF2 <- rbind(
  c(0.0, 0.0, 0.0, 1100.0),
  c(0.0, 0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0, 0.0),
  c(0.0, 0.0, 0.0, 0.0)
) # fertility matrix

Sp1matA_Fert2 = Sp1matU_Fert2 + Sp1matF2 # TF matrix

stages <- c("semillas", "plantula", "juvenil", "adulto")

plot_life_cycle(Sp1matA_Fert2, stages = stages)
Código
lambda(Sp1matA_Fert2)
[1] 1.019805
Código
# show change in population size
pr <- project(Sp1matA_Fert2, vector = "n", time = 5)
plot(pr) # Note that now the number of adults did not increase to the level of the previous model


19.5.3 Semillas latentes

En el ejemplo anterior no hemos incluido una etapa de latencia de semillas. En otras palabras: ¿las semillas de orquídeas pueden sobrevivir por un periodo de tiempo largo? Esto sería tener un banco de semillas. ¿O las semillas, si no germinan el primer año, mueren? En muchas especies de plantas, las semillas pueden permanecer latentes durante uno o más años. No se sabe si las semillas de las orquídeas están inactivas durante mucho tiempo (Gale et al., 2010), excepto para algunas especies que han demostrado que las semillas aún están vivas después de varios años en el suelo usando la prueba de tinción de tetrazolio (Rasmussen & Whigham, 1993; Whigham et al., 2006). Es posible que las orquídeas terrestres tengan un banco de semillas, pero no se ha demostrado que las orquídeas epífitas tengan un banco de semillas. Por lo tanto, si se desea incluir una etapa de latencia de semillas en el modelo, es necesario tener una estimación del número de semillas que permanecen latentes y que pueden germinar en el futuro.


19.6 Problemas de análisis de datos

19.6.1 Estimaciones de intervalos de confianza incorrectas

Las estimaciones de dispersión en los parámetros de la matriz (supervivencia, transición, muerte y fertilidad) son útiles por múltiples razones tal como reconocer la confianza que se debería tener sobre el estimado puntual (el promedio o mediana). Por ello los parámetros con gran dispersión deben verse con precaución. El enfoque más básico es comprender la dispersión en el valor del parámetro como una función del tamaño de la muestra y el efecto espacial o temporal. Los estimados de dispersión pueden ser útiles para simulaciones y para comprender la incertidumbre en los estimados puntales y el comportamiento de la población como son lambda y la probabilidad de persistencia y extinción.

Los parámetros de supervivencia, muerte, permanencia y transición no se distribuyen normalmente ya que sus valores van de cero a uno. Ningún valor puede ser menor de cero o mayor de uno, incluidos los intervalos de confianza (limitados por 0 y 1). Si se usa la distribución gaussiana (distribución normal) es probable que el intervalo de confianza esté fuera de los límites.

Supongamos que deseamos calcular la probabilidad de supervivencia de una etapa y sus intervalos de confianza del 95%. Primeramente se determinó que de los 20 individuos muestreados uno falleció y 19 sobrevivieron entre el primer muestreo y al segundo muestreo. Posteriormente, se estimó un intervalo de confianza del 95% de la proporción de individuos que murieron basándose en una distribución gaussiana.

Donde la proporción que murió es \(\hat{p}\) y el número que murió es \(n_d\) y \(n\) es el tamaño de la muestra. En nuestro caso \(n_d=1\) y \(n=20\).

  • Construya un intervalo de confianza del 95% de la proporción de individuos que murieron basándose en una distribución gaussiana.

Donde la proporción que murió es \(\hat{p}\) y el número que murió es \(n_d\) y \(n\) es el tamaño de la muestra

\[\hat{p}=\frac{n_d}{n}\] con una probabilidad de muerte del 5%.

Código
p=1/20
p
[1] 0.05

El IC del 95% de una proporción se calcula usando la siguiente fórmula si se asume una distribución normal

\[\hat{p} \pm Z_{0.05} \sqrt{\frac{\hat{p}(1-\hat{p})}{n}}\]

  • Z_{0.05} es el valor crítico de Z para un IC del 95% = 1.96. Nota que, con ese cálculo, uno de los intervalos de confianza es negativo lo cual es ilógico, ya que es negativo.
Código
n = 20
HCI = p + (1.96 * sqrt((p * (1 - p)) / n)) # IC alto
HCI
[1] 0.1455186
Código
LCI = p - (1.96 * sqrt((p * (1 - p)) / n)) # IC bajo
LCI # Nota que el valor es sin sentido, ya que es negativo (¿qué es una proporción negativa?)
[1] -0.04551858

Un método más fácil es usar la función R propCI de la library(interpretCI) (Script 12). La función propCI calcula el intervalo de confianza del 95% de una proporción binomial. La función requiere el tamaño de la muestra, el número de eventos y el nivel de significancia. En este caso, el tamaño de la muestra es 20, el número de eventos es 1 (un individuo fallecido) y el nivel de significancia es 0.05. Note que el intervalo de confianza incluye valores negativos (irreales). Para resolver esto hay que usar funciones estadísticas alternativas como la distribución de Dirichlet en donde no se asume una distribución normal.

Código
resultado = propCI(n = 20, p = 0.05, alpha = 0.05)

resultado
$data
# A tibble: 1 × 1
  value
  <lgl>
1 NA   

$result
  alpha  n df    p P         se critical         ME       lower     upper
1  0.05 20 19 0.05 0 0.04873397 1.959964 0.09551683 -0.04551683 0.1455168
                       CI        z    pvalue alternative
1 0.05 [95CI -0.05; 0.15] 1.025978 0.3049018   two.sided

$call
propCI(n = 20, p = 0.05, alpha = 0.05)

attr(,"measure")
[1] "prop"
AdvertenciaCómo detectar y resolver — IC fuera de [0, 1]

Detección en R: los límites del IC reportan valores < 0 o > 1, o un error estándar mayor que la propia probabilidad cuando \(\hat p\) está cerca de 0 o de 1.

Causa típica: la fórmula gaussiana \(\hat p \pm z \sqrt{\hat p (1-\hat p)/n}\) supone que la distribución muestral de \(\hat p\) es simétrica, lo cual no es cierto cerca de las fronteras. Con \(\hat p = 0.05\) y \(n = 20\), el error estándar gaussiano es similar a \(\hat p\), y el límite inferior se vuelve negativo.

Cómo evitarlo o corregirlo: usar métodos que respeten los límites [0, 1]:

  1. Wilson o Clopper–Pearson (frecuentista): binom::binom.confint(x = 1, n = 20, methods = c("wilson", "exact")).
  2. Beta–Binomial para una sola probabilidad (bayesiano): la posterior conjugada con un previo Beta(1,1) es Beta(\(x+1\), \(n-x+1\)).
  3. Dirichlet–multinomial cuando hay más de dos categorías —es la opción correcta para una columna completa de la matriz U, donde estasis, transición y mortalidad deben sumar 1 simultáneamente. Esto es lo que se desarrolla en la siguiente sección.

19.7 Distribución Dirichlet de intervalo de confianza

Sin embargo, ¿cómo se calcula el IC del 95% cuando hay más de dos proporciones? Debido a que la proporción de todas las etapas depende de la proporción de las otras etapas, el análisis debe considerar la proporción y el IC del 95% debe incluir todas las etapas simultáneamente. La función requerida para esto es la función de Dirichlet multinomial (multigrupo).

La distribución de Dirichlet es una distribución de probabilidad continua multivariada que se utiliza para modelar la distribución de proporciones en un espacio de probabilidad. La distribución de Dirichlet es una generalización de la distribución beta a más de dos categorías. La distribución beta está limitada a valores de cero a uno inclusivo. La distribución de Dirichlet se utiliza comúnmente en el análisis de datos de proporciones, donde las proporciones de las categorías deben sumar uno.

En el siguiente script estimamos los intervalos de credibilidad del 95% de la transición y estasis de plántulas a plántulas (0.5), juveniles (0.2), adultos (0) y muerte (0.30). Tenga en cuenta que en el gráfico del ciclo de vida, como de costumbre, se excluyen las probabilidades de muerte. Esta función es un acercamiento bayesiano por consecuencia es un intervalo de credibilidad (ICr) y no un intervalo de confianza (IC). La diferencia entre ambos es que el intervalo de credibilidad es una estimación bayesiana, mientras que el intervalo de confianza es una estimación frecuentista.

Código
Dirichlet <- rbind(
  c(0.5, 0.0, 0.0),
  c(0.2, 0.0, 0.0),
  c(0.0, 0.3, 0.7)
) # transition matrix

stages <- c("plantula", "juvenil", "adulto")

plot_life_cycle(Dirichlet, stages = stages)

Para evaluar el intervalo ICr del 95% simultáneamente de las cuatro transiciones (plántulas a plántulas, plántulas a juvenil, plántulas a adultos y plántulas a muerte), usamos la library(MCMCpack), que es un paquete dedicado a realizar simulaciones de Monte Carlo de Cadenas Markovianas Markov Chain Monte Carlo. Para lo cual usaremos la función MCmultinomdirichlet. Tenga en cuenta que la primera lista son las proporciones que se muestran en la matriz para la etapa de plántula c(.50n, .2n, .0n, .3n) multiplicadas por el tamaño de la muestra n= 25. La segunda lista son los priores bayesianos c(0.5,0.2,0.0001,0.2999), en este caso asumí que la suma de los previas es igual a 1. Esto da como resultado una confianza muy baja en la percepción previa de lo que son las transiciones. Estamos dando muy poco peso a la percepción previa en los análisis. Otro tipo de previa para la transición es que sean iguales, sin embargo, podríamos haber usado c(1,1,.0001, 1), donde este previa sugiere una transición igual para todos menos las plántulas transitan hasta convertirse en adultos. IMPORTANTE: las previas deberían ser biológicamente realistas, usando lo conocido de la biología de los organismos que se estudian. Por experiencia y usando la literatura se puede hacer un estimado de las transiciones y usarlo como previa. El concepto de lo anterior no se puede explicar completamente aquí, consulte las siguientes referencia (Schoot et al., 2021; Tremblay et al., 2021).

Los resultados en la figura muestran que hay mucha dispersión alrededor de la proporción media de las estadísticas y la transición como se esperaba debido al pequeño tamaño de la muestra.

  • Hacemos una simulación de 100,000.
  • Recolectamos los resultados en la variable L.
  • Convertimos esta lista en un data frame.
  • Reorganizamos el data frame para que sea más fácil de graficar con la función stack.
  • Añadimos una columna con el tamaño de muestra, n=25.
  • Cambiamos los nombres de las etapas de la vida para que sean más fáciles de leer en la gráfica.
  • Graficamos los resultados
Código
n = 25
L = posteriorPRIORL <- MCmultinomdirichlet(
  c(.50 * n, .2 * n, .0 * n, .3 * n),
  c(.5, .2, 0.0001, .3),
  mc = 100000
)
dfL = as.data.frame(L)
t(summary(dfL))
                                                                     
     pi.1 Min.   :0.1333      1st Qu.:0.4332      Median :0.5002     
     pi.2 Min.   :0.01619     1st Qu.:0.14361     Median :0.19190    
     pi.3 Min.   :0.000e+00   1st Qu.:0.000e+00   Median :0.000e+00  
     pi.4 Min.   :0.04839     1st Qu.:0.23653     Median :0.29469    
                                                                     
     pi.1 Mean   :0.5002      3rd Qu.:0.5669      Max.   :0.8555     
     pi.2 Mean   :0.19994     3rd Qu.:0.24809     Max.   :0.61044    
     pi.3 Mean   :3.532e-06   3rd Qu.:0.000e+00   Max.   :8.930e-02  
     pi.4 Mean   :0.29986     3rd Qu.:0.35789     Max.   :0.71419    
Código
#head(dfL)
stack_dfL = stack(dfL)
comb_dfbL = cbind(stack_dfL, T = "25")

All_Data3 = comb_dfbL
levels(All_Data3$ind)[levels(All_Data3$ind) == "pi.1"] = "Plántulas"
levels(All_Data3$ind)[levels(All_Data3$ind) == "pi.2"] = "Juvenil"
levels(All_Data3$ind)[levels(All_Data3$ind) == "pi.3"] = "Adulto"
levels(All_Data3$ind)[levels(All_Data3$ind) == "pi.4"] = "Muerto"
  • Graficamos los resultados
Código
ggplot(data = All_Data3, aes(x = values, fill = ind)) +
  geom_density(alpha = .5) +
  scale_y_continuous(limit = c(0, 5.5)) +
  scale_colour_hue(l = 60) +
  facet_grid(~ind) +
  ylab(
    "La distribución de las proporciones \n de plántulas que crecen a la siguiente etapa"
  ) +
  xlab("Proporciones") +
  labs(fill = "Etapa de vida")+
  rlt_style_fill()

Ahora calculemos el ICr del 95% de las transiciones

Ahora que los datos están organizados en un data frame es fácil extraer los valores de las transiciones y calcular los intervalos de credibilidad del 95% de las transiciones, estasis y supervivencia. Para ello usamos la función ddply del paquete plyr para resumir los datos por la columna ind (etapa de vida) y calcular el promedio, desviación estándar, mediana, cuantil 5% y cuantil 95% de los valores de cada etapa.

  • Intervalos de credibilidad de transiciones, estasis y supervivencia basados en simulación y distribución de Dirichlet.

Aspectos importantes a tener en cuenta.

  • los ICr del 95% están acotados entre 0 y 1. Los valores por debajo de cero o por encima de uno en los parámetros no tendrían sentido.
  • la suma de los promedios es igual a 1.
  • la forma de la distribución no se distribuye normalmente, ver figura anterior. La forma de la distribución se llama distribución beta.
Código
Transiciones = ddply(
  All_Data3,
  c("ind"),
  summarise,
  mean = round(mean(values), 4),
  sd = round(sd(values), 5),
  median = round(median(values), 4),
  #sem = round(sd(values)/sqrt(length(values)),6), # para calcular el error estándar de la media
  ICr5 = round(quantile(values, probs = c(0.05)), 4), # el cuantil 5
  ICr95 = round(quantile(values, probs = c(0.95)), 4), # el cuantil 95
  min = min(values),
  max = max(values)
)

Transiciones
        ind   mean      sd median   ICr5  ICr95        min       max
1 Plántulas 0.5002 0.09634 0.5002 0.3423 0.6584 0.13332232 0.8555284
2   Juvenil 0.1999 0.07681 0.1919 0.0879 0.3386 0.01619188 0.6104438
3    Adulto 0.0000 0.00035 0.0000 0.0000 0.0000 0.00000000 0.0892976
4    Muerto 0.2999 0.08792 0.2947 0.1645 0.4540 0.04838864 0.7141851

Para visualizar los intervalo de credibilidad de las otras transiciones es solamente cambiar las variables la función L y n. En este caso, cambiamos el tamaño de la muestra correspondiente a esta etapa.


19.7.1 Tamaño de muestra y estimaciones de intervalos de confianza con n2=250

Para comparar con el ejemplo anterior asumimos que en lugar de tener solamente 25 plántulas teníamos 250 para las estimaciones.

Note que con los mismos estimados puntuales pero con un tamaño de muestra mayor la mediana sigue en el mismo lugar (casi) pero los ICr cambian mucho y son más reducidos los anchos de la dispersión, ya que con más datos en el muestreo existe más confianza resultado de una reducción en el ICr. Este análisis es primordial para entender la confianza que uno debería tener sobre los estimados de los parámetros de la matriz. Si se observa un ICr muy grande, se recomendaría modificar la recolección de datos en el campo para aumentar el tamaño de muestra de esa etapa específica.

Código
n2 = 250
L = posteriorPRIORL <- MCmultinomdirichlet(
  c(.50 * n2, .2 * n2, .0 * n2, .3 * n2),
  c(.5, .2, 0.0001, .3),
  mc = 100000
)
dfL = as.data.frame(L)
t(summary(dfL))
                                                                     
     pi.1 Min.   :0.3656      1st Qu.:0.4791      Median :0.5003     
     pi.2 Min.   :0.1074      1st Qu.:0.1825      Median :0.1991     
     pi.3 Min.   :0.000e+00   1st Qu.:0.000e+00   Median :0.000e+00  
     pi.4 Min.   :0.1783      1st Qu.:0.2800      Median :0.2992     
                                                                     
     pi.1 Mean   :0.5003      3rd Qu.:0.5215      Max.   :0.6509     
     pi.2 Mean   :0.1999      3rd Qu.:0.2165      Max.   :0.3209     
     pi.3 Mean   :4.989e-07   3rd Qu.:0.000e+00   Max.   :1.039e-02  
     pi.4 Mean   :0.2998      3rd Qu.:0.3190      Max.   :0.4270     
Código
#head(dfL)
stack_dfL = stack(dfL)
comb_dfbL = cbind(stack_dfL, T = "25")

All_Data4 = comb_dfbL
levels(All_Data4$ind)[levels(All_Data4$ind) == "pi.1"] = "Plántulas"
levels(All_Data4$ind)[levels(All_Data4$ind) == "pi.2"] = "Juvenil"
levels(All_Data4$ind)[levels(All_Data4$ind) == "pi.3"] = "Adulto"
levels(All_Data4$ind)[levels(All_Data4$ind) == "pi.4"] = "Muerto"

ggplot(data = All_Data4, aes(x = values, fill = ind)) +
  geom_density(aes(alpha = .5)) +
  scale_y_continuous(limit = c(0, 18)) +
  scale_colour_hue(l = 60) +
  facet_grid(~ind) +
  labs(fill = "Etapa de vida")+
  rlt_style_fill()

19.7.2 Los estimados de Intervalo de confianza con un tamaño de muestra de n=250

Note que ahora, los intervalos de confianza son más estrechos y no son negativos o mayores de uno.

Código
Transiciones = ddply(
  All_Data4,
  c("ind"),
  summarise,
  mean = round(mean(values), 3),
  sd = round(sd(values), 4),
  median = median(values),
  #sem = round(sd(values)/sqrt(length(values)),6),
  CI5 = quantile(values, probs = c(0.05)),
  CI95 = round(quantile(values, probs = c(0.95)), 4),
  min = min(values),
  max = max(values)
)

Transiciones
        ind mean     sd    median       CI5   CI95       min        max
1 Plántulas  0.5 0.0315 0.5003274 0.4484200 0.5522 0.3656393 0.65089271
2   Juvenil  0.2 0.0252 0.1991105 0.1598354 0.2425 0.1073714 0.32087866
3    Adulto  0.0 0.0001 0.0000000 0.0000000 0.0000 0.0000000 0.01038607
4    Muerto  0.3 0.0289 0.2991901 0.2535294 0.3481 0.1782920 0.42699991
Arditti J, Ghani A. 2000. Numerical and physical properties of orchid seeds and their biological implications (vol 145, pg 367, 2000). New Phytologist 146:569-569.
Balducci MG, Calevo J, Duffy KJ. 2024. Narrow mycorrhizal specialization and its effect on early development in the Mediterranean orchid Orchis italica. Botanical Journal of the Linnean Society:boae018.
Batty A, Brundrett M, Dixon K, Sivasithamparam K. 2006. In situ symbiotic seed germination and propagation of terrestrial orchid seedlings for establishment at field sites. Australian Journal of Botany 54:375-381.
Callaway RM, Reinhart KO, Moore GW, Moore DJ, Pennings SC. 2002. Epiphyte host preferences and host traits: mechanisms for species-specific interactions. Oecologia 132:221-230.
Caswell H. 1989. Matrix Population Models. Sinauer Sunderland, MA.
Gale SW, Yamazaki J, Hutchings MJ, Yukawa T, Miyoshi K. 2010. Constraints on establishment in an endangered terrestrial orchid: a comparative study of in vitro and in situ seed germinability and seedling development in Nervilia nipponica. Botanical Journal of the Linnean Society 163:166-180.
Gascoigne SJ, Rolph S, Sankey D, Nidadavolu N, Stell Pičman AS, Hernández CM, Philpott ME, Salam A, Bernard C, Fenollosa E, others. 2023. A standard protocol to report discrete stage-structured demographic information. Methods in Ecology and Evolution 14:2065-2083.
González-Orellana N, Mendoza AS, Tremblay R, Ackerman J. 2024. Host suitability for germination differs from that of later stages of development in a rare epiphytic orchid. Lankesteriana: International Journal on Orchidology:93-114.
Iralu V, Barbhuyan HSA, Upadhaya K. 2019. Ecology of seed germination in threatened trees: a review. Energy, Ecology and Environment 4:189-210.
Pellegrino G, Bellusci F. 2014. Effects of human disturbance on reproductive success and population viability of Serapias cordigera (Orchidaceae). Botanical Journal of the Linnean Society 176:408-420.
Petrolli R, Zinger L, Perez-Lamarque B, Collobert G, Griveau C, Pailler T, Selosse M-A, Martos F. 2022. Spatial turnover of fungi and partner choice shape mycorrhizal networks in epiphytic orchids. Journal of Ecology 110:2568-2584.
Rasmussen HN. 1995. Terrestrial orchids: from seed to mycotrophic plant. Cambridge University Press.
Rasmussen HN, Dixon KW, Jersáková J, Těšitelová T. 2015. Germination and seedling establishment in orchids: a complex of requirements. Annals of Botany 116:391-402.
Rasmussen HN, Whigham DF. 1993. Seed ecology of dust seeds in situ: a new study technique and its application in terrestrial orchids. American Journal of Botany 80:1374-1378.
Schoot R van de, Depaoli S, King R, Kramer B, Märtens K, Tadesse MG, Vannucci M, Gelman A, Veen D, Willemsen J, others. 2021. Bayesian statistics and modelling. Nature Reviews Methods Primers 1:1.
Shao S-C, Jacquemyn H, Selosse M-A. 2024. Improved use of mycorrhizal fungi for upscaling of orchid cultivation and population restoration of endangered orchids in China. Symbiosis:1-10.
Stott I, Townley S, Carslake D, Hodgson DJ. 2010. On reducibility and ergodicity of population projection matrix models. Methods in Ecology and Evolution 1:242-252.
Torres AD, Cellini JM, Lencinas MV, Barrera MD, Soler R, Dı́az Delgado R, Martı́nez Pastur G. 2015. Seed production and recruitment in primary and harvested Nothofagus pumilio forests: influence of regional climate and years after cuttings. Forest Systems 24.
Tremblay R, Tyre AJ, Pérez M-E, Ackerman JD. 2021. Population projections from holey matrices: Using prior information to estimate rare transition events. Ecological Modelling 447:109526.
Whigham DF, O’Neill JP, Rasmussen HN, Caldwell BA, McCormick MK. 2006. Seed longevity in terrestrial orchids–potential for persistent in situ seed banks. Biological Conservation 129:24-30.