1 Introducción y ejemplos

Considérense dos modelos inciales (Dobrow 2016; Spedicato 2017).

El modelo Wright–Fisher describe la evolución de una población fija de \(k\) genes. Cada gen puede ser de dos tipos, llamados alelos: A o a. Sea \(X _n\) el número de alelos A en la población al tiempo \(n\), con tiempo medido por generaciones. Bajo el modelo, el número de alelos A al tiempo \(n + 1\) se obtiene al muestrear con reemplazamiento de la población de genes al tiempo \(n\). Así, condicional de haber \(i\) alelos de tipo A al tiempo \(n\), el número de alelos A al tiempo \(n + 1\) distribuye binomial con parámetros \(k\) and \(p = i∕k\). Esto da la cadena de Markov con matriz de transición dada por:

\[\begin{equation} P_{ij} = {k\choose j} (\frac{i}{k})^j (1 − \frac{i}{k})^{k-j}. \tag{1} \end{equation}\]

Se tiene que \(P_{00}=P_{kk}=1\), y conforme la cadena progresa, la población eventualmente se compone totalmente de alelos a (estado \(0\)) o alelos A (estado \(k\)).

La progresión metastásica del cáncer de pulmón en todo el cuerpo se modela con \(50\) posibles localizaciones metastásicas para la propagación del cáncer, que son el espacio de estado para un modelo de cadena de Markov. Las entradas de la matriz se estimaron a partir de datos de autopsias extraídas de \(3827\) pacientes. La Figura 1 muestra la progresión como una transición entre estados.

library("markovchain")

mat <- read.csv("lungcancer.csv",header=T) 
 
mcCancer <- new("markovchain", states = colnames(as.matrix(mat)),
                 byrow = TRUE, transitionMatrix = as.matrix(mat),
                 name = "Cancer")
plot(mcCancer, main="Cadena de Markov para Progresión Metastásica")
Red de propagación de cáncer de pulmón.

Figure 1: Red de propagación de cáncer de pulmón

Las Tablas 1 y 2 muestran la evolución metastásica después de \(2\) y \(4\) etapas respectivamente.

init <- c(rep(0,22),1,rep(0,27)) #inicia en pulmón  

after2S <- init * (mcCancer * mcCancer)
after7S <- init * (mcCancer ^ 7)

library(knitr)
library(kableExtra)
after2S %>% 
  kable( caption = "Progresión segunda etapa.") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 1: Progresión segunda etapa.
Adrenal Anus Appendix Bile.Duct Bladder Bone Brain Branchial.Cyst Breast Cervix Colon Diaphragm Duodenum Esophagus Eye Gallbladder Heart Kidney Lg.Intestine Larynx Lip Liver Lung LN..reg. LN..dist. Omentum Ovaries Pancreas Penis Pericardium Peritoneum Pharynx Pleura Prostate Rectum Retroperitoneum Salivary Skeletal.Musc Skin Sm.Intestine Spleen Stomach Testes Thyroid Tongue Tonsil Unknown Uterus Vagina Vulva
0.0943323 0 0 0 0.0016781 0.0614503 0.0239791 0 0 0 0 0.0193253 0 0 0 0.0096827 0.027185 0.0479607 0.0144535 0 0 0.0940617 0.0781844 0.185096 0.1228736 0.0065554 0 0.0369226 0 0.0208236 0.0198301 0 0.0435241 0.0016426 0 0 0 0.0032053 0.0131635 0.0097487 0.0289348 0.0080376 0 0.0240251 0 0 0 0.0016743 0.0016496 0
after7S %>% round(3)  %>%
  kable( caption = "Progresión séptima etapa.") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 2: Progresión séptima etapa.
Adrenal Anus Appendix Bile.Duct Bladder Bone Brain Branchial.Cyst Breast Cervix Colon Diaphragm Duodenum Esophagus Eye Gallbladder Heart Kidney Lg.Intestine Larynx Lip Liver Lung LN..reg. LN..dist. Omentum Ovaries Pancreas Penis Pericardium Peritoneum Pharynx Pleura Prostate Rectum Retroperitoneum Salivary Skeletal.Musc Skin Sm.Intestine Spleen Stomach Testes Thyroid Tongue Tonsil Unknown Uterus Vagina Vulva
0.095 0 0 0 0.002 0.061 0.024 0 0 0 0 0.019 0 0 0 0.01 0.027 0.048 0.015 0 0 0.094 0.078 0.184 0.123 0.006 0 0.037 0 0.021 0.019 0 0.044 0.002 0 0 0 0.003 0.013 0.01 0.029 0.008 0 0.024 0 0 0 0.002 0.002 0

Los nombres, los estados, la dimensión y el acceso directo a las probabilidades de transición etán disponibles (Tablas 3, 4 , 5 y 6).

name(mcCancer) %>%
  kable( caption = "Nombre cadena.", col.names = 'name') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 3: Nombre cadena.
name
Cancer
states(mcCancer) %>% 
  kable( caption = "Estados cadena.", col.names = 'states') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 4: Estados cadena.
states
Adrenal
Anus
Appendix
Bile.Duct
Bladder
Bone
Brain
Branchial.Cyst
Breast
Cervix
Colon
Diaphragm
Duodenum
Esophagus
Eye
Gallbladder
Heart
Kidney
Lg.Intestine
Larynx
Lip
Liver
Lung
LN..reg.
LN..dist.
Omentum
Ovaries
Pancreas
Penis
Pericardium
Peritoneum
Pharynx
Pleura
Prostate
Rectum
Retroperitoneum
Salivary
Skeletal.Musc
Skin
Sm.Intestine
Spleen
Stomach
Testes
Thyroid
Tongue
Tonsil
Unknown
Uterus
Vagina
Vulva
dim(mcCancer) %>%
  kable( caption = "Dimensión cadena.", col.names = 'dim') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 5: Dimensión cadena.
dim
50
transitionProbability(mcCancer, "Lung", "Prostate") %>% 
  kable( caption = "Probabilidad de transición.", col.names = 'transitionProbability') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 6: Probabilidad de transición.
transitionProbability
0.0006362
#pander(table(mcCancer[23,34]))
#as(mcCancer, "data.frame")

Se puede utilizar la simulación para estudiar la progresión del cáncer de pulmón en el cuerpo, con la distribución inicial correspondiente al pulmón. La Tabla 7 presenta la realización del proceso para ocho pasos.

n <- 8
rmarkovchain(n, t0 = "Lung", object = mcCancer) %>% 
  kable( caption = "Evolución de la progresión metastásica.", col.names = 'rmarkovchain') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 7: Evolución de la progresión metastásica.
rmarkovchain
Adrenal
Heart
Adrenal
LN..reg.
Thyroid
Lung
LN..dist.
Peritoneum

2 Probabilidad en cadenas de Markov

Los principales métodos computacionales que se pueden aplicar en cadenas de Markov para realizar análisis probabilístico son:

  • los estados absorbentes de la matriz de transición, si los hay.
  • los vectores de etapas estables (estacionarias) en forma de matriz.
  • la matriz o vector de tiempos medios de primer paso.
  • el vector del número medio de pasos para volver a cada estado recurrente
  • la matriz de probabilidades de impacto para una cadena de Markov.
  • el número esperado de pasos para un estado transitorio ser absorbido por cualquier clase recurrente.
  • probabilidades de estados transitorios de ser absorbido por cada estado recurrente.
  • probabilidades de compromiso
  • lista de clases comunicantes \(s _j\), dado el estado actual \(s _i\).
  • la matriz de transición a la forma canónica.
  • comprobar si un estado \(j\) es accesible desde el estado \(i\).
  • comprobar si una cadena es irreducible.
  • comprobar si una cadena es regular.
  • el período de un cadena irreducible.
  • la lista de clases de comunicación recurrente.
  • la lista de clases de comunicación transitoria.
  • los estados recurrentes de la matriz de transición.
  • los estados transitorios de la matriz de transición, si los hay.
  • resumen de la cadena.

La distribución condicional de la cadena de progresión metastásica, dada la etapa inicial en pulmón, viene dada en la Tabla 8.

conditionalDistribution(mcCancer, "Lung") %>% 
  kable( caption = "Probabilidad condicional.", col.names = 'conditionalProbability') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 8: Probabilidad condicional.
conditionalProbability
Adrenal 0.1316462
Anus 0.0000000
Appendix 0.0000000
Bile.Duct 0.0000000
Bladder 0.0000869
Bone 0.0591406
Brain 0.0327419
Branchial.Cyst 0.0000000
Breast 0.0000000
Cervix 0.0000000
Colon 0.0000000
Diaphragm 0.0216894
Duodenum 0.0000000
Esophagus 0.0000000
Eye 0.0000000
Gallbladder 0.0101506
Heart 0.0363924
Kidney 0.0667700
Lg.Intestine 0.0172375
Larynx 0.0000000
Lip 0.0000000
Liver 0.0802794
Lung 0.0522269
LN..reg. 0.1511496
LN..dist. 0.1192838
Omentum 0.0030499
Ovaries 0.0000000
Pancreas 0.0465984
Penis 0.0000000
Pericardium 0.0273276
Peritoneum 0.0038447
Pharynx 0.0000000
Pleura 0.0473486
Prostate 0.0006362
Rectum 0.0000000
Retroperitoneum 0.0000000
Salivary 0.0000000
Skeletal.Musc 0.0041276
Skin 0.0043892
Sm.Intestine 0.0078592
Spleen 0.0341503
Stomach 0.0094878
Testes 0.0000000
Thyroid 0.0317994
Tongue 0.0000000
Tonsil 0.0000000
Unknown 0.0000000
Uterus 0.0000655
Vagina 0.0005206
Vulva 0.0000000

Un vector estacionario (estado estacionario o de equilibrio) es un vector de probabilidad tal que la Ecuación (2) se cumple.

\[\begin{equation} \begin{gathered} 0 \leq \pi_j \leq 1 \\ \sum_{j \in S} \pi_j = 1 \\ \pi \cdot P = \pi. \end{gathered} \tag{2} \end{equation}\]

