Capítulo 3


Cadeias de Markov em Tempo Contínuo



“The greatest value of a picture is when it forces us to notice what we never expected to see.”



– John Tukey, 1977



3.1. Introdução


No capítulo anterior foram estudadas cadeias de Markov em tempo discreto, nas quais as mudanças de estado ocorrem exclusivamente em instantes igualmente espaçados, dados por \(t = 0, 1, 2, \ldots\). Contudo, em inúmeras aplicações práticas — tais como sistemas de filas, análise de confiabilidade, dinâmica populacional, processos biológicos e modelos epidemiológicos — as transições entre estados não estão restritas a pontos discretos no tempo, podendo ocorrer em qualquer instante dentro de um domínio contínuo. Para representar adequadamente esse tipo de fenômeno, recorre-se ao arcabouço teórico das cadeias de Markov em tempo contínuo. Nesse contexto, a dinâmica do processo é regida por dois componentes fundamentais: (i) os tempos entre transições, que são modelados como variáveis aleatórias, tipicamente com distribuição exponencial, e (ii) a sequência dos estados visitados, que preserva a estrutura markoviana dos processos estocásticos com memória restrita ao presente.


Definição 3.1 (Cadeia de Markov em Tempo Contínuo). Seja \(\{X(t)\}_{t \geqslant 0}\) um processo estocástico em tempo contínuo, definido sobre um espaço de estados enumerável \(\mathcal{E}\) (finito ou infinito). Diz-se que \(\{X(t)\}\) é uma cadeia de Markov em tempo contínuo se, para quaisquer \(s, t \geqslant 0\) e quaisquer estados \(i, j \in \mathcal{E}\), a seguinte condição — conhecida como propriedade de Markov — for satisfeita: \[\begin{align}\\ P\left\{X(t + s) = j \mid X(u), \, u \leqslant s\right\} = P\left\{X(t + s) = j \mid X(s) = i\right\}\\\\ \end{align}\] Se, além disto, a probabilidade de transição entre dois estados, digamos \(i,j\in \mathcal{E}\), depende somente do intervalo de tempo durante o qual ocorre a transição e não dos instantes de tempo em que a cadeia ocupa esses estados, ou seja, quando: \[\begin{align}\\ P\bigl\{X(t + s) = j \mid X(t) = j\bigr\} = P_{i, j}(t)\\\\ \end{align}\] a cadeia será chamada de homogênea no tempo.


Exemplo 3.1 (Processo de Nascimento e Morte em Tempo Contínuo). Considere um processo estocástico em tempo contínuo \(\{X(t)\}_{t \ \geqslant \ 0}\) com espaço de estados enumerável \(\mathcal{E} = \{0,1,2,\ldots\}\), que representa o tamanho de uma população em determinado instante. O processo evolui por meio de transições de nascimento e morte, com as seguintes características:


  • Nascimento: A transição de \(i\) para \(i + 1\) ocorre com taxa constante \(\lambda > 0\), para todo \(i \in \mathcal{E}\).

  • Morte: A transição de \(i\) para \(i - 1\) ocorre com taxa constante \(\mu > 0\), para todo \(i \geqslant 1\).

  • Tempo de Permanência: Para \(i \geqslant 1\), o tempo até a próxima transição, quando o processo está no estado \(i\), segue uma distribuição exponencial com parâmetro \(\lambda + \mu\) (ou apenas \(\lambda\) quando \(i = 0\)).


As probabilidades de transição para um pequeno intervalo de tempo \(h > 0\) são dadas por:

\[\begin{align}\\ & P\bigl\{X(t+h) = i+1 \mid X(t) = i\bigr\} = \lambda h + o(h), \qquad i \geqslant 1\\\\ & P\bigl\{X(t+h) = i-1 \mid X(t) = i\bigr\} = \mu h + o(h), \qquad i \geqslant 1\\\\ & P\bigl\{X(t+h) = i \mid X(t) = i\bigr\} = 1 - (\lambda + \mu) h + o(h), \qquad i \geqslant 1\\\\ \end{align}\]

em que \(o(h)\) representa termos que satisfazem \(\lim_{h \to 0} o(h)/h = 0\). Este processo é uma cadeia de Markov em tempo contínuo, uma vez que satisfaz a propriedade de Markov: a distribuição condicional do estado futuro depende exclusivamente do estado atual, independentemente da trajetória anterior. Além disso, os tempos de permanência em cada estado seguem distribuições exponenciais, conferindo ao processo a propriedade de falta de memória.


O Código 3.1 apresenta uma simulação, em linguagem R, de uma realização deste processo, considerando taxas constantes de nascimento \(\lambda = 0{.}5\) e morte \(\mu = 0{.}3\), em um horizonte temporal definido pelo intervalo \([0, 50]\). O tempo de espera entre transições foi modelado por variáveis aleatórias independentes, com distribuição exponencial de parâmetro \(\theta = \lambda\) quando o processo se encontra no estado inicial, e \(\theta = \lambda + \mu\) para os demais estados. A Figura 3.1 ilustra a trajetória do processo, isto é, a evolução do tamanho populacional ao longo do tempo.


Código 3.1. Simulação de um processo de nascimento e morte em tempo contínuo, com \(\lambda = 0{.}5\) e \(\mu = 0{.}3\), no intervalo \([0,50]\).

## --------------------------------------------------------------
## Simulação de Processo de Nascimento e Morte em Tempo Contínuo
## --------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(125)           # Semente (Para Reprodutibilidade)
lambda  <- 0.5          # Taxa de Nascimento
mu      <- 0.3          # Taxa de Morte
T_max   <- 50           # Tempo Máximo de Simulação

# --- 2. Inicialização ---

t       <- 0            # Tempo Inicial
estado  <- 0            # Estado Inicial (Número de Indivíduos)
tempo   <- c(t)         # Tempos das Transições
estados <- c(estado)    # Estados do Processo

# --- 3. Simulação da Cadeia de Markov em Tempo Contínuo ---

while (t < T_max) 
{
  # Taxa Total de Saída do Estado Atual
  
  rate_total  <- ifelse(estado == 0, lambda, lambda + mu)
  
  # Tempo até a Próxima Transição (Exponencial com Parâmetro rate_total)
  
  delta_t     <- rexp(1, rate = rate_total)
  t           <- t + delta_t
  if (t > T_max) break
  
  # Probabilidade de Transição para Nascimento ou Morte
  
  p_birth     <- ifelse(estado == 0, 1, lambda / rate_total)
  
  # Decide o Tipo de Transição
  
  if (runif(1) < p_birth) {
    estado    <- estado + 1    # Nascimento
  } else if (estado > 0) {
    estado    <- estado - 1    # Morte
  }
  
  # Armazena os Resultados
  
  tempo       <- c(tempo, t)
  estados     <- c(estados, estado)
}

df            <- data.frame(tempo = tempo,
                            estado = estados)

# --- 4. Visualização da Trajetória do Processo ---

