diff --git a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb index 11852458..e9786172 100644 --- a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb +++ b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb @@ -16,7 +16,37 @@ "cell_type": "markdown", "id": "4ea73db3", "metadata": {}, - "source": [] + "source": [ + "I am splitting my answer into 4 steps with detailed answers for each subsection: \n", + "\n", + "Step 1: Setting Up the Dataframe \n", + "Function Used: pd.DataFrame\n", + "Sample Size: 1000 individuals\n", + "Sampling Frame: Everyone in attendance (whole population) of the two events, brunches and weddings \n", + "Procedure: The first several lines of code following all of the imports are to set up a dataframe of what I think is people that attended the wedding and people that attended a brunch. The script creates n= 1000, with 800 individuals at the brunch and 200 at the wedding \n", + "Underlying Distribution: deterministic allocation (200 weddings, 800 brunches) \n", + "\n", + "\n", + "Step 2: Infecting a Random Subset of Individuals\n", + "Functions used: np.random.choice\n", + "Sample Size: Attack RATE = 0.10, so 0.10 *1000 = 100 individuals sampled (or infected)\n", + "Sampling Frame: Everyone in attendance (whole population) of the two events could have been infected. Although everyone in the data frame initially (that is everyone who went to the wedding and brunch is in your sampling frame) has an equal chance of being sampled, this is sampling without replacement, as your replace argument is set to FALSE. This makes sense, given the fact that if someone is infected, there is no point in reinfecting them. \n", + "Underlying distribution: Technically uniform, and could vary given that the code does not specify a specific proportion in wedding/brunch infection. \n", + "\n", + "\n", + "Step 3: Primary Contact Tracing \n", + "Functions used: np.random.rand\n", + "Sample Size/Sampling Frame: Every 100 infected individual gets sampled, given that we are assigning a 0/1 to each of them. The 0.20 probability helps inform us which ones are traced and which ones are not! \n", + "Within your primary tracing, your sampling frame is people already infected, and so you are trying to decide which one of those you want to trace. You have zoomed in, moving away from the entire dataframe of people. In this case, your sample is likely much smaller as well. \n", + "\n", + "Step 4: Secondary contact tracing \n", + "Functions used: value_counts() - used to count event types!\n", + "Sample Size/Sampling: our sampling are all of those that got traced. I estimate this sample size to be ~20, though of course 0.2 is just a probability, so depending on our run, we could have 18 or 19 or 21 people traced! \n", + "\n", + "The code following that is not so much sampling, but just calculating propotions. \n", + "\n", + "Finally in the end, you created 1000 simulations of this. In terms of the 1000 simulations, you end up getting a red \"traced\" graph that approximates a normal distribution with a left tail, while the blue \"infect\" graph has less of a tail approximating a normal distribution. When you run 1000, you also notice that the red graph approximates the blue one. I can only imagine that if you run 10,000 simulations, this approximation would become closer. " + ] }, { "cell_type": "markdown", @@ -30,7 +60,9 @@ "cell_type": "markdown", "id": "4cf5d993", "metadata": {}, - "source": [] + "source": [ + "I tried running simulation of 10, 100, and 1000. In the 10, it did not present any coherent distribution, but possible a square or uniform-type distribution given the small simulation size. In the 100 simulations, the graph started to look like the 1000. You will notice particularly in the traced \"red\" part that there is a distribution approximating a normal distribution with a skew and tail to the left. The few results in this tail essentially saw, the lower the frequency, the lower the proportion of cases! As you increase the \"n\" number of simulations, red becomes a closer approximation of the blue. The traced v. infected in other words. Lastly, I will mention that the results are not quite repoducible, because there is no seed set! So each time you run it, the mean of the histograms may shift, or the spreadness and kurtosis of the distributions can vary! Edit: In the first pull request, the answer got cut off " + ] }, { "cell_type": "markdown", @@ -44,7 +76,9 @@ "cell_type": "markdown", "id": "77613cc3", "metadata": {}, - "source": [] + "source": [ + "I simply added \"np.random.seed(123)\". By adding the seed, it ensures that each time we are running a similar simulation producing similar results. When i run the code multiple times, it presents the same output! Edited: For some reason, this answer did not show up on the first pull request, even though I wrote it! " + ] }, { "cell_type": "markdown", @@ -56,10 +90,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 12, "id": "ab8587a0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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BYAIUkcffXQ+0YgTtX/84x/5fpwwjhgxIi8Xg57NjShXhOToax21r+UyRrh5+umnc+1bnJjedNNN6Z577snPRRkra24rxclgNCGPfbbiiivO8f0jWMeJf5wYx0nfhhtumB5++OEcnCPM1W4S+tRTT6W77747HXbYYflE7vLLL88nXXFxJC5sxOfx7rvvpltvvTW/NsJhZfPXKH+cZMd7RhPr6PMY64oTwbjYUBafyS9+8Yu8bNSKxmf4yiuv5ID/s5/9LH/+cWIXgaVcxtgvCyoutkTtdgSqCEjx77fffjtfaPjxj3+cj6/Ro0enP/7xjzkExHPlptJxvMbxEfs/TjzjmIgm/XE8RMuCCK+zE309Y/3nnntubo4dXQTi5Pz888+vcTJ9xx135C4D0Y/3ySefzEF1bkRgj4ASISK+F/Fed955Z15nXOSJ8laKUBPlj+M6vivxHYzPN/plz0+tcPnCQxwnIb4jAwYMSP369cvbGMduHB9bbrll/qwrL6JEzWEsF8/FxYC4IBLimI1jJX4nfvnLX+bl/vOf/+TWHnFxKZx99tnpd7/7Xd6/scznn3+e/vCHP+TvSLxPXbWwsX3R/SCO9fis4zgoi2Mhjo34jEMcu3E8x3fj4IMPTr17984XBeO4jO9CLF8W7x9hJo7h733ve/m3Zm4/v7LYTxHqKkUYbIya+tkds/Gdj8849n906YhlQuyfEMdVfHYRYuNCUlyMueKKK/JnUv7tK+K3IJp3x/ES/avj9ze+F3E8RECObah98W5uvpe1xfMRVuP37cgjj8yhtb6+l3Or6O/M1KlT8/rjuxDbGP8/jP9nxP8Po9xxTAINoAQwlwYNGhRVqqUXX3yx+rEBAwbkx84555zqx7766qtSp06dSq1atSrddttt1Y+/8847edmBAwd+a519+vQpTZ06tfrxCy64ID/+97//vfqxSZMmfatMhxxySKlz586lyZMn5/vTp08vrbLKKqWVVlopl6PSzJkzq/99+OGH5/XPjc8++6zUvn370g477FCaMWNG9eNXXHFFXsf1119f/VhsWzz2+eefz3adr732Wl7u6KOPnqsy3HvvvXn5s846q8bjP/rRj/J+fv/996sfi+WivJWPld/vD3/4Q/VjF154YX7so48++tb71bWv+/XrV1p11VWr748dO7bUtWvX0qabblr65ptvZrmv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ASSmmIzps8pThsV+mpu57udGlC0+3/iOxnEZLY4i5Mf0cXF8xnEYA6zNy/eyPj7H+vzORKuPWD7KFDXiEcDj/53x/7z4nQIaSCOMmA40synDYqqV2uqafibEdDExbUztdT755JOlgw8+uLT44ovn6Vf22WefGlPFhJjSZ7PNNsvTkS277LKlE088sXq6oNrTszz11FOl7bffPk9jE+Vbf/31a0yXFVOLHXnkkaWllloqT480Nz+HMUXYWmutVWrXrl2pR48epUMPPfRb05LN7ZRhlWJ6mpiOKLYp1h37YLvttivdeOONNabAiumbjj322Orl1lhjjTztV+WUPCHeP6ZEq2vfx+dV6cwzzywtt9xyeRqeyunD7rvvvrzPOnbsmKeQOv/886un2qo9xVgs+73vfS9/Losuumhpk002Kd16663Vz0+YMCFvX0w9Fa+f2+nDZjdlWF3T38SUYccff3xpmWWWyWXZYostSs8++2w+FuNWKaYbO+WUU/L0crEve/bsmadf++CDD+Y4ZVjtz7Z8DFful4kTJ+bPYIkllsjH8+67714aOnRoXu68886b47aPHj26dMABB5SWXHLJPP3beuut960po8pTEMUxUNvcTG01u31Z17IxZVxMExbHxGqrrZanQHvppZfm+FtQ/r5FOeP7E9sT37uYnqn21Ex/+9vfSltuuWVeT9xi+diPse8q36euYyi+ByussEKdU+tVTvEUx3L8NsVUcvFdi+kKTz/99NLXX39dvVxMexXTNcWUU1GOXXfdtTR8+PB5mjKsrs+lUl3bEcdW//798zSIUbaYEvHNN99c4CnD5uaYndVvdvjTn/6U91N8r+I3NY7H+P2Naebq47dgVtOiPfroo/l7XF5ffA5vv/12jWXmZRtrmzZtWunaa6/N388oSxwTse+/853v5M9vypQp8/y9nJfPsSG+Mx9++GGeTi2+s/Hdjd+kbbbZJu9boOG0iv80VMAHqC1GiY2ayRdffDHXMkFzFTWFUWt28803p3322aexiwMANBB9ugGgnkVT2NqiCWp0f6gcCBAAaP706QaAenbBBRfkfp/R/zKm1YpBmeIW/Swbe2oqAKBhCd0AUM9icKZHHnkkj/ocA9HF1Gsx+FPtaawAgOZPn24AAAAoiD7dAAAAUBChGwAAAArS7Pt0z5w5M40YMSJ17do1tWrVqrGLAwAAQDMQPbXHjx+fll122TxDyewWbDQDBw6M/uQ1br169ap+/ptvvikddthhpSWWWKLUpUuX0p577lkaNWrUPL3H8OHDv/Uebm5ubm5ubm5ubm5ubm6pHm6ROWen0Wu611lnnfToo49W34+pVcqOPfbY9MADD6Q777wzLbbYYumII45Ie+65Z3r66afnev1Rwx2GDx+eFl100XouPQAAAC3RuHHj8lSg5cw5K40euiNk9+zZ81uPf/311+m6665Lf/3rX9O2226bHxs0aFDq3bt3eu6559Jmm202V+svNymPwC10AwAAUJ/m1I250QdSe++993Ib+FVXXTXts88+adiwYfnxIUOGpGnTpqW+fftWL7vWWmvluU6fffbZWa5vypQp+YpD5Q0AAAAaQ6OG7k033TTdcMMN6aGHHkpXX311+uijj9JWW22VO6OPGjUqtW/fPnXr1q3Ga3r06JGfm5Vzzz03N0Uv36K6HwAAABpDozYv32mnnar/vf766+cQvtJKK6U77rgjderUab7WefLJJ6fjjjvuW+3sAQAAoKE1ep/uSlGrveaaa6b3338/bb/99mnq1Klp7NixNWq7R48eXWcf8LIOHTrk27yaMWNGbs4ONKx27dqlNm3aNHYxAACg+YfuCRMmpA8++CD9/Oc/T3369Mkn44MHD079+/fPzw8dOjT3+d58883rdW61aK4e4R5oHHFhLS6mzWkQCgAAaGoaNXSfcMIJadddd81NykeMGJEGDhyYa7z23nvv3B/7wAMPzE3Fl1hiiTzy+JFHHpkD99yOXD43yoF76aWXTp07d3bSDw0oLnpNmjQpffbZZ/n+Msss09hFAgCA5hO6P/300xywv/jii7TUUkulLbfcMk8HFv8Ol1xySWrdunWu6Y5Ryfv165euuuqqenv/aFJeDtzdu3evt/UCc688fkME7/guamoOAEBz0qoUVU3NWAykFrXmMe937Xm6J0+enEdMX3nlled74DZgwX3zzTfp448/Tqusskrq2LFjYxcHAAAWKGsuVPN0Lww0KYfG5TsIAEBzJXQDAABASxi9fGERI6SPGTOmwd5vySWXTCuuuGKh7xEDxsWo8M8880weFb6o0dpvuOGGdMwxxzTqaPDRY+KQQw5Jd911V/rqq6/SK6+8kjbccMPUEszN/j/ttNPSvffem1599dV8f//998/L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8wMHDkynnXZaagqinBFeX3311QVaz2abbZZD7jXXXFP9WPz70EMPTYMGDcpBuSz+/cEHH6T//Oc/qaG8+OKLqUuXLg32fgAAwMJD6K4largjcN/cu3fq3blz4e9XNWlS2reqKr/v3ITukSNHVv/79ttvT6eeemoaOnRo9WOLLLJI9b9LpVKaMWNGatu2eX/M22yzTbrnnntqPPb444+nFVZYIT3xxBM1QnfcHzBgQIOWb6mllmrQ9wMAABYe+nTPQgTujbp2Lfw2r8G+Z8+e1bfFFlss13yX77/zzjupa9eu6cEHH0x9+vRJHTp0SE899VSu2d1tt91Sjx49cij/7ne/mx599NEa650yZUr6zW9+k4NqvG711VdP1113XfXzb775Ztppp53y62M9P//5z2s0wZ84cWLab7/98vPLLLNMuuiii2a7HTfccEM6/fTT02uvvZa3IW7xWLm1QZQ31rXoooumn/zkJ2n06NGzDd1x4WHUqFHVjz355JPppJNOyiG77KOPPkqffPJJXj4MHz48r7tbt25piSWWyO/58ccfVy8fFyyOO+64/Hz37t3TiSeemC9kVJqb7Y7m5ZVN7GNb//znP6c99tgjde7cOa2xxhrpvvvuq/GauB+Pd+zYMZf3xhtvzK+Lpu0htmPXXXdNiy++eK5FX2edddI///nP2e5zAACg4QndzVCEzfPOOy9VVVWl9ddfP02YMCHtvPPOafDgwemVV15JO+64Yw5sEW7LIjjeeuut6fLLL8+v++Mf/1hdax5Bb9ttt03f+c530ksvvZQeeuihHIIjsJb9+te/zkH373//e/rXv/6Vw+7LL788yzLutdde6fjjj89hMWrv4xaPzZw5M4ffL7/8Mq/vkUceSR9++GF+bla22GKL1K5du1y7Hd5+++30zTffpAMPPDB98cUXOWyHeD5C7Oabb56mTZuW+vXrly9SRFPzp59+Om9v7JupU6fm5SNAx4WA66+/Pl+8iDLVrlGf1+0uiwsOsf9ef/31/Nnss88+ef0hyvujH/0o7b777vmixCGHHJJOOeWUGq8//PDD84WSf//73+mNN95I559/fo1WDgAAwMKhebc7bqHOOOOMtP3221ffj1rcDTbYoPr+mWeemcNj1KYeccQR6d1330133HFHDrh9+/bNy6y66qrVy19xxRU5cJ9zzjnVj0UQjVrxeO2yyy6ba8VvvvnmtN122+Xno2Z2+eWXn2UZO3XqlENiNH2PWvqyKEOEyAiesf5w00035XAefaOjlr62qOndZJNNcuDde++9898tt9wy19h/73vfy/dXWWWV/DcCdzweZY2AHzXO5X7y0f87arVjuR122CHXTp988slpzz33rO4n/vDDD1e/b1zMmNftLosm71HWEPs1Lna88MILOfTHBY9evXqlCy+8MD8f/46WBmeffXb16+OCSf/+/dN66633rc8LAABYeKjpboY23njjGvcjHJ5wwgmpd+/eOVRG2I3a7HJNdwxk1qZNm/SDH/ygzvVFbWvUEsfryre11lorPxdN1+MWtcObbrppjaAfYXFeRbkibJcDd1h77bVzueO52Y0YXm5KHn/jfohtqny83LQ8tun999/PNd3lbYoyT548OW/P119/nWvfK7cpLhBU7tsF2e5ogVB50SCa0X/22Wf5fjSVr31xIS4qVDrqqKPSWWedlWv5Y/C8qDEHAAAWPkJ3M1R7pOwI3FGzHTWq0ZQ6QnbUkJabUUet8+xEaI/m6PG6ytt7772Xvv/976eFQYTpqHX/73//m8N1+QJCOXRHQI4+3NFMvrxN0e+99jbFOn72s58VXt5oDl8patuj5n1u/fKXv8zN7qNvfbQMiIsBf/jDHwooKQAAsCCE7hYg+itHc+YYuCvCdjTnrhwwLB6LwBd9k+uy0UYbpbfeeisPCBYDrFXeIuCvttpqOUQ+//zz1a/56quvcoCdnfbt2+fByipFbXyE47iVRR/t6FceNd6zEs3IY31XXXVVrq2OQB2ixvjzzz/PzeHLzdDL2xQXDZZeeulvbVMMUBe3GBitcpumT5+ehgwZUn1/frd7TqKmPPrOV4qm9bVFa4Bf/epX6e67787946+99toFel8AAKD+Cd0tQIyCHcEsanKjWXXU5FbWqkaYjmm0fvGLX+R5s6M/ddQORz/v8qBdMchX9EGO8Be1xtG3+YADDsihOZpmx6BlMajYY489lvsfR8hv3Xr2h1e8b7xXlCtGQo+BwaJPeVwEiIHFYkCy6Occg7xFjXXtZvOVorY+5uuO2t5och3N5UME8crHyzXMsf4ll1wyD9oWtf/lbY5m259++mle5uijj84D0sU+iZHhDzvssOrRw8P8bvecxMBp8X4xmny5v315ZPdy//NjjjkmfwZR7thP0fw/LlgAAAALFwOpzWb+7ObyPhdffHEO1FEbHEEzwty4ceNqLHP11Ven//3f/83BMkb8jjnD436IgdKitjxeFwOMRTheaaWV8qBf5YAZg36Vm6FHP+moeY1+0bMTA4HFxYBoGh5hNgYyi9AaI4EfeeSRuel6rD/eZ26aTsd6YjTvcn/usgjsEUrL/blDTNUVy8Y2xUBp48ePT8stt1weEC36V4fYhujXHRckohyxD6O1QOV2zc92z0kM+nbXXXfldV122WV58LcYvfzQQw/Ng8CFuNgRF0PiAkGUN/bRJZdcskDvCwAA1L9WpdoTDzczES6jqXAEoXKYKotmyFFTGCEnppIKMbhY71690qTJkxusjJ07dkxVQ4fmoAt1iZHLY/T0ymb3zUld30UAFm7R0iq6c/XpMyR17bpRYxeHhdz48S+nIUP65K560c0PmnvWrKSmu5YIvhGAo7lzQ4naZ4GbStE3Pfqjd+/ePbcyiBr1mN4NAABoWoTuOkQAFoJpTDHIW0wJFn3p41iMpuYxZzgAANC0CN2wEIr+2fpoAwBA02f0cgAAACiI0A0AAAAFEbpTqjFnNdDwfAcBAGiuWnSf7vbt2+f5l0eMGJGWWmqpfL9Vq1aNXSxoMWLGwqlTp6bPP/88fxfjOwgAAM1Jiw7dcZIf8wKPHDkyB2+gcXTu3DmP0h7fSQAAaE5adOgOUbMWJ/vTp09PM2bMaOziQIvTpk2b1LZtW61MAABollp86A5xst+uXbt8AwAAgPqiLScAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABTFPNwBAQYYNG5bGjBmTmqOqqqr8d9Kk//tL09Ou3ZKpY8cVG7sY0OwJ3QAABQXu3r16pUmTJ6fmrKpq38YuAvOpbeuOaeNNhgreUDChGwCgAFHDHYH75t69U+/OnVNzM3HSpPR2VVXq0ql3at2m+W1fc/fRzEnpt5Oq0rRpY4RuKJjQDQBQoAjcG3Xtmpqb8Sml6Smlrm06pzZtm9/2NXvx4QENwkBqAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAADQ3EP3eeedl1q1apWOOeaY6scmT56cDj/88NS9e/e0yCKLpP79+6fRo0c3ajkBAACgSYXuF198Mf3xj39M66+/fo3Hjz322HT//fenO++8Mz355JNpxIgRac8992y0cgIAAECTCt0TJkxI++yzT7r22mvT4osvXv34119/na677rp08cUXp2233Tb16dMnDRo0KD3zzDPpueeea9QyAwAAQJMI3dF8fJdddkl9+/at8fiQIUPStGnTajy+1lprpRVXXDE9++yzs1zflClT0rhx42rcAAAAoDG0TY3otttuSy+//HJuXl7bqFGjUvv27VO3bt1qPN6jR4/83Kyce+656fTTTy+kvAAAANAkarqHDx+ejj766HTLLbekjh071tt6Tz755Nw0vXyL9wEAAIAWFbqj+fhnn32WNtpoo9S2bdt8i8HSLr/88vzvqNGeOnVqGjt2bI3XxejlPXv2nOV6O3TokBZddNEaNwAAAGhRzcu322679MYbb9R47IADDsj9tn/zm9+kFVZYIbVr1y4NHjw4TxUWhg4dmoYNG5Y233zzRio1AAAANIHQ3bVr17TuuuvWeKxLly55Tu7y4wceeGA67rjj0hJLLJFrrI888sgcuDfbbLNGKjUAAAA0kYHU5uSSSy5JrVu3zjXdMSp5v3790lVXXdXYxQIAAICmF7qfeOKJGvdjgLUrr7wy3wAAAKCpafR5ugEAAKC5EroBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAAzTF0X3311Wn99ddPiy66aL5tvvnm6cEHH6x+fvLkyenwww9P3bt3T4ssskjq379/Gj16dGMWGQAAAJpG6F5++eXTeeedl4YMGZJeeumltO2226bddtstvfXWW/n5Y489Nt1///3pzjvvTE8++WQaMWJE2nPPPRuzyAAAADDX2qZGtOuuu9a4f/bZZ+fa7+eeey4H8uuuuy799a9/zWE8DBo0KPXu3Ts/v9lmmzVSqQEAAKCJ9emeMWNGuu2229LEiRNzM/Oo/Z42bVrq27dv9TJrrbVWWnHFFdOzzz47y/VMmTIljRs3rsYNAAAAWmTofuONN3J/7Q4dOqRf/epX6Z577klrr712GjVqVGrfvn3q1q1bjeV79OiRn5uVc889Ny222GLVtxVWWKEBtgIAAAAWwtDdq1ev9Oqrr6bnn38+HXrooWnAgAHp7bffnu/1nXzyyenrr7+uvg0fPrxeywsAAABNok93iNrs1VdfPf+7T58+6cUXX0yXXXZZ2muvvdLUqVPT2LFja9R2x+jlPXv2nOX6osY8bgAAAJBaek13bTNnzsz9siOAt2vXLg0ePLj6uaFDh6Zhw4blPt8AAACwsGvUmu5oCr7TTjvlwdHGjx+fRyp/4okn0sMPP5z7Yx944IHpuOOOS0sssUSex/vII4/MgdvI5QAAADQFjRq6P/vss7TffvulkSNH5pC9/vrr58C9/fbb5+cvueSS1Lp169S/f/9c+92vX7901VVXNWaRAQAAoGmE7piHe3Y6duyYrrzyynwDAACApmah69MNAAAAzYXQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAMDCFLo//PDD+i8JAAAANDPzFbpXX331tM0226Sbb745TZ48uf5LBQAAAC01dL/88stp/fXXT8cdd1zq2bNnOuSQQ9ILL7xQ/6UDAACAlha6N9xww3TZZZelESNGpOuvvz6NHDkybbnllmnddddNF198cfr888/rv6QAAADQkgZSa9u2bdpzzz3TnXfemc4///z0/vvvpxNOOCGtsMIKab/99sthHAAAAFqqBQrdL730UjrssMPSMsssk2u4I3B/8MEH6ZFHHsm14Lvttlv9lRQAAACamLbz86II2IMGDUpDhw5NO++8c7rpppvy39at/y/Dr7LKKumGG25IK6+8cn2XFwAAAJp36L766qvTL37xi7T//vvnWu66LL300um6665b0PIBAABAywrd77333hyXad++fRowYMD8rB4AAABabp/uaFoeg6fVFo/deOON9VEuAAAAaJmh+9xzz01LLrlknU3KzznnnPooFwAAALTM0D1s2LA8WFptK620Un4OAAAAmM/QHTXar7/++rcef+2111L37t3ro1wAAADQMkP33nvvnY466qj0+OOPpxkzZuTbY489lo4++uj005/+tP5LCQAAAC1l9PIzzzwzffzxx2m77bZLbdv+3ypmzpyZ9ttvP326AQAAYEFCd0wHdvvtt+fwHU3KO3XqlNZbb73cpxsAAABYgNBdtuaaa+YbAAAAUE+hO/pw33DDDWnw4MHps88+y03LK0X/bgAAAGjp5it0x4BpEbp32WWXtO6666ZWrVrVf8kAAACgJYbu2267Ld1xxx1p5513rv8SAQAAQEueMiwGUlt99dXrvzQAAADQ0kP38ccfny677LJUKpXqv0QAAADQkpuXP/XUU+nxxx9PDz74YFpnnXVSu3btajx/991311f5AAAAoGWF7m7duqU99tij/ksDAAAALT10Dxo0qP5LAgAAAM3MfIXuMH369PTEE0+kDz74IP3sZz9LXbt2TSNGjEiLLrpoWmSRReq3lAAAQL2bNKmqQd+nqqph3o+mb8kll0wrrrhiarGh+5NPPkk77rhjGjZsWJoyZUrafvvtc+g+//zz8/1rrrmm/ksKAADUizEz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AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAAmmPo/ve//5123XXXtOyyy6ZWrVqle++9t8bzpVIpnXrqqWmZZZZJnTp1Sn379k3vvfdeo5UXAAAAmkzonjhxYtpggw3SlVdeWefzF1xwQbr88svTNddck55//vnUpUuX1K9fvzR58uQGLysAAADMq7apEe200075Vpeo5b700kvTb3/727Tbbrvlx2666abUo0ePXCP+05/+tIFLCwAAAM2kT/dHH32URo0alZuUly222GJp0003Tc8++2yjlg0AAAAW+pru2YnAHaJmu1LcLz9XlylTpuRb2bhx41JTMWzYsDRmzJjGLgbUackll0wrrrhiYxcDAACalIU2dM+vc889N51++umpqYnA3btXrzRJf3UWUp07dkxVQ4cK3gAA0BxCd8+ePfPf0aNH59HLy+L+hhtuOMvXnXzyyem4446rUdO9wgorpIVd1HBH4L65d+/Uu3Pnxi4O1FA1aVLat6oqH6dCNwAANIPQvcoqq+TgPXjw4OqQHQE6RjE/9NBDZ/m6Dh065FtTFYF7o65dG7sYAAAANPXQPWHChPT+++/XGDzt1VdfTUsssUSuTTvmmGPSWWedldZYY40cwn/3u9/lOb133333xiw2AAAALPyh+6WXXkrbbLNN9f1ys/ABAwakG264IZ144ol5Lu+DDz44jR07Nm255ZbpoYceSh07dmzEUgMAAEATCN1bb711no97Vlq1apXOOOOMfAMAAICmZqGdpxsAAACaOqEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBB2ha1YgAWHsOGDUtjxoxJzVFVVVX+O3HSpDS+sQvTxMU+BADql9AN0AICd69evdPkyc07UL1dVZWmN3YhmomZpVJq09iFAIBmQugGaOaihjsCd+/eN6fOnXun5mbSpKpUVbVv6tKpd+rapnNjF6dJmzb9yzR58kepVCo1dlEAoNkQugFaiAjcXbtulJqr1m06pzZtuzZ2MZq0GTObd2sIAGgMBlIDAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgIII3QAAAFAQoRsAAAAKInQDAABAQYRuAAAAKIjQDQAAAAURugEAAKAgQjcAAAAUROgGAACAggjdAAAAUBChGwAAAAoidAMAAEBBhG4AAAAoiNANAAAABRG6AQAAoCBCNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEHaFrVioPmpqqpq7CKwAJ/bpEnN8/NrrtsFADQPQjcwRyOnTs3NYvbdd9/GLgoLoKqqeX9+pdLUxi4CAMC3CN3AHI2dPj3NTCldu/LKaaPu3Ru7OMyjiZMmpberqlKXTr1T6zadU3Pz9PQv0lWTP06lmdMbuygAAN8idANzrVenTmmjrl0buxjMo/EppYijXdt0Tm3aNr/P76MZkxq7CAAAs2QgNQAAACiI0A0AAAAtOXRfeeWVaeWVV04dO3ZMm266aXrhhRcau0gAAADQ9EP37bffno477rg0cODA9PLLL6cNNtgg9evXL3322WeNXTQAAABo2qH74osvTgcddFA64IAD0tprr52uueaa1Llz53T99dc3dtEAAACg6YbuqVOnpiFDhqS+fftWP9a6det8/9lnn23UsgEAAECTnjJszJgxacaMGalHjx41Ho/777zzTp2vmTJlSr6Vff311/nvuHHj0sJswoQJ+e+Q8ePThBkzGrs4UEPVxIn576sTJ6bS2LGNXRzm0aRJk1L8Ynac9nlqMz0mEGtePpz+f7/zb03/Kn1T8vu5IKbPGJfi/6Adpo1JbWf+3/ee+dfcj03HS9PW0Men44V58eGMcdXnMAtzjiuXrVQqzXa5VqU5LdGIRowYkZZbbrn0zDPPpM0337z68RNPPDE9+eST6fnnn//Wa0477bR0+umnN3BJAQAAaImGDx+ell9++aZZ073kkkumNm3apNGjR9d4PO737NmzztecfPLJeeC1spkzZ6Yvv/wyde/ePbVq1SotzFdJVlhhhfyBLbrooo1dHJoxxxoNyfFGQ3Gs0VAcazQkx9vCLeqvx48fn5ZddtnZLrdQh+727dunPn36pMGDB6fdd9+9OkTH/SOOOKLO13To0CHfKnXr1i01FfFl8oWiITjWaEiONxqKY42G4lijITneFl6LLbbYHJdZqEN3iFrrAQMGpI033jhtsskm6dJLL00TJ07Mo5kDAADAwmyhD9177bVX+vzzz9Opp56aRo0alTbccMP00EMPfWtwNQAAAFjYLPShO0RT8lk1J28uokn8wIEDv9U0HuqbY42G5HijoTjWaCiONRqS4615WKhHLwcAAICmrHVjFwAAAACaK6EbAAAACiJ0AwAAQEGE7oJceeWVaeWVV04dO3ZMm266aXrhhRdmu/ydd96Z1lprrbz8euutl/75z3/WeD663scI7ssss0zq1KlT6tu3b3rvvfcK3gpa6vG2//77p1atWtW47bjjjgVvBc3tWHvrrbdS//798/JxDMWUjwu6TlqW+j7eTjvttG/9tsVvIczLsXbttdemrbbaKi2++OL5FudktZd33kZDHWvO2ZoGobsAt99+e55fPEYafPnll9MGG2yQ+vXrlz777LM6l3/mmWfS3nvvnQ488MD0yiuvpN133z3f3nzzzeplLrjggnT55Zena665Jj3//POpS5cueZ2TJ09uwC2jpRxvIX6wR44cWX279dZbG2iLaC7H2qRJk9Kqq66azjvvvNSzZ896WSctRxHHW1hnnXVq/LY99dRTBW4FzfFYe+KJJ/L/Rx9//PH07LPPphVWWCHtsMMO6b///W/1Ms7baKhjLThnawJi9HLq1yabbFI6/PDDq+/PmDGjtOyyy5bOPffcOpf/yU9+Utpll11qPLbpppuWDjnkkPzvmTNnlnr27Fm68MILq58fO3ZsqUOHDqVbb721sO2gZR5vYcCAAaXddtutwFLTEo61SiuttFLpkksuqdd10rwVcbwNHDiwtMEGG9R7WWnaFvR3aPr06aWuXbuWbrzxxnzfeRsNdawF52xNg5ruejZ16tQ0ZMiQ3PyjrHXr1vl+XKGqSzxeuXyIq17l5T/66KM0atSoGssstthiuUnKrNZJy1DE8VZ5dXXppZdOvXr1Soceemj64osvCtoKmuux1hjrpHko8tiIJr7LLrtsrhXfZ5990rBhw+qhxLTkYy1aWUybNi0tscQS+b7zNhrqWCtzzrbwE7rr2ZgxY9KMGTNSjx49ajwe9+MHuC7x+OyWL/+dl3XSMhRxvJWbKd10001p8ODB6fzzz09PPvlk2mmnnfJ70TLNz7HWGOukeSjq2IjQc8MNN6SHHnooXX311TkcRX/J8ePH10OpaanH2m9+85t8Iaccppy30VDHWnDO1jS0bewCAAufn/70p9X/joHW1l9//bTaaqvlK6nbbbddo5YNYH7FiWhZ/K5FCF9ppZXSHXfckce5gHkVYwjcdttt+f+PMTAWNPSx5pytaVDTXc+WXHLJ1KZNmzR69Ogaj8f9WQ3sEo/Pbvny33lZJy1DEcdbXaIZZrzX+++/X08lpyUca42xTpqHhjo2unXrltZcc02/bS3Yghxrv//973MQ+te//pWDTpnzNhrqWKuLc7aFk9Bdz9q3b5/69OmTm3iUzZw5M9/ffPPN63xNPF65fHjkkUeql19llVXyl7FymXHjxuXRMGe1TlqGIo63unz66ae5f1BMfULLND/HWmOsk+ahoY6NCRMmpA8++MBvWws2v8dajE5+5pln5q4KG2+8cY3nnLfRUMdaXZyzLaQaeyS35ui2227LI1TecMMNpbfffrt08MEHl7p161YaNWpUfv7nP/956aSTTqpe/umnny61bdu29Pvf/75UVVWVR1dt165d6Y033qhe5rzzzsvr+Pvf/156/fXX8yiFq6yySumbb75plG2k+R5v48ePL51wwgmlZ599tvTRRx+VHn300dJGG21UWmONNUqTJ09utO2k6R1rU6ZMKb3yyiv5tswyy+TjKv793nvvzfU6abmKON6OP/740hNPPJF/2+K3sG/fvqUll1yy9NlnnzXKNtI0j7U4J2vfvn3prrvuKo0cObL6Fv//rFzGeRtFH2vO2ZoOobsgf/jDH0orrrhi/qLE9ADPPfdc9XM/+MEP8vD+le64447SmmuumZdfZ511Sg888ECN52P6id/97nelHj165C/rdtttVxo6dGiDbQ8t53ibNGlSaYcddigttdRSOYzH1DsHHXSQEMQ8H2txAhDXdmvfYrm5XSctW30fb3vttVcO5LG+5ZZbLt9///33G3y7aNrHWvx/sa5jLS5ilzlvoyGONedsTUer+E9j17YDAABAc6RPNwAAABRE6AYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3ADRDrVq1Svfee29jFyONGjUqbb/99qlLly6pW7dujV0cAGhwQjcA/D/7779/Dqtxa9++fVp99dXTGWeckaZPn54WVqeddlracMMNv/X4yJEj00477ZQa2yWXXJLL8uqrr6Z33323sYsDAA2ubcO/JQAsvHbcccc0aNCgNGXKlPTPf/4zHX744aldu3bp5JNP/tayU6dOzeG8MZRKpTRjxoxZPt+zZ8+0MPjggw9Snz590hprrNHYRQGARqGmGwAqdOjQIQfWlVZaKR166KGpb9++6b777quuCd99993T2WefnZZddtnUq1ev/Pgbb7yRtt1229SpU6fUvXv3dPDBB6cJEyZUr7P8utNPPz0ttdRSadFFF02/+tWvcmgvi5B/1FFHpaWXXjp17NgxbbnllunFF1+sfv6JJ57INfAPPvhgDrFRzptvvjmv87XXXquuob/hhhvqbF4+t2X8/e9/n5ZZZpm8TFxwmDZt2mz319VXX51WW221fPEh9sdf/vKX6udWXnnl9Le//S3ddNNNuTzxHrNy/fXXp3XWWSdvV7z/EUccUf3cxRdfnNZbb73cRH2FFVZIhx12WI2yf/LJJ2nXXXdNiy++eF4m1hMXTMrefPPNXOu/yCKLpB49eqSf//znacyYMdXP33XXXXn95X0Tn/nEiRNnu90AMLeEbgCYjQhileF48ODBaejQoemRRx5J//jHP3I469evXw58EZLvvPPO9Oijj9YIjeXXVVVV5fB86623prvvvjsH5rITTzwxB9Qbb7wxvfzyy7lpe6z3yy+/rLGek046KZ133nl5XdFX+vjjj88hM5pwx22vvfb61jbMbRkff/zxXDMdf6McEeDLIb4u99xzTzr66KNzGSLYHnLIIemAAw7Irw/xXtFy4Cc/+Uku22WXXTbL4B4BPy4ExMWBuMgR21/WunXrdPnll6e33norl+uxxx7L+6ssXhsXLf7973/n159//vk5YIexY8fmiw3f+c530ksvvZQeeuihNHr06FymEOXae++90y9+8Yvqz2fPPffMLQkAoF6UAIBswIABpd122y3/e+bMmaVHHnmk1KFDh9IJJ5xQ/XyPHj1KU6ZMqX7Nn/70p9Liiy9emjBhQvVjDzzwQKl169alUaNGVb9uiSWWKE2cOLF6mauvvrq0yCKLlGbMmJFf265du9Itt9xS/fzUqVNLyy67bOmCCy7I9x9//PFIgaV77723RpkHDhxY2mCDDb61LbHsPffcM09lXGmllUrTp0+vXubHP/5xaa+99prl/vre975XOuigg2o8Fq/Zeeedq+/H/ox1z05s5ymnnFKaW3feeWepe/fu1ffXW2+90mmnnVbnsmeeeWZphx12qPHY8OHD8/4ZOnRoaciQIfnfH3/88Vy/PwDMCzXdAFAhaq+jljSaeEeT5Kg5jsHKyqIZcmU/7qgd3WCDDXKz5rItttgizZw5M9eIl8UynTt3rr6/+eab5ybSw4cPz7XL0Yw7XlcW/cg32WSTvP5KG2+88Txv09yWMWrM27RpU30/mnl/9tlns11vZZnL661d5tmJ9Y8YMSJtt912s1wmauXj+eWWWy517do1Nw//4osv0qRJk/Lz0Sz/rLPOyu89cODA9Prrr1e/NpreR817fKbl21prrZWfi/0e+yXWHZ/rj3/843Tttdemr776aq7LDwBzInQDQIVtttkmj7T93nvvpW+++SY3Z64Mq5X/bgxFvn8E/UrRDzuCedHN92fn448/Tj/84Q/T+uuvn5vfDxkyJF155ZX5uXKz/1/+8pfpww8/zGE8mpfHhYk//OEP+bm4sBH9veMzrbzF5/v9738/X2SIrgLRV37ttdfOr4u+6R999FGh2w1AyyF0A0CtUBv9iVdcccXUtu2cJ/no3bt3rk2tHHjr6aefzv2QywOthVgmQnzZc889l2tdY2Cw8kBk8bqyqPmOPtERBGcnXje7UcznpYzzKtZbWebyeudU5kpRcx0DrkWf97pEyI7gf9FFF6XNNtssrbnmmrlmvLbYjzE4XfSVjz7mUWMdNtpoo9wXPN4jPtfKW/kCRlxciFry6GP/yiuv5H0a/dUBoD4I3QCwAPbZZ5/cFH3AgAF5MLFoynzkkUfmWtcYKbssamUPPPDA9Pbbb+eRtaMZdAxkFsE3wl+MlP7rX/86D/QVyxx00EG5+XS8ZnYiTEatbNTexojcMaDY/JZxXkV5Y6C1GAgtao5jlPEIvSeccMI8rSea70eojsHSYj0xkFy5pjrCcVyAiPtRmx2jo19zzTU1Xn/MMcekhx9+OO+HeG1sX1wQKA+yFoPRxWBpcREjmpTHsjHgW1yseP7559M555yTB1kbNmxYLv/nn39e/XoAWFBCNwAsgOinHSEugt13v/vd9KMf/Sj3Eb7iiitqLBePxVzV0aQ5+on/z//8T42+4jEief/+/XMQjtrZ999/P683RhyfnXhNjBAezeJjOrIYGX1+yzivYoqxGJE8phmL/uB//OMf8xznW2+99TytJy4GXHrppemqq67K64nm5BG+Q/S5jjAfI5Kvu+666ZZbbknnnntujddHeI5wHUE59kXUhse6QkztFrXvscwOO+yQ+25HSO/WrVu+4BHTt8Wo5zvvvHN+3W9/+9t8ASD68wNAfWgVo6nVy5oAgDrF/NQxdVXlvNkAQMugphsAAAAKInQDAABAQTQvBwAAgIKo6QYAAICCCN0AAABQEKEbAAAACiJ0AwAAQEGEbgAAACiI0A0AAAAFEboBAACgIEI3AAAAFEToBgAAgFSM/w/qpmjveEEAzQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Import necessary libraries\n", "import pandas as pd\n", @@ -130,8 +175,9 @@ "\n", " return p_wedding_infections, p_wedding_traces\n", "\n", - "# Run the simulation 1000 times\n", - "results = [simulate_event(m) for m in range(1000)]\n", + "# Run the simulation 100 times\n", + "np.random.seed(123) # For reproducibility\n", + "results = [simulate_event(m) for m in range(100)]\n", "props_df = pd.DataFrame(results, columns=[\"Infections\", \"Traces\"])\n", "\n", "# Plotting the results\n", @@ -207,7 +253,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.0" + "version": "3.11.9" } }, "nbformat": 4,