Random draws from conditional multinomial distribution
6 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Laura Freitas
le 26 Oct 2021
Commenté : Laura Freitas
le 26 Oct 2021
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!
0 commentaires
Réponse acceptée
Alan Stevens
le 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;
else
d = 2571^3;
end
x(t) = x(t-1) + d;
(the last line assumes t is an integer).
5 commentaires
Alan Stevens
le 26 Oct 2021
function xnew = fn(x,t)
u = rand;
if u<0.2
d = 0;
elseif u<0.7
d = 2571;
elseif u<0.9
d = 2571^2;
else
d = 2571^3;
end
x(t) = x(t-1) + d;
end
Note that functions go at the end of a script.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Financial Toolbox dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!