Modelling Infectious Diseases with KENDRICK

Heterogeneous Host Models

Aside from the based SIR-framework models, our platform can also captures more complex context of epidemiology. In such context, the population has more than one degree of subdivision due to different attributes rather than status such as: sex, age, space, etc. In this section we consider an epidemiological concern, the heterogeneous-host population models.

1. SIS model with multiple risk groups

We consider here the the SIS model in which the population is structured into multiple risk groups (host-heterogeneous model) labelled 1, 2, ... The group labelled 1 is the lowest risk. The group labelled 5 is the highest risk. The interaction between risk groups is captured by the contact network.

1.1. Equations

1.2. Kendrick model

| model graph |
    model := KEModel new.
    model population: KEMetaPopulation new.
    model population attributes: {#riskGroup->(1 to: 5). #status->#(S I)}.
    model
        buildFromAttributes: #(#status #riskGroup)
        compartments: {
          (#(#S 1) -> 6000). (#(#I 1) -> 0).
        (#(#S 2) -> 31000). (#(#I 2) -> 0).
        (#(#S 3) -> 52000). (#(#I 3) -> 0).
        (#(#S 4) -> 8000). (#(#I 4) -> 0).
        (#(#S 5) -> 2999). (#(#I 5) -> 1).
        }.
    model addParameter: #beta value: 16e-9.
    model addParameter: #gamma value: 0.2.

    graph := KEContactNetwork
                    newOn: model population
                    atAttribute: #riskGroup.
    graph edges: { 2->2. 2->3. 2->4. 2->5. 3->3. 3->4. 3->5. 4->4. 4->5. 5->5 };
            strengthOfConnections: #(9 30 180 300 100 600 1000 3600 6000 10000).

    model addEquation: 'S:t=gamma*I-beta*S*I' parseAsAnEquation.
    model addEquation: 'I:t=beta*S*I-gamma*I' parseAsAnEquation.

This model is constructed from the SIS based model. We specify another attribute riskGroup with the value from 1 to 5. Due to two attributes, we have 10 compartments so that 10 equations. These equations are generated automatically from the two basic equations specified in this model. In our platform, epidemiological concerns are implemented separately from the core system (the basic concepts of epidemiology) so that allowing a wide range of complex model to be described. In order to represent the coupling infection between heterogeneous groups, we define an instance of KEContactNetwork.

graph := KEContactNetwork
        newOn: model population
        atAttribute: #riskGroup.

Other networks are also implemented to capture other type of contact patterns: KEMigrationNetwork and KECommutingNetwork. We specify this model in Workspace and define the simulation, the result is shown in Figures 1.1, 1.2, 1.3. In the case of IBM, we reduce the size of population and increase the value of parameter for speed up the simulation.

Multi_Risk_RK4

Multi_Risk_Gil

Multi_Risk_IBM