{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Estimating biomarker ordering\n", "\n", ">The sampler for the biomarker ordering can be a bit tricker. The simplest way to do it might be to do a Metropolis-Hastings step where you select two indicies and propose swapping their order. Then you can work out the relative probabilities, evaluate and then accept/reject based on that. It's not the fastest sampler, but it is a lot more straightforward than some ways of doing it. \n", "\n", "In the following, we assume we know the actual $\\theta$ and $\\phi$ values. Other than those, we know nothing except for participants' observed biomarker values. And we want to estimate the current order in which different biomarkers are affected by the disease in question. " ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import pandas as pd \n", "import numpy as np \n", "import seaborn as sns\n", "import matplotlib.pyplot as plt \n", "from collections import Counter\n", "from scipy.stats import mode\n", "import math\n", "\n", "iterations = 20\n", "burn_in = 10\n", "thining = 2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We only have three columns: biomarker, participant, and measurement. " ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementk_jS_naffected_or_notDiseased
47171HIP-FCI5.059960101affectedTrue
92727FUS-FCI-12.250565410not_affectedTrue
17676ADAS-21.92547256not_affectedTrue
93838FUS-FCI-18.854919810not_affectedTrue
27373AB142.24881823not_affectedTrue
\n", "
" ], "text/plain": [ " participant biomarker measurement k_j S_n affected_or_not Diseased\n", "471 71 HIP-FCI 5.059960 10 1 affected True\n", "927 27 FUS-FCI -12.250565 4 10 not_affected True\n", "176 76 ADAS -21.925472 5 6 not_affected True\n", "938 38 FUS-FCI -18.854919 8 10 not_affected True\n", "273 73 AB 142.248818 2 3 not_affected True" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data = pd.read_csv('data/participant_data.csv')\n", "data['Diseased'] = data.apply(lambda row: row.k_j > 0, axis = 1)\n", "data.sample(5)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[89, 1, 35, 37, 10, 47, 79, 81, 82, 57]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "## These are the healthy participants (Participant ID)\n", "non_diseased_participants = list(set(data.loc[data.Diseased == False].participant))\n", "non_diseased_participants" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementDiseased
00MMSE26.983483True
11MMSE28.763620False
22MMSE24.600703True
33MMSE21.308678True
44MMSE28.993453True
\n", "
" ], "text/plain": [ " participant biomarker measurement Diseased\n", "0 0 MMSE 26.983483 True\n", "1 1 MMSE 28.763620 False\n", "2 2 MMSE 24.600703 True\n", "3 3 MMSE 21.308678 True\n", "4 4 MMSE 28.993453 True" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_we_have = data.drop(['k_j', 'S_n', 'affected_or_not'], axis = 1)\n", "data_we_have.head()" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
biomarkertheta_meantheta_stdphi_meanphi_std
0MMSE28.00.66666722.02.666667
1ADAS-6.01.333333-20.04.000000
2AB250.050.000000150.016.666667
3P-Tau-25.016.666667-50.033.333333
4HIP-FCI5.01.666667-5.06.666667
\n", "
" ], "text/plain": [ " biomarker theta_mean theta_std phi_mean phi_std\n", "0 MMSE 28.0 0.666667 22.0 2.666667\n", "1 ADAS -6.0 1.333333 -20.0 4.000000\n", "2 AB 250.0 50.000000 150.0 16.666667\n", "3 P-Tau -25.0 16.666667 -50.0 33.333333\n", "4 HIP-FCI 5.0 1.666667 -5.0 6.666667" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theta_phi = pd.read_csv('data/means_stds.csv')\n", "theta_phi.head()" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
biomarkertheta_meantheta_stdphi_meanphi_std
0MMSE27.7559481.00317021.2837491.945187
1ADAS-6.0876611.430131-19.6487113.750585
2AB275.36167330.902741170.61626630.538931
3P-Tau-70.91892419.061727-22.25128816.268739
4HIP-FCI4.7139471.997418-5.9427091.116409
5HIP-GMI0.6328030.1831410.0885580.189454
6AVLT-Sum42.2279098.51277420.0797256.590354
7PCC-FCI12.8233632.7959705.3453892.473848
8FUS-GMI0.6124430.0492970.4750200.049652
9FUS-FCI-13.0178993.383802-23.4737943.338935
\n", "
" ], "text/plain": [ " biomarker theta_mean theta_std phi_mean phi_std\n", "0 MMSE 27.755948 1.003170 21.283749 1.945187\n", "1 ADAS -6.087661 1.430131 -19.648711 3.750585\n", "2 AB 275.361673 30.902741 170.616266 30.538931\n", "3 P-Tau -70.918924 19.061727 -22.251288 16.268739\n", "4 HIP-FCI 4.713947 1.997418 -5.942709 1.116409\n", "5 HIP-GMI 0.632803 0.183141 0.088558 0.189454\n", "6 AVLT-Sum 42.227909 8.512774 20.079725 6.590354\n", "7 PCC-FCI 12.823363 2.795970 5.345389 2.473848\n", "8 FUS-GMI 0.612443 0.049297 0.475020 0.049652\n", "9 FUS-FCI -13.017899 3.383802 -23.473794 3.338935" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "theta_phi_kmeans = pd.read_csv(\"data/estimate_means_stds_kmeans.csv\")\n", "theta_phi_kmeans" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "def fill_up_pdata(pdata, k_j):\n", " '''Fill up a single participant's data using k_j; basically add two columns: \n", " k_j and affected\n", " Note that this function assumes that pdata already has the S_n column\n", " \n", " Input:\n", " - pdata: a dataframe of ten biomarker values for a specific participant \n", " - k_j: a scalar\n", " '''\n", " data = pdata.copy()\n", " data['k_j'] = k_j\n", " data['affected'] = data.apply(lambda row: row.k_j >= row.S_n, axis = 1)\n", " return data " ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "def compute_single_measurement_likelihood(theta_phi, biomarker, affected, measurement):\n", " '''Computes the likelihood of the measurement value of a single biomarker\n", " We know the normal distribution defined by either theta or phi\n", " and we know the measurement. This will give us the probability\n", " of this given measurement value. \n", "\n", " input:\n", " - theta_phi: the dataframe containing theta and phi values for each biomarker\n", " - biomarker: an integer between 0 and 9 \n", " - affected: boolean \n", " - measurement: the observed value for a biomarker in a specific participant\n", "\n", " output: a scalar\n", " '''\n", " biomarker_params = theta_phi[theta_phi.biomarker == biomarker].reset_index()\n", " mu = biomarker_params['theta_mean'][0] if affected else biomarker_params['phi_mean'][0]\n", " std = biomarker_params['theta_std'][0] if affected else biomarker_params['phi_std'][0]\n", " var = std**2\n", " likelihood = np.exp(-(measurement - mu)**2/(2*var))/np.sqrt(2*np.pi*var)\n", " return likelihood" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def compute_likelihood(pdata, k_j, theta_phi):\n", " '''This implementes the formula of https://ebm-book2.vercel.app/distributions.html#known-k-j\n", " This function computes the likelihood of seeing this sequence of biomarker values for a specific participant\n", " '''\n", " data = fill_up_pdata(pdata, k_j)\n", " likelihood = 1\n", " for i, row in data.iterrows():\n", " biomarker = row['biomarker']\n", " measurement = row['measurement']\n", " affected = row['affected']\n", " likelihood *= compute_single_measurement_likelihood(\n", " theta_phi, biomarker, affected, measurement)\n", " return likelihood" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Testing\n", "\n", "The above functions can compute the likelihood of a participant's sequence of biomarker data, given that we know the exact ordering and we assume a `k_j`. Next, we will test those functions by selecting a specific participant. We compute the likelihood by trying all possible `k_j` and see whether the one with the highest likelihood is the real `k_j` in the original data. " ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementk_jS_naffected_or_notDiseased
015MMSE27.53581065affectedTrue
115ADAS-8.16045466affectedTrue
215AB286.56438563affectedTrue
315P-Tau-44.50735464affectedTrue
415HIP-FCI6.04100461affectedTrue
515HIP-GMI-0.54659667not_affectedTrue
615AVLT-Sum13.09229968not_affectedTrue
715PCC-FCI9.67710062affectedTrue
815FUS-GMI0.49185069not_affectedTrue
915FUS-FCI-22.175560610not_affectedTrue
\n", "
" ], "text/plain": [ " participant biomarker measurement k_j S_n affected_or_not Diseased\n", "0 15 MMSE 27.535810 6 5 affected True\n", "1 15 ADAS -8.160454 6 6 affected True\n", "2 15 AB 286.564385 6 3 affected True\n", "3 15 P-Tau -44.507354 6 4 affected True\n", "4 15 HIP-FCI 6.041004 6 1 affected True\n", "5 15 HIP-GMI -0.546596 6 7 not_affected True\n", "6 15 AVLT-Sum 13.092299 6 8 not_affected True\n", "7 15 PCC-FCI 9.677100 6 2 affected True\n", "8 15 FUS-GMI 0.491850 6 9 not_affected True\n", "9 15 FUS-FCI -22.175560 6 10 not_affected True" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "p = 15 # we chose this participant\n", "pdata = data[data.participant == p].reset_index(drop=True)\n", "pdata" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'MMSE': 5,\n", " 'ADAS': 6,\n", " 'AB': 3,\n", " 'P-Tau': 4,\n", " 'HIP-FCI': 1,\n", " 'HIP-GMI': 7,\n", " 'AVLT-Sum': 8,\n", " 'PCC-FCI': 2,\n", " 'FUS-GMI': 9,\n", " 'FUS-FCI': 10}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# ordering of biomarker affected by the disease\n", "# biomarker: disease stage\n", "# note that the value >= 1\n", "real_ordering_dic = dict(zip(pdata.biomarker, pdata.S_n))\n", "real_ordering_dic" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementDiseasedS_n
015MMSE27.535810True5
115ADAS-8.160454True6
215AB286.564385True3
315P-Tau-44.507354True4
415HIP-FCI6.041004True1
515HIP-GMI-0.546596True7
615AVLT-Sum13.092299True8
715PCC-FCI9.677100True2
815FUS-GMI0.491850True9
915FUS-FCI-22.175560True10
\n", "
" ], "text/plain": [ " participant biomarker measurement Diseased S_n\n", "0 15 MMSE 27.535810 True 5\n", "1 15 ADAS -8.160454 True 6\n", "2 15 AB 286.564385 True 3\n", "3 15 P-Tau -44.507354 True 4\n", "4 15 HIP-FCI 6.041004 True 1\n", "5 15 HIP-GMI -0.546596 True 7\n", "6 15 AVLT-Sum 13.092299 True 8\n", "7 15 PCC-FCI 9.677100 True 2\n", "8 15 FUS-GMI 0.491850 True 9\n", "9 15 FUS-FCI -22.175560 True 10" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# get the participant data without k_j, and affected or not\n", "pdata = data_we_have[data_we_have.participant == p].reset_index(drop=True)\n", "# obtain real ordering:\n", "pdata['S_n'] = pdata.apply(lambda row: real_ordering_dic[row['biomarker']], axis = 1)\n", "pdata" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# num_biomarkers = len(pdata.biomarker.unique())\n", "# for x in range(num_biomarkers):\n", "# print(x)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indexlikelihood
662.845056e-11
554.412444e-13
772.728393e-13
884.150520e-14
441.629684e-14
331.594610e-14
991.121727e-14
10102.732335e-17
221.647283e-28
118.743125e-29
006.740978e-30
\n", "
" ], "text/plain": [ " index likelihood\n", "6 6 2.845056e-11\n", "5 5 4.412444e-13\n", "7 7 2.728393e-13\n", "8 8 4.150520e-14\n", "4 4 1.629684e-14\n", "3 3 1.594610e-14\n", "9 9 1.121727e-14\n", "10 10 2.732335e-17\n", "2 2 1.647283e-28\n", "1 1 8.743125e-29\n", "0 0 6.740978e-30" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "num_biomarkers = len(pdata.biomarker.unique())\n", "# calculate likelihood for all possible k_j\n", "# note that k_j should be 0-10\n", "likelihood_list = [\n", " compute_likelihood(pdata=pdata, k_j=x, theta_phi=theta_phi) for x in range(num_biomarkers+1)]\n", "kjs = np.arange(11)\n", "dic = dict(zip(kjs, likelihood_list))\n", "df = pd.DataFrame.from_dict(dic, orient='index', columns=['likelihood']).reset_index()\n", "df.sort_values('likelihood', ascending=False)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "\n", "## Metropolis-Hastings Algorithm Implementation\n", "\n", "Next, we will implement the metropolis-hastings algorithm using the above functions. Note that we are using `theta_phi_kmeans` and average likelihood (so we do not need to estimate each participant's exact stage.)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "def average_all_likelihood(pdata, num_biomarkers, theta_phi):\n", " '''This is to compute https://ebm-book2.vercel.app/distributions.html#unknown-k-j\n", " '''\n", " return np.mean([compute_likelihood(pdata=pdata, k_j=x, theta_phi=theta_phi) for x in range(num_biomarkers+1)])" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "def compute_ln_likelihood_assuming_ordering(ordering_dic, data, num_participants, num_biomarkers, theta_phi):\n", " \"\"\"Compute the (ln version of) the likelihood of seeing all participants' data,\n", " assuming that we already know the ordering\n", " Inputs:\n", " - ordering: an array of ordering for biomarker 0-9\n", " - data: data_we_have\n", " - num_participants\n", " - num_biomarkers \n", " Outputs:\n", " - ln(likelihood)\n", " \"\"\"\n", " # fill up S_n column using the ordering dict\n", " # copy first in order not to change data_we_have\n", " filled_data = data.copy()\n", " filled_data['S_n'] = filled_data.apply(lambda row: ordering_dic[row['biomarker']], axis = 1)\n", " ln_likelihood = 0 \n", " for p in range(num_participants):\n", " pdata = filled_data[filled_data.participant == p].reset_index(drop=True)\n", " average_likelihood = average_all_likelihood(pdata, num_biomarkers, theta_phi)\n", " p_ln_likelihood = (\n", " # natural logarithm\n", " np.log(average_likelihood) \n", " if average_likelihood > 0\n", " # this is to avoid np.log(0)\n", " else np.log(average_likelihood + 1e-20)\n", " )\n", " ln_likelihood += p_ln_likelihood\n", " return ln_likelihood" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A brush up on log:\n", "\n", "$L = P1 \\cdot P2 \\cdot P3$\n", "\n", "$\\ln(L) = \\ln (P1 \\cdot P2 \\cdot P3) = \\ln(P1) + \\ln(P2) + \\ln(P3)$\n", "\n", "" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "def metropolis_hastings_average_likelihood(data, iterations, burn_in, thining, theta_phi):\n", " '''Implement the metropolis-hastings algorithm\n", " Inputs: \n", " - data: data_we_have\n", " - iterations: number of iterations\n", "\n", " Outputs:\n", " - best_order: a numpy array\n", " - best_likelihood: a scalar \n", " '''\n", " num_participants = len(data.participant.unique())\n", " num_biomarkers = len(data.biomarker.unique())\n", "\n", " all_dicts = []\n", "\n", " # initialize an ordering and likelihood\n", " # note that it should be a random permutation of numbers 1-10\n", " best_order = np.random.permutation(np.arange(1, num_biomarkers+1))\n", " biomarker_names = np.array(list(data.biomarker.unique()))\n", " biomarker_best_order_dic = dict(zip(biomarker_names, best_order))\n", "\n", " best_likelihood = -np.inf \n", " # best_order = np.array(list(real_ordering_dic.values()))\n", " # best_likelihood = compute_likelihood_based_on_ordering(\n", " # best_order, data, num_participants, num_biomarkers, theta_phi\n", " # )\n", " for _ in range(iterations):\n", " new_order = best_order.copy()\n", " # randomly select two indices\n", " a, b = np.random.choice(num_biomarkers, 2, replace=False)\n", " # swapping the order\n", " new_order[a], new_order[b] = new_order[b], new_order[a]\n", " biomarker_new_order_dic = dict(zip(biomarker_names, new_order))\n", " ln_likelihood = compute_ln_likelihood_assuming_ordering(\n", " biomarker_new_order_dic, data, num_participants, num_biomarkers, theta_phi)\n", " # if swapping results in higher likelihood, \n", " # update the likelihood and accept the new ordering \n", " if ln_likelihood > best_likelihood:\n", " best_likelihood = ln_likelihood \n", " biomarker_best_order_dic = biomarker_new_order_dic\n", " else: \n", " # ratio = likelihood/best_likelihood\n", " # np.exp(a - b) = np.exp(a)/np.exp(b)\n", " acceptance_ratio = np.exp(ln_likelihood - best_likelihood)\n", " random_number = np.random.rand()\n", " if random_number < acceptance_ratio:\n", " best_likelihood = ln_likelihood\n", " biomarker_best_order_dic = biomarker_new_order_dic\n", "\n", " if _ >= burn_in and _ % thining == 0:\n", " all_dicts.append(biomarker_new_order_dic)\n", " \n", " if (_+1) % 10 == 0:\n", " print(f\"iteration {_ + 1} done\")\n", "\n", " return biomarker_best_order_dic, best_likelihood, all_dicts" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "When `ln_likelihood` is smaller than `best_likelihood`, we still conditionally accept `ln_likelihood`. This is \"to allow exploration of the parameter space. This step is crucial in MCMC algorithms to avoid getting stuck in local maxima and to ensure that the sampling covers the entire distribution space adequately\".\n", "\n", "Note that the condition is `if random_number < acceptance_ratio`. This `<` cannot be changed to `>`. Why?\n", "\n", "When the `accepatance_ratio` is small, then it indicates `ln_likelihood` is small. We do not want to accept this `ln_likelihood` in this case. Because `ln_likelihood` is small, `random_number < acceptance_ratio` is less likely than `random_number > acceptance_ratio`. That's why we use `<` rather than `>`. " ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iteration 10 done\n", "iteration 20 done\n", "iteration 30 done\n", "iteration 40 done\n", "iteration 50 done\n", "iteration 60 done\n", "iteration 70 done\n", "iteration 80 done\n", "iteration 90 done\n", "iteration 100 done\n" ] } ], "source": [ "biomarker_best_order_dic, best_likelihood, all_dicts = metropolis_hastings_average_likelihood(\n", " data_we_have, iterations, burn_in, thining, theta_phi = theta_phi_kmeans)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [], "source": [ "def get_biomarker_stage_probability(df, num_biomarkers):\n", " # Create an empty list to hold dictionaries\n", " dict_list = []\n", "\n", " # for each biomarker\n", " for col in df.columns:\n", " dic = {\"biomarker\": col}\n", " # get the frequency of biomarkers\n", " stage_counts = df[col].value_counts()\n", " # for each stage\n", " for i in range(1, num_biomarkers + 1):\n", " # get stage:prabability\n", " dic[i] = stage_counts.get(i, 0)/len(df)\n", " dict_list.append(dic)\n", "\n", " dff = pd.DataFrame(dict_list)\n", " dff.set_index(dff.columns[0], inplace=True)\n", " return dff " ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df = pd.DataFrame(all_dicts)\n", "biomarker_stage_probability_df = get_biomarker_stage_probability(df, num_biomarkers)\n", "sns.heatmap(biomarker_stage_probability_df, annot=True, cmap=\"Greys\", linewidths=.5, cbar_kws={'label': 'Probability'})\n", "plt.xlabel('Stage')\n", "plt.ylabel('Biomarker')\n", "plt.title('Heatmap of Biomarkers Involvement in Stages')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'MMSE': 5,\n", " 'ADAS': 6,\n", " 'AB': 3,\n", " 'P-Tau': 4,\n", " 'HIP-FCI': 1,\n", " 'HIP-GMI': 7,\n", " 'AVLT-Sum': 8,\n", " 'PCC-FCI': 2,\n", " 'FUS-GMI': 9,\n", " 'FUS-FCI': 10}" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "real_ordering_dic" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Estimating Participant Stages\n", "\n", "The above algorithm did not specifically estimate participant stages. It used the average likelihood. But what if we want to know the exact participant stages. " ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def metropolis_hastings_with_theta_phi_kmeans(\n", " data_we_have, iterations, theta_phi, non_diseased_participants,\n", " burn_in, thining, \n", " ):\n", " '''Implement the metropolis-hastings algorithm\n", " Inputs: \n", " - data: data_we_have\n", " - iterations: number of iterations\n", "\n", " Outputs:\n", " - best_order: a numpy array\n", " - best_likelihood: a scalar \n", " '''\n", " num_participants = len(data_we_have.participant.unique())\n", " num_biomarkers = len(data_we_have.biomarker.unique())\n", " num_stages = num_biomarkers + 1\n", "\n", " all_dicts = []\n", "\n", " # initialize an ordering and likelihood\n", " # note that it should be a random permutation of numbers 1-10\n", " best_order = np.random.permutation(np.arange(1, num_stages))\n", " biomarker_names = np.array(list(data_we_have.biomarker.unique()))\n", " biomarker_best_order_dic = dict(zip(biomarker_names, best_order))\n", "\n", " best_likelihood = -np.inf\n", "\n", " # initialize participant_stages \n", " # note that high should be num_stages; otherwise, no participants will be in the stage of 10\n", " participant_stages = np.random.randint(low = 0, high = num_stages, size = num_participants)\n", " participant_stages[non_diseased_participants] = 0\n", "\n", " for _ in range(iterations):\n", " new_order = best_order.copy()\n", " # randomly select two indices\n", " a, b = np.random.choice(num_biomarkers, 2, replace=False)\n", " # swapping the order\n", " new_order[a], new_order[b] = new_order[b], new_order[a]\n", " # biomarker - order dict\n", " ordering_dic = dict(zip(biomarker_names, new_order))\n", " # fill up S_n column using the ordering dict\n", " # copy first in order not to change data_we_have\n", " data = data_we_have.copy()\n", " # now data_we_have has S_n column\n", " data['S_n'] = data.apply(lambda row: ordering_dic[row['biomarker']], axis = 1)\n", "\n", " all_participant_ln_likelihood = 0 \n", " for p in range(num_participants):\n", " # copy participant_stages \n", " participant_stages_copy = participant_stages.copy()\n", " # this participant data\n", " pdata = data[data.participant == p].reset_index(drop=True)\n", "\n", " \"\"\"If this participant is not diseased (i.e., if we know k_j is equal to 0)\n", " We still need to compute the likelihood of this participant seeing this sequence of biomarker data\n", " but we do not need to estimate k_j like below\n", "\n", " We still need to compute the likelihood because we need to add it to all_participant_ln_likelihood\n", " \"\"\"\n", " if p in non_diseased_participants:\n", " # the following will update pdata's kj and affect columns\n", " this_participant_likelihood = compute_likelihood(\n", " pdata, k_j = 0, theta_phi = theta_phi)\n", " this_participant_ln_likelihood = np.log(this_participant_likelihood)\n", " else:\n", " # initiaze stage_likelihood\n", " stage_likelihood = np.zeros(num_stages)\n", " for k_j in range(num_stages):\n", " # even though data above has everything, it is filled up by random stages\n", " # we don't like it and want to know the true k_j. All the following is to update participant_stages\n", "\n", " # likelihood for this participant to have this specific sequence of biomarker values\n", " participant_likelihood = compute_likelihood(pdata, k_j, theta_phi)\n", "\n", " # update each stage likelihood for this participant\n", " stage_likelihood[k_j] = participant_likelihood\n", " likelihood_sum = np.sum(stage_likelihood)\n", " normalized_stage_likelihood = [l/likelihood_sum for l in stage_likelihood]\n", " sampled_stage = np.random.choice(np.arange(num_stages), p = normalized_stage_likelihood)\n", " participant_stages_copy[p] = sampled_stage \n", "\n", " # if participant is at sample_stage, \n", " # what is the likelihood of this participant having this sequence of biomarker data:\n", " this_participant_likelihood = stage_likelihood[sampled_stage]\n", "\n", " # then, update all_participant_likelihood\n", " if this_participant_likelihood == 0:\n", " this_participant_ln_likelihood = np.log(this_participant_likelihood + 1e20)\n", " else:\n", " this_participant_ln_likelihood = np.log(this_participant_likelihood)\n", " \"\"\"\n", " All the codes in between are calculating this_participant_ln_likelihood. If we already know kj=0, then\n", " it's very simple. If kj is unknown, we need to calculate the likelihood of seeing this sequence of biomarker\n", " data at different stages, and get the relative likelihood before we get a sampled stage. Then we calculate\n", " this_participant_ln_likelihood again. \n", " \"\"\"\n", " all_participant_ln_likelihood += this_participant_ln_likelihood\n", " \n", " \"\"\"\n", " The key to both `metropolis_hastings_with_theta_phi_kmeans` and `metropolis_hastings` is to \n", " compare best_likelihood and the likelihood of all participants having specific sequences of measurements\n", " based on the assumed S_n. \n", "\n", " The difference lies in how to calculate all_participant_ln_likelihood. \n", "\n", " `metropolis_hastings_with_theta_phi_kmeans` tries to obtain k_j and calculate each likelihood exactly \n", " whereas `metropolis_hastings` did not obtain exact k_j and calculate the average likelihood instead\n", " \"\"\"\n", " acceptance_ratio = np.exp(all_participant_ln_likelihood - best_likelihood)\n", " \"\"\"Sometimes I will have this warning text when running:\n", " overflow encountered in exp\n", " acceptance_ratio = np.exp(all_participant_ln_likelihood - best_likelihood)\n", " \"\"\"\n", " random_number = np.random.rand()\n", " if random_number < acceptance_ratio:\n", " best_likelihood = all_participant_ln_likelihood\n", " biomarker_best_order_dic = ordering_dic\n", " participant_stages = participant_stages_copy\n", " \n", " if _ >= burn_in and _ % thining == 0:\n", " all_dicts.append(ordering_dic)\n", "\n", " if (_+1) % 10 == 0:\n", " print(f\"iteration {_ + 1} done\")\n", " return biomarker_best_order_dic, participant_stages, all_dicts" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iteration 10 done\n", "iteration 20 done\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/wx/xz5y_06d15q5pgl_mhv76c8r0000gn/T/ipykernel_36787/4080174512.py:109: RuntimeWarning: overflow encountered in exp\n", " acceptance_ratio = np.exp(all_participant_ln_likelihood - best_likelihood)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "iteration 30 done\n", "iteration 40 done\n", "iteration 50 done\n", "iteration 60 done\n", "iteration 70 done\n", "iteration 80 done\n", "iteration 90 done\n", "iteration 100 done\n" ] } ], "source": [ "biomarker_best_order_dic, participant_stages, all_dicts = metropolis_hastings_with_theta_phi_kmeans(\n", " data_we_have, iterations, theta_phi = theta_phi_kmeans, \n", " non_diseased_participants = non_diseased_participants,\n", " burn_in = burn_in, thining = thining, )" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df = pd.DataFrame(all_dicts)\n", "biomarker_stage_probability_df = get_biomarker_stage_probability(df, num_biomarkers)\n", "sns.heatmap(biomarker_stage_probability_df, annot=True, cmap=\"Greys\", linewidths=.5, cbar_kws={'label': 'Probability'})\n", "plt.xlabel('Stage')\n", "plt.ylabel('Biomarker')\n", "plt.title('Heatmap of Biomarkers Involvement in Stages')\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Unknown theta and phi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I found it challenging to infer the ordering of biomarkers affected by the disease without knowing theta and phi. This is because we do not need to know participants' real disease stage in the formula of https://ebm-book2.vercel.app/distributions.html#unknown-k-j; However, without knowing all participants' disease stages, we are not able to estimate theta and phi. " ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementk_jS_naffected_or_notDiseased
00MMSE26.983483105affectedTrue
11MMSE28.76362005not_affectedFalse
22MMSE24.60070345not_affectedTrue
33MMSE21.30867845not_affectedTrue
44MMSE28.99345395affectedTrue
\n", "
" ], "text/plain": [ " participant biomarker measurement k_j S_n affected_or_not Diseased\n", "0 0 MMSE 26.983483 10 5 affected True\n", "1 1 MMSE 28.763620 0 5 not_affected False\n", "2 2 MMSE 24.600703 4 5 not_affected True\n", "3 3 MMSE 21.308678 4 5 not_affected True\n", "4 4 MMSE 28.993453 9 5 affected True" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data.head()" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10, 0, 4, 4, 9, 10, 1, 8, 10, 1, 0, 5, 4, 1, 4, 6, 10,\n", " 10, 1, 6, 6, 9, 9, 9, 8, 6, 4, 4, 5, 7, 3, 7, 8, 6,\n", " 2, 0, 1, 0, 8, 9, 3, 10, 10, 9, 10, 8, 7, 0, 5, 8, 3,\n", " 10, 7, 5, 6, 5, 8, 0, 2, 9, 2, 6, 3, 1, 8, 1, 3, 5,\n", " 3, 7, 8, 10, 3, 2, 9, 6, 5, 10, 4, 0, 6, 0, 0, 9, 5,\n", " 9, 6, 7, 8, 0, 3, 10, 1, 4, 7, 6, 3, 9, 3, 6])" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "actual_stage_dict = dict(zip(data.participant, data.k_j))\n", "actual_stages = np.array(list(actual_stage_dict.values()))\n", "actual_stages" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
participantbiomarkermeasurementDiseased
00MMSE26.983483True
11MMSE28.763620False
22MMSE24.600703True
33MMSE21.308678True
44MMSE28.993453True
\n", "
" ], "text/plain": [ " participant biomarker measurement Diseased\n", "0 0 MMSE 26.983483 True\n", "1 1 MMSE 28.763620 False\n", "2 2 MMSE 24.600703 True\n", "3 3 MMSE 21.308678 True\n", "4 4 MMSE 28.993453 True" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "data_we_have.head()" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [], "source": [ "def estimate_params_exact(m0, n0, s0_sq, v0, data):\n", " '''This is to estimate means and vars based on conjugate priors\n", " Inputs:\n", " - data: a vector of measurements \n", " - m0: prior estimate of $\\mu$.\n", " - n0: how strongly is the prior belief in $m_0$ is held.\n", " - s0_sq: prior estimate of $\\sigma^2$.\n", " - v0: prior degress of freedome, influencing the certainty of $s_0^2$.\n", " \n", " Outputs:\n", " - mu estiate, std estimate\n", " '''\n", " # Data summary\n", " sample_mean = np.mean(data)\n", " sample_size = len(data)\n", " sample_var = np.var(data, ddof=1) # ddof=1 for unbiased estimator\n", "\n", " # Update hyperparameters for the Normal-Inverse Gamma posterior\n", " updated_m0 = (n0 * m0 + sample_size * sample_mean) / (n0 + sample_size)\n", " updated_n0 = n0 + sample_size\n", " updated_v0 = v0 + sample_size \n", " updated_s0_sq = (1 / updated_v0) * ((sample_size - 1) * sample_var + v0 * s0_sq + \n", " (n0 * sample_size / updated_n0) * (sample_mean - m0)**2)\n", " updated_alpha = updated_v0/2\n", " updated_beta = updated_v0*updated_s0_sq/2\n", "\n", " # Posterior estimates\n", " mu_posterior_mean = updated_m0\n", " sigma_squared_posterior_mean = updated_beta/updated_alpha\n", "\n", " mu_estimation = mu_posterior_mean\n", " std_estimation = np.sqrt(sigma_squared_posterior_mean)\n", "\n", " return mu_estimation, std_estimation" ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, "outputs": [], "source": [ "def get_estimated_means_stds_df(biomarkers, data_we_have, theta_phi_kmeans):\n", " '''To get estimated parameters, returns a Pandas DataFrame\n", " Input:\n", " - biomarkers: biomarkers \n", " - data_we_have: participants data filled with initial or updated participant_stages\n", "\n", " Output: \n", " - estimate_means_std_df, just like means_stds_df, containing the estimated mean and std_dev for \n", " distribution of biomarker values when the biomarker is affected and not affected\n", "\n", " Note that, there is one bug we need to fix: Sometimes, data_full might have only one observation or no ob\n", " '''\n", " # empty list of dictionaries to store the estimates \n", " means_stds_estimate_dict_list = []\n", " \n", " for biomarker in biomarkers: \n", " dic = {'biomarker': biomarker} # Initialize dictionary outside the inner loop\n", " for affected in [True, False]:\n", " data_full = data_we_have[(data_we_have.biomarker == biomarker) & (\n", " data_we_have.affected == affected)]\n", " if len(data_full) > 1:\n", " measurements = data_full.measurement\n", " mu_estimate, std_estimate = estimate_params_exact(\n", " m0 = 0, n0 = 1, s0_sq = 1, v0 = 1, data=measurements)\n", " if affected:\n", " dic['theta_mean'] = mu_estimate\n", " dic['theta_std'] = std_estimate\n", " else:\n", " dic['phi_mean'] = mu_estimate\n", " dic['phi_std'] = std_estimate\n", " # If there is only one observation or not observation at all, resort to theta_phi_kmeans\n", " # YES, IT IS POSSIBLE THAT DATA_FULL HERE IS NULL\n", " # For example, if a biomarker indicates stage of (num_biomarkers), but all participants' stages\n", " # are smaller than that stage; so that for all participants, this biomarker is not affected\n", " else:\n", " # DONT FORGTE RESET_INDEX; this because you are acessing [0]\n", " theta_phi_kmeans_biomarker_row = theta_phi_kmeans[\n", " theta_phi_kmeans.biomarker == biomarker].reset_index(drop=True)\n", " if affected:\n", " dic['theta_mean'] = theta_phi_kmeans_biomarker_row['theta_mean'][0]\n", " dic['theta_std'] = theta_phi_kmeans_biomarker_row['theta_std'][0]\n", " else:\n", " dic['phi_mean'] = theta_phi_kmeans_biomarker_row['phi_mean'][0]\n", " dic['phi_std'] = theta_phi_kmeans_biomarker_row['phi_std'][0]\n", " # print(f\"biomarker {biomarker} done!\")\n", " means_stds_estimate_dict_list.append(dic)\n", " estimate_means_stds_df = pd.DataFrame(means_stds_estimate_dict_list)\n", " return estimate_means_stds_df " ] }, { "cell_type": "code", "execution_count": 31, "metadata": {}, "outputs": [], "source": [ "def add_kj_and_affected(data_we_have, participant_stages, num_participants):\n", " '''This is to fill up data_we_have. \n", " Basically, add two columns: k_j, and affected, based on the initial or updated participant_stages\n", " Note that we assume here we've already got S_n\n", "\n", " Inputs:\n", " - data_we_have\n", " - participant_stages: np array \n", " - participants: 0-99\n", " '''\n", " participant_stage_dic = dict(zip(np.arange(0,num_participants), participant_stages))\n", " data_we_have['k_j'] = data_we_have.apply(lambda row: participant_stage_dic[row.participant], axis = 1)\n", " data_we_have['affected'] = data_we_have.apply(lambda row: row.k_j >= row.S_n, axis = 1)\n", " return data_we_have " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "I am a little bit confused here as to when to update `participant_stages`. Should it be every time or only when I am updating `best_likelihood` and `best_order_dic`?" ] }, { "cell_type": "code", "execution_count": 32, "metadata": {}, "outputs": [], "source": [ "def metropolis_hastings_unknown_theta_phi(data_we_have, iterations, non_diseased_participants, burn_in, thining, theta_phi_kmeans):\n", " num_participants = len(data_we_have.participant.unique())\n", " num_biomarkers = len(data_we_have.biomarker.unique())\n", " biomarker_names = np.array(list(data_we_have.biomarker.unique()))\n", " \n", " all_dicts = []\n", "\n", " # initialize an ordering and likelihood\n", " # note that it should be a random permutation of numbers 1-10\n", " best_order = np.random.permutation(np.arange(1, num_biomarkers+1))\n", " biomarker_best_order_dic = dict(zip(biomarker_names, best_order))\n", " best_likelihood = -np.inf \n", "\n", " # initialize participant_stages \n", " # note that high should be num_biomarkers + 1; otherwise, no participants will be in the stage of 10\n", " participant_stages = np.random.randint(low = 0, high = num_biomarkers+1, size = num_participants)\n", " participant_stages[non_diseased_participants] = 0\n", "\n", " for _ in range(iterations):\n", " participant_stages_copy = participant_stages.copy()\n", " # when we update best_order below,\n", " # in each iteration, new_order will also update\n", " new_order = best_order.copy()\n", " # randomly select two indices\n", " a, b = np.random.choice(num_biomarkers, 2, replace=False)\n", " # swaping the order\n", " new_order[a], new_order[b] = new_order[b], new_order[a]\n", "\n", " # likelihood of seeing all participants' data \n", " # biomarker - order dict\n", " ordering_dic = dict(zip(biomarker_names, new_order))\n", " # fill up S_n column using the ordering dict\n", " # copy first in order not to change data_we_have\n", " data = data_we_have.copy()\n", " # now data_we_have has S_n column\n", " data['S_n'] = data.apply(lambda row: ordering_dic[row['biomarker']], axis = 1)\n", "\n", " # add kj and affected based on the initial randomized participant_stages\n", " data = add_kj_and_affected(data, participant_stages_copy, num_participants)\n", " # print(data.head())\n", "\n", " # get estimated_theta_phi\n", " estimated_theta_phi = get_estimated_means_stds_df(biomarker_names, data_we_have=data, theta_phi_kmeans=theta_phi_kmeans)\n", "\n", " all_participant_ln_likelihood = 0 \n", " for p in range(num_participants):\n", " # this participant data\n", " pdata = data[data.participant == p].reset_index(drop=True)\n", "\n", " \"\"\"If this participant is not diseased (i.e., if we know k_j is equal to 0)\n", " We still need to compute the likelihood of this participant seeing this sequence of biomarker data\n", " but we do not need to estimate k_j like below\n", "\n", " We still need to compute the likelihood because we need to add it to all_participant_ln_likelihood\n", " \"\"\"\n", " if p in non_diseased_participants:\n", " this_participant_likelihood = compute_likelihood(\n", " pdata, k_j = 0, theta_phi = estimated_theta_phi)\n", " this_participant_ln_likelihood = np.log(this_participant_likelihood)\n", " else:\n", " # initiaze stage_likelihood\n", " stage_likelihood = np.zeros(num_biomarkers + 1)\n", " for k_j in range(num_biomarkers +1):\n", " # even though data above has everything, it is filled up by random stages\n", " # we don't like it and want to know the true k_j. All the following is to update participant_stages\n", "\n", " # likelihood for this participant to have this specific sequence of biomarker values\n", " participant_likelihood = compute_likelihood(pdata, k_j, estimated_theta_phi)\n", "\n", " # update each stage likelihood for this participant\n", " stage_likelihood[k_j] = participant_likelihood\n", " likelihood_sum = np.sum(stage_likelihood)\n", " normalized_stage_likelihood = [l/likelihood_sum for l in stage_likelihood]\n", " sampled_stage = np.random.choice(np.arange(num_biomarkers + 1), p = normalized_stage_likelihood)\n", " participant_stages_copy[p] = sampled_stage \n", "\n", " # if participant is in sampled_stage, what is the likelihood of seeing this sequence of biomarker data:\n", " this_participant_likelihood = stage_likelihood[sampled_stage]\n", "\n", " # then, update all_participant_likelihood\n", " if this_participant_likelihood == 0:\n", " this_participant_ln_likelihood = np.log(this_participant_likelihood + 1e20)\n", " else:\n", " this_participant_ln_likelihood = np.log(this_participant_likelihood)\n", " all_participant_ln_likelihood += this_participant_ln_likelihood\n", " \n", " acceptance_ratio = np.exp(all_participant_ln_likelihood - best_likelihood)\n", " random_number = np.random.rand()\n", " if random_number < acceptance_ratio:\n", " best_likelihood = all_participant_ln_likelihood\n", " biomarker_best_order_dic = ordering_dic\n", " participant_stages = participant_stages_copy\n", " \n", " if _ >= burn_in and _ % thining == 0:\n", " all_dicts.append(ordering_dic)\n", "\n", " if (_+1) % 10 == 0:\n", " print(f\"iteration {_ + 1} done\")\n", " return biomarker_best_order_dic, participant_stages, all_dicts\n" ] }, { "cell_type": "code", "execution_count": 33, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "iteration 10 done\n", "iteration 20 done\n", "iteration 30 done\n", "iteration 40 done\n", "iteration 50 done\n", "iteration 60 done\n", "iteration 70 done\n", "iteration 80 done\n", "iteration 90 done\n", "iteration 100 done\n" ] } ], "source": [ "biomarker_best_order_dic, participant_stages, all_dicts = metropolis_hastings_unknown_theta_phi(\n", " data_we_have, iterations, non_diseased_participants, \n", " burn_in, thining, theta_phi_kmeans)" ] }, { "cell_type": "code", "execution_count": 34, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "df = pd.DataFrame(all_dicts)\n", "biomarker_stage_probability_df = get_biomarker_stage_probability(df, num_biomarkers)\n", "sns.heatmap(biomarker_stage_probability_df, annot=True, cmap=\"Greys\", linewidths=.5, cbar_kws={'label': 'Probability'})\n", "plt.xlabel('Stage')\n", "plt.ylabel('Biomarker')\n", "plt.title('Heatmap of Biomarkers Involvement in Stages')\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 35, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'MMSE': 5,\n", " 'ADAS': 6,\n", " 'AB': 3,\n", " 'P-Tau': 4,\n", " 'HIP-FCI': 1,\n", " 'HIP-GMI': 7,\n", " 'AVLT-Sum': 8,\n", " 'PCC-FCI': 2,\n", " 'FUS-GMI': 9,\n", " 'FUS-FCI': 10}" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "real_ordering_dic" ] } ], "metadata": { "kernelspec": { "display_name": "bayes", "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.8.19" } }, "nbformat": 4, "nbformat_minor": 2 }