diff --git a/HW02/posterior vs prior.png b/HW02/posterior vs prior.png new file mode 100644 index 0000000..252fbe1 Binary files /dev/null and b/HW02/posterior vs prior.png differ diff --git a/HW02/posterior vs sensitivity.png b/HW02/posterior vs sensitivity.png new file mode 100644 index 0000000..36b38f8 Binary files /dev/null and b/HW02/posterior vs sensitivity.png differ diff --git a/HW02/posterior vs specifity.png b/HW02/posterior vs specifity.png new file mode 100644 index 0000000..fc68109 Binary files /dev/null and b/HW02/posterior vs specifity.png differ diff --git a/HW03/hw3.ipynb b/HW03/hw3.ipynb new file mode 100644 index 0000000..7c576c9 --- /dev/null +++ b/HW03/hw3.ipynb @@ -0,0 +1,123 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## HW3 Problem 3" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'numpy'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "Cell \u001b[1;32mIn[1], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnumpy\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mnp\u001b[39;00m\n\u001b[0;32m 2\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mplt\u001b[39;00m\n\u001b[0;32m 4\u001b[0m \u001b[38;5;66;03m# Baseline parameters\u001b[39;00m\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'numpy'" + ] + } + ], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Baseline parameters\n", + "a = 2.0\n", + "beta = 0.5\n", + "tau = 0.5\n", + "scale = 1.0\n", + "max_time = 10.0\n", + "dt = 1e-3\n", + "num_sims = 2000\n", + "\n", + "# Vary drift rate\n", + "v_values = np.linspace(0.5, 1.5, 25)\n", + "mean_rt_upper = []\n", + "mean_rt_lower = []\n", + "\n", + "for v in v_values:\n", + " data = simulate_diffusion_n(num_sims, v, a, beta, tau, dt, scale, max_time)\n", + " mean_rt_upper.append(data[data[:, 1] == 1, 0].mean())\n", + " mean_rt_lower.append(data[data[:, 1] == 0, 0].mean())\n", + "\n", + "# Plot results\n", + "plt.figure(figsize=(8, 6))\n", + "plt.plot(v_values, mean_rt_upper, label='Upper Boundary (Correct)', color='maroon')\n", + "plt.plot(v_values, mean_rt_lower, label='Lower Boundary (Incorrect)', color='gray')\n", + "plt.xlabel('Drift Rate (v)')\n", + "plt.ylabel('Mean Response Time (s)')\n", + "plt.legend()\n", + "plt.title('Effect of Drift Rate on Mean RTs')\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Vary boundary separation (a)\n", + "a_values = np.linspace(1.0, 3.0, 25)\n", + "mean_rt_upper = []\n", + "mean_rt_lower = []\n", + "std_rt_upper = []\n", + "std_rt_lower = []\n", + "\n", + "for a in a_values:\n", + " data = simulate_diffusion_n(num_sims, v, a, beta, tau, dt, scale, max_time)\n", + " mean_rt_upper.append(data[data[:, 1] == 1, 0].mean())\n", + " mean_rt_lower.append(data[data[:, 1] == 0, 0].mean())\n", + " std_rt_upper.append(data[data[:, 1] == 1, 0].std())\n", + " std_rt_lower.append(data[data[:, 1] == 0, 0].std())\n", + "\n", + "# Plot results\n", + "plt.figure(figsize=(12, 6))\n", + "plt.subplot(1, 2, 1)\n", + "plt.plot(a_values, mean_rt_upper, label='Upper Boundary (Correct)', color='maroon')\n", + "plt.plot(a_values, mean_rt_lower, label='Lower Boundary (Incorrect)', color='gray')\n", + "plt.xlabel('Boundary Separation (a)')\n", + "plt.ylabel('Mean Response Time (s)')\n", + "plt.legend()\n", + "\n", + "plt.subplot(1, 2, 2)\n", + "plt.plot(a_values, std_rt_upper, label='Upper Boundary (Correct)', color='maroon')\n", + "plt.plot(a_values, std_rt_lower, label='Lower Boundary (Incorrect)', color='gray')\n", + "plt.xlabel('Boundary Separation (a)')\n", + "plt.ylabel('Standard Deviation of RT (s)')\n", + "plt.legend()\n", + "\n", + "plt.suptitle('Effect of Boundary Separation on RT Distributions')\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.2" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}