J'ai ce simple chaîne de Markov:Chaîne de Markov: fonction R réutilisable pour afficher les valeurs d'état en n timesteps?
library(markovchain)
mcSIR <- new("markovchain", states=c("S","I","R"),
transitionMatrix=matrix(data=c(0.9,0.1,0,0,0.8,0.2,0,0,1),
byrow=TRUE, nrow=3), name="SIR")
is <- c(99,1,0) # initial States
Comment définir un réutilisable fonction "fvals",
qui retourne (pour une chaîne de Markov),
une des données Cadre avec les valeurs d'état pour n timesteps?
L'appel serait comme ceci:
fvals(mcSIR,is,5) # show state values for 5 timesteps
La sortie de trame de données de "fvals" ressemblerait à ceci:
(Note: pas de temps sont les 2e col de gauche et commencez à zéro).
1 timestep S I R
2 0 99 1 0
3 1 89.1 10.7 0.2
4 2 80.19 17.47 2.34
5 3 72.17 22 5.83
6 4 64.95 24.81 10.23
7 5 58.46 26.35 15.2
Raison: Cette fonction serait utile de tester différents MCs,
sans répéter le code R pour chacun, à chaque fois ...
Merci pour la réponse simple et efficace, Giorgio! Ça marche. Q1) Comment convertir la sortie de fvals() en une trame de données "régulière"? Q2) Peut-être cette fonction utile et fréquemment utilisée (fvals) pourrait-elle être incorporée dans le paquetage "markovchain"? – user39150
Salut, cela pourrait aider: https://qualityandinnovation.com/2015/12/08/a-discrete-time-markov-chain-dtmc-sir-model-in-r/ –