# Cadenas de Markov en R --------------------------------------------------
#Estados
estados = c(1:5)
#Inicializar la matriz
mat1 = matrix(data = 0,nrow = 5, ncol = 5)
filas = estados
columnas = estados
#Llenar la matriz
for (i in filas) {
for (j in columnas) {
if (j == i + 1 & i < 5) {
mat1[i,j] = 0.5
}
if (j == i & 1 < i & i < 5) {
mat1[i,j] = 0.3
}
if (j == i - 1 & i > 1) {
mat1[i,j] = 0.2
}
if (j == i & i == 1) {
mat1[i,j] = 0.5
}
if (j == i & i == 5) {
mat1[i,j] = 0.8
}
}
}
print(mat1)
rowSums(mat1)
# Cadena de markov --------------------------------------------------------
library(markovchain)
cmtd = new(Class = "markovchain", states = as.character(estados), transitionMatrix = mat1)
#Para visualizar la cadena de markov
plot(cmtd)
# Analisis transitorio
alpha = c(0,1,0,0,0)
probs2pasos = alpha * (cmtd^2)
probs2pasos
#Matriz en tiempo continuo
estados2 = c(0:15)
#Inicializar la matriz
mat2 = matrix(data = 0,nrow = length(estados2), ncol = length(estados2))
dimnames(mat2) = list(estados2,estados2)
filas2 = estados2
columnas2 = estados2
#Llenar la matriz
for (i in filas2) {
for (j in columnas2) {
if (j == i + 1 & i < 15 ) {
mat2[i+1,j+1] = 5
}
if (j == i - 1 & i > 0) {
mat2[i+1,j+1] = 9*i
}
}
}
#Para hacer que la suma de la filas de 0, debemos llenar la diagonal
for (i in 1:16) {
mat2[i,i]=-sum(mat2[i,])
}
#Definir la cadena de markov
cmtc = new(Class = "ctmc", states = as.character(estados2), byrow = TRUE,
generator = mat2)
library(expm)
#Definir el vector de condiciones iniciales
alpha2 = c(rep(0,10),1,rep(0,5))
#Analisis transitorio
probs = alpha2%*%expm(mat2*(72))
probs
Add a new chunk by clicking the Insert Chunk button on the
toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and
output will be saved alongside it (click the Preview button or
press Ctrl+Shift+K to preview the HTML file).
The preview shows you a rendered HTML copy of the contents of the
editor. Consequently, unlike Knit, Preview does not
run any R code chunks. Instead, the output of the chunk when it was last
run in the editor is displayed.
LS0tDQp0aXRsZTogImNhZGVuYXMgZGUgbWFya292IGVuIFIiDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQogDQoNCmBgYHtyfQ0KDQoNCiMgQ2FkZW5hcyBkZSBNYXJrb3YgZW4gUiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQojRXN0YWRvcw0KZXN0YWRvcyA9IGMoMTo1KQ0KDQojSW5pY2lhbGl6YXIgbGEgbWF0cml6DQoNCm1hdDEgPSBtYXRyaXgoZGF0YSA9IDAsbnJvdyA9IDUsIG5jb2wgPSA1KQ0KZmlsYXMgPSBlc3RhZG9zDQpjb2x1bW5hcyA9IGVzdGFkb3MNCg0KI0xsZW5hciBsYSBtYXRyaXoNCmZvciAoaSBpbiBmaWxhcykgew0KICBmb3IgKGogaW4gY29sdW1uYXMpIHsNCiAgICBpZiAoaiA9PSBpICsgMSAmIGkgPCA1KSB7DQogICAgICBtYXQxW2ksal0gPSAwLjUNCiAgICB9DQogICAgaWYgKGogPT0gaSAmIDEgPCBpICYgaSA8IDUpIHsNCiAgICAgIG1hdDFbaSxqXSA9IDAuMw0KICAgIH0NCiAgICBpZiAoaiA9PSBpIC0gMSAmIGkgPiAxKSB7DQogICAgICBtYXQxW2ksal0gPSAwLjINCiAgICB9DQogICAgaWYgKGogPT0gaSAmIGkgPT0gMSkgew0KICAgICAgbWF0MVtpLGpdID0gMC41DQogICAgfQ0KICAgIGlmIChqID09IGkgJiBpID09IDUpIHsNCiAgICAgIG1hdDFbaSxqXSA9IDAuOA0KICAgIH0NCiAgfQ0KfQ0KcHJpbnQobWF0MSkNCnJvd1N1bXMobWF0MSkNCg0KDQojIENhZGVuYSBkZSBtYXJrb3YgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KbGlicmFyeShtYXJrb3ZjaGFpbikNCg0KY210ZCA9IG5ldyhDbGFzcyA9ICJtYXJrb3ZjaGFpbiIsIHN0YXRlcyA9IGFzLmNoYXJhY3Rlcihlc3RhZG9zKSwgdHJhbnNpdGlvbk1hdHJpeCA9IG1hdDEpIA0KDQojUGFyYSB2aXN1YWxpemFyIGxhIGNhZGVuYSBkZSBtYXJrb3YNCnBsb3QoY210ZCkNCg0KDQojIEFuYWxpc2lzIHRyYW5zaXRvcmlvDQphbHBoYSA9IGMoMCwxLDAsMCwwKSANCnByb2JzMnBhc29zID0gYWxwaGEgKiAoY210ZF4yKQ0KcHJvYnMycGFzb3MNCg0KDQojTWF0cml6IGVuIHRpZW1wbyBjb250aW51bw0KDQplc3RhZG9zMiA9IGMoMDoxNSkNCg0KI0luaWNpYWxpemFyIGxhIG1hdHJpeg0KDQptYXQyID0gbWF0cml4KGRhdGEgPSAwLG5yb3cgPSBsZW5ndGgoZXN0YWRvczIpLCBuY29sID0gbGVuZ3RoKGVzdGFkb3MyKSkNCmRpbW5hbWVzKG1hdDIpID0gbGlzdChlc3RhZG9zMixlc3RhZG9zMikNCmZpbGFzMiA9IGVzdGFkb3MyDQpjb2x1bW5hczIgPSBlc3RhZG9zMg0KDQoNCiNMbGVuYXIgbGEgbWF0cml6DQpmb3IgKGkgaW4gZmlsYXMyKSB7DQogIGZvciAoaiBpbiBjb2x1bW5hczIpIHsNCiAgICBpZiAoaiA9PSBpICsgMSAmIGkgPCAxNSApIHsNCiAgICAgIG1hdDJbaSsxLGorMV0gPSA1DQogICAgfQ0KICAgIGlmIChqID09IGkgLSAxICYgaSA+IDApIHsNCiAgICAgIG1hdDJbaSsxLGorMV0gPSA5KmkNCiAgICB9DQogIH0NCn0NCg0KI1BhcmEgaGFjZXIgcXVlIGxhIHN1bWEgZGUgbGEgZmlsYXMgZGUgMCwgZGViZW1vcyBsbGVuYXIgbGEgZGlhZ29uYWwNCg0KZm9yIChpIGluIDE6MTYpIHsNCiAgbWF0MltpLGldPS1zdW0obWF0MltpLF0pDQp9DQoNCg0KI0RlZmluaXIgbGEgY2FkZW5hIGRlIG1hcmtvdg0KDQpjbXRjID0gbmV3KENsYXNzID0gImN0bWMiLCBzdGF0ZXMgPSBhcy5jaGFyYWN0ZXIoZXN0YWRvczIpLCBieXJvdyA9IFRSVUUsIA0KICAgICAgICAgICBnZW5lcmF0b3IgPSBtYXQyKQ0KDQoNCmxpYnJhcnkoZXhwbSkNCg0KI0RlZmluaXIgZWwgdmVjdG9yIGRlIGNvbmRpY2lvbmVzIGluaWNpYWxlcw0KYWxwaGEyID0gYyhyZXAoMCwxMCksMSxyZXAoMCw1KSkNCg0KI0FuYWxpc2lzIHRyYW5zaXRvcmlvDQpwcm9icyA9IGFscGhhMiUqJWV4cG0obWF0MiooNzIpKQ0KcHJvYnMNCg0KDQpgYGANCg0KQWRkIGEgbmV3IGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqSW5zZXJ0IENodW5rKiBidXR0b24gb24gdGhlIHRvb2xiYXIgb3IgYnkgcHJlc3NpbmcgKkN0cmwrQWx0K0kqLg0KDQpXaGVuIHlvdSBzYXZlIHRoZSBub3RlYm9vaywgYW4gSFRNTCBmaWxlIGNvbnRhaW5pbmcgdGhlIGNvZGUgYW5kIG91dHB1dCB3aWxsIGJlIHNhdmVkIGFsb25nc2lkZSBpdCAoY2xpY2sgdGhlICpQcmV2aWV3KiBidXR0b24gb3IgcHJlc3MgKkN0cmwrU2hpZnQrSyogdG8gcHJldmlldyB0aGUgSFRNTCBmaWxlKS4NCg0KVGhlIHByZXZpZXcgc2hvd3MgeW91IGEgcmVuZGVyZWQgSFRNTCBjb3B5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZWRpdG9yLiBDb25zZXF1ZW50bHksIHVubGlrZSAqS25pdCosICpQcmV2aWV3KiBkb2VzIG5vdCBydW4gYW55IFIgY29kZSBjaHVua3MuIEluc3RlYWQsIHRoZSBvdXRwdXQgb2YgdGhlIGNodW5rIHdoZW4gaXQgd2FzIGxhc3QgcnVuIGluIHRoZSBlZGl0b3IgaXMgZGlzcGxheWVkLg0K