Difference between revisions of "General Behavior of Infections"

From Simulace.info
Jump to: navigation, search
(Results)
(Results)
Line 53: Line 53:
 
*NUMBER-OF-PEOPLE
 
*NUMBER-OF-PEOPLE
 
<DIV>
 
<DIV>
 
+
For both runs there were 3 cities and people cut get infected again, after they have been cured. Infected population was 10% and in both cases method of spreading the disease was via air. Also the incubation of disease was random-normal 100 for both scenarios. Now, the first run.<div>
I ran two sets of runs. In the first run, people First set of rules was following:
+
First set of rules was following:
 
<div>
 
<div>
 
:["no-city" false]
 
:["no-city" false]
Line 71: Line 71:
 
<div>
 
<div>
  
The "winning" combination was no surprise. Biggest spread and biggest chance for dying after being infected. But having infection chance of 50% and average resistance of 40% is equivalent to infection chance of 10% and average resistance 0%. Most important factors are infection chance, followed by average resistance and then chance to cure.
+
Killer disease
 +
<div>
 +
The "winning" combination for most effective killer disease was no surprise. Biggest spread and biggest chance for dying after being infected. But there are some nice conclusions from data. Having infection chance of 50% and average resistance of 40% is equivalent to infection chance of 10% and average resistance 0%. There can be identified leverage points in mortality and also chance of curing. Chance of being infected is quite unimportant for maximal death ratio. While logically for most infected, the mortality is required to be as low as possible, since if people dies, we don´t have that many infected.
 
But for example, if we have chance to cure of 5% and average resistance 40% combined with 10%  infection ration and 1% death rate, surprisingly, no one dies.
 
But for example, if we have chance to cure of 5% and average resistance 40% combined with 10%  infection ration and 1% death rate, surprisingly, no one dies.
As I was saying, there are many conclusions, which we can draw from results.
+
Most annoying caught
 +
<div>
 +
Here, the goal was to infect as many people as possible. For measuring, the most important is mean number of infected people. The higher, the better. Why we cannot use final value of infected? Because, as we can see in included excel, if we sort values by final value of infected, mean is sometimes lower and sometimes bigger. Reason behind this is that never does any disease infect all people. In remote location of country, of cities, people are very hard to get infected. And number of disease people, since they can get cured, can in one moment be lower or higher than in others.
 +
<div>
  
 
Second one have had those attributes and variables set:
 
Second one have had those attributes and variables set:

Revision as of 19:00, 15 January 2014

Introduction

Problem definition

My semestral paper was on visualization of disease and it´s spreading amongst population. Although there are many models available, most of them are quite straightforward and very simple. Mostly they are concentrating on spreading the disease itself, without any thought placed into the surrounding environment, like spread of the people. I tried to make the whole system more complex by adding some basic behavior to the agents as well as more variables, by which is the infection defined. This creates a more complex insight into the way of spreading infections. At least to better extend than most models. The model and it´s interface is also designed for easy use and allow users change variables easily.

Note: I have do add, that the model is far from my liking actually. It still lacks complexity I would like to see and implement. That is partly due to problem with speed. Although simulating 10 000 agents with relatively simple behavior is possible, by adding more and more complex behavior, the whole system started to slow down considerably (I ended with one tick per 30 seconds which is not exactly ideal state for simulating).

Method

For my model of visualization, how diseases spread, I have chosen Netlogo as a tool, as it allows to play with all the values quite easily and reward the user with nice visualization of the whole situation, as well as giving enough data from various graphs and is robust enough, for simulating various relatively complex behavior.

How does it work?

There are two main modules. One take care of logic behind moving of agents and the other one is for infection spread. Although for easier navigation they are split into more files. The whole model consist of breed of agents called people. Patches have attributes, that tells agent, if they are inside city, village or out in country side. When people are spread, most of them is located inside cities, while is or is not present inside villages. Smaller portion of people are distributed randomly in country side. People have various decisions how to move. Mostly they move around in either country side, villages or cities. When they are in city, there is very big chance, that they stay inside the city. This simulates behavior, that we stay inside city, work and live here and occasionally venture out. Same goes for villages, but to a smaller degree, as the size of villages are smaller. Once in a while (when WILL to go out is bigger than randomly generated number), agent venture out to a randomly generated coordination. After he reaches it, he goes via the shortest way back where he came from. If disease is curable, the is marginally bigger chance of curing it inside city and slightly bigger in villages. In country, as there are no hospitals, chance of being cured is actually a lot smaller, than of that, which is set in interface. At the start, each of peoples have set, if he is infected or not. If he is, and he is contagious, he can spread disease and those near him may catch the disease. The exact way the disease work is following. First, people catch disease. At that moment, they may enter incubation period for which he is infected, but he cannot infect others. After certain period, he become contagious. Next step is that the disease became known to it´s surrounding. But until it is known, that person is infected, he cannot be cured. When certain amount of time passes and he was not cured, he will either die of disease or he may have constitution good enough, and he survives the disease. Surviving disease is equivalent to being cured. It may or may not give that person immunity.


So, how does it all work and who does all those buttons do? It all looks like this.

Xvism00 interfaceJPG.JPG