Los estados estacionarios están asociados a valores propios de \(P\) iguales a uno. Se pueden calcular manualmente resolviendo los valores propios / vectores de la matriz, tomando partes reales (ya que si \(u + iv\) es un vector propio, para la matriz \(P\), entonces \(\mathbb{Re} (u + iv) = u\) e \(\mathbb{Im} (u + iv) = v\) son vectores propios) y normalizar por la suma vectorial, esto conlleva algunas inconvenientes:

  1. Si \(u, v ∈ \mathbb{R} ^n\) son vectores propios linealmente independientes asociados a \(1\) valor propio, \(u + iv\), \(u + iu\) también son vectores propios linealmente independientes, y sus partes reales coinciden. Al tomar partes reales, se pierde un vector propio, porque no se puede saber de antemano si el algoritmo subyacente para calcular los vectores propios producirá algo similar a la descripción manual.

  2. Como ejemplo, en la matriz identidad \(P\) de dimensiones \(2 × 2\), eigenvectores associados al eigenvalor \(1\) son \(u = (1, 0)\) y \(v = (0, 1)\). Sin embargo, el algoritmo subyacente para calcular los vectores propios podría devolver \((1, -2)\) y \((-2, 1)\) en su lugar, que son combinaciones lineales de los antes mencionados y, por lo tanto, vectores propios. Normalizando por su suma, se tiene: \((-1, 2)\) y \((2, -1)\), que no son medidas de probabilidad.

  3. Algoritmos para calcular valores / vectores propios son computacionalmente costosos: son iterativos y no se puede predecir un número fijo de iteraciones para ellos. Cada iteración toma \(\mathcal{O} (m^2)\) u \(\mathcal{O} (m^3)\) en complejidad algorítmica, siendo \(m\) el número de estados.

Así, utilizando que cada cadena irreducible tiene un estado estable único, es decir, si \(M\) es la matriz de un cadena irreducible (todos los estados se comunican entre sí), entonces existe una \(v ∈ \mathbb{R}^m\) única tal que:

\[\begin{equation} \begin{gathered} v \cdot M = v, \,\ \sum_{i=1}^m v_i = 1. \end{gathered} \tag{3} \end{equation}\]

También, se usa que un estado estable para un cadena asigna \(0\) a los estados transitorios. La forma canónica de una matriz estocástica (por filas) es similar a:

\[\begin{pmatrix} M_1 & 0 & 0 & \cdots & 0\\ 0 & M_2 & 0 & \cdots & 0\\ 0 & 0 & M_3 & \cdots & 0\\ \vdots & \vdots & \vdots & \ddots & \vdots \\ A_1 & A_2 & A_3 & \vdots & R \end{pmatrix}\]

donde \(M _i\) corresponde a subcadenas irreducibles, los bloques \(A _i\) corresponden a las transiciones de los estados transitorios a cada una de las clases recurrentes y \(R\) son las transiciones de los estados transitorios a sí mismos.

Además, una cadena de Markov tiene exactamente el mismo nombre de estados estacionarios que clases recurrentes. Por tanto, la algorítmica efciente consiste en:

  1. Identificar las clases recurrentes \([C _1,. . . , C _l]\).
  2. Tomar cada clase \(C_i\), calcular la submatriz que le corresponde \(M _i\).
  3. Resolver el sistema \(v · C _i = v, \sum_{j = 1} ^{| C _i |} v _j = 1\) que tiene una solución única, para cada \(i = 1,. . . , l\).
  4. Mapear cada estado \(v _i\) al orden original en \(P\) y asignar un \(0\) a las entradas correspondientes a las etapas transitorias en la matriz.

Para la progesión metstásica, la Tabla 9 muestra la recurrencia y la Tabla 10 la estacionariedad.

recurrentClasses(mcCancer)  %>% 
  kable( caption = "Clases recurrentes.", col.names = 'recurrentClasses') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 9: Clases recurrentes.
recurrentClasses
Adrenal
Bladder
Bone
Brain
Diaphragm
Gallbladder
Heart
Kidney
Lg.Intestine
Liver
Lung
LN..reg.
LN..dist.
Omentum
Pancreas
Pericardium
Peritoneum
Pleura
Prostate
Skeletal.Musc
Skin
Sm.Intestine
Spleen
Stomach
Thyroid
Uterus
Vagina
steadyStates(mcCancer) %>% kable( caption = "Etapas estacionarias.") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 10: Etapas estacionarias.
Adrenal Anus Appendix Bile.Duct Bladder Bone Brain Branchial.Cyst Breast Cervix Colon Diaphragm Duodenum Esophagus Eye Gallbladder Heart Kidney Lg.Intestine Larynx Lip Liver Lung LN..reg. LN..dist. Omentum Ovaries Pancreas Penis Pericardium Peritoneum Pharynx Pleura Prostate Rectum Retroperitoneum Salivary Skeletal.Musc Skin Sm.Intestine Spleen Stomach Testes Thyroid Tongue Tonsil Unknown Uterus Vagina Vulva
0.0953145 0 0 0 0.0016161 0.0613901 0.024232 0 0 0 0 0.0193854 0 0 0 0.0096924 0.027463 0.0484647 0.0145389 0 0 0.0937003 0.0775452 0.184169 0.1227795 0.0064627 0 0.0371561 0 0.0210009 0.0193868 0 0.0436181 0.0016161 0 0 0 0.0032303 0.0129247 0.0096937 0.0290785 0.0080768 0 0.024232 0 0 0 0.0016161 0.0016161 0

2.1 Etapas y su clasificación

La Tabla 11 muestra que para el caso de la evolución metastásica, no se cuenta con etapas absorbentes.

absorbingStates(mcCancer) %>% kable( caption = "Etapas absorbentes.", col.names = 'absorbingStates') %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 11: Etapas absorbentes.
absorbingStates

Una descripción general de las propiedades estructurales en la cadena inluye la comunicación de clases, estados recurrentes y estados transitorios. Se puede obtener con una llamada a summary():

summary(mcCancer) 
## Cancer  Markov chain that is composed by: 
## Closed classes: 
## Adrenal Bladder Bone Brain Diaphragm Gallbladder Heart Kidney Lg.Intestine Liver Lung LN..reg. LN..dist. Omentum Pancreas Pericardium Peritoneum Pleura Prostate Skeletal.Musc Skin Sm.Intestine Spleen Stomach Thyroid Uterus Vagina 
## Recurrent classes: 
## {Adrenal,Bladder,Bone,Brain,Diaphragm,Gallbladder,Heart,Kidney,Lg.Intestine,Liver,Lung,LN..reg.,LN..dist.,Omentum,Pancreas,Pericardium,Peritoneum,Pleura,Prostate,Skeletal.Musc,Skin,Sm.Intestine,Spleen,Stomach,Thyroid,Uterus,Vagina}
## Transient classes: 
## {Anus},{Appendix},{Bile.Duct},{Branchial.Cyst},{Breast},{Cervix},{Colon},{Duodenum},{Esophagus},{Eye},{Larynx},{Lip},{Ovaries},{Penis},{Pharynx},{Rectum},{Retroperitoneum},{Salivary},{Testes},{Tongue},{Tonsil},{Unknown},{Vulva}
## The Markov chain is not irreducible 
## The absorbing states are: NONE

Todas las etapas que pertenecen a una clase transitoria se denominan transitorias, como lo muestra la Tabla 12.

transientStates(mcCancer) %>% 
  kable( caption = "Etapas transitorias.", col.names = 'transientStates') %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 12: Etapas transitorias.
transientStates
Anus
Appendix
Bile.Duct
Branchial.Cyst
Breast
Cervix
Colon
Duodenum
Esophagus
Eye
Larynx
Lip
Ovaries
Penis
Pharynx
Rectum
Retroperitoneum
Salivary
Testes
Tongue
Tonsil
Unknown
Vulva

Las clases recurrentes y comunicativas también se pueden identificar fácilmente y verificar si algún estado es accesible desde otro. En las Tablas 13 y 14 se muestran para el ejemplo de cáncer de pulmón, con una primera matástasis hacia el hígado.

is.accessible(mcCancer, from = "Lung",to="Liver")  %>% 
  kable( caption = "Accesibilidad.", col.names = 'is.accessible') %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 13: Accesibilidad.
is.accessible
TRUE
communicatingClasses(mcCancer) %>% 
  kable( caption = "Clases de comunicación.", col.names = 'communicatingClasses') %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 14: Clases de comunicación.
communicatingClasses
Adrenal
Bladder
Bone
Brain
Diaphragm
Gallbladder
Heart
Kidney
Lg.Intestine
Liver
Lung
LN..reg.
LN..dist.
Omentum
Pancreas
Pericardium
Peritoneum
Pleura
Prostate
Skeletal.Musc
Skin
Sm.Intestine
Spleen
Stomach
Thyroid
Uterus
Vagina
communicatingClasses
Anus
communicatingClasses
Appendix
communicatingClasses
Bile.Duct
communicatingClasses
Branchial.Cyst
communicatingClasses
Breast
communicatingClasses
Cervix
communicatingClasses
Colon
communicatingClasses
Duodenum
communicatingClasses
Esophagus
communicatingClasses
Eye
communicatingClasses
Larynx
communicatingClasses
Lip
communicatingClasses
Ovaries
communicatingClasses
Penis
communicatingClasses
Pharynx
communicatingClasses
Rectum
communicatingClasses
Retroperitoneum
communicatingClasses
Salivary
communicatingClasses
Testes
communicatingClasses
Tongue
communicatingClasses
Tonsil
communicatingClasses
Unknown
communicatingClasses
Vulva

Las agrupaciones distintas identificadas con diferentes colores coinciden con la partición de la matriz de transición en clases comunicantes (Figura 2 ).

library(igraph)
#convertir a igraph
mathematica.igraph<-as(mcCancer,"igraph")
#encontrar y formatear clusters
SCC <- clusters(mathematica.igraph, mode="strong")
V(mathematica.igraph)$color <- rainbow(SCC$no)[SCC$membership]
#gráficar
plot(mathematica.igraph, mark.groups = split(1:vcount(mathematica.igraph), SCC$membership),
main="Clases de Comunicación - componentes fuertemente conectados")
Red de propagación con clases de comunicación.

Figure 2: Red de propagación con clases de comunicación

En las Tablas 15 y 16 se comparan las cadenas del ejemplo de cáncer de pulmón original y en su forma canónica, reordenando los estados para que se tengan primero las clases recurrentes y luego los estados transitorios.

