From d279da0e926324bf5b03243ba9a2d09130536890 Mon Sep 17 00:00:00 2001 From: Rachel Date: Sun, 11 Jan 2026 23:28:09 +0900 Subject: [PATCH 1/2] sampling assignment 1 --- .../a1_sampling_and_reproducibility.ipynb | 38 +++++++++++++++---- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb index 11852458..531c4c86 100644 --- a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb +++ b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb @@ -16,7 +16,11 @@ "cell_type": "markdown", "id": "4ea73db3", "metadata": {}, - "source": [] + "source": [ + "Initially, simple random sampling without replacement is used to determine which individuals are infected, the function used here is np.random.choice. The model here indicates that 10% of individuals or 100 individuals within the population will be infection. Our initial sampling frame is the 1000 individuals within the community. \n", + "\n", + "Our second sampling occurs during primary contact tracing, where each infected individual (n=100) only has a 20% independent probability of being traced. At this stage, our sampling frame consists only of the infected individuals in the community (n=100). \n" + ] }, { "cell_type": "markdown", @@ -30,7 +34,9 @@ "cell_type": "markdown", "id": "4cf5d993", "metadata": {}, - "source": [] + "source": [ + "By increasing the number of repetitions, the simulation produces a more precise estimate of the expected outcome of the model, as random variation averages out across runs. According to the Central Limit Theorem, the sampling distribution of the estimated proportions becomes more tightly concentrated around the true model expectation as the number of simulations increases. Reducing the number of repetitions to 100 or 10 would result in greater variability, increased sensitivity to chance, and less reproducible results." + ] }, { "cell_type": "markdown", @@ -44,7 +50,9 @@ "cell_type": "markdown", "id": "77613cc3", "metadata": {}, - "source": [] + "source": [ + "A fixed random seed was added to ensure that the code would be reproducible since our model relies on the random number generation for two functions. " + ] }, { "cell_type": "markdown", @@ -56,10 +64,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "ab8587a0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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SvC+SpUqBf8fCAQsMzPT4uKiO5KcccYZ9sYbb4Tdt3DhQmvQoIF9/PHHYaFbtwcMGFCk5atVq1aRvl5pRJ9uAAAAoIRR4G6fmOj7paDBvm7dusFLlSpVXM23d/vnn3+2xMRE++CDD6xDhw5Wvnx5+/zzz13N7rnnnmt16tRxofyEE06w+fPnh6133759duutt7qgquc1bdrUnnnmmeDjP/30k/Xo0cM9X+u57LLLwprg79271y6//HL3eL169eyhhx7KczumT59ud999t/3www9uG3TRfV5rA5VX66pcubJdeOGFtnnz5jxDt048bNq0KXjfJ598YrfddpsL2Z41a9bYb7/95paX9evXu3VXrVrVqlev7l5z7dq1weV1wmLYsGHu8Ro1atgtt9ziTmSEys92q3l5aBN7bet//vMfO++88ywhIcGaNWtmb7/9dthzdFv3x8fHu/LOmDHDPU9N20Xbcc4551i1atVcLXqrVq3s/ffft9KK0A0AAACgyChs3nfffZacnGxt2rSxPXv2WM+ePW3BggW2dOlSO/vss11gU7j1KDi+9NJL9thjj7nnPfXUU8FacwW9M88804477jj79ttvbc6cOS4EK7B6br75Zhd033rrLZs7d64Lu999912uZbzooots+PDhLiyq9l4X3ZeVleXC719//eXWN2/ePPv111/dY7k5+eSTrWzZsq52W1asWGF///23DRw40LZt2+bCtuhxhdhOnTrZ/v37rXv37u4khZqaL1q0yG2v9k16erpbXgFaJwKeffZZd/JCZcpeo17Q7fbohIP2348//uiOTb9+/dz6ReU9//zzrXfv3u6kxLXXXmu333572PMHDx7sTpR8+umntmzZMrv//vvDWjmUNtHdlgMAAABAsTJmzBg766yzgrdVi9u2bdvg7bFjx7rwqNrUIUOG2C+//GKvvPKKC7hdu3Z1yxx11FHB5Z944gkXuMeNGxe8T0FUteJ6bv369V2t+MyZM61Lly7ucdXMHnnkkbmWsUKFCi4kqum7auk9KoNCpIKn1i/PPfecC+fqG61a+uxU03viiSe6wHvJJZe4686dO7sa+3/84x/udpMmTdy1ArfuV1kV8FXj7PWTV/9v1WpruW7durna6ZEjR1qfPn2C/cQ//PDD4OvqZEZBt9ujJu8qq2i/6mTH119/7UK/Tng0b97cHnjg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AAAAACjF4iwKTJw40a6++mq78sor3e0pU6bYe++9Z88++6zddtttkS4ekC/JycmRLkLU7MPU1OKxL4tLOQAAABA5JT50p6en25IlS2zkyJHB+2JjY61r1662ePHiiJYNyI+N6emuyUn//v0jXZSokZxcvPZlIJAe6SIAAAAgQkp86N66datlZmZanTp1wu7X7Z9//jnH5+zbt89dPDt37nTXu3btsuJqz5497nrJ7t22JzMz0sVBIVq8c6dlmdn1tWtb08TESBenREtLT7d169dbubK1LTamfKSLY8sz99gHmdvtp/Q/LTXz/3/noHBlZO4y7d3y+7daXNZe31/v14z//s1YnrHd/g7wfRxNx51jG73HnWMbvcecYxudfs38by5LTU0t1hnNK1sgEMhzuZjAwZYo5jZs2GBHHHGEffHFF9apU6fg/bfccot98skn9tVXXx3wnNGjR9vdd99dxCUFAAAAAESb9evX25FHHhm9Nd01a9a0MmXK2ObNm8Pu1+26devm+Bw1RdfAa56srCz766+/rEaNGhYTE2PF9SxKgwYN3AGtXLlypIuDIsJxL5047qUTx7104riXThz30onjHn1Uf717926rX79+nsuV+NBdrlw569Chgy1YsMB69+4dDNG6PWTIkByfU758eXcJVbVqVSsJ9AHlQ1r6cNxLJ4576cRxL5047qUTx7104rhHlypVqhx0mRIfukW11gMGDLDjjz/eTjzxRHvkkUds7969wdHMAQAAAACIhKgI3RdddJH9+eefdtddd9mmTZusXbt2NmfOnAMGVwMAAAAAoChFRegWNSXPrTl5NFBz+FGjRh3QLB7RjeNeOnHcSyeOe+nEcS+dOO6lE8e99Crxo5cDAAAAAFBcxUa6AAAAAAAARCtCNwAAAAAAPiF0AwAAAADgE0J3BD355JPWuHFji4+Pt44dO9rXX3+d5/KzZ8+2Fi1auOVbt25t77//ftjj6p6vEdzr1atnFSpUsK5du9rKlSt93gpE+rhfccUVFhMTE3Y5++yzfd4K+Hncly9fbn379nXL63hqGsTDXSei47iPHj36gM+7vh9Qco/71KlT7ZRTTrFq1aq5i/52Z1+ev++l75jztz36jvvrr7/upjeuWrWqVaxY0c229Pzzz4ctw2c9ehG6I+Tll19284trBMPvvvvO2rZta927d7ctW7bkuPwXX3xhl1xyiQ0cONCWLl1qvXv3dpeffvopuMyECRPssccesylTpthXX33lPtBaZ1paWhFuGYr6uIv+EG/cuDF4eemll4poi+DHcU9NTbWjjjrK7rvvPqtbt26hrBPRcdylVatWYZ/3zz//3MetgN/H/eOPP3bf8wsXLrTFixdbgwYNrFu3bvbHH38El+Hve+k75sLf9ug67tWrV7fbb7/dHfMff/zRrrzySnf58MMPg8vwWY9iGr0cRe/EE08MDB48OHg7MzMzUL9+/cD48eNzXP7CCy8M9OrVK+y+jh07Bq699lr3/6ysrEDdunUDDzzwQPDxHTt2BMqXLx946aWXfNsORPa4y4ABAwLnnnuuj6VGUR/3UI0aNQo8/PDDhbpOlNzjPmrUqEDbtm0LvawoPIf72czIyAgkJiYGZsyY4W7z9730HXPhb3vxVxh/h4877rjAHXfc4f7PZz26UdMdAenp6bZkyRLXZMQTGxvrbuvsV050f+jyojNf3vJr1qyxTZs2hS1TpUoV19Qlt3Wi5B/30LPmtWvXtubNm9ugQYNs27ZtPm0FiuK4R2KdKFx+HiM1Naxfv76rFe/Xr5+tW7euEEqM4nLc1eJh//79rlZM+Pte+o65h7/t0Xvc1Yx8wYIFlpKSYqeeeqq7j896dCN0R8DWrVstMzPT6tSpE3a/buvDlhPdn9fy3nVB1omSf9y95mfPPfec+/K+//777ZNPPrEePXq410LJPO6RWCcKl1/HSD++pk+fbnPmzLHJkye7H2nqG7p79+5CKDWKw3G/9dZb3UkV74c3f99L3zEX/rZH53HfuXOnVapUycqVK2e9evWyxx9/3M466yz3GJ/16BYX6QIAODwXX3xx8P8aaK1NmzZ29NFHuzPkXbp0iWjZABQu/ej26LOuEN6oUSN75ZVX3NgPKNnUn3/WrFnu+1sDM6H0HnP+tkenxMRE+/77723Pnj3uhIr6hKvV0umnnx7posFn1HRHQM2aNa1MmTK2efPmsPt1O7fBc3R/Xst71wVZJ0r+cc+Jvrz1WqtWrSqkkqOoj3sk1onCVVTHSKPgHnPMMXzeo+C4P/jggy6AzZ071wUsD3/fS98xzwl/26PjuKsJetOmTd3I5cOHD7fzzz/fxo8f7x7jsx7dCN0RoCYlHTp0cGe4PFlZWe52p06dcnyO7g9dXubNmxdcvkmTJu4DGbrMrl273MiHua0TJf+45+T33393/b403QRK5nGPxDpRuIrqGKm2ZPXq1XzeS/hx14jFY8eOdd0GNKVQKP6+l75jnhP+tkfnd7yes2/fPvd/PutRLtIjuZVWs2bNcqMRTp8+PbBixYrANddcE6hatWpg06ZN7vHLLrsscNtttwWXX7RoUSAuLi7w4IMPBpKTk90ItmXLlg0sW7YsuMx9993n1vHWW28FfvzxRzfqZZMmTQJ///13RLYR/h/33bt3B0aMGBFYvHhxYM2aNYH58+cH2rdvH2jWrFkgLS0tYtuJwzvu+/btCyxdutRd6tWr546x/r9y5cp8rxPRedyHDx8e+Pjjj93nXd8PXbt2DdSsWTOwZcuWiGwjDv+46293uXLlAq+++mpg48aNwYu+30OX4e976Tnm/G2PzuM+bty4wNy5cwOrV692y+u3nX7jTZ06NbgMn/XoReiOoMcffzzQsGFD98WraQe+/PLL4GOnnXaamy4i1CuvvBI45phj3PKtWrUKvPfee2GPa6qBO++8M1CnTh33JdClS5dASkpKkW0Piv64p6amBrp16xaoVauWC+OaZujqq68meJXw464fWTonmv2i5fK7TkTncb/oootcINf6jjjiCHd71apVRb5dKLzjru/tnI67TrJ6+Pteuo45f9uj87jffvvtgaZNmwbi4+MD1apVC3Tq1MkF91B81qNXjP6JdG07AAAAAADRiD7dAAAAAAD4hNANAAAAAIBPCN0AAAAAAPiE0A0AAAAAgE8I3QAAAAAA+ITQDQAAAACATwjdAAAAAAD4hNANAAAAAIBPCN0AAJQCMTEx9uabb0a6GLZp0yY766yzrGLFila1atVIFwcAAN8RugEAyMUVV1zhwqou5cqVs6ZNm9qYMWMsIyPDiqvRo0dbu3btDrh/48aN1qNHD4u0hx9+2JXl+++/t19++SXSxQEAwHdx/r8EAAAl19lnn23Tpk2zffv22fvvv2+DBw+2smXL2siRIw9YNj093YXzSAgEApaZmZnr43Xr1rXiYPXq1dahQwdr1qxZpIsCAECRoKYbAIA8lC9f3gXWRo0a2aBBg6xr16729ttvB2vCe/fubffee6/Vr1/fmjdv7u5ftmyZnXnmmVahQgWrUaOGXXPNNbZnz57gOr3n3X333VarVi2rXLmy/fvf/3ah3aOQf/3111vt2rUtPj7eOnfubN98803w8Y8//tjVwH/wwQcuxKqcM2fOdOv84YcfgjX006dPz7F5eX7L+OCDD1q9evXcMjrhsH///jz31+TJk+3oo492Jx+0P55//vngY40bN7bXXnvNnnvuOVcevUZunn32WWvVqpXbLr3+kCFDgo9NnDjRWrdu7ZqoN2jQwK677rqwsv/22292zjnnWLVq1dwyWo9OmHh++uknV+tfqVIlq1Onjl122WW2devW4OOvvvqqW7+3b3TM9+7dm+d2AwCQG0I3AAAFoCAWGo4XLFhgKSkpNm/ePHv33XddOOvevbsLfArJs2fPtvnz54eFRu95ycnJLjy/9NJL9vrrr7vA7LnllltcQJ0xY4Z99913rmm71vvXX3+Free2226z++67z61LfaWHDx/uQqaacOty0UUXHbAN+S3jwoULXc20rlUOBXgvxOfkjTfesBtuuMGVQcH22muvtSuvvNI9X/Raajlw4YUXurI9+uijuQZ3BXydCNDJAZ3k0PZ7YmNj7bHHHrPly5e7cn300Uduf3n0XJ20+PTTT93z77//fhewZceOHe5kw3HHHWfffvutzZkzxzZv3uzKJCrXJZdcYldddVXw+PTp08e1JAAA4JAEAABAjgYMGBA499xz3f+zsrIC8+bNC5QvXz4wYsSI4ON16tQJ7Nu3L/icp59+OlCtWrXAnj17gve99957gdjY2MCmTZuCz6tevXpg7969wWUmT54cqFSpUiAzM9M9t2zZsoEXXngh+Hh6enqgfv36gQkTJrjbCxcuVAoMvPnmm2FlHjVqVKBt27YHbIuWfeONNwpUxkaNGgUyMjKCy1xwwQWBiy66KNf99Y9//CNw9dVXh92n5/Ts2TN4W/tT686LtvP2228P5Nfs2bMDNWrUCN5u3bp1YPTo0TkuO3bs2EC3bt3C7lu/fr3bPykpKYElS5a4/69duzbfrw8AQF6o6QYAIA+qvVYtqZp4q0myao41WJlHzZBD+3GrdrRt27auWbPn5JNPtqysLFcj7tEyCQkJwdudOnVyTaTXr1/vapfVjFvP86gf+YknnujWH+r4448v8Dblt4yqMS9Tpkzwtpp5b9myJc/1hpbZW2/2MudF69+wYYN16dIl12VUK6/HjzjiCEtMTHTNw7dt22apqanucTXLv+eee9xrjxo1yn788cfgc9X0XjXvOqbepUWLFu4x7XftF61bx/WCCy6wqVOn2vbt2/NdfgAAsiN0AwCQhzPOOMONtL1y5Ur7+++/XXPm0LAa+v9I8PP1FfRDqR+2grnfzffzsnbtWvvnP/9pbdq0cc3vlyxZYk8++aR7zGv2/69//ct+/fVXF8bVvFwnJh5//HH3mE5sqL+3jmnoRcf31FNPdScZ1FVAfeVbtmzpnqe+6WvWrPF1uwEA0YvQDQDAQUKt+hM3bNjQ4uIOPulHUlKSq00NHXhr0aJFrh+yN9CaaBmFeM+XX37pal01MJg3EJme51HNt/pEKwjmRc/LaxTzgpSxoLTe0DJ76z1YmUOp5loDrqnPe04UshX8H3roITvppJPsmGOOcTXj2Wk/anA69ZVXH3PVWEv79u1dX3C9ho5r6MU7gaGTC6olVx/7pUuXun2q/uoAABwKQjcAAIWoX79+rin6gAED3GBiaso8dOhQV+uqkbI9qpUdOHCgrVixwo2srWbQGshMwVfhTyOl33zzzW6gLy1z9dVXu+bTek5eFCZVK6vaW43IrQHFDrWMBaXyaqA1DYSmmmONMq7QO2LEiAKtR833Fao1WJrWo4HkvJpqhWOdgNBt1WZrdPQpU6aEPf/GG2+0Dz/80O0HPVfbpxMC3iBrGoxOg6XpJIaalGtZDfimkxVfffWVjRs3zg2ytm7dOlf+P//8M/h8AAAKitANAEAhUj9thTgFuxNOOMHOP/9810f4iSeeCFtO92muajVpVj/x//mf/wnrK64Ryfv27euCsGpnV61a5darEcfzoudohHA1i9d0ZBoZ/VDLWFCaYkwjkmuaMfUHf+qpp9wc56effnqB1qOTAY888ohNmjTJrUfNyRW+RX2uFeY1Ivmxxx5rL7zwgo0fPz7s+QrPCtcKytoXqg3XukRTu6n2Xct069bN9d1WSK9atao74aHp2zTqec+ePd3z7rjjDncCQP35AQA4FDEaTe2QngkAAA6J5qfW1FWh82YDAIDoRE03AAAAAAA+IXQDAAAAAOATmpcDAAAAAOATaroBAAAAAPAJoRsAAAAAAJ8QugEAAAAA8AmhGwAAAAAAnxC6AQAAAADwCaEbAAAAAACfELoBAAAAAPAJoRsAAAAAAJ8QugEAAAAAMH/8P3UZlDXaRpvNAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "# Import necessary libraries\n", "import pandas as pd\n", @@ -80,6 +99,11 @@ "TRACE_SUCCESS = 0.20\n", "SECONDARY_TRACE_THRESHOLD = 2\n", "\n", + "\n", + "# Set a fixed random seed for reproducibility\n", + "RANDOM_SEED = 42\n", + "np.random.seed(RANDOM_SEED)\n", + "\n", "def simulate_event(m):\n", " \"\"\"\n", " Simulates the infection and tracing process for a series of events.\n", @@ -193,7 +217,7 @@ ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "sampling-env", "language": "python", "name": "python3" }, @@ -207,7 +231,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.0" + "version": "3.11.1" } }, "nbformat": 4, From 4ded41a557fbb5fa8236b8a751598c9099a7bd3f Mon Sep 17 00:00:00 2001 From: Rachel Date: Sun, 11 Jan 2026 23:30:53 +0900 Subject: [PATCH 2/2] is this the right branch? --- .../assignments/a1_sampling_and_reproducibility.ipynb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb index 531c4c86..b07478fa 100644 --- a/02_activities/assignments/a1_sampling_and_reproducibility.ipynb +++ b/02_activities/assignments/a1_sampling_and_reproducibility.ipynb @@ -19,7 +19,8 @@ "source": [ "Initially, simple random sampling without replacement is used to determine which individuals are infected, the function used here is np.random.choice. The model here indicates that 10% of individuals or 100 individuals within the population will be infection. Our initial sampling frame is the 1000 individuals within the community. \n", "\n", - "Our second sampling occurs during primary contact tracing, where each infected individual (n=100) only has a 20% independent probability of being traced. At this stage, our sampling frame consists only of the infected individuals in the community (n=100). \n" + "Our second sampling occurs during primary contact tracing, where each infected individual (n=100) only has a 20% independent probability of being traced. At this stage, our sampling frame consists only of the infected individuals in the community (n=100). \n", + "\n" ] }, {