crowdfightcovid19 / req-550-Syria

Repository to host the code of request 550 coming from the Pax Syriana Foundation
Other
3 stars 2 forks source link

Formulas+Code: Contacts between people in the green zone and in the orange zone #16

Closed apascualgarcia closed 4 years ago

apascualgarcia commented 4 years ago

@jordanklein30, @Jennifer-Villers @ecam85

This issue attempts to clarify the parametrization proposed for the interventions. I am following Jordan's R code found here, it would great to have a short doc in latex to explain this part of the code, it is difficult to follow the notation. In particular, it is not clear to me which part of the intervention would belong to what we called epsilon, and which to m, or if it is needed to change the way the model is presented here to account for a more natural parametrization.

I start considering Eq. 9 from the above doc. Note that the parametrization in the null model of C_{i,j} represents the number of contacts that an individual of class i has with individuals o class j per day, estimated as the product between the average number of contacts per day of individulas of class i \bar{c}_i times the population fraction of class j N_j/N. We should note that \bar{c}_i does not depend on class j. Also that the interventions do not propose a reduction in the average number of contacts of individuals in the different classes (i.e. there is no self-isolation and hence \bar{c}_i is a constant).

In Jordan's code:

# cbar_ig,o = average daily contacts of people in class `i` in green zone with people in orange zone (2 family members/week)

cbar_ig_o <- fam_vis/7

he transforms \bar{c}_i -->\bar{c}_{i,j} and defines the average number of contacts between o and g as \bar{c}_{g,o}=Nmembers/7(days) meaning that the contacts within their own class \bar{c}_{g,g}=\bar{c}_i - \bar{c}_{g,o} (as we said, \bar{c_i} is a constant). The within-class reduction is small and it may not worth doing it, but it reflects the fact that while they are contacting with members of the other zone they are not contacting with members of their own zone (contacts conservation), and I think it is important to be consistent with the way present the model.

In this respect, we would not perform the change \bar{c}_i -->\bar{c}_{i,j} and define instead epsilon_i --> epsilon_{i,j} with epsilon_{g,g}=[\bar{c}_i -Nmembers/7(days)]/\bar{c}_i and epsilon_{g,o}=epsilon_{o,g}=1-epsilon_{g,g}. This parametrization conserves the average number of contacts that an individual has per day, i.e. \bar{c}_i*\sum_j epsilon_ij = \bar{c}_i.

So far the intervention was made in the way in which individuals distribute their contacts among classes, but it is not accounted for the fact that the visibility of classes in g with respect to those in o and viceversa are different because they have different population sizes, so we need to assess the assymmetry in the interaction. We can model this with the matrix m_{i,j} as follows. Each individual in green "sees" Nmembers of the orange population, therefore the green population will meet by chance a given population class of the orange population with a probability given by Nmembers*N^{class}_{orange}/N_{orange}, and hence the factor m will be m_{ig,jo}*N/N_o ~~have access to a fraction m_{g,o}=Nmembers*Ngreen/Norange of individuals belonging to the orange population. On the other hand, if we assume that all individuals in the green area will meet a family member, the orange population "see" all members of the green population, and hence m_{o,g}=1. ~~

An interesting corollary is that, calling RR the parameter that models a reduction in the infectivity mediated by the use of masks, etc., we can immediately see that shielding will have some effect only if the following condition is fulfilled: Nmembers < (1/RR)*Norange/N. This number could be higher if relatedness within the population is high and the family members visiting are repeated, what may lead to an interesting dilemma on how families should be distributed in the camps, I will discuss this elsewhere.

In Jordan's code we find this comment:

 ### Derivation of m_ij values
 ## m_ig,jo = RR * cbar_ig,o/cbar_i * N/N_o
 ## m_ig,jg = N/N_g
 ## m_io,jg = RR * cbar_io,g/cbar_i * N/N_g
 ## m_io,jo = N/N_o
 ## `ig`/`jg` = any population class `i` or `j` in green zone, `io`/`jo` = any population class `i` or `j` in orange zone

Where it seems he is putting together in the expressions what I am calling epsilon and m_{i,j}. But there are still discrepancies.For instance, m cannot be > 1 as we present it in the model. [APG: m must be >1 in two cases].

Following Jordan's notation the parametrization, there is just one difference, the epsilon values within areas. The parametrization ould be as follows:

### Derivation of epsilon_ij
 ## epsilon_ig,jo = RR * cbar_ig,o/cbar_i 
 ## epsilon_ig,jg = 1-epsilon_ig,jo # This value is equal to one in Jordan's if epsilon_ig,jo is small it is not a problem
 ## epsilon_io,jg = epsilon_ig,jo
 ## epsilon_io,jo = 1-epsilon_ig,jo # This value is equal to one in Jordan's if epsilon_ig,jo is small it is not a problem
 ## `ig`/`jg` = any population class `i` or `j` in green zone, `io`/`jo` = any population class `i` or `j` in orange zone

### Derivation of m_ij values
 ## m_ig,jo =N/N_o   #  the probability of an individual of class ig finding one individual of class jo assuming independency of events)  is N_io/N_o, and therefore m_ig,jo = (N_io/N_o)/(N_io/N)
 ## m_ig,jg =   N/N_g
 ## m_io,jg =  N/N_g
 ## m_io,jo =  N/N_o
 ## `ig`/`jg` = any population class `i` or `j` in green zone, `io`/`jo` = any population class `i` or `j` in orange zone

The product of both leads to Jordan's values except for gg and oo which would be slightly smaller.

Jennifer-Villers commented 4 years ago

Hi Alberto,

I am not familiar with the details of the code but I can already tell you that the intent here was to create an mij matrix that reflects the differences in interactions between people from the same zone and people from different zones, assuming that people from the green zone can meet family members living in the orange zone (either 2 or 10 of them) once a week (1/7) in the neutral zone with prior temperature checks.

We did not attempt to create an epsilon vector as we don't think people can significantly reduce their total number of contacts in these crowded living conditions.

I hope that this makes sense, otherwise let me know. I am sure Jordan will be able to elaborate more when he'll have the time.

apascualgarcia commented 4 years ago

Hi Jennifer,

As explained above the contact matrix in the null model is the product of two factors, the average number of contacts per day and the probability of encountering an individual from certain population class by chance. Hence, the natural way to model the intervention is either to reduce one factor (epsilon) or the other (m), and the relation between the intervention and the meaning in terms of the parametrization should be clear. In the previous message I explain that epsilon is not necessarily a vector, it can be a matrix, but should always be a factor acting on one way or another on the average number of contacts, while m acts on the probability of encountering.

Beyond the consistency in the interpretation, it is not so important now which are the names of the parameters or if we use one or two, what should be clear is which is the final values for the factors that should multiply the contact matrix. I reviewed my comments and I've found one error in my reasoning (I strikedthrough the text), and now the discrepancy with Jordan's parametrization is only due to the "conservation of contacts" mentioned at the beginning of the text, which if the number of relatives visited in the neutral zone is small can be neglected but not if it increases. Also there is a factor Nmembers missing. I summarize how it would result in the final table highlighting the differences.

Eduard @ecam85 I still do not see how this agrees with your excel file, for instance in the interzonal zone there is a parameter called "fraction of orange young//adult using neutral" which is equal to 0.1, but I have no idea on how this number was estimated, please check if you agree with the above derivation.

apascualgarcia commented 4 years ago

The factor Nmembers is not needed in m_ij I think

apascualgarcia commented 4 years ago

The explanation with the proposed parameterization can be found here