head(mcCancer) %>%
  kable( caption = "Matriz de transición. Progresión metastásica.") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 15: Matriz de transición. Progresión metastásica.
Adrenal Anus Appendix Bile.Duct Bladder Bone Brain Branchial.Cyst Breast Cervix Colon Diaphragm Duodenum Esophagus Eye Gallbladder Heart Kidney Lg.Intestine Larynx Lip Liver Lung LN..reg. LN..dist. Omentum Ovaries Pancreas Penis Pericardium Peritoneum Pharynx Pleura Prostate Rectum Retroperitoneum Salivary Skeletal.Musc Skin Sm.Intestine Spleen Stomach Testes Thyroid Tongue Tonsil Unknown Uterus Vagina Vulva
Adrenal 0.0929191 0 0 0 0.0017816 0.0616255 0.0230358 0 0 0 0 0.0190903 0 0 0 0.0096325 0.0265072 0.0469276 0.0141380 0 0 0.0951544 0.0791280 0.1869619 0.1230210 0.0067250 0 0.0371970 0 0.0203339 0.0203435 0 0.0435043 0.0016625 0 0 0 0.0031316 0.0136254 0.0098825 0.0286261 0.0078899 0 0.0237367 0 0 0 0.0016956 0.0017230 0
Anus 0.0920986 0 0 0 0.0019911 0.0615810 0.0233818 0 0 0 0 0.0193080 0 0 0 0.0096543 0.0267528 0.0473524 0.0141917 0 0 0.0949987 0.0791329 0.1866386 0.1232733 0.0067049 0 0.0361895 0 0.0202875 0.0209903 0 0.0429641 0.0016868 0 0 0 0.0031136 0.0140173 0.0099266 0.0286088 0.0079312 0 0.0234442 0 0 0 0.0019935 0.0017864 0
Appendix 0.0922035 0 0 0 0.0019380 0.0615662 0.0236693 0 0 0 0 0.0192929 0 0 0 0.0096703 0.0258443 0.0472455 0.0142505 0 0 0.0953131 0.0791705 0.1870708 0.1229968 0.0069453 0 0.0364370 0 0.0200158 0.0207375 0 0.0432081 0.0017209 0 0 0 0.0031883 0.0139565 0.0098537 0.0284309 0.0079280 0 0.0235414 0 0 0 0.0019986 0.0018062 0
Bile.Duct 0.0921822 0 0 0 0.0019237 0.0615735 0.0237489 0 0 0 0 0.0192083 0 0 0 0.0096736 0.0263237 0.0459250 0.0144360 0 0 0.0951446 0.0794473 0.1872063 0.1230085 0.0066871 0 0.0360433 0 0.0202636 0.0216961 0 0.0432441 0.0017292 0 0 0 0.0032176 0.0141830 0.0098927 0.0285862 0.0080289 0 0.0229553 0 0 0 0.0019309 0.0017406 0
Bladder 0.0919327 0 0 0 0.0020077 0.0615959 0.0231869 0 0 0 0 0.0191017 0 0 0 0.0096687 0.0269617 0.0475525 0.0142169 0 0 0.0951534 0.0795075 0.1865070 0.1230303 0.0067823 0 0.0362015 0 0.0201516 0.0207286 0 0.0432900 0.0017130 0 0 0 0.0031619 0.0139205 0.0098921 0.0287183 0.0080295 0 0.0232473 0 0 0 0.0019756 0.0017650 0
Bone 0.0926678 0 0 0 0.0018230 0.0615509 0.0233208 0 0 0 0 0.0192197 0 0 0 0.0096625 0.0272786 0.0472760 0.0144995 0 0 0.0945219 0.0789679 0.1860097 0.1231227 0.0065785 0 0.0363749 0 0.0204568 0.0207835 0 0.0430946 0.0017387 0 0 0 0.0032401 0.0140622 0.0098173 0.0283094 0.0080615 0 0.0238386 0 0 0 0.0020141 0.0017087 0
head(canonicForm(mcCancer)) %>%
  kable( caption = "Forma canónica. Progresión metastásica.") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 16: Forma canónica. Progresión metastásica.
Adrenal Bladder Bone Brain Diaphragm Gallbladder Heart Kidney Lg.Intestine Liver Lung LN..reg. LN..dist. Omentum Pancreas Pericardium Peritoneum Pleura Prostate Skeletal.Musc Skin Sm.Intestine Spleen Stomach Thyroid Uterus Vagina Anus Appendix Bile.Duct Branchial.Cyst Breast Cervix Colon Duodenum Esophagus Eye Larynx Lip Ovaries Penis Pharynx Rectum Retroperitoneum Salivary Testes Tongue Tonsil Unknown Vulva
Adrenal 0.0929191 0.0017816 0.0616255 0.0230358 0.0190903 0.0096325 0.0265072 0.0469276 0.0141380 0.0951544 0.0791280 0.1869619 0.1230210 0.0067250 0.0371970 0.0203339 0.0203435 0.0435043 0.0016625 0.0031316 0.0136254 0.0098825 0.0286261 0.0078899 0.0237367 0.0016956 0.0017230 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bladder 0.0919327 0.0020077 0.0615959 0.0231869 0.0191017 0.0096687 0.0269617 0.0475525 0.0142169 0.0951534 0.0795075 0.1865070 0.1230303 0.0067823 0.0362015 0.0201516 0.0207286 0.0432900 0.0017130 0.0031619 0.0139205 0.0098921 0.0287183 0.0080295 0.0232473 0.0019756 0.0017650 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bone 0.0926678 0.0018230 0.0615509 0.0233208 0.0192197 0.0096625 0.0272786 0.0472760 0.0144995 0.0945219 0.0789679 0.1860097 0.1231227 0.0065785 0.0363749 0.0204568 0.0207835 0.0430946 0.0017387 0.0032401 0.0140622 0.0098173 0.0283094 0.0080615 0.0238386 0.0020141 0.0017087 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Brain 0.0917026 0.0018899 0.0615215 0.0229960 0.0190460 0.0096656 0.0269088 0.0465502 0.0142289 0.0948047 0.0801861 0.1865351 0.1231261 0.0068138 0.0363663 0.0204128 0.0211525 0.0431519 0.0017491 0.0031613 0.0137913 0.0098879 0.0287511 0.0079998 0.0238264 0.0020315 0.0017428 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Diaphragm 0.0931039 0.0018138 0.0616413 0.0229655 0.0191744 0.0097208 0.0266001 0.0467584 0.0143856 0.0944367 0.0791427 0.1870597 0.1231858 0.0067348 0.0361952 0.0203468 0.0211007 0.0433022 0.0017004 0.0031210 0.0135673 0.0099465 0.0286316 0.0080780 0.0236546 0.0019179 0.0017143 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Gallbladder 0.0921744 0.0019209 0.0616074 0.0235536 0.0190130 0.0097391 0.0266360 0.0466920 0.0141716 0.0955536 0.0789923 0.1870779 0.1231655 0.0069375 0.0361612 0.0201324 0.0213377 0.0431730 0.0017307 0.0032489 0.0134765 0.0098412 0.0284841 0.0079818 0.0235832 0.0019211 0.0016936 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

La extracción de la matriz fundamental se muestra en la Tabla 17.

require(matlab)
mcObj <- canonicForm(object = mcCancer)
#indices de transientes y absorbentes
transIdx <- which(states(mcObj) %in% transientStates(mcObj))
absIdx <- which(states(mcObj) %in% absorbingStates(mcObj))
#matrices Q, R y I 
Q <- as.matrix(mcObj@transitionMatrix[transIdx,transIdx])
R <- as.matrix(mcObj@transitionMatrix[transIdx,absIdx])
I <- as.matrix(mcObj@transitionMatrix[absIdx, absIdx])
N <- solve(eye(size(Q)) - Q)
head(N) %>%
  kable( caption = "Matriz fundamental. Progresión metastásica.") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 17: Matriz fundamental. Progresión metastásica.
Anus Appendix Bile.Duct Branchial.Cyst Breast Cervix Colon Duodenum Esophagus Eye Larynx Lip Ovaries Penis Pharynx Rectum Retroperitoneum Salivary Testes Tongue Tonsil Unknown Vulva
Anus 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Appendix 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Bile.Duct 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Branchial.Cyst 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Breast 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Cervix 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
#probabilidades absorbentes finales 
#NR <- N %*% R

Si una cadena es irreducible, todos sus estados comparten la misma periodicidad. Luego, la función de período devuelve la periodicidad de la cadena, siempre que sea irreducible.

La ausencia de irreducibilidad y la periodicidad en la progresión de metástasis se muestran en las Tablas 18 y 19.

is.irreducible(mcCancer) %>%
  kable( caption = "Irreducibilidad.", col.names = "is.irreducible") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 18: Irreducibilidad.
is.irreducible
FALSE
period(mcCancer) %>%
  kable( caption = "Periodicidad.", col.names = "period") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 19: Periodicidad.
period
0

La distribución del tiempo de primer paso muestra que la probabilidad de que ocurra la primera metástasis al hígado en el segundo paso es de \(0.085\) (Tabla 19).

