Re: simulating a 2-state Markov process
- To: mathgroup at smc.vnet.net
- Subject: [mg41387] Re: [mg41369] simulating a 2-state Markov process
- From: Bobby Treat <drmajorbob at mailblocks.com>
- Date: Sat, 17 May 2003 05:49:53 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Here's the initial conditions as a probability vector, where a is the probability of starting with Heads. (In your post, a=1) initial := {a, 1 - a}; Here's the transition probability matrix: tpm := {{1 - p, q}, {p, 1 - q}}; After one transition, the probabilities add up to one as expected: tpm.initial Simplify@(Plus @@ %) {a (1-p)+(1-a) q,a p+(1-a) (1-q)} 1 After n transitions, the probability vector is computed by state[n_Integer] /; n >= 0 := Nest[tpm.# &, initial, n] or this may work better, if you're not specifying the parameters: state[n_Integer] /; n >= 0 := Nest[Simplify[tpm.#] &, initial, n] a, p, and q can be set as desired and state[] is automatically defined accordingly, or you can compute state[n]/.{a->1, p->0.1, q->0.3}, for instance. The latter will not work after you have given values to the parameters. The former is much faster, but you may want to see parametric results. Clear[a, p, q] gives you the choice again. If speed is an issue, you will want to specify p and q, and define the state vector after n transitions this way: p = 0.1; q = 0.3; Clear[n] {values, vectors} = Eigensystem[tpm]; fastState[n_Integer] /; n >= 0 = Simplify[Transpose[vectors].DiagonalMatrix[values^n]. Inverse[Transpose[vectors]].initial] {-0.75*0.6^n + 0.75*1.^n + 1.*0.6^n*a, 0.7499999999999998*0.6^n + 0.24999999999999994*1.^n - 0.9999999999999998*0.6^n*a} Bobby -----Original Message----- From: David E. Burmaster <deb at alceon.com> To: mathgroup at smc.vnet.net Subject: [mg41387] [mg41369] simulating a 2-state Markov process Dear MathGroup, Can someone please suggest an efficient way to use Mathematica to draw realizations from a 2-state Markov process as outlined below? i want to specify the transition probabilities and the number of transitions to simulate. =-= for notation.... 1. let's denote the two states as H and T (for Heads and Tails, even though i am thinking about a process more general than flipping a coin) 2. let's denote the four conditional transition probabilities as follows prob(T | H) = p prob(H | H) = 1-p and prob(H | T) = q prob(T | T) = 1-q 3. for initial conditions, let the process begin in state H =-= within this framework, p and q can take any values in the unit square (0, 1] x (0, 1] =-=-= thank you for your help dave -- ************************************ David E. Burmaster, Ph.D. Alceon Corporation POBox 382069 Cambridge, MA 02238-2069 617-864-4300 deb at alceon.com www.alceon.com ************************************