BUTTONS:

  • SETUP – set up whole model. Meaning people and surrounding.
  • GO (infinite) – to run model indefinitely.
  • GO(once) – to advance by one tick.
  • INFECT-BUTTON – button infect one random agent, who is not infected.

SWITCHES and CHOOSERS:

  • NO-CITY - when SETUP is pressed, space is void of cities and villages. This is how most other infection models work and it´s implemented for comparison with other models although agents lacks thanks to this some more advanced behavior. This switch override NUMBER-OF-CITIES slider. Meaning it is not important, how many cities you have chosen to spawn as long as the switch is in ON position.
  • INFECTED-AFTER-CURE? - If people can be infected, after they are cured from the disease. Setting the switch to position OFF means, that once agent is cured, he cannot catch the disease again, making him totally immune.
  • METHOD-OF-INFECTION - chooses by which method is the disease spread. Either by AIR (which is more effective) or by BODY-CONTACT, which is not se effective in spreading.

SLIDERS:

  • NUM-PEOPLE – total number of people created at setup.
  • NUMBER-OF-CITIES – number of cities created, which are then randomly spread around the field. The can be connected and theoreticaly emerge at the same location. Although given the number of patches, it is very unlikely. Size of each city can vary slightly due to random element (random-normal 500 200).
  • INFECTED-POP% - percent of population already infected at the creation of space.
  • INFECTION-CHANCE% - chance of spreading disease in percents. Note, that this is ONLY for rough value. Catching disease is randomized and more complex.
  • CHANCE-TO-CURE% - chance to be cured, after the disease make itself known to surrounding. In percents.
  • MORTALITY% - chance that disease will kill infected.
  • AVERAGE-LIFE-SPAN – average time for each agent, after being infected, to see, if he dies or survives. Each agent life span is calculated by (random-normal average-life-span 100).
  • INCUBATION-PERIOD – average time after agent is infected but does not infect other agents. Again, it is individualy calculated using random normal distribution.
  • RESISTANCE-GAIN - each time agent get cured, he gain this amount to his resistance roll, so next time, he resist the disease better.
  • AVG-RESISTANCE - average value which each agent is given at his setup. If set at 0, each agent has value starting with 0.

Results

There are many attributes and they're combination, which can be selected as means for obtaining relevant data. How many people are being cured, how many died and so on. It is also quite In my results I focused on how many people survived and how effective was the disease, meaning how many people were infected, when those attributes are changing:

  • INFECTION-CHANCE
  • CHANCE-TO-CURE
  • AVG-RESISTANCE
  • MORTALITY
  • RESISTANCE-GAIN
  • AVERAGE-LIFE-SPAN
  • NUMBER-OF-PEOPLE
For both runs there were 3 cities and people cut get infected again, after they have been cured. Infected population was 10% and in both cases method of spreading the disease was via air. Also the incubation of disease was random-normal 100 for both scenarios. Now, the first run.

First set of rules was following:

["no-city" false]
["infected-after-cure?" true]
["infection-chance%" 10 50 75]
["chance-to-cure%" 0.1 1 5]
["avg-resistance" 0 40]
["number-of-cities" 3]
["infected-pop%" 10]
["incubation-period" 100]
["average-life-span" 500]
["num-people" 2000]
["method-of-infection" "air"]
["mortality%" 0 1 10]
["resistance-gain" 0]

Killer disease

The "winning" combination for most effective killer disease was no surprise. Biggest spread and biggest chance for dying after being infected. But there are some nice conclusions from data. Having infection chance of 50% and average resistance of 40% is equivalent to infection chance of 10% and average resistance 0%. There can be identified leverage points in mortality and also chance of curing. Chance of being infected is quite unimportant for maximal death ratio. While logically for most infected, the mortality is required to be as low as possible, since if people dies, we don´t have that many infected. But for example, if we have chance to cure of 5% and average resistance 40% combined with 10% infection ration and 1% death rate, surprisingly, no one dies. Most annoying caught

Here, the goal was to infect as many people as possible. For measuring, the most important is mean number of infected people. The higher, the better. Why we cannot use final value of infected? Because, as we can see in included excel, if we sort values by final value of infected, mean is sometimes lower and sometimes bigger. Reason behind this is that never does any disease infect all people. In remote location of country, of cities, people are very hard to get infected. And number of disease people, since they can get cured, can in one moment be lower or higher than in others.

Second one have had those attributes and variables set:

["no-city" false]
["infected-after-cure?" true]
["infection-chance%" 100]
["chance-to-cure%" 0.1 0.3 0.8]
["avg-resistance" 0 80]
["number-of-cities" 3]
["infected-pop%" 10]
["incubation-period" 100]
["average-life-span" 100]
["num-people" 1000]
["method-of-infection" "air"]
["mortality%" 0 1 10]
["resistance-gain" 5]

Here we have infection chance 100%. That does not necessarily mean, that everyone will get infected. Reason for that is average resistance, which is here on (when not set at 0, it is on).

Exact results can be found in excel files, which I have transformed for easy use and simple orientation and for easy way to obtain necessary results.

Conclusion

Files

Media:GDV.zip Media:Results_of_runs.xlsx