Closed AtiyahElsheikh closed 1 year 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.
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.
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.
In this case, the initialized model (t = 1990) would not correspond to the empirical data
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.
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.
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.
At time = t0 (say 1920) which should be done first,