firstPassage(mcCancer, state="Liver", 5) %>%
  kable( caption = "Primer paso.") %>% 
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 20: Primer paso.
Adrenal Anus Appendix Bile.Duct Bladder Bone Brain Branchial.Cyst Breast Cervix Colon Diaphragm Duodenum Esophagus Eye Gallbladder Heart Kidney Lg.Intestine Larynx Lip Liver Lung LN..reg. LN..dist. Omentum Ovaries Pancreas Penis Pericardium Peritoneum Pharynx Pleura Prostate Rectum Retroperitoneum Salivary Skeletal.Musc Skin Sm.Intestine Spleen Stomach Testes Thyroid Tongue Tonsil Unknown Uterus Vagina Vulva
0.0915045 0 0 0 0.0017647 0.0615666 0.0236027 0 0 0 0 0.0191214 0 0 0 0.0096460 0.0269993 0.0473609 0.0141789 0 0 0.0944621 0.0804062 0.1869680 0.1230619 0.0067273 0 0.0364735 0 0.0205429 0.0205432 0 0.0431378 0.0016915 0 0 0 0.0031631 0.0139448 0.0097488 0.0286356 0.0080074 0 0.0233520 0 0 0 0.0016751 0.0017138 0
0.0869231 0 0 0 0.0016063 0.0575937 0.0237178 0 0 0 0 0.0190259 0 0 0 0.0095996 0.0267852 0.0462936 0.0143486 0 0 0.0847358 0.0732724 0.1491891 0.1076189 0.0064068 0 0.0358696 0 0.0206040 0.0189048 0 0.0417553 0.0016103 0 0 0 0.0032232 0.0127022 0.0095919 0.0282760 0.0080165 0 0.0237120 0 0 0 0.0016068 0.0016095 0
0.0785076 0 0 0 0.0016103 0.0540659 0.0231133 0 0 0 0 0.0186497 0 0 0 0.0095053 0.0260177 0.0439880 0.0141302 0 0 0.0768498 0.0674337 0.1219284 0.0944227 0.0063762 0 0.0345087 0 0.0201507 0.0185921 0 0.0399224 0.0016107 0 0 0 0.0032098 0.0125673 0.0095053 0.0274368 0.0079471 0 0.0231133 0 0 0 0.0016104 0.0016107 0
0.0710079 0 0 0 0.0016075 0.0507472 0.0225532 0 0 0 0 0.0182883 0 0 0 0.0094132 0.0253031 0.0418545 0.0139249 0 0 0.0696534 0.0620607 0.0995303 0.0828334 0.0063347 0 0.0332256 0 0.0197277 0.0182308 0 0.0381810 0.0016080 0 0 0 0.0031996 0.0124043 0.0094130 0.0266390 0.0078830 0 0.0225532 0 0 0 0.0016076 0.0016080 0
0.0642222 0 0 0 0.0016049 0.0476323 0.0220060 0 0 0 0 0.0179337 0 0 0 0.0093220 0.0246073 0.0398231 0.0137224 0 0 0.0631320 0.0571158 0.0812503 0.0726669 0.0062938 0 0.0319896 0 0.0193131 0.0178780 0 0.0365153 0.0016054 0 0 0 0.0031892 0.0122442 0.0093217 0.0258640 0.0078193 0 0.0220062 0 0 0 0.0016050 0.0016054 0

Sin embargo, al no ser irreducible la cadena de progresión de cáncer, no se pueden encontrar los tiempos medios del primer paso.

El primer tiempo de recurrencia medio (número esperado de pasos para volver a un estado si fuera el inicial) para cada estado recurrente en la matriz de probabilidades de transición de cáncer se muesra en la Tabla 21.

meanRecurrenceTime(mcCancer) %>%
  kable( caption = "Tiempo de recurrencia medio.", col.names = "meanRecurrenceTime") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 21: Tiempo de recurrencia medio.
meanRecurrenceTime
Adrenal 10.491581
Bladder 618.759801
Bone 16.289277
Brain 41.267798
Diaphragm 51.585138
Gallbladder 103.174090
Heart 36.412635
Kidney 20.633592
Lg.Intestine 68.781030
Liver 10.672323
Lung 12.895707
LN..reg. 5.429796
LN..dist. 8.144680
Omentum 154.734805
Pancreas 26.913507
Pericardium 47.616910
Peritoneum 51.581613
Pleura 22.926256
Prostate 618.762625
Skeletal.Musc 309.567966
Skin 77.371159
Sm.Intestine 103.159867
Spleen 34.389665
Stomach 123.810749
Thyroid 41.267796
Uterus 618.761182
Vagina 618.761870

La base de datos y la aplicación original del ejemplo de cáncer de pulmón la presenta Paul K. Newton (2012).

2.2 Inferencia

Se puede hacer inferencia en cadenas a partir de datos y simularlas. Para una secuencia determinada de la progresión de cáncer, se ajusta una cadena con las siguientes estimaciones:

markovchainFit(rmarkovchain(100,mcCancer))$estimate
## MLE Fit 
##  A  18 - dimensional discrete Markov Chain defined by the following states: 
##  Adrenal, Bone, Brain, Diaphragm, Kidney, LN..dist., LN..reg., Lg.Intestine, Liver, Lung, Pancreas, Pericardium, Peritoneum, Pleura, Skeletal.Musc, Skin, Stomach, Thyroid 
##  The transition matrix  (by rows)  is defined as follows: 
##                  Adrenal      Bone      Brain Diaphragm     Kidney  LN..dist.
## Adrenal       0.10000000 0.0000000 0.00000000      0.00 0.10000000 0.10000000
## Bone          0.10000000 0.0000000 0.00000000      0.00 0.00000000 0.10000000
## Brain         0.00000000 0.0000000 0.00000000      0.00 0.00000000 1.00000000
## Diaphragm     0.00000000 0.0000000 0.00000000      0.00 0.00000000 0.00000000
## Kidney        0.00000000 0.5000000 0.00000000      0.25 0.00000000 0.25000000
## LN..dist.     0.20000000 0.1000000 0.00000000      0.00 0.00000000 0.20000000
## LN..reg.      0.15000000 0.1500000 0.00000000      0.00 0.00000000 0.00000000
## Lg.Intestine  0.00000000 0.0000000 0.00000000      0.00 0.00000000 1.00000000
## Liver         0.06666667 0.0000000 0.06666667      0.00 0.06666667 0.06666667
## Lung          0.14285714 0.1428571 0.00000000      0.00 0.14285714 0.14285714
## Pancreas      0.00000000 0.3333333 0.00000000      0.00 0.33333333 0.00000000
## Pericardium   0.00000000 0.0000000 0.00000000      0.00 0.00000000 0.00000000
## Peritoneum    0.00000000 0.5000000 0.00000000      0.00 0.00000000 0.00000000
## Pleura        0.20000000 0.2000000 0.00000000      0.00 0.00000000 0.00000000
## Skeletal.Musc 0.00000000 0.0000000 0.00000000      0.00 0.00000000 0.00000000
## Skin          0.00000000 0.0000000 0.00000000      0.00 0.00000000 0.33333333
## Stomach       0.00000000 0.0000000 0.00000000      0.00 0.00000000 0.00000000
## Thyroid       0.00000000 0.0000000 0.00000000      0.00 0.00000000 0.00000000
##                LN..reg. Lg.Intestine      Liver       Lung   Pancreas
## Adrenal       0.3000000          0.0 0.10000000 0.20000000 0.00000000
## Bone          0.2000000          0.1 0.10000000 0.20000000 0.00000000
## Brain         0.0000000          0.0 0.00000000 0.00000000 0.00000000
## Diaphragm     1.0000000          0.0 0.00000000 0.00000000 0.00000000
## Kidney        0.0000000          0.0 0.00000000 0.00000000 0.00000000
## LN..dist.     0.3000000          0.1 0.00000000 0.10000000 0.00000000
## LN..reg.      0.2500000          0.0 0.30000000 0.05000000 0.05000000
## Lg.Intestine  0.0000000          0.0 0.00000000 0.00000000 0.00000000
## Liver         0.2666667          0.0 0.06666667 0.06666667 0.06666667
## Lung          0.1428571          0.0 0.14285714 0.00000000 0.14285714
## Pancreas      0.0000000          0.0 0.00000000 0.00000000 0.00000000
## Pericardium   0.0000000          0.0 0.33333333 0.00000000 0.00000000
## Peritoneum    0.0000000          0.0 0.00000000 0.00000000 0.00000000
## Pleura        0.0000000          0.0 0.40000000 0.00000000 0.00000000
## Skeletal.Musc 0.0000000          0.0 1.00000000 0.00000000 0.00000000
## Skin          0.0000000          0.0 0.33333333 0.00000000 0.00000000
## Stomach       0.0000000          0.0 0.00000000 0.00000000 0.00000000
## Thyroid       1.0000000          0.0 0.00000000 0.00000000 0.00000000
##               Pericardium Peritoneum    Pleura Skeletal.Musc       Skin
## Adrenal              0.00 0.00000000 0.1000000             0 0.00000000
## Bone                 0.00 0.00000000 0.0000000             0 0.20000000
## Brain                0.00 0.00000000 0.0000000             0 0.00000000
## Diaphragm            0.00 0.00000000 0.0000000             0 0.00000000
## Kidney               0.00 0.00000000 0.0000000             0 0.00000000
## LN..dist.            0.00 0.00000000 0.0000000             0 0.00000000
## LN..reg.             0.05 0.00000000 0.0000000             0 0.00000000
## Lg.Intestine         0.00 0.00000000 0.0000000             0 0.00000000
## Liver                0.00 0.06666667 0.1333333             0 0.06666667
## Lung                 0.00 0.00000000 0.0000000             0 0.00000000
## Pancreas             0.00 0.00000000 0.3333333             0 0.00000000
## Pericardium          0.00 0.33333333 0.0000000             0 0.00000000
## Peritoneum           0.50 0.00000000 0.0000000             0 0.00000000
## Pleura               0.00 0.00000000 0.2000000             0 0.00000000
## Skeletal.Musc        0.00 0.00000000 0.0000000             0 0.00000000
## Skin                 0.00 0.00000000 0.0000000             0 0.00000000
## Stomach              1.00 0.00000000 0.0000000             0 0.00000000
## Thyroid              0.00 0.00000000 0.0000000             0 0.00000000
##                 Stomach   Thyroid
## Adrenal       0.0000000 0.0000000
## Bone          0.0000000 0.0000000
## Brain         0.0000000 0.0000000
## Diaphragm     0.0000000 0.0000000
## Kidney        0.0000000 0.0000000
## LN..dist.     0.0000000 0.0000000
## LN..reg.      0.0000000 0.0000000
## Lg.Intestine  0.0000000 0.0000000
## Liver         0.0000000 0.0000000
## Lung          0.0000000 0.0000000
## Pancreas      0.0000000 0.0000000
## Pericardium   0.0000000 0.3333333
## Peritoneum    0.0000000 0.0000000
## Pleura        0.0000000 0.0000000
## Skeletal.Musc 0.0000000 0.0000000
## Skin          0.3333333 0.0000000
## Stomach       0.0000000 0.0000000
## Thyroid       0.0000000 0.0000000

Con matriz inferior (al \(.95\) nivel de confianza):

