MRC-CSO-SPHSU / LoneParentsModel.jl

An initial implementation of an ABM for social and child care
0 stars 5 forks source link

first iteration #125

Closed AtiyahElsheikh closed 1 year ago

AtiyahElsheikh commented 2 years ago

At time = t0 (say 1920) which should be done first,

mhinsch commented 2 years ago

I think generally, unless there are very strong reasons not to, each time step should do exactly the same thing in exactly the same order.

In any case, doing every transition for the entire population at once is not necessarily the best way to do things anyway, but that's an issue for future discussions, I think.

AtiyahElsheikh commented 2 years ago

My intuition is that if a population is established from data , e.g. say 1990, then the deaths, marriages ,etc. should be first applied at time 1990 + 1 // 12. Otherwise, the imperical data is being changed. Thus one need to increment the age first.

mhinsch commented 2 years ago

My intuition is that if a population is established from data , e.g. say 1990, then the deaths, marriages ,etc. should be first applied at time 1990 + 1 // 12. Otherwise, the imperical data is being changed. Thus one need to increment the age first.

Ok, but then the additional age increment should be part of the setup.

AtiyahElsheikh commented 2 years ago

In this case, the initialized model (t = 1990) would not correspond to the empirical data

AtiyahElsheikh commented 2 years ago

So to make it more concise, if a population is established at t = 1990 (say 1st of January), and a person p has age of 20 years 0 months, the first iteration in the simulation needs to correspond to time t = 1999 (31st of January / 1st of Feb) p has age of 20 years 1 month.

mhinsch commented 2 years ago

So to make it more concise, if a population is established at t = 1990 (say 1st of January), and a person p has age of 20 years 0 months, the first iteration in the simulation needs to correspond to time t = 1999 (31st of January / 1st of Feb) p has age of 20 years 1 month.

Ok, but that would be solved by setting the age of agents to the end of the time period of initialisation, wouldn't it? In any case, the correspondence between model and reality (and data) is rather rough anyway, so I think that's really not a huge issue.

AtiyahElsheikh commented 2 years ago

Ok, but that would be solved by setting the age of agents to the end of the time period of initialisation, wouldn't it?

Well, if intermediate results are stored, logged etc. then it makes sense to rather increment the time before the begining of each iteration.