Juliaでマイクロシミュレーションモデルを構築しています。私は自分の関数の構造を構築しましたが、それは1人の「人」に最適です。モデルを通じて 100000 人以上の人々を実行し、結果を 1 つの場所に保存するスクリプトを書きたいと思います。
最終的にはこれを並行して実行したいと思います。
以下に、ダミーの確率を持つコードの単純な作業バージョンを含めました。
using Distributions
# Microsim function
function MicroSim(start_age, stages)
stage = 0
age = start_age
# Set all trackers to 0
Death_tracker = 0
Disease_tracker = 0
# While loop
while stage <= stages
age = age
###########################################################
# Probability of Death
pD = 0.02
if age == 100
pD = 1.0
else
pD = pD
end
# Coin flip
dist_pD = Bernoulli(pD)
Died = rand(dist_pD, 1)
if Died == [1]
Death_tracker = 1
# death tracker loop break
if Death_tracker == 1
# println("I died")
break
end
else
Death_tracker = Death_tracker
end
###########################################################
# Update age and stage
age = age + 1
stage = stage + 1
end
return age, Death_tracker
end
MicroSim(18,100)