markovchainFit(rmarkovchain(100,mcCancer))$lowerEndpointMatrix
##              Adrenal Bone Brain Diaphragm Gallbladder Heart Kidney LN..dist.
## Adrenal            0    0     0         0           0     0      0         0
## Bone               0    0     0         0           0     0      0         0
## Brain              0    0     0         0           0     0      0         0
## Diaphragm          0    0     0         0           0     0      0         0
## Gallbladder        0    0     0         0           0     0      0         0
## Heart              0    0     0         0           0     0      0         0
## Kidney             0    0     0         0           0     0      0         0
## LN..dist.          0    0     0         0           0     0      0         0
## LN..reg.           0    0     0         0           0     0      0         0
## Lg.Intestine       0    0     0         0           0     0      0         0
## Liver              0    0     0         0           0     0      0         0
## Lung               0    0     0         0           0     0      0         0
## Pancreas           0    0     0         0           0     0      0         0
## Peritoneum         0    0     0         0           0     0      0         0
## Pleura             0    0     0         0           0     0      0         0
## Skin               0    0     0         0           0     0      0         0
## Sm.Intestine       0    0     0         0           0     0      0         0
## Thyroid            0    0     0         0           0     0      0         0
## Uterus             0    0     0         0           0     0      0         0
## Vagina             0    0     0         0           0     0      0         0
##              LN..reg. Lg.Intestine Liver Lung Pancreas Peritoneum Pleura Skin
## Adrenal             0            0     0    0        0          0      0    0
## Bone                0            0     0    0        0          0      0    0
## Brain               0            0     0    0        0          0      0    0
## Diaphragm           0            0     0    0        0          0      0    0
## Gallbladder         0            0     0    0        0          0      0    0
## Heart               0            0     0    0        0          0      0    0
## Kidney              0            0     0    0        0          0      0    0
## LN..dist.           0            0     0    0        0          0      0    0
## LN..reg.            0            0     0    0        0          0      0    0
## Lg.Intestine        0            0     0    0        0          0      0    0
## Liver               0            0     0    0        0          0      0    0
## Lung                0            0     0    0        0          0      0    0
## Pancreas            0            0     0    0        0          0      0    0
## Peritoneum          0            0     0    0        0          0      0    0
## Pleura              0            0     0    0        0          0      0    0
## Skin                0            0     0    0        0          0      0    0
## Sm.Intestine        0            0     0    0        0          0      0    0
## Thyroid             0            0     0    0        0          0      0    0
## Uterus              0            0     0    0        0          0      0    0
## Vagina              0            0     0    0        0          0      0    0
##              Sm.Intestine Thyroid Uterus Vagina
## Adrenal                 0       0      0      0
## Bone                    0       0      0      0
## Brain                   0       0      0      0
## Diaphragm               0       0      0      0
## Gallbladder             0       0      0      0
## Heart                   0       0      0      0
## Kidney                  0       0      0      0
## LN..dist.               0       0      0      0
## LN..reg.                0       0      0      0
## Lg.Intestine            0       0      0      0
## Liver                   0       0      0      0
## Lung                    0       0      0      0
## Pancreas                0       0      0      0
## Peritoneum              0       0      0      0
## Pleura                  0       0      0      0
## Skin                    0       0      0      0
## Sm.Intestine            0       0      0      0
## Thyroid                 0       0      0      0
## Uterus                  0       0      0      0
## Vagina                  0       0      0      0

Y matriz superior (\(.95\)):

markovchainFit(rmarkovchain(100,mcCancer))$upperEndpointMatrix
##                Adrenal      Bone     Brain Diaphragm Gallbladder     Heart
## Adrenal      0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.2959964
## Bone         0.6816869 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Brain        1.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Diaphragm    0.0000000 0.0000000 0.0000000 0.0000000   0.9866548 0.0000000
## Gallbladder  1.0000000 0.0000000 0.0000000 1.0000000   0.0000000 0.0000000
## Heart        0.0000000 0.7399911 0.0000000 0.7399911   0.0000000 0.0000000
## Kidney       0.0000000 1.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## LN..dist.    0.3288849 0.3288849 0.0000000 0.0000000   0.0000000 0.0000000
## LN..reg.     0.2906708 0.2169004 0.1345438 0.1345438   0.1345438 0.0000000
## Lg.Intestine 0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Liver        0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.4933274
## Lung         0.0000000 0.0000000 0.5919929 0.0000000   0.0000000 0.0000000
## Omentum      0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Pancreas     0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.4933274
## Pericardium  1.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Peritoneum   0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Pleura       0.0000000 0.7399911 0.0000000 0.0000000   0.0000000 0.7399911
## Prostate     0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Skin         0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Sm.Intestine 0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Spleen       0.0000000 0.9866548 0.0000000 0.0000000   0.0000000 0.0000000
## Thyroid      0.9866548 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
## Vagina       0.0000000 0.0000000 0.0000000 0.0000000   0.0000000 0.0000000
##                 Kidney LN..dist.  LN..reg. Lg.Intestine     Liver      Lung
## Adrenal      0.2959964 0.0000000 0.6394758            0 0.0000000 0.2959964
## Bone         0.0000000 0.9135368 0.4228521            0 0.4228521 0.0000000
## Brain        0.0000000 0.0000000 0.0000000            1 0.0000000 0.0000000
## Diaphragm    0.0000000 0.0000000 0.9866548            0 0.0000000 0.0000000
## Gallbladder  0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Heart        0.0000000 0.7399911 0.0000000            0 0.0000000 0.7399911
## Kidney       0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## LN..dist.    0.0000000 0.3288849 0.5302009            0 0.0000000 0.0000000
## LN..reg.     0.0000000 0.2906708 0.2906708            0 0.2169004 0.1345438
## Lg.Intestine 0.0000000 0.0000000 1.0000000            0 0.0000000 0.0000000
## Liver        0.0000000 0.4933274 1.0000000            0 0.0000000 0.0000000
## Lung         0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Omentum      0.0000000 0.0000000 0.0000000            0 1.0000000 0.0000000
## Pancreas     0.4933274 0.0000000 1.0000000            0 0.0000000 0.0000000
## Pericardium  0.0000000 0.0000000 0.0000000            0 1.0000000 0.0000000
## Peritoneum   0.0000000 0.0000000 0.0000000            0 1.0000000 0.0000000
## Pleura       0.0000000 0.0000000 1.0000000            0 0.0000000 0.0000000
## Prostate     0.0000000 0.0000000 1.0000000            0 0.0000000 0.0000000
## Skin         0.0000000 0.0000000 0.0000000            0 0.0000000 1.0000000
## Sm.Intestine 0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Spleen       0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Thyroid      0.0000000 0.0000000 0.9866548            0 0.0000000 0.0000000
## Vagina       0.0000000 0.0000000 1.0000000            0 0.0000000 0.0000000
##                Omentum  Pancreas Pericardium Peritoneum    Pleura  Prostate
## Adrenal      0.0000000 0.2959964   0.0000000  0.0000000 0.4771808 0.0000000
## Bone         0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Brain        0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Diaphragm    0.0000000 0.0000000   0.0000000  0.0000000 0.9866548 0.0000000
## Gallbladder  0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Heart        0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Kidney       0.0000000 0.0000000   1.0000000  0.0000000 0.0000000 0.0000000
## LN..dist.    0.3288849 0.3288849   0.0000000  0.0000000 0.0000000 0.0000000
## LN..reg.     0.1345438 0.0000000   0.1345438  0.0000000 0.1345438 0.0000000
## Lg.Intestine 0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Liver        0.0000000 0.4933274   0.0000000  0.0000000 0.0000000 0.0000000
## Lung         0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.5919929
## Omentum      0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Pancreas     0.0000000 0.4933274   0.0000000  0.0000000 0.0000000 0.0000000
## Pericardium  0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Peritoneum   0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Pleura       0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Prostate     0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Skin         0.0000000 1.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Sm.Intestine 0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
## Spleen       0.0000000 0.9866548   0.0000000  0.0000000 0.0000000 0.0000000
## Thyroid      0.0000000 0.0000000   0.0000000  0.9866548 0.0000000 0.0000000
## Vagina       0.0000000 0.0000000   0.0000000  0.0000000 0.0000000 0.0000000
##                   Skin Sm.Intestine    Spleen   Thyroid    Vagina
## Adrenal      0.0000000    0.0000000 0.0000000 0.0000000 0.2959964
## Bone         0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Brain        0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Diaphragm    0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Gallbladder  0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Heart        0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Kidney       0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## LN..dist.    0.0000000    0.0000000 0.3288849 0.3288849 0.0000000
## LN..reg.     0.0000000    0.0000000 0.0000000 0.2169004 0.0000000
## Lg.Intestine 0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Liver        0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Lung         0.5919929    0.5919929 0.0000000 0.5919929 0.0000000
## Omentum      0.0000000    0.0000000 1.0000000 0.0000000 0.0000000
## Pancreas     0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Pericardium  0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Peritoneum   0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Pleura       0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Prostate     0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Skin         0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Sm.Intestine 1.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Spleen       0.0000000    0.0000000 0.9866548 0.0000000 0.0000000
## Thyroid      0.0000000    0.0000000 0.0000000 0.0000000 0.0000000
## Vagina       0.0000000    0.0000000 0.0000000 0.0000000 0.0000000

La estimación por defecto se basa en la Ecuación (4) que muestra al estimador de máxima verosimilitud (MLE) de la entrada \(p_{ij}\), donde el elemento \(n_{ij}\) consiste en las secuencias numéricas \((X_t = s_i, X_{t + 1} = s_j)\) encontradas en la muestra, es decir

\[\begin{equation} \widehat{p}_{ij}^{MLE} = \frac{n_{ij}}{\sum_{u=1}^k n_{iu}}. \tag{4} \end{equation}\]

La Ecuación (5) muestra el error estándar del MLE.

\[\begin{equation} SE_{ij} = \frac{\widehat{p}_{ij}^{MLE}}{\sqrt{n_{ij}}}. \tag{5} \end{equation}\]

El enfoque de suavizado de Laplace es una variación del MLE, donde \(n_{ij}\) se sustituye por \(n_{ij} + α\) (Ecuación (6)), siendo \(α\) un parámetro estabilizador positivo arbitrario.