ggplot(df, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "darkviolet", size = 0.5) +
  geom_point(color = "purple", size = 1.0) + 
  labs(title = "",
       x = "Tempo",
       y = "Número de Indivíduos (Estado)") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.1.. Trajetória simulada de um processo de nascimento e morte em tempo contínuo, com \(\lambda = 0{.}5\) e \(\mu = 0{.}3\), no intervalo \([0,50]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.2 (Processo de Mudança de Regime em Tempo Contínuo). Considere um processo estocástico em tempo contínuo \(\{X(t)\}_{t \ \geqslant \ 0}\), com espaço de estados finito \(\mathcal{E} = \{1, 2, 3\}\), que representa o regime operacional de um sistema, mercado financeiro ou ambiente físico, em determinado instante. Cada estado corresponde a um regime distinto de operação, e o sistema pode alternar livremente entre esses regimes de acordo com taxas constantes. A dinâmica do processo é caracterizada pelas seguintes regras:


  • Quando o processo está no estado \(i\), ele transita para qualquer outro estado \(j \neq i\) com taxa constante \(q_{ij} > 0\).

  • O tempo de permanência no estado \(i\) é uma variável aleatória exponencial com parâmetro igual à soma das taxas de saída desse estado, ou seja, \(q_i = \sum_{j \neq i} q_{ij}\).


As probabilidades de transição para um pequeno intervalo de tempo \(h > 0\) são dadas por:

\[\begin{align}\\ &P\left\{X(t+h) = j \mid X(t) = i\right\} = q_{ij} h + o(h), \qquad j \neq i \\\\ &P\left\{X(t+h) = i \mid X(t) = i\right\} = 1 - q_i h + o(h)\\\\ \end{align}\]

em que \(o(h)\) representa termos que satisfazem \(\lim_{h \to 0} o(h)/h = 0\), e \(q_i = \sum_{j \neq i} q_{ij}\) é a taxa total de saída do estado \(i\). Este processo, em particular, é uma cadeia de Markov em tempo contínuo, uma vez que satisfaz a propriedade de Markov.


O Código 3.2 apresenta uma simulação, em linguagem R, de uma realização deste processo, considerando as seguintes taxas de transição:


  • Do estado 1 para 2: \(q_{12} = 0{.}4\); do estado 1 para 3: \(q_{13} = 0{.}6\).

  • Do estado 2 para 1: \(q_{21} = 0{.}3\); do estado 2 para 3: \(q_{23} = 0{.}5\).

  • Do estado 3 para 1: \(q_{31} = 0{.}2\); do estado 3 para 2: \(q_{32} = 0{.}7\).


A modelagem do tempo até a próxima mudança de estado, partindo do estado atual \(i\), foi realizada por meio de uma variável aleatória com distribuição exponencial de parâmetro igual à soma das taxas de saída do estado \(i\), ou seja, \(\theta = \sum_{j \neq i} q_{ij} \equiv q_i\). A Figura 3.2 ilustra a trajetória do processo, isto é, a evolução dos regimes ao longo do tempo.


Código 3.2. Simulação de um processo de mudança de regime em tempo contínuo, com as taxas de transição especificadas, no intervalo \([0,20]\).

## -------------------------------------------------------------
## Simulação de Processo de Mudança de Regime em Tempo Contínuo
## -------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(1234)         # Semente (Para Reprodutibilidade)

# Taxas de transição q_ij (de i para j)

q       <- matrix(0, nrow = 3, ncol = 3)
q[1, 2] <- 0.4
q[1, 3] <- 0.6
q[2, 1] <- 0.3
q[2, 3] <- 0.5
q[3, 1] <- 0.2
q[3, 2] <- 0.7

T_max   <- 20           # Tempo Máximo de Simulação

# --- 2. Inicialização ---

t       <- 0            # Tempo Inicial
estado  <- 1            # Estado Inicial 
tempo   <- c(t)         # Tempos das Transições
estados <- c(estado)    # Estados Visitados

# --- 3. Simulação da Cadeia de Markov em Tempo Contínuo ---

while (t < T_max) 
{
  # Taxa Total de Saída do Estado Atual i
  
  rate_total    <- sum(q[estado, ])
  
  # Tempo até a Próxima Transição (Exponencial com Parâmetro rate_total)
  
  delta_t       <- rexp(1, rate = rate_total)
  t             <- t + delta_t
  if (t > T_max) break
  
  # Probabilidade de Transição 
  
  probs         <- q[estado, ] / rate_total
  probs[estado] <- 0
  
  # Próximo Estado Sorteado Segundo Uma Distribuição Discreta
  
  estado        <- sample(1:3, size = 1, prob = probs)
  
  # Armazena os Resultados
  
  tempo         <- c(tempo, t)
  estados       <- c(estados, estado)
}

df              <- data.frame(tempo = tempo, estado = estados)

# --- 4. Visualização da Trajetória do Processo ---

ggplot(df, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "black", size = 0.5) +
  geom_point(color = "darkblue", size = 1.0) + 
  scale_y_continuous(breaks = 1:3, labels = c("Estado 1", "Estado 2", "Estado 3")) +
  labs(title = "",
       x = "Tempo",
       y = "Regime (Estado)") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.2.. Trajetória simulada de um processo de mudança de regime em tempo contínuo, com as taxas de transição especificadas, no intervalo \([0,20]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Assim como no caso do tempo discreto, daqui para frente vamos nos limitar ao estudo das cadeias de Markov homogêneas em tempo contínuo. Para tais cadeias, chamaremos à família de matrizes \(P(t) = \left[P_{i,j}(t)\right]_{i,j \ \in \ \mathcal{E}}\), com \(t \geqslant 0\), de função de transição da cadeia \(\{X_t\}_{t \ \geqslant \ 0}\). Essa função, em particular, satisfaz as propriedades:


  • Condição Inicial: \(P(0) = I\), onde \(I\) denota a matriz identidade de dimensão \(|\mathcal{E}|\).

  • Propriedade Estocástica: Para todo \(t \geqslant 0\), a matriz \(P(t)\) é uma matriz de transição estocástica, ou seja, seus elementos são não negativos e, para cada estado \(i \in \mathcal{E}\), a soma das probabilidades de transição para todos os estados possíveis é igual a 1. Formalmente, \[\begin{align}\\ P_{i,j}(t) \geqslant 0,\quad \forall\ i, j \in \mathcal{E}\\\\ \end{align}\] e, \[\begin{align}\\ \sum_{j \in \mathcal{E}} P_{i,j}(t) = 1,\quad \forall\ i \in \mathcal{E}\\\\ \end{align}\]

  • Equação de Chapman-Kolmogorov: Para quaisquer \(t, s \geqslant 0\), a função de transição satisfaz a relação: \[\begin{align}\\ P(t + s) = P(t)P(s)\\\\ \end{align}\] ou, de forma equivalente nos elementos da matriz, \[\begin{align}\\ P_{i,j}(t + s) = \sum_{k \in \mathcal{E}} P_{i,k}(t) \cdot P_{k,j}(s),\quad \forall\ i, j \in \mathcal{E}\\\\ \end{align}\]


Exemplo 3.3 (Processo de Poisson Homogêneo). Seja \(\{N_t\}_{t \ \geqslant \ 0}\) um processo de Poisson homogêneo com taxa \(\lambda > 0\). Esse processo, em particular, é uma cadeia de Markov em tempo contínuo. De fato, sejam \(t, s \geqslant 0\) dois instantes quaisquer de tempo, e \(\{i(u)\}_{u \ < \ s}\) uma trajetória do processo até o tempo \(s\), de modo que \(N_u = i(u)\) para todo \(u < s\), e suponha que \(N_s = i\). Então, a propriedade de incrementos independentes do processo de Poisson garante que:

\[\begin{align}\\ \mathrm{P}\left\{N_{t+s} = j \mid N_s = i,\ N_u = i(u),\ u < s\right\} = \mathrm{P}\left\{N_{t+s} - N_s = j - i \mid N_s = i,\ N_u = i(u),\ u < s\right\}\\\\ \end{align}\]

Pela independência e estacionariedade dos incrementos, tem-se:

\[\begin{align}\\ \mathrm{P}\left\{N_{t+s} = j \mid N_s = i,\ N_u = i(u),\ u < s\right\} &= \mathrm{P}\left\{N_{t+s} - N_s = j - i\right\}\\\\ &= \mathrm{P}\left\{N_t = j - i\right\}\\\\ \end{align}\]

Logo, a distribuição condicional de \(N_{t+s}\), dado o estado atual \(N_s = i\) e todo o passado até \(s\), depende apenas do estado atual \(i\) e do incremento de tempo \(t\), não dependendo da trajetória anterior. Isso caracteriza o processo \(\{N_t\}_{t \ \geqslant \ 0}\) como uma cadeia de Markov em tempo contínuo. A função de transição associada, usando a distribuição de Poisson para o incremento \(N_t\), é, portanto,

\[\begin{align}\\ P_{i,j}(t) = \mathrm{P}\left\{N_t = j - i\right\} = \begin{cases} \dfrac{e^{-\lambda t}(\lambda t)^{j-i}}{(j-i)!}, & j \geqslant i, \\[10pt] 0, & j < i. \end{cases}\\\\ \end{align}\]

O Código 3.3 apresenta uma simulação, em linguagem R, de uma realização do processo de Poisson homogêneo \(\{N_t\}_{t \ \geqslant \ 0}\), com taxa constante \(\lambda = 2\). Neste processo, os tempos entre eventos são independentes e seguem distribuição exponencial de parâmetro \(\lambda\). A Figura 3.3 ilustra a evolução da contagem acumulada de eventos (trajetória do processo) ao longo do intervalo temporal considerado.


Código 3.3. Simulação de uma realização do processo de Poisson homogêneo, com taxa \(\lambda = 2\), no intervalo \([0, 30]\).

## ----------------------------------------------------------------
## Simulação de um Processo de Poisson Homogêneo em Tempo Contínuo
## ----------------------------------------------------------------


# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(123)          # Semente (Para Reprodutibilidade)

lambda    <- 2         # Taxa do Processo de Poisson
T_max     <- 30        # Tempo Máximo de Simulação

# --- 2. Inicialização ---

t         <- 0         # Tempo Inicial
estado    <- 0         # Estado Inicial (Contagem Inicial)
tempo     <- c(t)      # Tempos das Ocorrências
estados   <- c(estado) # Estados Visitados (Contagem ao Longo do Tempo)

# --- 3. Simulação do Processo de Poisson ---

while (t < T_max) 
{
  # Tempo até o Próximo Evento (Exponencial com Parâmetro lambda)
  
  delta_t    <- rexp(1, rate = lambda)
  t          <- t + delta_t
  if (t > T_max) break
  
  # Atualiza Estado (Incrementa a Contagem)
  
  estado     <- estado + 1
  
  # Armazena os Resultados
  
  tempo      <- c(tempo, t)
  estados    <- c(estados, estado)
}

df_poisson   <- data.frame(tempo = tempo, estado = estados)

# --- 4. Visualização da Trajetória do Processo ---

ggplot(df_poisson, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "darkgreen", size = 0.5) +
  geom_point(color = "darkgreen", size = 1.0) + 
  labs(title = "",
       x = "Tempo",
       y = "Número de Eventos (Estado)") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.3.. Trajetória simulada de um processo de Poisson homogêneo, com taxa \(\lambda = 2\), no intervalo \([0, 30]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.4. Consideremos novamente um processo de Poisson homogêneo \(\{N_t\}_{t \ \geqslant \ 0}\) com taxa \(\lambda > 0\). Defina o processo \(\{X_t\}_{t \ \geqslant \ 0}\) com espaço de estados \(\mathcal{E} = \{1, -1\}\) por meio da relação:

\[\begin{align}\\ X_t = X_0 \, (-1)^{N_t}\\\\ \end{align}\]

em que \(X_0\) é uma variável aleatória com valores em \(\mathcal{E}\), independente do processo \(\{N_t\}_{t \ \geqslant \ 0}\). Para \(t, s \geqslant 0\), observe que:

\[\begin{align}\\ X_{t+s} = X_0 \, (-1)^{N_{t+s}} = X_0 \, (-1)^{N_s} \, (-1)^{N_{t+s} - N_s} = X_s \, (-1)^{N_{t+s} - N_s}\\\\ \end{align}\]

Logo, os valores de \(X_{t+s}\) dependem da história do processo até o instante \(s\) através do estado em \(s\), \(X_s\) e do incremento \(N_{t+s} - N_s\). Como \(\{N_t\}_{t \ \geqslant \ 0}\) é um processo de Poisson com incrementos independentes, o incremento \(N_{t+s} - N_s\) é independente de \(\{N_u, u \leqslant s\}\), e consequentemente também independente de \(\{X_u, u \leqslant s\}\). Dessa forma, a cadeia \(\{X_t\}_{t \ \geqslant \ 0}\) satisfaz a propriedade de Markov e, para quaisquer \(i,j \in \mathcal{E}\), tem-se que:

\[\begin{align}\\ P\left\{X_{t+s} = j \mid X_s = i, X_u = i(u), u < s \right\} &= P\left\{ X_s \, (-1)^{N_{t+s} - N_s} = j \mid X_s = i \right\}\\\\ &= P\left\{ i \, (-1)^{N_t} = j \right\}\\\\ \end{align}\] onde, por homogeneidade, define-se \(t\) para representar o incremento \(t+s - s\). Assim, denotando por \(P_{i,j}(t)\) a função de transição da cadeia \(\{X_t\}_{t \ \geqslant \ 0}\), tem-se:

\[\begin{align}\\ P_{i,j}(t) = P\left\{ i \, (-1)^{N_t} = j \right\}\\\\ \end{align}\]

Note que, para \(i,j \in \{1,-1\}\), a igualdade:

\[\begin{align}\\ i \, (-1)^{N_t} = j\\\\ \end{align}\]

implica que:


  • Se \(i = j\), então \((-1)^{N_t} = 1\), ou seja, \(N_t\) é par.

  • Se \(i \neq j\), então \((-1)^{N_t} = -1\), ou seja, \(N_t\) é ímpar.


Logo, \(P_{i,i}(t) = P\left\{ N_t \text{ é par} \right\}\) e \(P_{i,-i}(t) = P\left\{ N_t \text{ é ímpar} \right\}\). Como o processo \(\{N_t\}_{t \geqslant 0}\) tem distribuição de Poisson com parâmetro \(\lambda t\), tem-se: \[\begin{align}\\ P_{i,-i}(t) &= \sum_{k=0}^\infty P\left\{ N_t = 2k+1 \right\} = \sum_{k=0}^\infty e^{-\lambda t} \frac{(\lambda t)^{2k+1}}{(2k+1)!} = \frac{1 - e^{-2 \lambda t}}{2}\\\\ P_{i,i}(t) &= \sum_{k=0}^\infty P\left\{ N_t = 2k \right\} = \sum_{k=0}^\infty e^{-\lambda t} \frac{(\lambda t)^{2k}}{(2k)!} = \frac{1 + e^{-2 \lambda t}}{2}\\\\ \end{align}\]

Assim, a matriz de funções de transição \(P(t) = \left[P_{i,j}(t)\right]_{i,j \ \in \ {1,-1}}\) é dada por

\[\begin{align}\\ P(t) = \dfrac{1}{2}\begin{bmatrix} 1 + e^{-2 \lambda t} & 1 - e^{-2 \lambda t} \\ 1 - e^{-2 \lambda t} & 1 + e^{-2 \lambda t} \end{bmatrix}\\\\ \end{align}\]

O Código 3.4 apresenta uma simulação, em linguagem R, de uma realização do processo \(\{X_t\}_{t \ \geqslant \ 0}\) com taxa \(\lambda = 0.5\). Este processo é construído a partir de um processo de Poisson homogêneo \(\{N_t\}_{t \ \geqslant \ 0}\), de tal forma que o estado do processo \(\{X_t\}_{t \ \geqslant \ 0}\) alterna entre os valores \(1\) e \(-1\) sempre que ocorre um evento no processo de Poisson. A Figura 3.4 ilustra a trajetória do processo \(\{X_t\}_{t \ \geqslant \ 0}\), destacando a dinâmica de alternância entre os estados ao longo do tempo, em função da ocorrência dos eventos do processo de Poisson subjacente.


Código 3.4. Simulação de uma realização do processo \(\{X_t\}_{t \ \geqslant \ 0}\) com taxa \(\lambda = 0.5\), no intervalo \([0, 100]\).

## -----------------------------------------
## Simulação do Processo X_t do Exemplo 3.4
## -----------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(1212)         # Semente (Para Reprodutibilidade)

lambda  <- 0.5         # Taxa do Processo de Poisson
T_max   <- 100         # Tempo Máximo de Simulação

# --- 2. Inicialização ---

t         <- 0         # Tempo Inicial
estado    <- sample(c(-1, 1), size = 1)  # Estado inicial aleatório em {-1,1}
tempo     <- c(t)      # Tempos das Transições
estados   <- c(estado) # Estados Visitados

# --- 3. Simulação do Processo ---

while (t < T_max) 
{
  # Tempo até o Próximo Evento (Exponencial com Parâmetro lambda)
  
  delta_t    <- rexp(1, rate = lambda)
  t          <- t + delta_t
  if (t > T_max) break
  
  # Atualiza Estado (Alterna Entre 1 e -1)
  
  estado     <- -estado
  
  # Armazena os Resultados
  
  tempo      <- c(tempo, t)
  estados    <- c(estados, estado)
}

df_xt        <- data.frame(tempo = tempo, estado = estados)

# --- 4. Visualização da Trajetória do Processo ---

ggplot(df_xt, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "black", size = 0.5) +
  geom_point(color = "darkred", size = 1.0) + 
  scale_y_continuous(breaks = c(-1, 1), labels = c("Estado -1", "Estado 1")) +
  labs(title = "",
       x = "Tempo",
       y = "Estado") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.4.. Trajetória simulada do processo \(\{X_t\}_{t \ \geqslant \ 0}\) com taxa \(\lambda = 0.5\), no intervalo \([0, 100]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

3.2. Propriedades das Cadeias de Markov em Tempo Contínuo


Nos exemplos anteriores, as simulações das trajetórias da cadeia de Markov \(\left\{X_t\right\}_{t \geqslant 0}\) foram construídas a partir de distribuições exponenciais, utilizadas para modelar os tempos de permanência nos estados do processo. Nesta seção, formaliza-se esse conceito por meio da variável aleatória que representa esse tempo. Mais precisamente, seja \(t \geqslant 0\) um instante arbitrário. Define-se o tempo durante o qual a cadeia permanece no estado ocupado no instante \(t\), denominado tempo de permanência, pela variável aleatória \(W_t\), dada por

\[\begin{align}\\ W_t(\omega) = \inf \left\{ s \geqslant 0 : X_{t+s}(\omega) \neq X_t(\omega) \right\}\\\\ \end{align}\]

Com base no comportamento da variável aleatória \(W_t\), os estados da cadeia de Markov em tempo contínuo \(\left\{X_t\right\}_{t \ \geqslant \ 0}\) são classificados da seguinte maneira:


  • O estado \(i\) é chamado de estado instantâneo se \(P\left\{ W_t = 0 \mid X_t = i \right\} = 1\), o que significa que a cadeia permanece neste estado apenas no instante de chegada, isto é, transita imediatamente para outro estado, sem permanecer nele por um intervalo de tempo positivo.

  • O estado \(i\) é chamado de estado absorvente se \(P\left\{ W_t < +\infty \mid X_t = i \right\} = 0\), o que significa que, uma vez que a cadeia atinja esse estado, ela permanece nele indefinidamente, sem possibilidade de transição para qualquer outro estado.

  • O estado \(i\) é chamado de estado estável se \(P\left\{ 0 < W_t < +\infty \mid X_t = i \right\} = 1\), o que significa que a cadeia permanece neste estado durante um intervalo de tempo positivo e finito antes de transitar para outro estado.


Em particular, no caso de cadeias de Markov em tempo contínuo que não admitem estados instantâneos, a distribuição da variável aleatória \(W_t\) pode ser caracterizada de forma explícita. Tal distribuição está diretamente relacionada às taxas de transição associadas a cada estado do processo e será formalmente apresentada no Teorema 3.1 a seguir.


Teorema 3.1 (Distribuição do Tempo de Permanência - Basu 2003; Tijms 2003; Hinojosa e Milanés 2011). Seja \(\left\{X_t \right\}_{t \ \geqslant \ 0}\) uma cadeia de Markov em tempo contínuo, homogênea, definida em um espaço de estados enumerável \(\mathcal{E}\) (finito ou infinito), sem estados instantâneos. Para todo estado \(i \in \mathcal{E}\), tem-se que a distribuição de \(W_t\) é descrita por:

\[\begin{align}\\ P\left\{ W_t > u \mid X_t = i \right\} = e^{-q_i u}, \quad u \geqslant 0\\\\ \end{align}\]

para algum número \(q_i \in [0, +\infty)\), que representa a taxa de saída do estado \(i\).


Demonstração. Fixemos um estado \(i \in \mathcal{E}\). Logo, pela homogeneidade no tempo da cadeia, tem-se que a probabilidade condicional \(P\left\{W_t > u \mid X_t = i \right\}\) não depende do instante \(t\). Sendo assim, defina:

\[\begin{align}\\ f(u) = P\left\{ W_t > u \mid X_t = i \right\}\\\\ \end{align}\]

Agora, note que o evento \(\{W_t > u + v\}\) ocorre se, e somente se, ocorrerem simultaneamente os eventos \(\{W_t > u\}\) e \(\{W_{t+u} > v\}\). Então, tem-se que:

\[\begin{align}\\ f(u + v) &= P\left\{ W_t > u + v \mid X_t = i \right\} \\\\ &= P\left\{ W_{t+u} > v \mid W_t > u, X_t = i \right\} \cdot P\left\{ W_t > u \mid X_t = i \right\}\\\\ \end{align}\]

Como não existem estados instantâneos, tem-se que \(\{X_t = i, W_t > u\} = \{X_\tau = i, \, t \leqslant \tau \leqslant t + u\}\). Então, pela propriedade de Markov e a homogeneidade no tempo, tem-se que,

\[\begin{align}\\ P\left\{ W_{t+u} > v \mid W_t > u, X_t = i \right\} = P\left\{ W_t > v \mid X_t = i \right\} = f(v)\\\\ \end{align}\]

Logo, a função \(f\) satisfaz a equação \(f(u + v) = f(u) \, f(v)\). Dessa forma, existem duas possibilidades para \(f\): ou \(f\) é identicamente nula, ou existe uma constante \(q_i \in \mathbb{R}\) tal que:

\[\begin{align}\\ f(u) = e^{-q_i u}\\\\ \end{align}\]

Mas como não há estados instantâneos, o primeiro caso não pode ocorrer. Por fim, como \(u > v\), vale que \(\{W_t > u\} \subseteq \{W_t > v\}\), e daí, \(f\) é monotonicamente decrescente, o que implica \(q_i \geqslant 0\), como queríamos demonstrar.

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Suponha, agora, que a cadeia de Markov em tempo contínuo \(\{X_t\}_{t \ \geqslant \ 0}\) seja tal que todos os seus estados são estáveis. Para cada \(n \in \mathbb{N}\), defina a variável aleatória \(T_n\) como o instante de tempo no qual ocorre a \(n\)-ésima mudança de estado da cadeia. Por convenção, adote-se \(T_0 = 0\). Portanto, vale a relação \(0 = T_0 < T_1 < \cdots < T_n < \cdots\) de modo que \(X_t = \hat{X}_n\) sempre que \(T_n \leqslant t < T_{n+1}\). Neste contexto, denotamos \(\hat{X}_n\) como o estado visitado pela cadeia na \(n\)-ésima transição, para \(n \geqslant 1\), sendo \(\hat{X}_0\) o estado inicial. Além disso, a partir do Teorema 3.1, tem-se que:

\[\begin{align}\\ W_0 = T_1 &\implies T_1 \mid \hat{X}_0 \sim \text{Exponencial}(q_i)\\\\ T_{n+1} = T_n + W_{T_n} &\implies T_{n+1} - T_n \mid \hat{X}_n \sim \text{Exponencial}(q_i)\\\\ \end{align}\]

Essa construção, contudo, é válida apenas se \(\lim_{n \to \infty} T_n = +\infty\) o que equivale a exigir que as trajetórias do processo \(\{X_t\}_{t \ \geqslant \ 0}\) apresentem um número finito de saltos em qualquer intervalo finito de tempo. Quando tal condição é satisfeita, dizemos que \(\{X_t\}_{t \ \geqslant \ 0}\) é um processo de saltos regular. Nesse caso, a sequência \(\{\hat{X}_n\}_{n \ \geqslant \ 0}\) constitui uma cadeia de Markov em tempo discreto, denominada esqueleto do processo, cuja matriz de transição é denotada por \(Q = [Q_{ij}]\).


Definição 3.2 (Gerador Infinitesimal). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov em tempo contínuo regular, com espaço de estados \(\mathcal{E}\) e matriz de transição do esqueleto denotada por \(Q = [Q_{ij}]\). Defina, por convenção, que \(q_{ii} = -q_i\). Além disso, para \(i \neq j\), defina \(Q_{ij} = 0\) se \(q_i = 0\) e \(Q_{ij} = q_{ij}/q_i\) se caso contrário. Então, dizemos que a matriz \(A = [q_{ij}]_{i,j \ \in \ \mathcal{E}}\) é um gerador infinitesimal do processo \(\{X_t\}_{t \ \geqslant \ 0}\) se, e somente se, seus elementos satisfazem as seguintes propriedades:


  • \(0 \leqslant -q_{ii} < \infty\) para todo \(i \in \mathcal{E}\).
  • \(q_{ij} \geqslant 0\) para todo \(i \neq j\) e \(i, j \in \mathcal{E}\).
  • \(\sum_{j \ \in \ \mathcal{E}} q_{ij} = 0\) para todo \(i \in \mathcal{E}\)


Exemplo 3.5 (Processo de Nascimento e Morte). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov regular em tempo contínuo, com espaço de estados \(\mathcal{E} = \{0, 1, 2, \dots, N\}\). Dizemos que \(\{X_t\}_{t \ \geqslant \ 0}\) é um processo de nascimento e morte se seu gerador infinitesimal \(A = [q_{ij}]\) possui elementos dados por:

\[\begin{align}\\ q_{ii} = -(\lambda_i + \mu_i)\\\\ \end{align}\]

e, para \(i \neq j\),

\[\begin{align}\\ q_{ij} = \begin{cases} \lambda_i, & \text{se } j = i + 1 \ (\text{nascimento}), \\ \mu_i, & \text{se } j = i - 1 \ (\text{morte}), \\ 0, & \text{caso contrário}. \end{cases}\\\\ \end{align}\]

sujeito as restrições de fronteira \(\mu_0 = 0\) e \(\lambda_N = 0\), onde \(N\) representa o estado máximo do processo. Os parâmetros \(\lambda_i \geqslant 0\) e \(\mu_i \geqslant 0\) são denominados, respectivamente, taxa de nascimento e taxa de morte no estado \(i\). Para ilustrar, considere a matriz \(A\) restrita aos estados \(\{0, 1, 2, 3\}\):

\[\begin{align}\\ A = \begin{bmatrix} \text{E0} & \text{E1} & \text{E2} & \text{E3}\\ \hline -\lambda_0 & \lambda_0 & 0 & 0 \\ \mu_1 & -(\lambda_1 + \mu_1) & \lambda_1 & 0 \\ 0 & \mu_2 & -(\lambda_2 + \mu_2) & \lambda_2 \\ 0 & 0 & \mu_3 & -\mu_3 \end{bmatrix}\begin{matrix} \\ \text{E0} \\ \text{E1} \\ \text{E2} \\ \text{E3}\\ \end{matrix}\\\\ \end{align}\]

Observa-se que:


  • As transições ocorrem apenas entre estados vizinhos, caracterizando uma matriz tridiagonal.
  • O termo fora da diagonal \(q_{i, i+1} = \lambda_i\) representa a taxa de nascimento no estado \(i\).
  • O termo \(q_{i, i-1} = \mu_i\) representa a taxa de morte no estado \(i\).
  • No estado inicial \(0\), não há possibilidade de morte, implicando que \(\mu_0 = 0\) e, consequentemente, o elemento da diagonal é \(q_{00} = -\lambda_0\). Analogamente, no estado máximo considerado, o estado \(3\), não existem nascimentos, o que implica \(\lambda_3 = 0\) e, portanto, \(q_{33} = -\mu_3\).


O Código 3.5 apresenta uma simulação, em linguagem R, de uma realização do processo de nascimento e morte em tempo contínuo com espaço de estados finito \(\mathcal{E} = \{0,1, \dots, 19\}\). As taxas de nascimento \(\lambda_i\) e de morte \(\mu_i\) são dependentes do estado atual \(i\), definidas por funções decrescentes e crescentes, respectivamente:

\[\begin{align}\\ \lambda_i &= 0{.}5 \times e^{-0{.}05\, i}\\\\ \mu_i &= 0{.}3 + 0{.}02 \, i\\\\ \end{align}\]

O gerador infinitesimal \(A = [q_{ij}]\) do processo é construído de forma que os elementos fora da diagonal satisfazem:

\[\begin{align}\\ q_{i,i+1} &= \lambda_i\\\\ q_{i,i-1} &= \mu_i\\\\ \end{align}\]

com as restrições de fronteira (sem mortes no estado inicial, e sem nascimentos no estado máximo), e os elementos diagonais são dados por:

\[\begin{align}\\ q_{ii} = -(\lambda_i + \mu_i)\\\\ \end{align}\]

Para cada estado, o tempo de espera até a próxima transição é amostrado de uma distribuição exponencial com parâmetro \(-q_{ii}\), e o próximo estado é sorteado com probabilidades proporcionais aos elementos fora da diagonal da linha \(i\) da matriz \(A\). A simulação é realizada até o tempo máximo \(T_{\max} = 50\). A Figura 3.5 apresenta a trajetória resultante, mostrando a evolução do número de indivíduos ao longo do tempo.


Código 3.5. Simulação do processo de nascimento e morte via gerador infinitesimal, com taxas dependentes do estado, no intervalo \([0,50]\).

## ----------------------------------------------------------------------
## Simulação de Processo de Nascimento e Morte via Gerador Infinitesimal
## ----------------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(125)            # Semente (Para Reprodutibilidade)

n_states  <- 20          # Estados: 0, 1, ..., 19
T_max     <- 50          # Tempo Máximo de Simulação

# Taxas Dependentes do Estado

lambda    <- function(i) {0.5 * exp(-0.05 * i) }
mu        <- function(i) {0.3 + 0.02 * i }

# --- 2. Construção do Gerador Infinitesimal A ---

A         <- matrix(0, nrow = n_states, ncol = n_states)

for (i in 0:(n_states-1)) 
{
  
  birth_rate <- ifelse(i < n_states - 1, lambda(i), 0)
  death_rate <- ifelse(i > 0, mu(i), 0)
  
  # Taxas Fora da Diagonal
  
  if(i < n_states - 1) A[i+1, i+2] <- birth_rate    # q_{i, i+1} = λ_i
  if(i > 0)            A[i+1, i]   <- death_rate    # q_{i, i-1} = μ_i
  
  # Elemento Diagonal
  
  A[i+1, i+1] <- -(birth_rate + death_rate)         # q_{i,i} = - (λ_i + μ_i)
}

# --- 3. Inicialização da simulação ---

t       <- 0
estado  <- 0
tempo   <- c(t)
estados <- c(estado)

# --- 4. Simulação usando o gerador A ---

while(t < T_max) 
{
  
  i           <- estado + 1    
  rate_total  <- -A[i,i]
  
  if(rate_total == 0) break  # Estado Absorvente
  
  # Tempo Até Próxima Transição
  
  delta_t     <- rexp(1, rate = rate_total)
  t           <- t + delta_t
  
  if(t > T_max) break
  
  # Probabilidades de Transição Para Outros Estados j != i
  
  probs       <- A[i, ]
  probs[i]    <- 0                    # Excluir Diagonal
  probs       <- probs / sum(probs)   # Normalizar Para Soma 1
  
  # Próximo Estado, Sorteado com Base nas Probabilidades
  
  estado      <- sample(0:(n_states-1), size = 1, prob = probs)
  
  # Armazena Resultado
  
  tempo       <- c(tempo, t)
  estados     <- c(estados, estado)
}

df            <- data.frame(tempo = tempo, estado = estados)

# --- 5. Visualização da Trajetória do Processo ---

ggplot(df, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "darkviolet", size = 0.5) +
  geom_point(color = "purple", size = 1.0) +
  labs(title = "",
       x = "Tempo",
       y = "Número de Indivíduos (Estado)") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.5.. Trajetória simulada do processo de nascimento e morte via gerador infinitesimal, com taxas dependentes do estado, no intervalo \([0,50]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.6 (Processo de Migração com Retorno). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov regular em tempo contínuo, com espaço de estados \(\mathcal{E} = \{0, 1, 2, \dots, N\}\). Dizemos que \(\{X_t\}_{t \ \geqslant \ 0}\) é um processo de migração com retorno se seu gerador infinitesimal \(A = [q_{ij}]\) possui elementos dados por:

\[\begin{align}\\ q_{ii} = -(\lambda_i + \delta_i + \mu_i)\\\\ \end{align}\]

e, para \(i \neq j\),

\[\begin{align}\\ q_{ij} = \begin{cases} \lambda_i, & \text{se } j = i + 1 \ (\text{migração para fora}) \\ \mu_i, & \text{se } j = i - 1 \ (\text{retorno}) \\ \delta_i, & \text{se } j = 0 \ (\text{retorno direto ao estado 0}) \\ 0, & \text{caso contrário} \end{cases}\\\\ \end{align}\]

sujeito as restrições de fronteira \(\mu_0 = 0\), \(\delta_0 = 0\), e \(\lambda_N = 0\), onde \(N\) representa o estado máximo do processo. Os parâmetros \(\lambda_i \geqslant 0\) representam a taxa de migração para fora (incremento do estado), \(\mu_i \geqslant 0\) a taxa de retorno unitário (diminuição do estado em uma unidade), e \(\delta_i \geqslant 0\) a taxa de retorno direto ao estado zero (reset total do processo). Para ilustrar, considere a matriz \(A\) restrita aos estados \(\{0, 1, 2, 3\}\):

\[\begin{align}\\ A = \begin{bmatrix} \text{E0} & \text{E1} & \text{E2} & \text{E3}\\ \hline -\lambda_0 & \lambda_0 & 0 & 0 \\ \delta_1 & -(\lambda_1 + \mu_1 + \delta_1) & \lambda_1 & 0 \\ \delta_2 & \mu_2 & -(\lambda_2 + \mu_2 + \delta_2) & \lambda_2 \\ \delta_3 & 0 & \mu_3 & -(\mu_3 + \delta_3) \end{bmatrix}\begin{matrix} \\ \text{E0} \\ \text{E1} \\ \text{E2} \\ \text{E3}\\ \end{matrix}\\\\ \end{align}\]

Observa-se que:


  • O processo permite três tipos de transição: incremento do estado (migração), decréscimo do estado (retorno unitário) ou retorno direto ao estado zero (reset completo).
  • A matriz é essencialmente tridiagonal, mas com uma coluna adicional (a primeira), que representa a possibilidade de retorno direto ao estado \(0\) a partir de qualquer outro estado.


O Código 3.6 apresenta uma simulação, em linguagem R, de uma realização do processo de migração com retorno, em tempo contínuo, com espaço de estados finito \(\mathcal{E} = \{0,1, \dots, 19\}\). As taxas são dependentes do estado atual \(i\) e definidas por:

\[\begin{align}\\ \lambda_i &= 0{.}4 \times e^{-0{.}03\, i}\\\\ \mu_i &= 0{.}2 + 0{.}01\, i\\\\ \delta_i &= 0{.}05\\\\ \end{align}\]

O gerador infinitesimal \(A = [q_{ij}]\) é construído com:

\[\begin{align}\\ q_{i,i+1} &= \lambda_i\\\\ q_{i,i-1} &= \mu_i \\\\ q_{i,0} &= \delta_i\\\\ \end{align}\]

sujeito as restrições de fronteira, e os elementos diagonais dados por:

\[\begin{align}\\ q_{ii} = -(\lambda_i + \mu_i + \delta_i)\\\\ \end{align}\]

com as restrições de fronteira aplicadas aos estados \(0\) (sem retorno unitário) e \(19\) (sem migração para fora). Para cada estado, o tempo de espera até a próxima transição é amostrado de uma distribuição exponencial com parâmetro \(-q_{ii}\), e o próximo estado é selecionado de acordo com as probabilidades proporcionais aos elementos fora da diagonal da linha \(i\) da matriz \(A\). A simulação é conduzida até o tempo máximo \(T_{\max} = 100\). A Figura 3.6 ilustra a trajetória do processo, evidenciando os eventos de incremento, retorno unitário e resets ao estado zero.


Código 3.6. Simulação do processo de migração com retorno via gerador infinitesimal, com taxas dependentes do estado, no intervalo \([0,100]\).

## ------------------------------------------------------------------------
## Simulação de Processo de Migração com Retorno via Gerador Infinitesimal
## ------------------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(125)             # Semente (Para Reprodutibilidade)

n_states  <- 20           # Estados: 0, 1, ..., 19
T_max     <- 100          # Tempo Máximo de Simulação

# Funções das Taxas Dependentes do Estado

lambda    <- function(i) { 0.4 * exp(-0.03 * i) }  # Taxa de Migração (i -> i+1)
mu        <- function(i) { 0.2 + 0.01 * i }        # Taxa de Retorno Unitário (i -> i-1)
delta     <- function(i) { 0.05 }                  # Taxa de Retorno Direto ao Estado 0

# --- 2. Construção do Gerador Infinitesimal A ---

A         <- matrix(0, nrow = n_states, ncol = n_states)

for (i in 0:(n_states-1))
{
  
  migration_rate <- ifelse(i < n_states - 1, lambda(i), 0)  # Migração Para Fora
  return_rate    <- ifelse(i > 0, mu(i), 0)                 # Retorno Unitário
  reset_rate     <- ifelse(i > 0, delta(i), 0)              # Retorno Direto ao Zero
  
  # Taxas Fora da Diagonal
  
  if(i < n_states - 1) A[i+1, i+2] <- migration_rate        # q_{i,i+1} = λ_i
  if(i > 0)            A[i+1, i]   <- return_rate           # q_{i,i-1} = μ_i
  if(i > 0)            A[i+1, 1]   <- reset_rate            # q_{i,0}   = δ_i
  
  # Elemento Diagonal
  
  A[i+1, i+1] <- -(migration_rate + return_rate + reset_rate) # q_{i,i}
}

# --- 3. Inicialização da Simulação ---

t       <- 0
estado  <- 0
tempo   <- c(t)
estados <- c(estado)

# --- 4. Simulação Usando o Gerador A ---

while (t < T_max) {
  
  i           <- estado + 1   
  rate_total  <- -A[i, i]
  
  if (rate_total == 0) break  # Estado Absorvente (Sem Saída)
  
  # Tempo até a Próxima Transição
  
  delta_t     <- rexp(1, rate = rate_total)
  t           <- t + delta_t
  
  if (t > T_max) break
  
  # Probabilidades de Transição Para Outros Estados (j ≠ i)
  
  probs       <- A[i, ]
  probs[i]    <- 0           # Remove a Diagonal
  probs_total <- sum(probs)
  
  if (probs_total == 0) break
  
  probs       <- probs / probs_total
  
  # Próximo Estado
  
  estado      <- sample(0:(n_states-1), size = 1, prob = probs)
  
  # Armazena Resultados
  
  tempo       <- c(tempo, t)
  estados     <- c(estados, estado)
}

df            <- data.frame(tempo = tempo, estado = estados)

# --- 5. Visualização da Trajetória do Processo ---

ggplot(df, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "darkblue", size = 0.5) +
  geom_point(color = "steelblue", size = 1.0) +
  labs(title = "",
       x = "Tempo",
       y = "Número de Indivíduos (Estado)") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.6.. Trajetória simulada do processo de migração com retorno via gerador infinitesimal, com taxas dependentes do estado, no intervalo \([0,100]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.7 (Processo de Transição Livre com Reset e Saltos Aleatórios). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov regular em tempo contínuo, com espaço de estados finito \(\mathcal{E} = \{0, 1, \dots, N\}\). Considera-se um processo de transição livre no qual, a partir de um estado \(i\), o sistema pode realizar saltos para qualquer outro estado \(j \neq i\), inclusive para o estado \(0\) (reset), com taxas dependentes do estado atual. O gerador infinitesimal \(A = [q_{ij}]\) do processo é definido por:

\[\begin{align}\\ q_{ii} = - \sum_{\substack{j=0 \\ j \neq i}}^{N} \alpha_{i,j}\\\\ \end{align}\]

e, para \(i \neq j\),

\[\begin{align}\\ q_{ij} = \alpha_{i,j} \geqslant 0\\\\ \end{align}\]

onde \(\alpha_{i,j}\) representa a taxa de transição do estado \(i\) para o estado \(j\). Especificamente, define-se:

\[\begin{align}\\ \alpha_{i,j} = \begin{cases} \displaystyle c_0 \cdot e^{-c_1 |j - i|} + c_2 \cdot \mathbf{1}_{\{j=0\}}, & i \neq j \\ 0, & i = j \end{cases}\\\\ \end{align}\]

com parâmetros \(c_0, c_1, c_2 > 0\) que controlam, respectivamente, a intensidade geral das transições, o decaimento da taxa conforme a distância entre os estados, e a taxa constante de reset para o estado zero. Para ilustrar, considere \(N=3\) e parâmetros \(c_0=1\), \(c_1=1\), \(c_2=0.5\). A matriz geradora infinitesimal \(A\) restrita aos estados \(\{0,1,2,3\}\) é dada por:

\[\begin{align}\\ A = \begin{bmatrix} \text{E0} & \text{E1} & \text{E2} & \text{E3}\\ \hline -(\alpha_{0,1} + \alpha_{0,2} + \alpha_{0,3}) & \alpha_{0,1} & \alpha_{0,2} & \alpha_{0,3} \\ \alpha_{1,0} & -(\alpha_{1,0} + \alpha_{1,2} + \alpha_{1,3}) & \alpha_{1,2} & \alpha_{1,3} \\ \alpha_{2,0} & \alpha_{2,1} & -(\alpha_{2,0} + \alpha_{2,1} + \alpha_{2,3}) & \alpha_{2,3} \\ \alpha_{3,0} & \alpha_{3,1} & \alpha_{3,2} & -(\alpha_{3,0} + \alpha_{3,1} + \alpha_{3,2}) \end{bmatrix}\begin{matrix} \\ \text{E0} \\ \text{E1} \\ \text{E2} \\ \text{E3}\\ \end{matrix}\\\\ \end{align}\]

Observa-se que:


  • O processo permite saltos diretos de qualquer estado para qualquer outro, inclusive reset para o estado zero.
  • Os elementos diagonais são negativos e garantem que a soma das linhas seja nula, conforme a definição do gerador infinitesimal.
  • A taxa de transição diminui exponencialmente com a distância entre os estados, exceto para o reset, que ocorre com taxa constante.


O Código 3.7 apresenta uma simulação, em linguagem R, de uma realização do processo de transição livre com reset, em tempo contínuo, com espaço de estados finito \(\mathcal{E} = \{0, 1, \dots, 19\}\). As taxas de transição entre estados são definidas pela função

\[\begin{align}\\ \alpha_{i,j} = c_0 \times e^{-c_1 |j - i|} + c_2 \times \mathbf{1}_{\{j=0\}}, \qquad i \neq j\\\\ \end{align}\]

com parâmetros fixados em

\[\begin{align}\\ c_0 = 1, \quad c_1 = 1, \quad c_2 = 0.5\\\\ \end{align}\]

O gerador infinitesimal \(A = [q_{ij}]\) é construído conforme:

\[\begin{align}\\ q_{ij} = \alpha_{i,j}, \qquad i \neq j\\\\ \end{align}\]

e os elementos diagonais satisfazem:

\[\begin{align}\\ q_{ii} = - \sum_{\substack{j=0 \\ j \neq i}}^{19} \alpha_{i,j}\\\\ \end{align}\]

Para cada estado, o tempo de espera até a próxima transição é amostrado de uma distribuição exponencial com parâmetro \(-q_{ii}\), e o próximo estado é selecionado com probabilidades proporcionais aos elementos fora da diagonal da linha \(i\) da matriz \(A\). A simulação é conduzida até o tempo máximo \(T_{\max} = 100\). A Figura 3.7 ilustra a trajetória do processo, mostrando a movimentação livre entre estados e os resets frequentes ao estado zero.


Código 3.7. Simulação do processo de transição livre com reset via gerador infinitesimal, no intervalo \([0,100]\), para \(N=19\).

## -----------------------------------------------------------------------
## Simulação do Processo de Transição Livre com Reset e Saltos Aleatórios
## -----------------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)

# --- 1. Configurações Iniciais ---

set.seed(125)             # Semente (Para Reprodutibilidade)
n_states  <- 20           # Estados: 0, 1, ..., 19
T_max     <- 100          # Tempo Máximo de Simulação

# Parâmetros do Modelo

c0        <- 1
c1        <- 1
c2        <- 0.5

# --- 2. Construção do Gerador Infinitesimal A ---

A         <- matrix(0, nrow = n_states, ncol = n_states)

for(i in 0:(n_states-1)) 
{
  for(j in 0:(n_states-1)) 
  {
    if(i != j) 
    {
      A[i+1, j+1] <- c0 * exp(-c1 * abs(j - i)) + ifelse(j == 0, c2, 0)
    }
  }
  A[i+1, i+1] <- -sum(A[i+1, - (i+1)])
}

# --- 3. Inicialização da Simulação ---

t       <- 0
estado  <- 0
tempo   <- c(t)
estados <- c(estado)

# --- 4. Simulação Usando o Gerador A ---

while(t < T_max) 
{
  i           <- estado + 1
  rate_total  <- -A[i, i]
  
  if(rate_total == 0) break  # Estado Absorvente
  
  # Tempo até a Próxima Transição (Exponencial)
  
  delta_t     <- rexp(1, rate = rate_total)
  t           <- t + delta_t
  
  if(t > T_max) break
  
  # Probabilidades de Transição Para Outros Estados
  
  probs       <- A[i, ]
  probs[i]    <- 0
  probs       <- probs / sum(probs)
  
  # Próximo Estado Sorteado
  
  estado      <- sample(0:(n_states-1), size = 1, prob = probs)
  
  # Armazena Resultados
  
  tempo       <- c(tempo, t)
  estados     <- c(estados, estado)
}

df            <- data.frame(tempo = tempo, estado = estados)

# --- 5. Visualização da trajetória do processo ---

ggplot(df, aes(x = tempo, y = estado)) +
  geom_step(direction = "hv", color = "darkgreen", size = 0.6) +
  geom_point(color = "darkgreen", size = 1.2) +
  labs(title = "",
       x = "Tempo",
       y = "Estado do Processo") +
  theme_minimal() +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.7.. Trajetória simulada do processo de transição livre com reset via gerador infinitesimal, no intervalo \([0,100]\), para \(N=19\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.8 (Processo Epidemiológico SIR em Tempo Contínuo). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov regular em tempo contínuo, com espaço de estados:

\[\begin{align}\\ \mathcal{E} = \{(S,I,R) \in \mathbb{N}_0^3 : S + I + R = N\}\\\\ \end{align}\]

onde \(S\) representa o número de indivíduos suscetíveis, \(I\) o número de indivíduos infectados e \(R\) o número de indivíduos recuperados no tempo \(t\). Este processo modela a dinâmica estocástica de uma epidemia viral em uma população fechada e homogênea de tamanho fixo \(N\). O processo assume as seguintes regras:


  • Infecção: indivíduos suscetíveis tornam-se infectados a uma taxa proporcional ao número de contatos entre suscetíveis e infectados, modelada por \(\beta \cdot (S \cdot I)/N\).
  • Recuperação: indivíduos infectados tornam-se recuperados a uma taxa proporcional ao número de infectados, modelada por \(\gamma \cdot I\).
  • Não há nascimento, morte natural nem reinfecção.


O gerador infinitesimal \(A = [q_{(S,I,R),(S',I',R')}]\) possui elementos não nulos dados por:


  • Para uma infecção (\(S \to S-1\), \(I \to I+1\)): \[\begin{align}\\ q_{(S,I,R),(S-1,I+1,R)} = \beta \cdot \frac{S \cdot I}{N}\\\\ \end{align}\]

  • Para uma recuperação (\(I \to I-1\), \(R \to R+1\)): \[\begin{align}\\ q_{(S,I,R),(S,I-1,R+1)} = \gamma \cdot I\\\\ \end{align}\]

  • Elemento diagonal: \[\begin{align}\\ q_{(S,I,R),(S,I,R)} = -\left( \beta \cdot \frac{S \cdot I}{N} + \gamma \cdot I \right)\\\\ \end{align}\]


Os demais elementos são nulos. O processo termina quando \(I = 0\), caracterizando a extinção da epidemia. Por exemplo, para \(N = 3\), o espaço de estados é:

\[\begin{align}\\ \mathcal{E} = \{ (3,0,0), (2,1,0), (1,2,0), (0,3,0), (2,0,1), (1,1,1), (0,2,1), (1,0,2), (0,1,2), (0,0,3) \}\\\\ \end{align}\]

e o gerador infinitesimal \(A\) é dado por:

\[\begin{align}\\ A = \begin{bmatrix} (\text{S}_1, \text{I}_1, \text{R}_1) & (\text{S}_2, \text{I}_2, \text{R}_2) & (\text{S}_3, \text{I}_3, \text{R}_3) & (\text{S}_4, \text{I}_4, \text{R}_4) & (\text{S}_5, \text{I}_5, \text{R}_5) & (\text{S}_6, \text{I}_6, \text{R}_6) & (\text{S}_7, \text{I}_7, \text{R}_7) & (\text{S}_8, \text{I}_8, \text{R}_8) & (\text{S}_9, \text{I}_9, \text{R}_9) & (\text{S}_{10}, \text{I}_{10}, \text{R}_{10})\\ \hline 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & -0.3667 & 0.2667 & 0 & 0.1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & -0.4667 & 0.2667 & 0 & 0.2 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & -0.3 & 0 & 0 & 0.3 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & -0.3667 & 0.2667 & 0.1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & -0.4 & 0 & 0.4 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & -0.1 & 0.1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ \end{bmatrix}\begin{matrix} \\ (\text{S}_1, \text{I}_1, \text{R}_1) \\ (\text{S}_2, \text{I}_2, \text{R}_2) \\ (\text{S}_3, \text{I}_3, \text{R}_3) \\ (\text{S}_4, \text{I}_4, \text{R}_4) \\ (\text{S}_5, \text{I}_5, \text{R}_5) \\ (\text{S}_6, \text{I}_6, \text{R}_6) \\ (\text{S}_7, \text{I}_7, \text{R}_7) \\ (\text{S}_8, \text{I}_8, \text{R}_8) \\ (\text{S}_9, \text{I}_9, \text{R}_9) \\ (\text{S}_{10}, \text{I}_{10}, \text{R}_{10})\\ \end{matrix}\\\\ \end{align}\]

adotando \(\beta = 0{.}4\) e \(\gamma = 0{.}1\). Observa-se que:


  • A matriz não possui estrutura tridiagonal, pois as transições dependem de dois processos simultâneos: infecção e recuperação.
  • Existem múltiplos caminhos possíveis no espaço de estados, refletindo a dinâmica conjunta de suscetíveis, infectados e recuperados.
  • Os estados \((3,0,0)\), \((2,0,1)\), \((1,0,2)\) e \((0,0,3)\) são absorventes, correspondendo a cenários sem infectados, isto é, com epidemia extinta.
  • Os elementos diagonais são negativos e asseguram que a soma de cada linha da matriz seja nula, conforme exige a definição de gerador infinitesimal.


O Código 3.8 apresenta uma simulação, em linguagem R, de uma realização do processo SIR, com população \(N = 100\), iniciando com \(S_0 = 29\), \(I_0 = 1\) e \(R_0 = 0\). As taxas utilizadas são:

\[\begin{align}\\ \beta = 0{.}4, \quad \gamma = 0{.}1\\\\ \end{align}\]

O tempo de espera até a próxima transição é amostrado de uma distribuição exponencial com parâmetro igual à taxa total de saída do estado atual:

\[\begin{align}\\ \theta = \beta \cdot \frac{S \cdot I}{N} + \gamma \cdot I\\\\ \end{align}\]

A transição subsequente é sorteada proporcionalmente às taxas de infecção e recuperação. A simulação é conduzida até o tempo máximo \(T_{\max} = 150\) ou até a extinção da epidemia (\(I=0\)). A Figura 3.8 apresenta a evolução dos números de suscetíveis, infectados e recuperados ao longo do tempo.


Código 3.8. Simulação de um processo SIR estocástico via gerador infinitesimal (implícito), com \(\beta = 0{.}4\) e \(\gamma = 0{.}1\), no intervalo \([0,150]\).

## -----------------------------------------------------------------------------
## Simulação do Modelo Epidemiológico SIR via Gerador Infinitesimal (Implícito)
## -----------------------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)
library(ggplot2)
library(tidyr)

# --- 1. Configurações Iniciais ---

set.seed(125)          # Semente (Para Reprodutibilidade)

N       <- 100         # Tamanho da População
beta    <- 0.4         # Taxa de Infecção
gamma   <- 0.1         # Taxa de Recuperação
T_max   <- 150         # Tempo máximo de simulação

# Estado Inicial: Suscetíveis, Infectados e Recuperados

S       <- N - 1
I       <- 1
R       <- 0

# Histórico Para Armazenar Trajetória

tempo   <- 0
S_hist  <- S
I_hist  <- I
R_hist  <- R

# --- 2. Definição da Função Para Obter Estados Vizinhos e Taxas de Transição ---

get_neighbors <- function(s, i, r) 
{
  neighbors   <- list()
  rates       <- c()
  
  # Transição: Infecção (S Diminui, I Aumenta)
  
  if (s > 0 & i > 0) 
  {
    neighbors[[length(neighbors) + 1]]  <- c(s - 1, i + 1, r)
    rates                               <- c(rates, beta * s * i / N)
  }
  
  # Transição: Recuperação (I Diminui, R Aumenta)
  
  if (i > 0) 
  {
    neighbors[[length(neighbors) + 1]]  <- c(s, i - 1, r + 1)
    rates                               <- c(rates, gamma * i)
  }
  
  list(neighbors = neighbors, rates = rates)
}

# --- 3. Simulação do Processo ---

t       <- 0

while (t < T_max & I > 0)
{
  
  neigh <- get_neighbors(S, I, R)
  rates <- neigh$rates
  
  if (length(rates) == 0) break  # Nenhuma Transição Possível
  
  rate_total <- sum(rates)
  
  # Tempo até Próxima Transição (Exponencial)
  
  delta_t <- rexp(1, rate = rate_total)
  t       <- t + delta_t
  
  if (t > T_max) break
  
  # Escolha do Próximo Estado Baseado nas Probabilidades Proporcionais às Taxas
  
  probs       <- rates / rate_total
  choice      <- sample(length(probs), size = 1, prob = probs)
  
  next_state  <- neigh$neighbors[[choice]]
  S           <- next_state[1]
  I           <- next_state[2]
  R           <- next_state[3]
  
  # Atualiza Histórico
  
  tempo       <- c(tempo, t)
  S_hist      <- c(S_hist, S)
  I_hist      <- c(I_hist, I)
  R_hist      <- c(R_hist, R)
}

# --- 4. Preparação dos Dados Para Visualização ---

df            <- data.frame(tempo = tempo,
                            S = S_hist,
                            I = I_hist,
                            R = R_hist) %>%
                                          pivot_longer(cols = c(S, I, R), 
                                                       names_to = "Compartimento", 
                                                       values_to = "Valor")

df            <- df %>%
                      mutate(Compartimento = recode(Compartimento,
                                                    S = "Suscetíveis",
                                                    I = "Infectados",
                                                    R = "Recuperados"))

# --- 5. Visualização da Trajetória do Processo ---

ggplot(df, aes(x = tempo, y = Valor, color = Compartimento)) +
  geom_step(direction = "hv", size = 1) +
  geom_point(size = 1.5) +
  labs(
    title = "",
    x = "Tempo",
    y = "Número de Indivíduos"
  ) +
  theme_minimal() +
  scale_color_manual(values = c("Suscetíveis" = "darkblue", 
                                "Infectados" = "darkred", 
                                "Recuperados" = "darkgreen")) +
  theme(
    axis.title.x = element_text(margin = margin(t = 0.5, unit = "lines")),
    axis.title.y = element_text(margin = margin(r = 0.5, unit = "lines"))
  )


Figura 3.8.. Trajetória simulada de um processo SIR estocástico via gerador infinitesimal (implícito), com \(\beta = 0.4\) e \(\gamma = 0.1\), no intervalo \([0,150]\).

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Na Definição 3.2, foi estabelecido que o gerador infinitesimal é obtido a partir das taxas \(\{q_i\}_{i \ \in \ \mathcal{E}}\) e das probabilidades de transição \(\{Q_{i,j}\}_{i,j \ \in \ \mathcal{E}}\). No entanto, ele também pode ser derivado da função de transição \(P(t)\). De fato, assumindo, sob condições regulares, que, para cada par \((i,j) \in \mathcal{E}^2\), a função \(t \mapsto P_{i,j}(t)\) é diferenciável em \(t=0\) e que essa derivada é contínua em \(t\), tem-se que o gerador infinitesimal \(A\) é descrito por:

\[\begin{align}\\ A = \left. \frac{d}{dt} P(t) \right|_{t = 0}\\\\ \end{align}\]

ou, de forma equivalente,

\[\begin{align}\\ q_{i,j} = \left. \frac{d}{dt} P_{i,j}(t) \right|_{t = 0}, \quad \forall i \neq j \in \mathcal{E}\\\\ \end{align}\]


Exemplo 3.9 (Cálculo do Gerador Infinitesimal da Cadeia de Markov Uniforme). Seja \(\{\hat{Y}_n\}_{n \ \in \ \mathbb{N}}\) a tempo discreto com espaço de estados \(\mathbb{E}\) e matriz de transição \(K = [k_{ij}]_{i,j \ \in \ \mathcal{E}}\) e seja \(\{\tau_n\}_{n \ \geqslant \ 1}\) o processo dos tempos das chegadas de um processo de Poisson \(\{N_t\}_{t \ \geqslant \ 0}\) com taxa \(\lambda > 0\). Suponha que \(\{\hat{Y}_n\}_{n \ \in \ \mathbb{N}}\) e \(\{N_t\}_{t \ \geqslant \ 0}\) são independentes. O processo \(\{X_t\}_{t \ \geqslant \ 0}\) definido por:

\[\begin{align}\\ X_t = \hat{Y}_{N_t}\\\\ \end{align}\]

é uma cadeia de Markov em tempo contínuo, chamada de cadeia de Markov uniforme, tal que \(N_t\) é o relógio da cadeia e \(\{\hat{Y}_n\}_{n \ \in \ \mathbb{N}}\) é a cadeia subordinada. A função de transição deste processo pode ser expressa como:

\[\begin{align}\\ P(t) = e^{-\lambda t} I + \sum_{n=1}^{\infty} e^{-\lambda t} \frac{(\lambda t)^n}{n!} K^n\\\\ \end{align}\]

onde o primeiro termo representa a probabilidade de nenhuma transição ter ocorrido até o tempo \(t\), enquanto o somatório captura a probabilidade de ocorrência de exatamente \(n\) transições até o tempo \(t\), com \(K^n\) representando as probabilidades associadas às sequências de \(n\) transições da cadeia em tempo discreto. Para determinar o gerador infinitesimal de \(\{X_t\}_{t \ \geqslant \ 0}\), utiliza-se a relação:

\[\begin{align}\\ A = \left.\frac{d}{dt}P(t)\right|_{t=0}\\\\ \end{align}\]

Assim, aplicando a regra da derivada, observa-se que a derivada do termo \(e^{-\lambda t}I\) é \(-\lambda e^{-\lambda t}I\), enquanto a derivada do termo geral da soma, para \(n \geqslant 1\), é dada por:

\[\begin{align}\\ \frac{d}{dt}\left(e^{-\lambda t} \frac{(\lambda t)^n}{n!}\right) = e^{-\lambda t} \frac{\lambda^n}{n!} \left[n t^{n-1} - \lambda t^n\right]\\\\ \end{align}\]

Ao avaliar essa expressão no tempo \(t = 0\), verifica-se que todos os termos com \(n \geqslant 2\) são anulados, uma vez que dependem de potências de \(t\) que se anulam no limite quando \(t \to 0\), restando apenas o termo com \(n = 1\), visto que este envolve \(t^0 = 1\). Então, substituindo \(n = 1\) na expressão, obtém-se

\[\begin{align}\\ \frac{d}{dt}\left(e^{-\lambda t} \frac{(\lambda t)^1}{1!}\right) = e^{-\lambda t} \lambda (1 - \lambda t)\\\\ \end{align}\]

Avaliando, novamente, no tempo \(t = 0\), resulta simplesmente em \(\lambda\). Assim, a derivada da função de transição no tempo zero é composta pela soma da derivada do primeiro termo, \(-\lambda I\), com a derivada do termo \(n = 1\), \(\lambda K\). Portanto, o gerador infinitesimal de \(\{X_t\}_{t \ \geqslant \ 0}\) é dado por:

\[\begin{align}\\ A = \lambda(K - I)\\\\ \end{align}\]

Para cada estado \(i \in \mathcal{E}\), tem-se que \(q_i = -q_{ii} = \lambda (1 - k_{ii})\). Logo, observa-se que \(q_i = 0\) se, e somente se, \(k_{ii} = 1\). Em outras palavras, o estado \(i\) é absorvente para o processo \(X_t\) se, e somente se, ele já o é para \(\hat{Y}_n\). Se, por outro lado, \(k_{ii} < 1\), então o estado \(i\) é estável no processo em tempo contínuo, possuindo uma taxa de saída positiva \(q_i > 0\). Nesse caso, as probabilidades de que a próxima transição a partir de \(i\) leve o processo ao estado \(j \neq i\), são obtidas por:

\[\begin{align}\\ Q_{i,j} = \frac{k_{i,j}}{1 - k_{i,i}}, \quad j \neq i\\\\ \end{align}\]

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.10 (Cálculo do Gerador Infinitesimal de um Processo de Competição Entre Transições). Considere um processo Markoviano em tempo contínuo \(\{X_t\}_{t \ \geqslant \ 0}\) com espaço de estados \(\mathcal{E} = \{a, b, c\}\). A dinâmica do processo é definida por três tipos de transição competitiva:


  • Do estado \(a\) é possível transitar para \(b\) com taxa \(\alpha > 0\) e para \(c\) com taxa \(\beta > 0\).
  • Do estado \(b\) é possível retornar para \(a\) com taxa \(\gamma > 0\).
  • Do estado \(c\) é possível retornar para \(a\) com taxa \(\delta > 0\).


O processo é caracterizado por um mecanismo de competição entre eventos: no estado \(a\), o tempo até a próxima transição é uma variável exponencial de parâmetro \(\alpha + \beta\), com probabilidade proporcional das transições serem direcionadas a \(b\) ou a \(c\). A função de transição \(P(t) = [P_{i,j}(t)]_{i,j \ \in \ \mathcal{E}}\) pode ser construída diretamente a partir da estrutura de competição entre relógios exponenciais. Por exemplo, considerando o estado \(a\):

\[\begin{align}\\ P_{a,a}(t) &= e^{-(\alpha + \beta) t}\\\\ P_{a,b}(t) &= \frac{\alpha}{\alpha + \beta} \left(1 - e^{-(\alpha + \beta) t}\right)\\\\ P_{a,c}(t) &= \frac{\beta}{\alpha + \beta} \left(1 - e^{-(\alpha + \beta) t}\right)\\\\ \end{align}\]

Já para o estado \(b\), tem-se que:

\[\begin{align}\\ P_{b,b}(t) &= e^{-\gamma t}\\\\ P_{b,a}(t) &= 1 - e^{-\gamma t}\\\\ \end{align}\]

Por fim, de forma análoga para o estado \(c\), tem-se que:

\[\begin{align}\\ P_{c,c}(t) &= e^{-\delta t}\\\\ P_{c,a}(t) &= 1 - e^{-\delta t}\\\\ \end{align}\]

A função de transição completa \(P(t)\) é, então, dada por:

\[\begin{align}\\ P(t) = \begin{bmatrix} \text{a} & \text{b} & \text{c}\\ \hline e^{-(\alpha + \beta) t} & \dfrac{\alpha}{\alpha + \beta}\left[1 - e^{-(\alpha + \beta) t}\right] & \dfrac{\beta}{\alpha + \beta}\left[1 - e^{-(\alpha + \beta) t}\right] \\ 1 - e^{-\gamma t} & e^{-\gamma t} & 0 \\ 1 - e^{-\delta t} & 0 & e^{-\delta t} \end{bmatrix}\\\\ \end{align}\]

Neste caso, o gerador infinitesimal \(A\) é calculado como:

\[\begin{align}\\ A = \left.\frac{d}{dt}P(t)\right|_{t=0}\\\\ \end{align}\]

Então, derivando cada elemento da matriz \(P(t)\) no tempo \(t=0\), tem-se:


  • Para \(i = j\) (diagonal), por exemplo, \[\begin{align}\\ \frac{d}{dt}e^{-\lambda t} = -\lambda e^{-\lambda t} \implies \left.\frac{d}{dt}e^{-\lambda t}\right|_{t=0} = -\lambda\\\\ \end{align}\]

  • Para \(i \neq j\), por exemplo,

\[\begin{align}\\ \frac{d}{dt}\left(\frac{\alpha}{\alpha + \beta} \left(1 - e^{-(\alpha + \beta)t}\right)\right) = \frac{\alpha}{\alpha + \beta} \cdot (\alpha + \beta) e^{-(\alpha + \beta)t} \implies \frac{d}{dt} = \alpha\\\\ \end{align}\]


Logo, montando a matriz do gerador infinitesimal \(A\) temos:

\[\begin{align}\\ A = \begin{bmatrix} \text{a} & \text{b} & \text{c}\\ \hline -(\alpha + \beta) & \alpha & \beta \\ \gamma & -\gamma & 0 \\ \delta & 0 & -\delta \end{bmatrix}\\\\ \end{align}\]

Dessa matriz, conclui-se que:


  • O tempo de permanência no estado \(a\) é uma variável exponencial com taxa \(\alpha + \beta\).
  • No estado \(a\), as probabilidades de transição para \(b\) e \(c\) são, respectivamente, \[\begin{align}\\ Q_{a,b} &= \frac{\alpha}{\alpha + \beta}\\\\ Q_{a,c} &= \frac{\beta}{\alpha + \beta}\\\\ \end{align}\]
  • No estado \(b\), a única transição possível é retorno para \(a\), com taxa \(\gamma\).
  • No estado \(c\), a única transição possível é retorno para \(a\), com taxa \(\delta\).


Este processo modela, por exemplo, sistemas com dois modos alternativos (\(b\) e \(c\)) que competem para serem ativados a partir de um estado inicial (\(a\)), com possibilidade de retorno ao estado inicial.

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

3.3. Equações Diferenciais de Kolmogorov


Até o momento, vimos como obter a matriz geradora infinitesimal \(A\) a partir da família de matrizes de transição \(\{P(t)\}_{t \ \geqslant \ 0}\). Nosso objetivo agora é investigar o procedimento inverso, isto é, queremos determinar \(P(t)\) a partir de \(A\). Para isso, faremos uso das equações de Chapman-Kolmogorov, que nos conduzem à formulação de um sistema de equações diferenciais — conhecidas como equações de Kolmogorov — para as transições \(P(t)\) que envolvem as entradas da matriz \(A\). Neste caso, seja \(\mathcal{E}\) o espaço de estados de uma cadeia de Markov em tempo contínuo \(\{X_t\}_{t \ \geqslant \ 0}\), com função de transição \(P(t)\) e gerador infinitesimal \(A\). Sabe-se que as equações de Chapman-Kolmogorov garantem, \(\forall s, t \geqslant 0\), que

\[\begin{align}\\ P(t + s) = P(s)P(t)\\\\ \end{align}\]

A partir dessa relação, considerando o incremento temporal \(h > 0\) e aplicando a equação de Chapman-Kolmogorov com \(s = h\), obtemos que:

\[\begin{align}\\ P(t + h) = P(h)P(t)\\\\ \end{align}\]

Subtraindo \(P(t)\) de ambos os lados e dividindo por \(h\), temos que:

\[\begin{align}\\ \frac{P(t + h) - P(t)}{h} = \frac{P(h)P(t) - P(t)}{h}\\\\ \end{align}\]

Dessa relação, tomando o limite quando \(h \to 0\), obtemos que:

\[\begin{align}\\ \frac{d}{dt}P(t) &= \lim_{h \to 0} \frac{P(t + h) - P(t)}{h}\\\\ &= \lim_{h \to 0} \frac{P(h)P(t) - P(t)}{h}\\\\ &= \left( \lim_{h \to 0} \frac{P(h) - I}{h} \right) P(t)\\\\ \end{align}\]

em que \(I\) é a matriz identidade de dimensão compatível com o espaço de estados \(\mathcal{E}\). Agora, pela definição do gerador infinitesimal \(A\), temos que:

\[\begin{align}\\ A = \lim_{h \to 0} \frac{P(h) - I}{h} \quad \implies \quad \frac{d}{dt}P(t) &= \left( \lim_{h \to 0} \frac{P(h) - I}{h} \right) P(t) = A\,P(t)\\\\ \end{align}\]

Por outro lado, se utilizarmos a igualdade \(P(t + h) = P(t) P(h)\), obtemos, de modo análogo, que:

\[\begin{align}\\ \frac{d}{dt}P(t) &= P(t)\,A\\\\ \end{align}\]

Essas duas relações nos levam as definições das equações retrospectivas e propospectivas de Kolmogorov.


Definição 3.3 (Equações de Kolmogorov - Tijms 2003; Hinojosa e Milanés 2011; Cinlar 2013). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov em tempo contínuo com espaço de estados \(\mathcal{E}\) (finito ou enumerável), função de transição \(P(t)\) e gerador infinitesimal \(A = [q_{ij}]_{i,j \ \in \ \mathcal{E}}\), com elementos dados por:

\[\begin{align}\\ q_{ij} &= q_i Q_{ij}, \text{ para } i \neq j\\\\ q_{ii} &= -q_i, \text{ para todo } i \in \mathcal{E}\\\\ \end{align}\]

onde \(q_i = \sum_{i \neq j} q_{ij}\) é a taxa total de saída do estado \(i\) e \(Q_{ij}\) representa o esqueleto do processo, isto é, as probabilidades condicionais de salto de \(i\) para \(j\) satisfazendo \(Q_{ii} = 0\) e \(\sum_{j \neq i} Q_{ij} = 1\). As equações diferenciais que descrevem a evolução das probabilidades de transição \(P_{i,j}(t)\) são denominadas equações de Kolmogorov, e assumem as seguintes formas:


  • Equações de Kolmogorov retrospectivas (backward Kolmogorov equations):

\[\begin{align}\\ \frac{d}{dt}P(t) &= A\,P(t) \quad \implies \quad \frac{d}{dt} P_{i,j}(t) = \sum_{k \neq i} q_i Q_{ik} P_{k,j}(t) - q_i P_{i,j}(t)\\\\ \end{align}\]

  • Equações de Kolmogorov prospectivas (forward Kolmogorov equations):

\[\begin{align}\\ \frac{d}{dt}P(t) &= P(t)\, A \quad \implies \quad \frac{d}{dt} P_{i,j}(t) = \sum_{k \neq j} q_k Q_{kj} P_{i,k}(t) - q_j P_{ij}(t)\\\\ \end{align}\]


para todo \(i, j \in \mathcal{E}\) e \(t \geqslant 0\). É importante destacar que essa dedução das equações de Kolmogorov é rigorosamente válida quando o espaço de estados \(\mathcal{E}\) é finito. No contexto de espaços infinitos, a passagem do limite para dentro de somatórios com infinitos termos exige maior cuidado. Tal operação pode ser justificada, em particular, sob a condição:

\[\begin{align}\\ \sup_{i \ \in \ \mathcal{E}} q_i < \infty\\\\ \end{align}\]

que assegura controle uniforme sobre as taxas totais de saída e evita explosões no processo.


Exemplo 3.11 (Cadeia de Markov com Dois Estados). Considere uma cadeia de Markov em tempo contínuo com espaço de estados \(\mathcal{E} = {0,1}\), na qual o processo permanece no estado \(0\) durante um tempo aleatório distribuído exponencialmente com taxa \(\lambda > 0\) antes de saltar para o estado \(1\). De forma análoga, no estado \(1\) o processo permanece por um tempo exponencial com taxa \(\mu > 0\) antes de retornar ao estado \(0\). Neste caso, para determinar a função de transição \(P(t) = [P_{i,j}(t)]\), começamos observando que as taxas totais de saída são \(q_0 = \lambda\) e \(q_1 = \mu\). O esqueleto do processo, que indica a probabilidade condicional de saltos, é dado por:

\[\begin{align}\\ Q = \begin{bmatrix} \text{E0} & \text{E1}\\ \hline 0 & 1 \\ 1 & 0 \end{bmatrix}\begin{matrix} \\ \text{E0} \\ \text{E1}\\ \end{matrix}\\\\ \end{align}\]

visto que, de cada estado, há transição certa para o outro. Assim, a matriz geradora infinitesimal é:

\[\begin{align}\\ A = \begin{bmatrix} \text{E0} & \text{E1}\\ \hline -\lambda & \lambda \\ \mu & -\mu \end{bmatrix}\begin{matrix} \\ \text{E0} \\ \text{E1}\\ \end{matrix}\\\\ \end{align}\]

Aplicando as equações de Kolmogorov prospectivas para \(i=j=0\), obtemos a equação diferencial:

\[\begin{align}\\ \frac{d}{dt} P_{0,0}(t) = \mu P_{0,1}(t) - \lambda P_{0,0}(t)\\\\ \end{align}\]

Utilizando a condição de normalização, isto é, \(P_{0,0}(t) + P_{0,1}(t) = 1\), reescrevemos:

\[\begin{align}\\ P_{0,1}(t) = 1 - P_{0,0}(t)\\\\ \end{align}\]

Substituindo, a equação torna-se:

\[\begin{align}\\ \frac{d}{dt} P_{0,0}(t) &= \mu (1 - P_{0,0}(t)) - \lambda P_{0,0}(t)\\\\ &= \mu - (\lambda + \mu) P_{0,0}(t)\\\\ \end{align}\]

Esta é uma equação diferencial linear de primeira ordem, cuja solução pode ser obtida pelo método do fator integrante. Neste caso, multiplicando ambos os lados por \(e^{(\lambda + \mu) t}\), temos:

\[\begin{align}\\ \frac{d}{dt} \left( e^{(\lambda + \mu) t} P_{0,0}(t) \right) = \mu e^{(\lambda + \mu) t}\\\\ \end{align}\]

Integrando de \(0\) até \(s\) e usando a condição inicial \(P_{0,0}(0) = 1\), segue que:

\[\begin{align}\\ e^{(\lambda + \mu) s} P_{0,0}(s) - 1 &= \mu \int_0^s e^{(\lambda + \mu) u} du\\\\ &= \frac{\mu}{\lambda + \mu} \left\{ e^{(\lambda + \mu) s} - 1 \right\}\\\\ \end{align}\]

Isolando \(P_{0,0}(s)\), obtém-se:

\[\begin{align}\\ P_{0,0}(s) = \frac{\mu}{\lambda + \mu} + \frac{\lambda}{\lambda + \mu} e^{-(\lambda + \mu) s}\\\\ \end{align}\]

Por simetria, a probabilidade de permanecer no estado \(1\) até o tempo \(s\) partindo de \(1\) é dada por:

\[\begin{align}\\ P_{1,1}(s) = \frac{\lambda}{\lambda + \mu} + \frac{\mu}{\lambda + \mu} e^{-(\lambda + \mu) s}\\\\ \end{align}\]

Finalmente, as probabilidades de transição cruzadas são determinadas por normalização das linhas da matriz,

\[\begin{align}\\ P_{0,1}(s) &= 1 - P_{0,0}(s) = \frac{\lambda}{\lambda + \mu} \left( 1 - e^{-(\lambda + \mu) s} \right)\\\\ P_{1,0}(s) &= 1 - P_{1,1}(s) = \frac{\mu}{\lambda + \mu} \left( 1 - e^{-(\lambda + \mu) s} \right)\\\\ \end{align}\]

Portanto, a função de transição, \(P(s)\), da cadeia no instante \(s\) é dada por:

\[\begin{align}\\ P(s) = \begin{bmatrix} \text{E0} & \text{E1}\\ \hline \dfrac{\mu}{\lambda + \mu} + \dfrac{\lambda}{\lambda + \mu} e^{-(\lambda + \mu) s} & \dfrac{\lambda}{\lambda + \mu} \left( 1 - e^{-(\lambda + \mu) s} \right) \\ \dfrac{\mu}{\lambda + \mu} \left( 1 - e^{-(\lambda + \mu) s} \right) & \dfrac{\lambda}{\lambda + \mu} + \dfrac{\mu}{\lambda + \mu} e^{-(\lambda + \mu) s} \end{bmatrix}\begin{matrix} \\ \text{E0} \\\\ \text{E1}\\ \end{matrix}\\\\ \end{align}\]

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.12 (Processo de Poisson). Considere o processo de contagem de eventos de um processo de Poisson com taxa \(\lambda > 0\). O espaço de estados é \(\mathcal{E} = {0,1,2,\ldots}\), e as únicas transições possíveis são incrementos unitários: do estado \(i\) para o estado \(i+1\), ocorrendo com taxa \(\lambda\). A matriz geradora infinitesimal \(A = [q_{i,j}]\), neste caso, tem elementos descritos por:

\[\begin{align}\\ q_{i,i+1} &= \lambda, \quad i \geqslant 0\\\\ q_{i,i} &= -\lambda, \quad i \geqslant 0\\\\ \end{align}\]

com todos os demais elementos nulos. Seja \(P_{i,j}(t)\) a probabilidade de transição da cadeia do estado \(i\) para o estado \(j\) no tempo \(t\). Neste caso, as equações de Kolmogorov prospectivas para \(P_{i,j}(t)\) são dadas por:

\[\begin{align}\\ \frac{d}{dt} P_{i,j}(t) = \lambda P_{i+1,j}(t) - \lambda P_{i,j}(t), \quad i,j \in \mathcal{E}\\\\ \end{align}\]

com condição inicial:

\[\begin{align}\\ P_{i,j}(0) = \delta_{i,j}\\\\ \end{align}\]

onde \(\delta_{i,j}\) é o delta de Kronecker, que representa uma função indicadora que vale 1 quando os índices são iguais e 0 caso contrário. Agora, note que o processo pode apenas aumentar o estado em incrementos unitários, nunca retornando a um estado inferior. Assim, para \(j < i\) temos:

\[\begin{align}\\ P_{i,j}(t) = 0\\\\ \end{align}\]

Para \(j \geqslant i\), definimos o deslocamento relativo:

\[\begin{align}\\ k = j - i \geqslant 0\\\\ \end{align}\]

e introduzimos a notação:

\[\begin{align}\\ p_k(t) = P_{i,i+k}(t)\\\\ \end{align}\]

Esta notação destaca que as probabilidades dependem apenas do deslocamento relativo \(k\) ao estado inicial \(i\), e não do próprio \(i\), dada a homogeneidade do processo. Dessa forma, as equações de Kolmogorov para \(p_k(t)\) são:

\[\begin{align}\\ \frac{d}{dt} p_k(t) = \lambda p_{k-1}(t) - \lambda p_k(t), \qquad k \geqslant 0\\\\ \end{align}\]

com a convenção \(p_{-1}(t) = 0\) para fechar o sistema, e condição inicial \(p_k(0) = \delta_{k,0}\). Logo, para \(k=0\), temos que:

\[\begin{align}\\ \frac{d}{dt} p_0(t) &= - \lambda p_0(t)\\\\ p_0(0) &= 1\\\\ \end{align}\]

cuja solução é \(p_0(t) = e^{-\lambda t}\). Por outro lado, para \(k=1\), temos que:

\[\begin{align}\\ \frac{d}{dt} p_1(t) = \lambda p_0(t) - \lambda p_1(t)\\\\ \end{align}\]

com \(p_1(0) = 0\). Multiplicando ambos os lados por \(e^{\lambda t}\) (fator integrante), obtemos:

\[\begin{align}\\ e^{\lambda t} \frac{d}{dt} p_1(t) + \lambda e^{\lambda t} p_1(t) = \lambda e^{\lambda t} p_0(t) = \lambda\\\\ \end{align}\]

isto é,

\[\begin{align}\\ \frac{d}{dt} \left( e^{\lambda t} p_1(t) \right) = \lambda\\\\ \end{align}\]

Integrando entre \(0\) e \(t\),

\[\begin{align}\\ e^{\lambda t} p_1(t) - p_1(0) = \lambda t \implies p_1(t) = \lambda t e^{-\lambda t}\\\\ \end{align}\]

Repetindo este processo para \(k=2\), obtemos:

\[\begin{align}\\ e^{\lambda t} p_2(t) = \frac{\lambda^2 t^2}{2} \implies p_2(t) = \frac{(\lambda t)^2}{2} e^{-\lambda t}\\\\ \end{align}\]

De modo geral, o padrão observado permite afirmar, para todo \(k \geqslant 0\), que:

\[\begin{align}\\ p_k(t) = \frac{(\lambda t)^k}{k!} e^{-\lambda t}\\\\ \end{align}\]

que corresponde a distribuição de Poisson com parâmetro \(\lambda t\). Assim, as probabilidades de transição são:

\[\begin{align}\\ P_{i,j}(t) = \begin{cases} \dfrac{(\lambda t)^{j - i}}{(j - i)!} e^{-\lambda t}, & j \geqslant i \\ 0, & j < i \end{cases}\\\\ \end{align}\]

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

3.4. Distribuição Estacionária


Considere uma cadeia de Markov em tempo contínuo \(\{X_t\}_{t \ \geqslant \ 0}\) com espaço de estados \(\mathcal{E}\). Suponha que, no instante inicial, a cadeia não se encontra no estado \(i \in \mathcal{E}\). Defina:

\[\begin{align}\\ \tau_i = \inf\{t \geqslant T_1 : X_t = i\} \end{align}\]

como o primeiro instante em que a cadeia visita o estado \(i\) após o tempo \(T_1\). Por outro lado, se \(X_0 = i\), então \(\tau_i\) corresponde ao primeiro instante em que a cadeia retorna ao estado \(i\). Assim, \(\tau_i\) representa o tempo de primeira visita (ou retorno) ao estado \(i\). Note que \(\tau_i\) pode assumir o valor \(+\infty\) se a cadeia nunca visitar o estado \(i\) após \(T_1\) ou se \(i\) for um estado absorvente. Esse definição, de modo análogo, ao caso do tempo discreto, nos permite classificar, em trasitórios ou recorrentes, os estados de \(\{X_t\}_{t \ \geqslant \ 0}\) com base na frequência com que os estados são visitados. A diferença é que, em tempo contínuo, essa frequência está associada à probabilidade \(\mathrm{P}_i(\tau_i < \infty)\).


Definição 3.4. Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov em tempo contínuo com espaço de estados \(\mathcal{E}\). O estado \(i \in \mathcal{E}\) será denominado transitório se:

\[\begin{align}\\ \mathrm{P}_i(\tau_i < \infty) < 1\\\\ \end{align}\]

Caso contrário, o estado é dito recorrente. Dentre os estados recorrentes, um estado recorrente \(i \in \mathcal{E}\) é classificado como recorrente nulo se \(\mathrm{E}_i(\tau_i) = \infty\), e como recorrente positivo se \(\mathrm{E}_i(\tau_i) < \infty\). Estados absorventes são, por definição, recorrentes positivos.


Exemplo 3.13. Considere uma cadeia de Markov em tempo contínuo \(\{X_t\}_{t \ \geqslant \ 0}\) com espaço de estados \(\mathcal{E} = \{1, 2, 3\}\), cuja dinâmica é descrita pelas seguintes transições:


  • Do estado 1, a cadeia pode:
    • Ir para o estado 2 com taxa \(\lambda > 0\);
    • Ir para o estado 3 com taxa \(\mu > 0\).
  • Do estado 2, a cadeia pode:
    • Voltar ao estado 1 com taxa \(\alpha > 0\).
  • O estado 3 é absorvente, ou seja, uma vez nele, a cadeia permanece no estado 3 para sempre.


O gerador infinitesimal do processo é, portanto, dado por:

\[\begin{align}\\ A = \begin{bmatrix} \text{E1} & \text{E2} & \text{E3}\\ \hline -(\lambda + \mu) & \lambda & \mu \\ \alpha & -\alpha & 0 \\ 0 & 0 & 0 \end{bmatrix}\begin{matrix} \\\text{E1} \\ \text{E2} \\ \text{E3}\\ \end{matrix}\\\\ \end{align}\]

Suponha que nosso objetivo seja analisar o comportamento da cadeia em relação a cada estado, de acordo com \(\tau_i = \tau_i = \inf\{t \geqslant T_1 : X_t = i\}\). Neste caso, note que, se \(X_0 = 3\), então:

\[\begin{align}\\ \tau_3 = \inf\{t \geqslant T_1 : X_t = 3\} = +\infty\\\\ \end{align}\]

pois, após \(T_1\), o processo já se encontra no estado 3 e não há possibilidade de transição. Por outro lado, se \(X_0 \neq 3\), o tempo \(\tau_3\) representa o tempo até a absorção no estado 3, o qual é quase certamente finito. Isso ocorre porque, partindo de qualquer outro estado, sempre há caminhos possíveis que conduzem ao estado 3. Especificamente, a partir do estado 1, existe uma transição direta para 3 com taxa \(\mu\); a partir do estado 2, há uma transição obrigatória para o estado 1, seguida da possibilidade de transição para 3. Dessa forma, o estado 3 é classificado como recorrente positivo e absorvente. Por outro lado, partindo do estado 2, observe que a única transição possível é para o estado 1 (com taxa \(\alpha\)). Contudo, uma vez no estado 1, a cadeia pode transitar para o estado 3 (absorvente) com taxa \(\mu\) antes de retornar ao estado 2. Então, há uma probabilidade positiva de, ao sair de 2 e ir para 1, a cadeia ser absorvida em 3 antes de retornar a 2. Isto é,


  • De 2, a cadeia vai para 1 (obrigatoriamente).
  • De 1, a cadeia pode:
    • Ir para 2 com probabilidade \(\lambda/(\lambda + \mu)\);
    • Ir para 3 (absorção) com probabilidade \(\mu/(\lambda + \mu)\).


Isso decorre do fato de que, estando no estado 1, o tempo de espera até a próxima transição é uma variável aleatória exponencial com parâmetro total dado pela soma das taxas de saída, ou seja, \(\lambda + \mu\). A probabilidade condicional de que o próximo salto seja para um estado específico é dada pela proporção da taxa de transição para esse estado em relação à taxa total de saída do estado atual. Formalmente, sejam \(q_{1,2} = \lambda\) e \(q_{1,3} = \mu\) as taxas de transição do estado 1 para os estados 2 e 3, respectivamente, então:

\[\begin{align}\\ \mathrm{P}(1 \to 2) &= \frac{q_{1,2}}{q_{1,2} + q_{1,3}} = \frac{\lambda}{\lambda + \mu}\\\\ \mathrm{P}(1 \to 3) &= \frac{q_{1,3}}{q_{1,2} + q_{1,3}} = \frac{\mu}{\lambda + \mu}\\\\ \end{align}\]

Assim, há uma chance positiva de que a cadeia nunca mais retorne ao estado 2, o que implica que \(P_2(\tau_2 < \infty) < 1\), o que caracteriza o estado 2 como transitório. O mesmo raciocínio se aplica ao estado 1, que também é transitório.

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Definição 3.5 (Distribuição Estacionária - Hinojosa e Milanés 2011). Uma distribuição \(\boldsymbol{\pi} = \{\pi(i): i \in \mathcal{E}\}\) sobre o espaço de estados \(\mathcal{E}\) é dita distribuição estacionária da cadeia de Markov em tempo contínuo \({X_t}_{t \ \geqslant 0\}\) se, para todo \(j \in \mathcal{E}\) e todo \(s \geqslant 0\),

\[\begin{align}\\ \sum_{k \in \mathcal{E}} \pi(k) P_{k,j}(s) = \pi(j)\\\\ \end{align}\]

No caso finito, essa condição pode ser expressa na forma matricial como

\[\begin{align}\\ \boldsymbol{\pi}^\top \cdot P(s) = \boldsymbol{\pi}^\top\\\\ \end{align}\]

onde \(P(s)\) é a matriz de transição no tempo \(s\) e \(\boldsymbol{\pi}^\top\) é o vetor linha correspondente à distribuição \(\boldsymbol{\pi}\). Se a cadeia for inicializada segundo a distribuição estacionária, então a distribuição do processo permanece invariante ao longo do tempo. De fato, para todo \(j \in \mathcal{E}\) e todo \(t \geqslant 0\), tem-se

\[\begin{align}\\ \mathrm{P}(X_t = j) = \sum_{i_0 \in \mathcal{E}} \pi(i_0) P_{i_0, j}(t) = \pi(j) \end{align}\]


A partir da Definição 3.5, note que, diferentemente do caso discreto, onde a distribuição estacionária é obtida a partir de um sistema finito de equações lineares, no caso contínuo surge uma família não-enumerável de equações (uma para cada \(t \geqslant 0\)). Contudo, é possível reduzir o problema ao estudo de um único sistema de equações por meio do gerador infinitesimal da cadeia. De fato, seja \(A = [q_{i,j}]_{i,j \in \mathcal{E}}\) o gerador infinitesimal do processo, e suponha que \(\boldsymbol{\pi}\) seja uma distribuição estacionária. Então, a condição:

\[\begin{align}\\ \sum_{k \in \mathcal{E}} \pi(k) P_{k,j}(s) = \pi(j)\\\\ \end{align}\]

vale para todo \(s \geqslant 0\). Logo, derivando ambos os lados da equação em relação a \(s\) e avaliando em \(s = 0\), e assumindo que é possível permutar soma e derivada (hipótese válida sob condições regulares), obtemos:

\[\begin{align}\\ \sum_{k \ \in \ \mathcal{E}} \pi(k) q_{k,j} = 0, \quad \forall j \in \mathcal{E}\\\\ \end{align}\]

ou, na forma matricial (caso finito),

\[\begin{align}\\ \boldsymbol{\pi}^\top \cdot A = \boldsymbol{0}^\top\\\\ \end{align}\]

Surge, então, a questão: será que toda distribuição que satisfaz essa equação é necessariamente estacionária? Para responder a essa questão, usaremos as equações de Kolmogorov retrospectivas. Neste caso, consideremos a função:

\[\begin{align}\\ f(s) = \sum_{k \ \in \ \mathcal{E}} \pi(k) P_{k,j}(s)\\\\ \end{align}\]

Calculando sua derivada em relação a \(s\), e, novamente, assumindo validade da troca entre soma e derivada (hipótese válida sob condições regulares), obtemos:

\[\begin{align}\\ \frac{d}{ds} f(s) &= \sum_{k \ \in \ \mathcal{E}} \pi(k) \frac{d}{ds} P_{k,j}(s)\\\\ &= \sum_{k \in \mathcal{E}} \pi(k) \sum_{\ell \in \mathcal{E}} q_{k,\ell} P_{\ell,j}(s)\\\\ &= \sum_{\ell \in \mathcal{E}} P_{\ell,j}(s) \left( \sum_{k \in \mathcal{E}} \pi(k) q_{k,\ell} \right)\\\\ \end{align}\]

Logo, pela condição:

\[\begin{align}\\ \sum_{k \in \mathcal{E}} \pi(k) q_{k,\ell} = 0, \quad \forall \ell \in \mathcal{E}\\\\ \end{align}\]

segue que:

\[\begin{align}\\ \frac{d}{ds} f(s) = 0\\\\ \end{align}\]

isto é, \(f(s)\) é constante em \(s\). Agora, avaliando essa função em \(s = 0\), temos que:

\[\begin{align}\\ f(0) = \sum_{k \in \mathcal{E}} \pi(k) P_{k,j}(0) = \pi(j)\\\\ \end{align}\]

uma vez que \(P_{k,j}(0) = \delta_{k,j}\) (delta de Kronecker). Portanto, conclui-se que:

\[\begin{align}\\ \sum_{k \in \mathcal{E}} \pi(k) P_{k,j}(s) = \pi(j), \quad \forall s \geqslant 0\\\\ \end{align}\]

ou seja, \(\boldsymbol{\pi}\) é, de fato, uma distribuição estacionária. Em síntese, tanto no caso finito quanto, sob hipóteses adequadas, no caso infinito, uma distribuição \(\boldsymbol{\pi}\) é estacionária se, e somente se, satisfaz \(\boldsymbol{\pi}^\top \cdot A = \boldsymbol{0}^\top\), ou, de forma equivalente,

\[\begin{align}\\ \sum_{k \in \mathcal{E}} \pi(k) q_{k,j} = 0, \quad \forall j \in \mathcal{E}\\\\ \end{align}\]


Exemplo 3.14. Seja \(\{X_t\}_{t \ \geqslant \ 0}\) uma cadeia de Markov em tempo contínuo com espaço de estados \(\mathcal{E} = \{1, 2, 3\}\) e gerador infinitesimal dado por:

\[\begin{align}\\ A = \begin{bmatrix} \text{E1} & \text{E2} & \text{E3}\\ \hline -5 & 2 & 3 \\ 2 & -3 & 1 \\ 2 & 4 & -6 \end{bmatrix}\begin{matrix} \\ \text{E1} \\ \text{E2} \\ \text{E3}\\ \end{matrix}\\\\ \end{align}\]

Para determinar a distribuição estacionária da cadeia, basta encontrar o vetor de probabilidades \(\boldsymbol{\pi} = (\pi(1), \pi(2), \pi(3))\) tal que \(\boldsymbol{\pi}^\top \cdot A = \mathbf{0}\), ou seja, que seja solução do sistema linear homogêneo:

\[\begin{align}\\ -5x + 2y + 2z = 0\\\\ 2x -3y + 4z = 0 \\\\ 3x + y -6z = 0\\\\ \end{align}\]

Observa-se que uma das equações é linearmente dependente das demais, de modo que o sistema possui infinitas soluções lineares. Portanto, é suficiente resolver duas das equações e, posteriormente, normalizar o vetor resultante para que suas componentes somem 1. Escolhendo, por conveniência, fixar \(x = 42\), obtemos o seguinte sistema reduzido:

\[\begin{align}\\ 2y + 2z = 210 \\\\ -3y + 4z = -84\\\\ \end{align}\]

Resolvendo o sistema, encontra-se \(y = 72\) e \(z = 33\), tal que o vetor solução é \((x, y, z) = (42, 72, 33)\). Por fim, a normalização é feita dividindo cada componente pela soma total \(x + y + z = 42 + 72 + 33 = 147\), resultando na única distribuição estacionária da cadeia:

\[\begin{align}\\ \pi(1) = \frac{42}{147} = \frac{14}{49} \approx 0.2857143 \\\\ \pi(2) = \frac{72}{147} = \frac{24}{49} \approx 0.4897959 \\\\ \pi(3) = \frac{33}{147} = \frac{11}{49} \approx 0.2244898 \\\\ \end{align}\]

O Código 3.9 apresenta, em linguagem R, o cálculo da distribuição estacionária \(X_t\), com base no gerador infinitesimal representado pela matriz \(A\). Neste código, a distribuição estacionária é obtida como solução do sistema linear homogêneo \(\boldsymbol{\pi}^\top \cdot A = \mathbf{0}\) sujeita à restrição de normalização:

\[\begin{align}\\ \sum_{i \in \mathcal{E}} \pi(i) = 1\\\\ \end{align}\]

em que \(\mathcal{E} = {1, 2, 3}\) denota o espaço de estados da cadeia. A resolução do sistema linear é realizada por meio da função qr.solve(), que se baseia na decomposição QR — uma fatoração matricial que expressa uma matriz \(M\) como o produto \(M = Q R\), em que \(Q\) é uma matriz ortogonal (ou unitária, no caso complexo) e \(R\) é uma matriz triangular superior. Essa decomposição fornece uma solução numericamente estável para sistemas lineares, sejam eles determinados, sobredeterminados ou com posto deficiente. Por meio desse procedimento, obtém-se diretamente o vetor de probabilidades correspondente à distribuição estacionária \(\boldsymbol{\pi}\) associada à cadeia.


Código 3.9. Cálculo da distribuição estacionária de \(X_t\), com espaço de estados \(\mathcal{E} = \{1, 2, 3\}\) e gerador infinitesimal definido pela matriz \(A\).

## ----------------------------------------------------------------------
## Cálculo da Distribuição Estacionária de uma Cadeia de Markov Contínua
## ----------------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)

# --- 1. Definição da Matriz Geradora ---

A       <- matrix(c(-5,  2,  3,
                    2, -3,  1,
                    2,  4, -6),
                  nrow = 3, byrow = TRUE)

estados <- c("1", "2", "3")

# --- 2. Construção do Sistema Linear ---

At      <- t(A)                   # Transposta da Matriz Geradora
M       <- rbind(At, c(1, 1, 1))  # Adição da Equação de Normalização (Soma das Probabilidades = 1)
b       <- c(0, 0, 0, 1)

# --- 3. Resolução do Sistema Linear (Solução via Decomposição QR) ---

pi      <- qr.solve(M, b)

# --- 4. Organização dos Resultados ---

pi      <- as.data.frame(t(pi)) %>%
                                  rename_with(~ paste0("pi(", estados, ")"))

# --- 5. Apresentação da Distribuição Estacionária ---

print(pi)
      pi(1)     pi(2)     pi(3)
1 0.2857143 0.4897959 0.2244898

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]

Exemplo 3.15 (Processo de Nascimento e Morte). Seja \(\{X_t\}_{t \ \geqslant \ 0}\) um processo de nascimento e morte em tempo contínuo com espaço de estados \(\mathcal{E} = \{0, 1, 2\}\), taxas constantes de nascimento \(\lambda = 2\) e morte \(\mu = 1\). O gerador infinitesimal associado é dado por:

\[\begin{align}\\ A = \begin{bmatrix} \text{E0} & \text{E1} & \text{E2} \\ \hline -2 & 2 & 0 \\ 1 & -3 & 2 \\ 0 & 1 & -1 \end{bmatrix} \begin{matrix} \\ \text{E0} \\ \text{E1} \\ \text{E2} \\ \end{matrix}\\\\ \end{align}\]

Para determinar a distribuição estacionária da cadeia, busca-se o vetor de probabilidades \(\boldsymbol{\pi} = (\pi(0), \pi(1), \pi(2))\) tal que \(\boldsymbol{\pi}^\top \cdot A = \mathbf{0}\), isto é, que satisfaça o sistema linear homogêneo:

\[\begin{align}\\ -2x + 1y + 0z = 0 \\\\ 2x - 3y + 1z = 0 \\\\ 0x + 2y - 1z = 0\\\\ \end{align}\]

Observa-se que uma das equações é linearmente dependente, portanto, basta resolver duas delas e normalizar o vetor resultante para garantir que a soma das probabilidades seja igual a 1. Então, fixando \(z = 1\), o sistema reduzido é:

\[\begin{align}\\ -2x + y = 0 \\\\ 2x - 3y + 1 = 0\\\\ \end{align}\]

Da primeira equação, obtemos que \(y = 2x\). Substituindo na segunda equação:

\[\begin{align}\\ 2x - 3(2x) + 1 = 0 \implies 2x - 6x + 1 = 0 \implies -4x + 1 = 0 \implies x = \frac{1}{4}\\\\ \end{align}\]

Logo,

\[\begin{align}\\ y = 2 \times \frac{1}{4} = \frac{1}{2}\\\\ \end{align}\]

Assim, o vetor solução é \(\left(x, y, z\right) = \left(\frac{1}{4}, \frac{1}{2}, 1\right)\). A normalização é feita dividindo cada componente pela soma total, isto é,

\[\begin{align}\\ \frac{1}{4} + \frac{1}{2} + 1 = \frac{1}{4} + \frac{2}{4} + \frac{4}{4} = \frac{7}{4}\\\\ \end{align}\]

Portanto, a distribuição estacionária normalizada é:

\[\begin{align}\\ \pi(0) = \frac{\frac{1}{4}}{\frac{7}{4}} = \frac{1}{7} \approx 0.1429 \\\\ \pi(1) = \frac{\frac{1}{2}}{\frac{7}{4}} = \frac{2}{7} \approx 0.2857 \\\\ \pi(2) = \frac{1}{\frac{7}{4}} = \frac{4}{7} \approx 0.5714 \\\\ \end{align}\]

O Código 3.10 apresenta, em linguagem R, o cálculo da distribuição estacionária do processo \(\{X_t\}_{t \geqslant 0}\), com base no gerador infinitesimal representado pela matriz \(A\). Neste código, a resolução do sistema linear é conduzida por meio da função qr.solve(), que se baseia na decomposição QR. Por meio desse procedimento, obtém-se diretamente o vetor de probabilidades correspondente à distribuição estacionária \(\boldsymbol{\pi}\) associada à cadeia.


Código 3.10. Cálculo da distribuição estacionária de \(X_t\), com espaço de estados \(\mathcal{E} = \{0, 1, 2\}\) e gerador infinitesimal definido pela matriz \(A\).

## --------------------------------------------------------------------------
## Cálculo da Distribuição Estacionária de um Processo de Nascimento e Morte
## --------------------------------------------------------------------------

# --- 0. Pacotes Necessários ---

library(dplyr)

# --- 1. Definição da Matriz Geradora ---

A       <- matrix(c(-2,  2,  0,
                     1, -3,  2,
                     0,  1, -1),
                   nrow = 3, byrow = TRUE)

estados <- c("0", "1", "2")

# --- 2. Construção do Sistema Linear ---

At      <- t(A)                   # Transposta da Matriz Geradora
M       <- rbind(At, c(1, 1, 1))  # Adição da Equação de Normalização
b       <- c(0, 0, 0, 1)

# --- 3. Resolução do Sistema Linear (Solução via Decomposição QR) ---

pi      <- qr.solve(M, b)

# --- 4. Organização dos Resultados ---

pi      <- as.data.frame(t(pi)) %>%
                                  rename_with(~ paste0("pi(", estados, ")"))

# --- 5. Apresentação da Distribuição Estacionária ---

print(pi)
      pi(0)     pi(1)     pi(2)
1 0.1428571 0.2857143 0.5714286

\[\small \begin{align} \tag*{$\blacksquare$}\\\\ \end{align}\]