-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Model description #2
Conversation
This needs a rebase? I'm seeing template files deleted that I could have sworn we deleted in #1 |
README.md
Outdated
- Contact tracing | ||
- Contact tracing can detect infections among contacts, contacts of | ||
contacts, etc. | ||
- Contact tracing has different performance characteristics for each “ring.” |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Performance characteristics are:
- Time required to find contact: Delay from detection of index case to finding contact
- Test performance: Sensitivity/specificity of test used to determine if contact is infected, which could vary over the time since the contact's exposure
- If the test is negative, potentially affect that contact's probability/timing of self-detection? Like, if my contact is positive for a disease, and I test negative, I might be more vigilant for symptoms.
(in this model we'll probably assume perfect test sens/spec)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems like a model complexity that one merges in after MVP.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree; I want to have a place in the model architecture to allow for this, but set the parameters to the simplest ones for now
README.md
Outdated
- Disease progression: susceptible, exposed (i.e., will go onto infection), | ||
infectious, recovered | ||
- Individuals make contacts on some network, with some contact rate. Some | ||
contacts are effective (i.e., can transmit infection). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What do you foresee the modeling point being of distinguishing contacts & % of them effective, vs just an effective contact rate?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fair, this distinction should live "outside" the model, even if the two things are separated in a UI for easier pedagogy
number of expected secondary infections. | ||
- Some distribution of number of secondary infections around $R_0$ (e.g., | ||
Poisson) | ||
- Assume that the number of secondary infections is uncorrelated across |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What are you saying with this assumption? The homogeneiety bit seems counter-intuitive. The "natural" outcome for most networks is that people with higher degree will tend to be connected to others with higher degree - is the plan to use a lattice like structure so as to avoid that?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know about the network implications of this; curious if you can help!
For this very first pass model, I'd like to be able to not explicitly model the network, and treat each index case as statistically independent of the others
But maybe this is unrealistic and there should be some factor by which undetected contacts have a lower number of onward transmissions than the index case, and contacts of contacts have a further reduced number, etc. to account for the network structure
Although by at this point it feels like I should just explicitly model the network...
README.md
Outdated
- Per-infection detection (aka "passive" detection, in which individuals | ||
identify their own symptoms) | ||
- % of infections identified in this way (in the absence of contact tracing) | ||
- Distribution of times from exposure to detection |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this the likely distribution to have empirically justified times for? Could be, or could be time from symptom onset, or etc - something to think about.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
True: we're more likely to have exposure -> symptom onset, and symptom onset -> detection
I suppose this is another thing to live "outside" the model, in a sense: if the UI allows someone to input these two periods, we'd combine them into a single distribution on the backend somehow
README.md
Outdated
- Contact tracing | ||
- % of first ring (contacts) identified | ||
- Distribution of times from index exposure to contact identification (and | ||
what to do if this is unphysically short, i.e. before the contact would |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't call this unphysical - it's not, say, a negative time. But I think I get the point here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess, better to say: this is the distribution of times it takes to do the contact tracing, and then we need some separate model logic about what happens when the contact tracing discovers a contact at different stages of their disease progression.
In our simple first-pass model, with perfect intervention efficacy, we say they won't transmit any more, even if we trace them before the onset of symptoms
README.md
Outdated
test positive) | ||
- % of second ring (contacts of contacts) identified | ||
- Distribution of times for second ring | ||
- No third ring infections (i.e., contacts of contacts of contacts) can be |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the one place I think warrants more complexity. Typical contact tracing interventions expand whenever they identify a new case at the time of tracing. So if I find an actively infectious individual as a contact, I'd treat them as a new index case.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cf. my note about about the network. I can see why this is an advantage of your approach (computing probability of extinction). It's starting to feel flimsy to me to assume that the originally seeded infection and any further undetected infections are statistically independent.
610e268
to
83a7713
Compare
Thanks @pearsonca for comments. I got a number of these incorporated. @afmagee42 @paigemiller I think the trick now is deciding what to do about undetected secondary (or tertiary, etc.) infections. Treating them as new index cases, with the same distribution of secondary cases, makes (I'm suspecting) some strong and implausible assumption about the network structure. |
I don't think, and I haven't setup #3 in such a way, that we need to imagine re-starting the whole simulation for cases in rings around detected individuals. I think we need to decide when to stop simulating, but otherwise I think we can plunk down one index infection and just let the simulation run and see what happens. |
General framework for stochastic realizations of ring vaccination scenarios, and assumptions that make it relevant for the modeling exercises we have at hand
Compare the analytical approach in https://github.com/cdcent/ring-vax-model; it might be nice for a widget to have both stochastic realizations and the expected value (of whatever outcomes we want to show)