\[\begin{equation} \widehat{p}_{ij}^{LS} = \frac{n_{ij}+\alpha}{\sum_{u=1}^k (n_{iu}+\alpha)}. \tag{6} \end{equation}\]

Bajo este enfoque la resultante es:

markovchainFit(rmarkovchain(100,mcCancer),method = "laplace")$estimate
## Laplacian Smooth Fit 
##  A  21 - dimensional discrete Markov Chain defined by the following states: 
##  Adrenal, Bone, Brain, Diaphragm, Gallbladder, Heart, Kidney, LN..dist., LN..reg., Lg.Intestine, Liver, Lung, Omentum, Pancreas, Pericardium, Peritoneum, Pleura, Prostate, Spleen, Stomach, Thyroid 
##  The transition matrix  (by rows)  is defined as follows: 
##                Adrenal   Bone     Brain Diaphragm Gallbladder     Heart
## Adrenal      0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Bone         0.0000000 0.0000 0.0000000    0.2500      0.0000 0.0000000
## Brain        0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Diaphragm    0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Gallbladder  0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Heart        0.3333333 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Kidney       0.0000000 0.0000 0.0000000    0.0000      0.0000 0.3333333
## LN..dist.    0.0625000 0.1250 0.0625000    0.0000      0.0625 0.1250000
## LN..reg.     0.0000000 0.0625 0.0625000    0.0625      0.0000 0.0000000
## Lg.Intestine 0.0000000 0.0000 0.0000000    1.0000      0.0000 0.0000000
## Liver        0.1111111 0.0000 0.2222222    0.0000      0.0000 0.0000000
## Lung         0.1250000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Omentum      0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Pancreas     0.0000000 0.0000 0.2000000    0.0000      0.0000 0.0000000
## Pericardium  0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Peritoneum   0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Pleura       0.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Prostate     1.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Spleen       0.0000000 0.0000 0.6666667    0.0000      0.0000 0.0000000
## Stomach      1.0000000 0.0000 0.0000000    0.0000      0.0000 0.0000000
## Thyroid      0.0000000 0.5000 0.0000000    0.0000      0.0000 0.0000000
##                 Kidney LN..dist.  LN..reg. Lg.Intestine     Liver      Lung
## Adrenal      0.0000000 0.4000000 0.2000000            0 0.2000000 0.0000000
## Bone         0.0000000 0.5000000 0.0000000            0 0.2500000 0.0000000
## Brain        0.1428571 0.1428571 0.2857143            0 0.0000000 0.1428571
## Diaphragm    0.0000000 0.0000000 0.3333333            0 0.3333333 0.0000000
## Gallbladder  0.0000000 0.0000000 0.0000000            1 0.0000000 0.0000000
## Heart        0.0000000 0.3333333 0.0000000            0 0.0000000 0.0000000
## Kidney       0.0000000 0.0000000 0.0000000            0 0.0000000 0.3333333
## LN..dist.    0.0000000 0.0625000 0.1250000            0 0.1250000 0.1250000
## LN..reg.     0.1250000 0.1250000 0.1875000            0 0.0625000 0.1250000
## Lg.Intestine 0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Liver        0.0000000 0.1111111 0.0000000            0 0.0000000 0.2222222
## Lung         0.0000000 0.1250000 0.3750000            0 0.0000000 0.0000000
## Omentum      0.0000000 1.0000000 0.0000000            0 0.0000000 0.0000000
## Pancreas     0.0000000 0.4000000 0.2000000            0 0.2000000 0.0000000
## Pericardium  0.0000000 0.3333333 0.0000000            0 0.0000000 0.0000000
## Peritoneum   0.0000000 0.0000000 1.0000000            0 0.0000000 0.0000000
## Pleura       0.0000000 0.1666667 0.3333333            0 0.3333333 0.0000000
## Prostate     0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Spleen       0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Stomach      0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
## Thyroid      0.0000000 0.0000000 0.0000000            0 0.0000000 0.0000000
##              Omentum  Pancreas Pericardium Peritoneum    Pleura Prostate
## Adrenal          0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Bone             0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Brain            0.0 0.0000000   0.0000000  0.0000000 0.1428571   0.0000
## Diaphragm        0.0 0.0000000   0.0000000  0.0000000 0.3333333   0.0000
## Gallbladder      0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Heart            0.0 0.0000000   0.0000000  0.3333333 0.0000000   0.0000
## Kidney           0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## LN..dist.        0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0625
## LN..reg.         0.0 0.0625000   0.0625000  0.0000000 0.0625000   0.0000
## Lg.Intestine     0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Liver            0.0 0.1111111   0.1111111  0.0000000 0.1111111   0.0000
## Lung             0.0 0.2500000   0.0000000  0.0000000 0.0000000   0.0000
## Omentum          0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Pancreas         0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Pericardium      0.0 0.0000000   0.3333333  0.0000000 0.3333333   0.0000
## Peritoneum       0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Pleura           0.0 0.0000000   0.0000000  0.0000000 0.1666667   0.0000
## Prostate         0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Spleen           0.0 0.3333333   0.0000000  0.0000000 0.0000000   0.0000
## Stomach          0.0 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
## Thyroid          0.5 0.0000000   0.0000000  0.0000000 0.0000000   0.0000
##                 Spleen   Stomach Thyroid
## Adrenal      0.0000000 0.0000000  0.2000
## Bone         0.0000000 0.0000000  0.0000
## Brain        0.1428571 0.0000000  0.0000
## Diaphragm    0.0000000 0.0000000  0.0000
## Gallbladder  0.0000000 0.0000000  0.0000
## Heart        0.0000000 0.0000000  0.0000
## Kidney       0.0000000 0.3333333  0.0000
## LN..dist.    0.0000000 0.0000000  0.0625
## LN..reg.     0.0000000 0.0000000  0.0000
## Lg.Intestine 0.0000000 0.0000000  0.0000
## Liver        0.0000000 0.0000000  0.0000
## Lung         0.1250000 0.0000000  0.0000
## Omentum      0.0000000 0.0000000  0.0000
## Pancreas     0.0000000 0.0000000  0.0000
## Pericardium  0.0000000 0.0000000  0.0000
## Peritoneum   0.0000000 0.0000000  0.0000
## Pleura       0.0000000 0.0000000  0.0000
## Prostate     0.0000000 0.0000000  0.0000
## Spleen       0.0000000 0.0000000  0.0000
## Stomach      0.0000000 0.0000000  0.0000
## Thyroid      0.0000000 0.0000000  0.0000

Una estimación por medio de bootstrap sigue estos pasos:

  1. bootstrapear las secuencias de datos siguiendo las distribuciones condicionales de etapas estimadas a partir de la original. Las muestras de arranque son predeterminadas.
  2. aplicar la estimación MLE en secuencias de datos bootstrapeados y guardar los valores devueltos.
  3. \(p^{BOOTSTRAP}_{ij}\) es la media de todas las \(p^{MLE}_{ij}\) normalizada por fila.

La estimación por bootsrap es:

markovchainFit(rmarkovchain(100,mcCancer),method = "bootstrap")$estimate
## BootStrap Estimate 
##  A  18 - dimensional discrete Markov Chain defined by the following states: 
##  Adrenal, Bone, Brain, Heart, Kidney, LN..dist., LN..reg., Lg.Intestine, Liver, Lung, Omentum, Pancreas, Peritoneum, Pleura, Skin, Spleen, Stomach, Thyroid 
##  The transition matrix  (by rows)  is defined as follows: 
##                 Adrenal       Bone       Brain      Heart     Kidney  LN..dist.
## Adrenal      0.00000000 0.14349567 0.000000000 0.00000000 0.00000000 0.12619048
## Bone         0.00000000 0.00000000 0.000000000 0.00000000 0.06357143 0.12555556
## Brain        0.00000000 0.00000000 0.000000000 0.00000000 0.00000000 0.00000000
## Heart        0.00000000 0.00000000 0.000000000 0.00000000 0.00000000 0.00000000
## Kidney       0.00000000 0.12190476 0.000000000 0.00000000 0.00000000 0.00000000
## LN..dist.    0.03967033 0.21205128 0.007142857 0.00000000 0.00000000 0.08609890
## LN..reg.     0.12847770 0.08117251 0.000000000 0.09012266 0.01640867 0.07080037
## Lg.Intestine 0.07063743 0.11899346 0.000000000 0.00000000 0.05000000 0.02057534
## Liver        0.21137566 0.07420635 0.000000000 0.12500000 0.08333333 0.00000000
## Lung         0.22211180 0.05565217 0.000000000 0.04173913 0.04720497 0.01490683
## Omentum      0.06722222 0.00000000 0.000000000 0.02000000 0.08027778 0.09027778
## Pancreas     0.17647059 0.02941176 0.000000000 0.03921569 0.00000000 0.08823529
## Peritoneum   0.15789474 0.04210526 0.056140351 0.11578947 0.02105263 0.09824561
## Pleura       0.00000000 0.12619048 0.065000000 0.00000000 0.13166667 0.27000000
## Skin         0.00000000 0.12500000 0.095833333 0.02500000 0.03333333 0.20833333
## Spleen       0.04575758 0.10393939 0.064848485 0.00000000 0.09285714 0.04285714
## Stomach      0.09000000 0.08000000 0.065000000 0.00000000 0.08333333 0.08636364
## Thyroid      0.04333333 0.01666667 0.033333333 0.01000000 0.00000000 0.06000000
##                LN..reg. Lg.Intestine      Liver       Lung     Omentum
## Adrenal      0.33282468   0.17398268 0.03095238 0.03000000 0.104220779
## Bone         0.14422078   0.20555556 0.00000000 0.04636364 0.007142857
## Brain        0.00000000   0.12500000 0.00000000 0.00000000 0.000000000
## Heart        0.09000000   0.00000000 0.20000000 0.54000000 0.000000000
## Kidney       0.05000000   0.20333333 0.05000000 0.10000000 0.333333333
## LN..dist.    0.07752747   0.11642857 0.07641026 0.19166667 0.000000000
## LN..reg.     0.20438929   0.12297562 0.01917211 0.02666667 0.024074074
## Lg.Intestine 0.14934004   0.13124871 0.06444444 0.04029102 0.005555556
## Liver        0.07870370   0.04761905 0.00000000 0.04365079 0.166666667
## Lung         0.05565217   0.17118012 0.00000000 0.05565217 0.160993789
## Omentum      0.10000000   0.25472222 0.14000000 0.00000000 0.054722222
## Pancreas     0.00000000   0.35294118 0.07843137 0.11764706 0.000000000
## Peritoneum   0.00000000   0.05263158 0.00000000 0.14035088 0.315789474
## Pleura       0.13095238   0.00000000 0.00000000 0.00000000 0.247619048
## Skin         0.25833333   0.00000000 0.11666667 0.00000000 0.050000000
## Spleen       0.38484848   0.07428571 0.00000000 0.00000000 0.000000000
## Stomach      0.03333333   0.34500000 0.13636364 0.03333333 0.000000000
## Thyroid      0.14000000   0.05000000 0.42333333 0.00000000 0.000000000
##                Pancreas  Peritoneum     Pleura          Skin        Spleen
## Adrenal      0.00000000 0.000000000 0.00000000  3.333333e-02  2.500000e-02
## Bone         0.04857143 0.000000000 0.03727273  6.214286e-02  1.630952e-01
## Brain        0.00000000 0.000000000 0.15625000  1.666667e-01  3.333333e-01
## Heart        0.00000000 0.000000000 0.05000000  1.200000e-01 4.675373e-311
## Kidney       0.00000000 0.000000000 0.00000000  2.000000e-02  1.214286e-01
## LN..dist.    0.01000000 0.000000000 0.01428571  0.000000e+00  5.871795e-02
## LN..reg.     0.04365079 0.074463938 0.01884532  1.052632e-02  4.444444e-02
## Lg.Intestine 0.02450000 0.005555556 0.05974200  1.103452e-01  9.222222e-02
## Liver        0.11111111 0.000000000 0.00000000  0.000000e+00 5.194855e-311
## Lung         0.01739130 0.000000000 0.00000000  5.217391e-02  6.956522e-02
## Omentum      0.00000000 0.065000000 0.02777778  0.000000e+00 4.675369e-311
## Pancreas     0.00000000 0.000000000 0.00000000  0.000000e+00 5.500434e-311
## Peritoneum   0.00000000 0.000000000 0.00000000  0.000000e+00 4.921441e-311
## Pleura       0.00000000 0.028571429 0.00000000  0.000000e+00 4.675369e-311
## Skin         0.02500000 0.000000000 0.06250000  0.000000e+00 4.675369e-311
## Spleen       0.03333333 0.038181818 0.00000000  1.190909e-01 4.675369e-311
## Stomach      0.00000000 0.027272727 0.02000000 6.100738e-315 4.675369e-311
## Thyroid      0.00000000 0.043333333 0.03000000  1.666667e-02  8.333333e-02
##                    Stomach       Thyroid
## Adrenal      4.675369e-311 9.350742e-311
## Bone          7.650794e-02  2.000000e-02
## Brain         3.125000e-02  1.875000e-01
## Heart        9.350728e-311 1.402611e-310
## Kidney       9.350742e-311 1.402611e-310
## LN..dist.     5.000000e-02  6.000000e-02
## LN..reg.      7.142857e-03  1.666667e-02
## Lg.Intestine  4.421569e-02  1.233333e-02
## Liver         5.833333e-02 1.558456e-310
## Lung         9.757292e-311  3.577640e-02
## Omentum      9.350738e-311  1.000000e-01
## Pancreas     5.500434e-311  1.176471e-01
## Peritoneum   4.922083e-311 1.476433e-310
## Pleura       9.350728e-311 1.402611e-310
## Skin         9.350742e-311 9.350738e-311
## Spleen       9.350742e-311 9.350738e-311
## Stomach      4.675369e-311 1.402611e-310
## Thyroid       5.000000e-02 1.402611e-310

También se proporciona una estimación del error estándar para \(p^{MLE}\):

markovchainFit(rmarkovchain(100,mcCancer),method = "bootstrap")$standardError
##                 Adrenal        Bone       Brain   Diaphragm Gallbladder
## Adrenal      0.00000000 0.000000000 0.000000000 0.000000000  0.00000000
## Bone         0.00000000 0.000000000 0.100271237 0.000000000  0.00000000
## Brain        0.13102163 0.000000000 0.000000000 0.109636042  0.00000000
## Diaphragm    0.01666667 0.000000000 0.000000000 0.000000000  0.00000000
## Gallbladder  0.11180340 0.000000000 0.016666667 0.000000000  0.00000000
## Heart        0.03648241 0.000000000 0.021901699 0.000000000  0.00000000
## Kidney       0.03263647 0.021234852 0.029716609 0.028604605  0.02809556
## LN..dist.    0.12537403 0.028169065 0.009356834 0.005263158  0.02930220
## LN..reg.     0.10349971 0.028621137 0.000000000 0.000000000  0.05325614
## Liver        0.09721176 0.009898585 0.000000000 0.000000000  0.00000000
## Lung         0.08549782 0.020000000 0.000000000 0.000000000  0.02000000
## Pancreas     0.09032862 0.000000000 0.000000000 0.000000000  0.09977753
## Pericardium  0.09157234 0.000000000 0.000000000 0.000000000  0.00000000
## Pleura       0.10162450 0.000000000 0.000000000 0.000000000  0.00000000
## Sm.Intestine 0.13988090 0.000000000 0.000000000 0.000000000  0.00000000
## Spleen       0.09464847 0.000000000 0.000000000 0.000000000  0.01958695
## Stomach      0.00000000 0.078763594 0.000000000 0.000000000  0.00000000
## Thyroid      0.00000000 0.066666667 0.060000000 0.000000000  0.10034662
##                    Heart     Kidney  LN..dist.   LN..reg.      Liver
## Adrenal      0.019586946 0.06564737 0.07409322 0.05642470 0.03721113
## Bone         0.000000000 0.00000000 0.02500000 0.11666667 0.05130699
## Brain        0.100346621 0.07876359 0.03333333 0.00000000 0.00000000
## Diaphragm    0.133333333 0.15275252 0.13333333 0.00000000 0.00000000
## Gallbladder  0.000000000 0.10161656 0.02000000 0.00000000 0.02000000
## Heart        0.032176848 0.04704086 0.11634676 0.04123026 0.04333333
## Kidney       0.045611904 0.03801788 0.04555355 0.03200116 0.06194223
## LN..dist.    0.025462094 0.04790763 0.03364213 0.02807050 0.01619741
## LN..reg.     0.013425926 0.11576599 0.03761648 0.02874847 0.00000000
## Liver        0.061151445 0.03333333 0.09668623 0.03000158 0.00000000
## Lung         0.000000000 0.04248941 0.02500000 0.02819684 0.02222222
## Pancreas     0.000000000 0.00000000 0.03333333 0.03938180 0.00000000
## Pericardium  0.070272837 0.02500000 0.05692750 0.04444444 0.03333333
## Pleura       0.000000000 0.09869711 0.00000000 0.10540926 0.06938887
## Sm.Intestine 0.000000000 0.00000000 0.05718715 0.00000000 0.10183502
## Spleen       0.070094301 0.05736844 0.02463987 0.03753213 0.00744466
## Stomach      0.021052632 0.04651812 0.11666667 0.03084241 0.03333333
## Thyroid      0.008824714 0.08302541 0.00000000 0.04733145 0.01095087
##                     Lung    Pancreas Pericardium      Pleura Sm.Intestine
## Adrenal      0.011168391 0.017108771  0.02430635 0.016008941   0.01969090
## Bone         0.075979204 0.060461190  0.00000000 0.000000000   0.00000000
## Brain        0.000000000 0.000000000  0.00000000 0.000000000   0.00000000
## Diaphragm    0.000000000 0.000000000  0.00000000 0.083333333   0.10000000
## Gallbladder  0.040000000 0.020000000  0.03333333 0.000000000   0.10378039
## Heart        0.000000000 0.060461190  0.00000000 0.044890126   0.00000000
## Kidney       0.038963728 0.007629162  0.00000000 0.004761905   0.02489297
## LN..dist.    0.041790988 0.000000000  0.01759621 0.000000000   0.00000000
## LN..reg.     0.025000000 0.000000000  0.00000000 0.000000000   0.03750000
## Liver        0.019933408 0.044444444  0.06666667 0.000000000   0.00000000
## Lung         0.000000000 0.011111111  0.06455928 0.056927504   0.00000000
## Pancreas     0.000000000 0.000000000  0.00000000 0.095257934   0.07934920
## Pericardium  0.000000000 0.000000000  0.00000000 0.000000000   0.02000000
## Pleura       0.035572912 0.000000000  0.00000000 0.000000000   0.00000000
## Sm.Intestine 0.122222222 0.033333333  0.10000000 0.000000000   0.00000000
## Spleen       0.111076595 0.072656812  0.01052632 0.000000000   0.00000000
## Stomach      0.005263158 0.105587949  0.05000000 0.000000000   0.15275252
## Thyroid      0.008695652 0.008404939  0.01093328 0.000000000   0.00000000
##                    Spleen       Stomach       Thyroid
## Adrenal      0.000000e+00           Inf 9.416577e-145
## Bone         0.000000e+00  3.242549e-87           Inf
## Brain        0.000000e+00 1.806087e-154           Inf
## Diaphragm    0.000000e+00 5.981595e-155  3.706338e-82
## Gallbladder  1.000000e-01           Inf  4.370823e-20
## Heart        4.015787e-02           Inf           Inf
## Kidney       0.000000e+00           Inf           Inf
## LN..dist.             Inf 2.247475e-154           Inf
## LN..reg.              Inf  5.555556e-03  3.242549e-87
## Liver                 Inf           Inf 1.208250e-154
## Lung         2.122513e-10           Inf 5.981595e-155
## Pancreas     3.706445e-82           Inf           Inf
## Pericardium  1.034945e-01 8.794660e-145           Inf
## Pleura                Inf           Inf           Inf
## Sm.Intestine          Inf           Inf 2.247475e-154
## Spleen                Inf 9.416577e-145 3.793942e+106
## Stomach      3.242549e-87           Inf  0.000000e+00
## Thyroid      1.333333e-01           Inf           Inf

