CS 7280代做、代写Python编程语言
GT CS 7280: Network Science
Assignment 4: Modeling Epidemics
Fall 2024
Overview
The objective of this assignment is to experiment with the concepts we covered in Module-4
about network epidemics, and see how the theoretical results that were derived in class
compare to simulation results.
Submission
Please submit your Jupyter Notebook A4-YOURGTUSERNAME.ipynb with requirements.txt
so that we may be able to replicate your Python dependencies to run your code as needed.
With Anaconda, you can do this by running:
conda list -e > requirements.txt
Ensure all graphs and plots are properly labeled with unit labels and titles for x & y axes.
Producing readable, interpretable graphics is part of the grade as it indicates understanding of
the content – there may be point deductions if plots are not properly labeled.
Getting Started
Assignment 4 requires Epidemics on Network python module available here. You can download
this module and run the examples given in the documentation to become familiar with it.
You can install the library using: pip install EoN
This homework, especially parts 2 and 3, might take several minutes to run. Be aware of
this and plan to complete it accordingly.
**IMPORTANT** As with prior assignments the structure has been designed
to have several subsections in each part. The first few subsections are
meant to just define useful functions and the final subsection of each part
is where the functions are called and the analysis is done. If you are
confused about how a function is meant to be used, check the final
subsection in each part to see how they are being called. This should clear
up a lot of potential points of confusion early on.
GT CS 7280: Network Science
Part 1: Outbreak Modeling [40 Points]
The file “fludata.txt” has the list of students, teachers and staff at a school. The interaction
between them was measured based on the proximity of the sensors that people were carrying
on them. The data file has three columns, the first two columns are the IDs of the people and
the third column is the number of interactions.
Construct an undirected graph from that text file using functions in the networkX module. For
the purpose of this assignment, we consider only the unweighted graph (i.e., you can ignore
the third column).
1. [10 points] Suppose there is a pathogen with transmission rate of 0.01 and recovery
rate of 0.5. Suppose that an outbreak started at node 325 (“patient-0”). Complete the
simulate_outbreak function to simulate an outbreak under the SIS model using the
provided parameters. The function should return a list of length n_iter containing
simulation runs where n_iter is an argument to the function.
Important: When running your simulations, you will want to discard the outbreaks that
died out stochastically. To do this, check whether the number of infected nodes at the
last time step is 0 and replace them with a simulation that does not die out. In total you
should have n_iter simulations.
Additionally, complete the plot_outbreaks function to visualize the results of the
simulate_outbreak function. Show the results for each of the simulations on a single
plot and break each simulation into 2 lines, one for the number of infected and the other
for number of susceptible over time. Make sure to properly label these lines and to
create a legend identifying which lines are which.
2. [10 points] In the lecture we modeled the initial exponential increase of the number of
infected nodes as 𝐼(𝑡) ≈ 𝐼 , where 𝜏 is a time constant. Note that here as only
0
𝑒
𝑡/τ
𝐼
0 = 1
one node was infected initially. Now, complete the get_exponent function to fit an
exponent to the curve of the number of infections. Choose only the initial portion of the
outbreak, say for 𝐼(𝑡) ≤ 100 (the exponential region of the outbreak, where the number of
infected is less than or equal to 100) and return the estimated time constant 𝜏.
Hint: scipy.optimize.curve_fit is a helpful function to fit the exponent to a curve.
Additionally, complete the plot_curve_fit function to plot both the actual number of
infected and the theoretical curve given a value of 𝜏 (for values of Infected < 100). This
function should also compute the r-squared between the two curves and print the value
for 𝜏 and r-squared in the title of the plot. Again, make sure to label both curves and
create a legend identifying which is which.
3. [5 points] In the lecture and textbook we discussed theoretical values for 𝜏 that can be
calculated from properties of the graph and the dynamics of the infection spread.
Complete the calculate_theoretical_taus function to compute:
GT CS 7280: Network Science
○ The random distribution shown in the Lesson 9 Canvas lecture “SIS Model”.
○ The arbitrary distribution from the Canvas lectures shown in the Lesson 9
Canvas lecture “Summary of SI, SIS, SIR Models with Arbitrary Degree
Distribution”.
○ The arbitrary distribution from the textbook found in Ch. 10, Equation 10.21.
Additionally, complete the compare_taus function to show a boxplot of the distribution of
sample 𝜏’s calculated from simulation runs (see 1.5 to understand where these come
from). Visualize the theoretical calculations as dots on the box plot. Again, label each of
these dots with the calculation used to generate them.
4. [10 points] Complete the calculate_theoretical_endemic_size function to compute the
size of the population that remains infected at the endemic state.
Then, complete the compare_endemic_sizes function to plot the distribution of
endemic sizes across several simulation runs as a boxplot, and compare it with the
theoretical calculation for endemic size as a single dot, similarly to the previous
subsection.
5. [5 points] Run the code provided in cell 1.5 and look at the resulting figures. How good of
a fit is the exponential curve in section 1.2? Explain how the theoretical estimates in 1.3
& 1.4 compare to the empirical distribution and indicate which you would consider a
reasonable fit for the data.
Part 2: Transmission Rate [25 Points]
Next, let us vary the transmission rate and see how it affects the spread of infection. Since we
know that only the ratio of the transmission rate and the recovery rate matters, let us keep the
recovery rate constant at 0.5 and vary only the transmission rate.
1. [10 points] Complete the simulate_beta_sweep function to vary the transmission rate
over a range of beta values between beta_min, beta_max with beta_samples number of
points. For each value of the transmission rate, compute 5 simulations to avoid outliers.
You can reuse your simulate_outbreak function from Part 1 in this function.
Next, complete the extract_average_tau function to return a list of the average 𝜏 value
calculated over the five simulation runs for EACH beta value. You may reuse the
get_exponent function from Part 1.
Finally, complete the plot_beta_tau_curves function to show the exponential curve
given by the 𝜏 values for each beta value. The x-axis is time and y-axis is the number of
infected people. Use a log scale on the y-axis and make sure that each line has its own
color. This function should be similar to the plot_curve_fit function in part 1.2, but you
GT CS 7280: Network Science
will be showing a series of exponentials instead of comparing an experimental with a
theoretical curve.
2. [10 points] Complete the extract_average_endemic_size function to return a list of the
average endemic size calculated over the five simulation runs for EACH beta value.
Next, complete the calculate_theoretical_endemic function to find the minimum
theoretical beta values of the transmission rate for an epidemic to occur. Calculate this
minimum based on the equations derived in lecture for both the random distribution and
the arbitrary distribution. Also, calculate the theoretical endemic size for each value of
beta under the assumption of random distribution.
Finally, complete the compare_endemic_sizes_vs_beta function to plot the average
endemic sizes and theoretical endemic sizes as a curve vs beta. Additionally, plot the
minimum values for beta to start an epidemic as vertical lines. Make sure to label each
line and provide a legend.
3. [5 points] Run the code provided in cell 2.3 and look at the resulting figures. How similar
is the theoretical to experimental endemic sizes? How closely do the minimum beta
values provide a reasonable lower bound for the start of an endemic?
Part 3: Patient-0 Centrality & 𝜏 [30 Points]
Now, let us see how the choice of “patient-0” affects the spread of an outbreak. Consider every
node of the network as patient-0, and run the SIS model using the parameters in Part 1 to
compute . Run the simulation with each node in the simulation as patient-0. Hint: You can skip
cases where the infection quickly diminishes to 0.
1. [10 points] Complete the sweep_initial_infected function to complete a single
simulation run for each node in the graph as the initial infected. Check for runs that
stochastically die out and do not save those. Return the list of simulation run results and
a list of nodes (integer IDs) where the simulation was successful.
Additionally, complete the compute_centrality function to calculate the: degree
centrality, closeness centrality (with wf_improved=false), betweenness centrality, and
eigenvector centrality of the graph. Remember to use the unweighted centrality metrics.
Return the centralities for each node where the simulation was kept in the previous
function.
Hint: We provide “nodes” as an argument which is meant to represent the second output
of the previous function. You can use this to filter for centralities of only these nodes
before you return them. Check the cell for 3.3 to see exactly how this is used.
GT CS 7280: Network Science
2. [15 points] Complete the calculate_pearson_correlation to compute the Pearson
correlation coefficient between each centrality metric and 𝜏, along with a p-value for that
correlation.
Additionally, complete the plot_centrality_vs_tau function to plot a scatter plot between
the 𝜏 value that corresponds to each node, and different centrality metrics of that node:
degree centrality, closeness centrality, betweenness centrality, and eigenvector
centrality. Do this all as one figure with four subfigures. Include the Pearson correlation
values as well as the corresponding p-values in the title for each scatter plot. Remember
to use the unweighted centrality metrics.
3. [5 points] Rank these centrality metrics based on Pearson’s correlation coefficient, and
determine which metrics can be a better predictor of how fast an outbreak will spread
from the initial node. Analyze your results. That is, do the results match your intuition? If
they differ, why might that be?
Part 4: Knowledge Question [5 Points]
Answer the following food for thought question from Lesson 10 – Submodularity of Objective
Function:
Prove that a non-negative linear combination of a set of submodular functions is also a
submodular function.
Hint: Make sure you understand the definition of linearity.

热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图