Random draws from conditional multinomial distribution

3 views (last 30 days)
I have to simulate data for 100 agents over 10,000 time periods for a variable, x. The initial value of x at time 0 for all agents is 0. The distribution of is a multinomial distribution, conditional on the past period's value, . Basically, can remain unchanged with probability 0.2, increase by 2571 with probability 0.5, increase by 2571*2 with probability 0.2, and increase by 2571*3 with probability 0.1, at any period. can never be lower than . How do I generate random values for this distribution?
I have tried:
x = mnrnd()
command, but I can't fit it to these specifications. Any help would be greatly appreciated!

Accepted Answer

Alan Stevens
Alan Stevens on 26 Oct 2021
Something like
u = rand(1)
if u<0.2
d = 0;
elseif u<0.7
d = 2571;
elseif u<0.9
d = 2571^2;
d = 2571^3;
x(t) = x(t-1) + d;
(the last line assumes t is an integer).

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!