Para cada método de ajuste se proporciona la log-verosimilitud (Tablas 22, 23 y 24), indicada en la Ecuación (7).

\[\begin{equation} LLH = \sum_{i,j} n_{ij}*\log p_{ij}, \tag{7} \end{equation}\]

donde \(n_{ij}\) es la entrada de la matriz de frecuencias y \(p_{ij}\) es la entrada de la matriz de probabilidad de transición.

markovchainFit(rmarkovchain(100,mcCancer),method = "mle")$logLikelihood %>%
  kable( caption = "Log-verosimilitud por MLE.", col.names = "logLikelihood") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 22: Log-verosimilitud por MLE.
logLikelihood
-159.7801
markovchainFit(rmarkovchain(100,mcCancer),method = "laplace")$logLikelihood %>%
  kable( caption = "Log-verosimilitud por Laplace.", col.names = "logLikelihood") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 23: Log-verosimilitud por Laplace.
logLikelihood
-166.7528
markovchainFit(rmarkovchain(100,mcCancer),method = "bootstrap")$logLikelihood %>%
  kable( caption = "Log-verosimilitud por bootsrap.", col.names = "logLikelihood") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 24: Log-verosimilitud por bootsrap.
logLikelihood
-Inf

Posteriormente, se generan las progresiones de tres etapas hacia adelante (Tabla 25), asumiendo que la última etapa fue en el hueso.

predict(markovchainFit(rmarkovchain(100,mcCancer))$estimate, newdata = "Bone", n.ahead = 3) %>%
  kable( caption = "Progresión hacia adelante.", col.names = "predict") %>%
  kable_styling(bootstrap_options = c("striped", "hover"))
Table 25: Progresión hacia adelante.
predict
Kidney
LN..reg.
LN..dist.

La estimación consiste en ajustar unas probabilidades de transición a partir de un vector de muestras aleatorias. El ajuste a partir de la secuencia generada anteriormente se vuelve una aproximación a la cadena original (Figura 3):

plot(markovchainFit(rmarkovchain(100,mcCancer))$estimate, main="Aproximación a cadena de Markov.")
Aproximación a la red de propagación.

Figure 3: Aproximación a la red de propagación

Otras formas de crear funciones para realizar inferencia se encuentran en Clark (2021), así como en las preguntas.

2.3 Convergencia

Elevando una matriz de transición a una potencia suficientemente alta (la matriz resultante tiende al estado estacionario), es equivalente a decir que cuando se simula una cadena, las probabilidades de los estados serán estables al alcanzar un número de muestras lo suficientemente elevado, y no van a cambiar por añadir más.

Si se consideran las etapas del pulmón y el hígado en la cadena de progresión, claramente se observan las proporciones de cada estado acumulada en cada paso, contrastando ambas evoluciones contra los valores estacionarios teóricos.

samples <- rmarkovchain(1000, mcCancer)

yC <- cumsum(samples=="Lung") / seq_along(samples)
yF <- cumsum(samples=="Liver") / seq_along(samples)
plot(yC, type="l", col="red", ylim=c(0,1))
lines(yF, col="green")
abline(steadyStates(mcCancer)[1], 0, lty=2, col="red")
abline(steadyStates(mcCancer)[2], 0, lty=2, col="green")
Evolución y convergencia de dos etapas en la progresión metastásica.

Figure 4: Evolución y convergencia de dos etapas en la progresión metastásica

En la Figura 4 anterior se aprecia que la simulación converge. Para controlar que potencia es lo suficientemente alta para que el número de muestras sea lo suficientemente elevado para asegurar una buena aproximación a la estacionariedad, entra en juego el llamado tiempo de convergencia, que da una idea de a qué velocidad se va a reducir el error conforme avanza el tiempo.

Se define como la suma de las diferencias absolutas entre componentes de dos potencias sucesivas de la matriz de transición, es decir,

\[\begin{equation} \epsilon(n) = \sum_i\sum_j|(P^n)_{ij}-(P^{n-1})_{ij}|. \tag{8} \end{equation}\]

La visualización de este error en la Figura 5 muestra que el error decae exponencialmente.

# Función de error con S4
# @param n: tiempo 
# @param mc: cadena 
err <- function(n, mc) {
    # Valores de entrada sean números naturales
    if (!isTRUE(all(n > 0 && n == floor(n)))) 
        stop("'n' must only contain positive integer values")
    
    # Reservamos memoria para la salida
    res <- numeric(length(n))
    # Para cada valor de entrada calcular err(n)
    for (i in 1:length(n)) {
        Pn <- (mc^n[i])@transitionMatrix
        Pn1 <- (mc^(n[i]-1))@transitionMatrix
        res[i] <- sum(abs(Pn - Pn1))
    }
    return(res)
}

# Representación de la función de error
x <- 1:10
y <- err(x, mcCancer)
plot(x, y, type="o")
Tiempo de convergencia.

Figure 5: Tiempo de convergencia

3 Simulación

Un proceso estocástico es una colección indexada de variables aleatorias definidas en algún espacio de probabilidad. El índice a menudo representa el tiempo, que puede ser discreto o continuo.

Un proceso estocástico de tiempo discreto es una colección numerable de variables aleatorias, p. Ej. \(X_n\) para \(n = 0,1,2,….\) Para cada resultado en el espacio de probabilidad, el resultado de un proceso estocástico de tiempo discreto es una secuencia en \(n\) (Python comienza a indexar en 0). El índice de base cero suele ser natural en contextos de procesos estocásticos en los que hay un tiempo \(0\), es decir, \(X_0\) es el valor inicial del proceso. Un proceso estocástico de tiempo continuo es una colección de innumerables variables aleatorias, p. Ej. \(X_t\) para \(t≥0\). Para cada resultado en el espacio de probabilidad, el resultado de un proceso estocástico de tiempo discreto es una función (también conocida como trayectoria muestral de t).

Al igual que una variable aleatoria (RV), un proceso estocástico (RandomProcess) se puede definir en un espacio de probabilidad (ProbabilitySpace). Sin embargo, para un proceso, también se debe especificar un índice temporal (TimeIndex). Este índice toma un sólo parámetro, la frecuencia de muestreo (fs). Si bien se permiten muchos valores de fs, las dos entradas más comunes son:

  • TimeIndex (fs = 1), para un proceso de tiempo discreto \(X_n, n = 0,1,2,….\)

  • TimeIndex (fs = \(\inf\)), para un proceso de tiempo continuo \(X(t), t≥0\).

Una cadena de Markov de tiempo discreto es un proceso estocástico de estado discreto en tiempo discreto que satisface para todo \(n\):

Dado \(X_n\) (el presente), \(X_{n + 1}, X_{n + 2,…}\) (el futuro) es condicionalmente independiente de \(X1_{n − 1}, X_{n − 2},…, X_0\) (“el pasado”).

En Symbulate, una cadena de Markov de tiempo discreto se define con MarkovChain. El comportamiento probabilístico de una cadena de Markov en tiempo discreto está completamente especificado por los siguientes parámetros de MarkovChain:

  • state_labels: El espacio de estado de los posibles valores del proceso. (El valor predeterminado es etiquetar los estados \(0, 1, 2, ...\))
  • init_dist: La distribución inicial, que especifica la distribución de probabilidad en el tiempo \(0\) transition_matrix: La matriz de probabilidad de transición de un paso, cuya entrada \(ij\)-ésima especifica la probabilidad de que la cadena esté en el estado \(j\) en el siguiente paso de tiempo dado que actualmente se encuentra en el estado \(i\) (\(P (X_{n + 1} = j | X_n = i)\)). Todas las sumas de las filas deben ser \(1\).

Para la comparación de la modelación con simulación para el ejemplo de progresión metastásica, consultar la nota en Jupyter complementaria.

Session info

## R version 4.1.1 (2021-08-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.3 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3
## 
## locale:
##  [1] LC_CTYPE=es_MX.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=es_MX.UTF-8        LC_COLLATE=es_MX.UTF-8    
##  [5] LC_MONETARY=es_MX.UTF-8    LC_MESSAGES=es_MX.UTF-8   
##  [7] LC_PAPER=es_MX.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=es_MX.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] matlab_1.0.2      igraph_1.2.6      kableExtra_1.3.4  knitr_1.33       
## [5] markovchain_0.8.6 BiocStyle_2.20.2 
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.7          bslib_0.2.5.1       compiler_4.1.1     
##  [4] BiocManager_1.30.16 jquerylib_0.1.4     highr_0.9          
##  [7] tools_4.1.1         digest_0.6.27       viridisLite_0.4.0  
## [10] lifecycle_1.0.1     jsonlite_1.7.2      evaluate_0.14      
## [13] lattice_0.20-45     pkgconfig_2.0.3     rlang_0.4.11       
## [16] Matrix_1.3-4        rstudioapi_0.13     yaml_2.2.1         
## [19] parallel_4.1.1      expm_0.999-6        xfun_0.26          
## [22] fastmap_1.1.0       xml2_1.3.2          httr_1.4.2         
## [25] stringr_1.4.0       systemfonts_1.0.2   sass_0.4.0         
## [28] webshot_0.5.2       stats4_4.1.1        grid_4.1.1         
## [31] svglite_2.0.0       glue_1.4.2          R6_2.5.0           
## [34] rmarkdown_2.9       bookdown_0.22       magrittr_2.0.1     
## [37] scales_1.1.1        htmltools_0.5.2     rvest_1.0.0        
## [40] colorspace_2.0-2    stringi_1.7.4       munsell_0.5.0      
## [43] RcppParallel_5.1.4

Referencias

Clark, Michael. 2021. Model Estimation by Example. Demonstrations with r. Github. https://m-clark.github.io/models-by-example/.
Dobrow, Robert P. 2016. Introduction to Stochastic Processes with r. Wiley. http://www.people.carleton.edu/~rdobrow/stochbook/.
Paul K. Newton, Kelly Bethel, Jeremy Mason. 2012. “A Stochastic Markov Chain Model to Describe Lung Cancer Growth and Metastasis.” PLoS ONE 7 (4). https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0034637.
Spedicato, Giorgio Alfredo. 2017. “Discrete Time Markov Chains with r.” The R Journal, July. https://journal.r-project.org/archive/2017/RJ-2017-036/index.html.