{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# ReMoDe\n", "\n", "ReMoDe (Reproducible Mode Detection) is a method for finding meaningful peaks (modes) in ordinal or discrete count data.\n", "\n", "This is useful in many applied settings, for example identifying polarization in survey responses or separating symptom-incidence groups in clinical scales. Existing modality methods are often descriptive only or not designed for ordinal data. ReMoDe addresses this by combining recursive mode detection with statistical significance testing.\n", "\n", "For each detected mode, ReMoDe reports statistical evidence (p-values and approximate Bayes factors) and includes a stability check to assess how robust results are to data perturbations.\n", "\n", "## Install\n", "\n", "```bash\n", "pip install remode\n", "```\n", "\n", "## Quickstart\n", "\n", "```python\n", "from remode import ReMoDe\n", "\n", "xt_count = [8, 20, 5, 2, 6, 2, 30]\n", "remode = ReMoDe()\n", "result = remode.fit(xt_count)\n", "print(result)\n", "```\n", "\n", "```{toctree}\n", ":hidden:\n", ":maxdepth: 2\n", "\n", "api\n", "```\n", "\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "79d69429-7819-43fe-9c67-4fde9fba4657", "metadata": {}, "outputs": [], "source": [ "from remode import *\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n" ] }, { "cell_type": "markdown", "id": "73ad4d87", "metadata": {}, "source": [ "## Tutorial\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "22d965f2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'nr_of_modes': 2, 'modes': array([1, 6]), 'xt': [8, 20, 5, 2, 6, 2, 30], 'alpha_after_correction': 0.05}\n" ] }, { "data": { "image/png": "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FBTo6NGjboUmKyvLbXs33HCDfH199fDDD2v48OEl7vNCEfHz81NiYqISExN1/PhxffbZZ3rmmWfUpUsXHTp0SEFBQZfMfPF+S8pyIfvLL7+su+66q8RthYeHlzh+8TY+/PBDRUVFXXLejTfeKEn6/vvvL7u9a93PhWNfmtcPALg+VNoyU6dOHT355JPasWOHEhISLjmvY8eOev/99/XRRx+pV69ervEL747p2LGjJKlDhw6aNm2a/vnPf2rUqFGuee+8847b9oKCgtShQwdt2rRJLVq0UEBAQKnyhoaG6oEHHtAPP/ygMWPGaP/+/brllltKnHshy7fffut2qeniLG3atFFoaKj++9//asSIEZfdv9PplCSdPXvWbbxLly7y8/PT3r179cc//vGS68fExLgu7SUmJrq25+n9NGnSRJGRkXr33XeVmJjoKqAHDhzQ2rVrVbt27cu+TgCA/VTaMiNJU6dOveKc/v37a9asWUpISND+/fvVvHlzrVmzRpMnT1Z8fLzuvfdeSVLnzp3Vtm1bPfXUU8rJyVFsbKy++OILvfXWW8W2OXPmTN19992655579Je//EUNGjTQqVOntGfPHn3yySdasWKFJKl79+5q1qyZYmNjdeONN+rAgQOaMWOGoqKi1Lhx40tmHjNmjN58803dd999mjhxosLDw/XPf/5TO3bscJtXtWpVvfzyy0pISNAvv/yiBx54QGFhYTpy5Ii+/fZbHTlyRCkpKZKk5s2bu7InJCTI399fTZo0UYMGDfTcc89p3Lhx2rdvn7p27aobbrhBP/30k77++msFBwdrwoQJkqRZs2ape/fuuuuuu/TYY4+pfv36OnjwoNLT0/XPf/7TI/vx8fHR3/72Nz3yyCPq1auXHn30UR0/flxJSUklXnoCAFwHrL4DuaL8+t1Ml3Pxu5mMMebo0aNm6NChJjIy0vj5+ZmoqCgzduxYk5ub6zbv+PHjZtCgQSY0NNQEBQWZTp06mR07dhR7N5MxxmRmZppBgwaZOnXqGH9/f3PjjTea1q1bm4kTJ7rmvPjii6Z169amVq1aJiAgwNSvX98MHjzY7N+//4qv97///a/p1KmTqVKliqlRo4YZPHiw+de//lXsrdnGGJORkWHuu+8+U6NGDePv72/q1Klj7rvvPvPBBx+4zRs7dqypXbu28fHxKbadjz76yHTo0MFU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yy23aN26dW7rXfy8ZcuW2rZtmxo1alTsERAQIOn8Zbt7771X06ZN03fffaf9+/drxYoV5fGSAQBwsfTMzE8//aSHH35Yhw8fVvXq1dWiRQt9+umn6tSpkyTpqaee0tmzZzVs2DAdO3ZMd955p5YuXVrunzFjN76+vtq+fbvr378WHBysv/zlL3ryySdVo0YN1a9fX9OmTdOZM2c0ePBgSdLQoUP14osvKjExUUOGDNHGjRuLfT7N008/rbvuukvDhw/Xo48+quDgYG3fvl3Lli3Tyy+/rH//+9/at2+f2rZtqxtuuEGLFy9WUVGRmjRpUiHHAABQeVlaZt54443LLnc4HEpKSlJSUlLFBLKxy913M3XqVBUVFenhhx/WqVOnFBsbq/T0dN1www2Szl8mWrhwoR577DHNnj1brVq10uTJkzVo0CDXNlq0aKGMjAyNGzdO99xzj4wxatiwoXr37i1JCg0NVVpampKSkpSbm6vGjRvr3XffVdOmTcv3hQMAKj2Hqcj3IHuZ3NxcZWZmKjo6mptQKxjHHkBlNGzY+1ZH8LjZs/9kdQTv+dA8AACAsqDMAAAAW6PMAAAAW6PMAAAAW6PMqGK/hwnnccwBAJ5SqcvMhU8tPHPmjMVJKp8Lx9wbPjkSAGBvXvd1BhXJ19dXoaGhys7OliQFBQVV6NcYVEbGGJ05c0bZ2dkKDQ3lG7MBANesUpcZSYqIiJAkV6FBxQgNDXUdewAArkWlLzMOh0ORkZEKCwtTfn6+1XEqBX9/f87IAAA8ptKXmQt8fX35AwsAgA1V6huAAQCA/VFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVFmAACArVlaZqZMmaI77rhDISEhCgsLU8+ePbVz5063OQMGDJDD4XB73HXXXRYlBgAA3sbSMpORkaHhw4dr3bp1WrZsmQoKCtS5c2fl5OS4zeva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xRdfeDojAADAJZXpzMwtt9yi7777Tq1atVKnTp2Uk5Oj+++/X5s2bVLDhg09nREAAOCSrvrMTH5+vjp37qxXX31VEyZMKI9MAAAApXbVZ2b8/f21detWORyO8sgDAABwVcp0mal///564403PJ0FAADgqpXpBuBz587pH//4h5YtW6bY2Nhi38mUnJzskXAAAABXclVlZt++fWrQoIG2bt2qli1bSpJ27drlNofLTwAAoCJdVZlp3LixDh8+rJUrV0o6//UFL730ksLDw8slHAAAwJVc1T0zF38r9pIlS5STk+PRQAAAAFejTDcAX3BxuQEAAKhoV1VmHA5HsXtiuEcGAABY6arumTHGaMCAAa4vk8zNzdXQoUOLvZspLS3NcwkBAAAu46rKTEJCgtvzP//5zx4NAwAAcLWuqsykpqaWVw4AAIAyuaYbgAEAAKxGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZGmQEAALZmaZlZvXq1unfvrtq1a8vhcOijjz5yW26MUVJSkmrXrq3AwEC1b99e27ZtsyYsAADwSpaWmZycHN1666165ZVXSlw+bdo0JScn65VXXtH69esVERGhTp066dSpUxWcFAAAeCs/K3ferVs3devWrcRlxhjNmDFD48aN0/333y9JmjdvnsLDw/XOO+9oyJAhFRkVAAB4KUvLzOVkZmYqKytLnTt3do05nU61a9dOa9euvWSZycvLU15entuYj4+PnE5nuebF9Sc/P9/qCADg9crzd6W/v3+p5nltmcnKypIkhYeHu42Hh4frwIEDl1xvypQpmjBhgttY79691adPH8+HxHVt8eLFVkcAAK9Xnr8re/ToUap5XltmLnA4HG7PjTHFxn5t7NixSkxMdBvjzEz5S09fZHUEj4uPj7c6AoDrDL8ry4fXlpmIiAhJ58/QREZGusazs7OLna35NafTSXGBR5T29CYAVGbe8LvSaz9nJjo6WhEREVq2bJlr7Ny5c8rIyFDr1q0tTAYAALyJpWdmTp8+rT179rieZ2ZmavPmzapRo4bq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mTJFd9xxh0JCQhQWFqaePXtq586dVseyREpKilq0aOH6YMy4uDgtWbLE6liWmzJlihwOh8aMGWN1lAqVlJQkh8Ph9oiIiLA6lmV++OEH/fnPf1bNmjUVFBSk3/72t9q4caPVscoVZcbLvffeexozZozGjRunTZs26Z577lG3bt108OBBq6NVqJycHN1666165ZVXrI5imYyMDA0fPlzr1q3TsmXLVFBQoM6dOysnJ8fqaBWubt26mjp1qjZs2KANGzbod7/7nXr06KFt27ZZHc0y69ev12uvvaYWLVpYHcUSTZs21eHDh12PLVu2WB3JEseOHVObNm3k7++vJUuW6L///a9efPFFhYaGWh2tXPHWbC935513qmXLlkpJSXGN3XzzzerZs6emTJliYTLrOBwOLVq0SD179rQ6iqWOHDmisLAwZWRkqG3btlbHsVyNGjU0ffp0DR482OooFe706dNq2bKlZs+erYkTJ+q3v/2tZsyYYXWsCpOUlKSPPvpImzdvtjqK5f7v//5PX3zxRaU7g8+ZGS927tw5bdy4UZ07d3Yb79y5s9auXWtRKniLEydOSDr/R7wyKyws1IIFC5STk6O4uDir41hi+PDhuu+++3TvvfdaHcUyu3fvVu3atRUdHa2HHnpI+/btszqSJT7++GPFxsbqwQcfVFhYmG677Ta9/vrrVscqd5QZL/bzzz+rsLBQ4eHhbuPh4eHKysqyKBW8gTFGiYmJuvvuu9WsWTOr41hiy5Ytqlq1qpxOp4YOHapFixbplltusTpWhVuwYIG++eabSnumVjp/Bnv+/PlKT0/X66+/rqysLLVu3VpHjx61OlqF27dvn1JSUtS4cWOlp6dr6NChGjVqlObPn291tHJli68zqOwcDofbc2NMsTFULiNGjNB3332nNWvWWB3FMk2aNNHmzZt1/PhxLVy4UAkJCcrIyKhUhebQoUMaPXq0li5dqipVqlgdxzLdunVz/bt58+aKi4tTw4YNNW/ePCUmJlqYrOIVFRUpNjZWkydPliTddttt2rZtm1JSUtS/f3+L05Ufzsx4sVq1asnX17fYWZjs7OxiZ2tQeYwcOVIff/yxVq5cqbp161odxzIBAQFq1KiRYmNjNWXKFN16662aOXOm1bEq1MaNG5Wdna3bb79dfn5+8vPzU0ZGhl566SX5+fmpsLDQ6oiWCA4OVvPmzbV7926ro1S4yMjIYoX+5ptvvu7fNEKZ8WIBAQG6/fbbtWzZMrfxZcuWqXXr1halglWMMRoxYoTS0tK0YsUKRUdHWx3JqxhjlJeXZ3WMCtWxY0dt2bJFmzdvdj1iY2PVr18/bd68Wb6+vlZHtEReXp62b9+uyMhIq6NUuDZt2hT7yIZdu3YpKirKokQVg8tMXi4xMVEPP/ywYmNjFRcXp9dee00HDx7U0KFDrY5WoU6fPq09e/a4nmdmZmrz5s2qUaOG6tevb2GyijN8+HC98847+te//qWQkBDXGbvq1asrMDDQ4nQV65lnnlG3bt1Ur149nTp1SgsWLNCqVav06aefWh2tQoWEhBS7Zyo4OFg1a9asVPdSPfHEE+revbvq16+v7OxsTZw4USdPnlRCQoLV0SrcY489ptatW2vy5Mn605/+pK+//lqvvfaaXnvtNaujlS8Drzdr1iwTFRVlAgICTMuWLU1GRobVkSrcypUrjaRij4SEBKujVZiSXr8kk5qaanW0Cjdo0CDX/xM33nij6dixo1m6dKnVsbxCu3btzOjRo62OUaF69+5tIiMjjb+/v6ldu7a5//77zbZt26yOZZlPPvnENGvWzDidTvOb3/zGvPbaa1ZHKnd8zgwAALA17pkBAAC2RpkBAAC2RpkBAAC2RpkBAAC2RpkBAAC2RpkBAAC2RpkBAAC2RpkBAAC2RpkB4DFZWVkaOXKkbrrpJjmdTtWrV0/du3fX8uXLS7X+3LlzFRoaWr4hAVx3+G4mAB6xf/9+tWnTRqGhoZo2bZpatGih/Px8paena/jw4dqxY4fVEa9afn6+/P39rY4B4Ao4MwPAI4YNGyaHw6Gvv/5aDzzwgGJiYtS0aVMlJiZq3bp1kqTk5GQ1b95cwcHBqlevnoYNG6bTp09LklatWqWBAwfqxIkTcjgccjgcSkpKkiSdO3dOTz31lOrUqaPg4GDdeeedWrVqldv+X3/9ddWrV09BQUHq1auXkpOTi53lSUlJUcOGDRUQEKAmTZrorbfeclvucDg0Z84c9ejRQ8HBwZo4caIaNWqkF154wW3e1q1b5ePjo71793ruAAIoO6u/HAqA/R09etQ4HA4zefLky877+9//blasWGH27dtnli9fbpo0aWL+8pe/GGOMycvLMzNmzDDVqlUzhw8fNocPHzanTp0yxhjTt29f07p1a7N69WqzZ88eM336dON0Os2uXbuMMcasWbPG+Pj4mOnTp5udO3eaWbNmmRo1apjq1au79p2Wlmb8/f3NrFmzzM6dO82LL75ofH19zYoVK1xzJJmwsDDzxhtvmL1795r9+/ebSZMmmVtuucXtdTz22GOmbdu2njh0ADyAMgPgmn311VdGkklLS7uq9d5//31Ts2ZN1/PU1FS3AmKMMXv27DEOh8P88MMPbuMdO3Y0Y8eONcac/9bk++67z215v3793LbVunVr8+ijj7rNefDBB018fLzruSQzZswYtzk//vij8fX1NV999ZUxxphz586ZG2+80cydO/eqXiuA8sNlJgDXzBgj6fxlmstZuXKlOnXqpDp16igkJET9+/fX0aNHlZOTc8l1vvnmGxljFBMTo6pVq7oeGRkZrss8O3fuVKtWrdzWu/j59u3b1aZNG7exNm3aaPv27W5jsbGxbs8jIyN133336c0335Qk/fvf/1Zubq4efPDBy75WABWHMgPgmjVu3FgOh6NYMfi1AwcOKD4+Xs2aNdPChQu1ceNGzZo1S9L5G20vpaioSL6+vtq4caM2b97semzfvl0zZ86UdL5MXVykLhSsXytpzsVjwcHBxdZ75JFHtGDBAp09e1apqanq3bu3goKCLpkZQMWizAC4ZjVq1FCXLl00a9asEs+yHD9+XBs2bFBBQYFefPFF3XXXXYqJidGPP/7oNi8gIECFhYVuY7fddpsKCwuVnZ2tRo0auT0iIiIkSb/5zW/09ddfu623YcMGt+c333yz1qxZ4za2du1a3XzzzVd8ffHx8QoODlZKSoqWLFmiQYMGXXEdABWHMgPAI2bPnq3CwkK1atVKCxcu1O7du7V9+3a99NJLiouLU8OGDVVQUKCXX35Z+/bt01tvvaU5c+a4baNBgwY6ffq0li9frp9//llnzpxRTEyM+vXrp/79+ystLU2ZmZlav369nn/+eS1evFiSNHLkSC1evFjJycnavXu3Xn31VS1ZssTtrMuTTz6puXPnas6cOdq9e7eSk5OVlpamJ5544oqvzdfXVwMGDNDYsWPVqFEjxcXFefbgAbg2lt6xA+C68uOPP5rhw4ebqKgoExAQYOrUqWP+8Ic/mJUrVxpjjElOTjaRkZEmMDDQdOnSxcyfP99IMseOHXNtY+jQoaZmzZpGkhk/frwx5vxNt3/9619NgwYNjL+/v4mIiDC9evUy3333nWu91157zdSpU8cEBgaanj17mokTJ5qIiAi3fLNnzzY33XST8ff3NzExMWb+/PluyyWZRYsWlfja9u7daySZadOmXfNxAuBZDmNKuLAMADb36KOPaseOHfr88889sr0vvvhC7du31/fff6/w8HCPbBOAZ/AJwACuCy+88II6deqk4OBgLVmyRPPmzdPs2bOvebt5eXk6dOiQnn32Wf3pT3+iyABeiHtmAFwXvv76a3Xq1EnNmzfXnDlz9NJLL+mRRx655u2+++67atKkiU6cOKFp06Z5ICkAT+MyEwAAsDXOzAAAAFujzAAAAFujzAAAAFujzAAAAFujzAAAAFujzAAAAFujzAAAAFujzAAAAFujzAAAAFv7fzHJcVhlIBf1AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Histogram counts\n", "xt_count = [8, 20, 5, 2, 6, 2, 30]\n", "\n", "# Start ReMoDe\n", "remode = ReMoDe( definition=\"shape_based\", # default; set \"peak_based\" to exclude uniform distributions\n", ")\n", "\n", "# Fit the data and plot maxima\n", "result = remode.fit(xt_count)\n", "print(result)\n", "\n", "remode.plot_maxima()\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "455b36c0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "81.63265306122449\n" ] }, { "data": { "image/png": "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olKpFN3d3cWhQ4eK165dy/X5XrhwQezUqZNoaWkpOjg4iEOHDhV/+uknvavvZYmJiRG7du0qOjg4iAqFQqxQoYLYtWtXcfPmzXpxISEhopubm+7KJy/vZ/v27WL79u1FW1tbUaVSiR4eHuK7774r7t27V28fR48eFf38/EQ7OztRpVKJVatWFcePH2/243z//fdi9erVRaVSKdaoUUNcuXKlGBAQwKvvERER5VNJPpcCkC1nQ3x8fHRXMDP087JvvvlGBKC7kpcxpuZo7PwoNjZWbNmypahWq0UnJydx2LBh4qlTp7JdLS8gIEC0trYW//rrL7Fdu3ailZWV6ODgII4cOVJMTEzUO1Z+r773+PFj8d133xXt7e1FQRCy9YkoimJoaKgIQDx27FiO/fKyp0+fipMmTRJr164tqtVqsXz58mK7du3EqKiobLE5/Y5ePqecMmWKwfPi5ORk8ZNPPhErVaokyuVy0d3dPdtrNSUlRRw2bJhYu3ZtsUyZMqJcLhcrVqwoDhgwQDx//rze/rKOY0pOopj5Xvnggw9EZ2dnUaFQiDVq1BDnzp2rd/W5S5cuif7+/mKFChVElUolWlpaivXr1xe/+uqrbO+pn3/+WezYsaPo7OwsyuVysUyZMmKzZs3Er7/+WtRqtdn67/Lly2L37t1FW1tbUa1Wix06dBBPnjxp8Peyfft2sWnTpqKlpaVoZ2cnvvPOO9mevyhmvp6MPf+s10/Wa8zYz8uvx7z26auMXX3vVcauvvfo0SPR19dXdHJyEhUKheju7i6OGTNGfPDggdF9ff7552LDhg2z9fn9+/fFd999V7SzsxMrVaokhoWF5ZoXUUkjiCLHBxIRERERmVPv3r0RFxeH48ePS51KkeLl5QVBENgvREQEoJRP3yMiIiIiMjdRFHHgwAGsXbtW6lSKhOfPn+PcuXP49ddfcfLkSWzbtk3qlIiIqIhgUYqIiIiIyIwEQcD9+/elTqPIOHXqFNq3b49y5cphypQp6N69u9QpERFREcHpe0REREREREREVOhkUidARERERERERESlD4tSRERERERERERU6FiUIiIiIiIiIiKiQseiFBERERERERERFToWpYiIiIiIiIiIqNCxKEVERERERERERIWORSkiIiIiIiIiIip0LEoREREREREREVGhY1GKiIiIiIiIiIgKHYtSRERE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IqLSaPfubVKnUKD8/f2lToGIiKhUc3ael2uMt3clHDo0mIUpMkjSopQoihgzZgy2bduGAwcOwNPTM9fHPHr0CDdu3ICrq6vB7SqVigUoIiKiUoDT64iIiAqfWq2At3clHDlyw6T4I0duIDlZC2trZQFnRsWRpEWpUaNGYd26dfjpp59gY2ODu3fvAgDs7OxgZWWFxMREhIaGolevXnB1dcW1a9fw2WefwdHRET169JAydSIiIiIiIqJSRxAEHDo0GMnJOU/dS0rSmjSSiko3SYtS4eHhAIB27drptUdERCAwMBAWFhY4e/YsVq9ejadPn8LV1RXt27fHxo0bYWNjI0HGRERERERERKWbIAgc+URmIfn0vZxYWVlh9+7dhZQNEREREREREZkbF0QnY4rEQudEREREREREVDKZY0F0uQXwgW8Z3W0qGWRSJ0BEREREREREJUvWguimyloQ3RgLmQCvakp4VVPCQsYRVSUFR0oRERERERERkVlxQXQyBYtSRERERERERGR25lwQPT1DxOmrmQWuxlUUHC1VQnD6HhEREREREREVaWnpwPI9iVi+JxFp6VJnQ+bCohQRERERERERERU6FqWIiIiIiIiIiKjQsShFRERERERERESFjkUpIiIiIiIiIiIqdCxKERERERERERFRoWNRioiIiIiIiIiICp1c6gSIiIiIiIiIiHJiIQMC37TW3aaSgUUpIiIiIiIiIirS5BYCvGuppE6DzIz1RSIiIiIiIiIiKnQcKUVERERERERERVp6hojz8VoAQF13BSxkgsQZkTmwKEVEREREREREkktK0hrdptGK+CYqCQCweHhZritVQrAoRURERERERESSc3aeZ3SbXClH4MKRAABRFAFwpFRJwNoiEREREREREUlCrVbA27tSnh6TnGx8RBUVLxwpRURERERERESSEAQBhw4NzrXQ9ORZKqZuTy2krKiwsChFRERERERERJIRBAHW1socYzRaEQCLUiUNp+8RERERFQMHDx7E22+/DTc3NwiCgO3bt+cYf+DAAQiCkO3n77//LpyEiYiIiHLBkVJERERExUBSUhIaNmyIwYMHo1evXiY/7p9//oGtra3uvpOTU0GkR0RERJRnLEoRERERFQN+fn7w8/PL8+PKly8Pe3t78ydERERUiOQWwJGNBzJvD+wqbTJkNpy+R0RERFSC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YsDR0REWFhbZRkXdv38/2+ipnLRo0QJr1641uj0kJATBwcF6bRwpRUREZNyTZxrs35Q5fa9jx44oa8e/maZiUcoMzp07J3UKBa5evXpSp0BERFSqKZVKNGnSBNHR0ejRo4euPTo62qRvIrOcPn0arq6uRrerVCoWoIiIiPJALs8AkPr/txUmTVujTCxKERERERUTwcHBGDhwILy8vNCyZUt8++23iI+Px4gRIwBkjnK6desWVq9eDQAICwtD5cqVUbduXaSmpmLt2rXYsmULtmzZIuXTICIiKlGUcmDtJ98BABYOGidtMsUMi1JERERExUSfPn3w6NEjTJs2DXfu3EG9evUQFRUFDw8PAMCdO3cQHx+vi09NTcWECRNw69YtWFlZoW7dutixYwf8/f2legpEREQljiAISElM0d0m07EoRURERFSMBAUFISgoyOC2yMhIvfsTJ07ExIkTCyErIiIiorxjUYqIiIiIiIiIKJ/S0kW06u2ju02mY1GKiIiIiIiIiCif0jOAOj4NdLfJdDKpEyAiIiIiIiIiotKHRSkiIiIiIiIiIip0LEoREREREREREVGhY1GKiIiIiIiIiIgKHYtSRERERERERERU6FiUIiIiIiIiIiKiQieXOgEiIiIiIiIiouJKIQc2TI4EACwYNEraZIoZFqWIiIiIiIiIiPJJJghIfJygu02m4/Q9IiIiIiIiIiIqdBwpRURERERERESUT2npIpr18NbdJtOxKEVERERERERElE/pGUCDjm/obpPpOH2PiIiIiIiIiIgKHYtSRERERERERERU6Dh9j4iomDh37pzUKRSoevXqSZ0CEREREREVIo6UIiIiIiIiIiKiQseiFBERERERERERFToWpYiIiIiIiIiIqNCxKEVERERERERElE8KOfDj9B/w4/QfoODK3XnC7iIiIiKi15KRkYHU1FSp0yAq1pRKJWQyjhkgKo5kgoCndx7rbpPpinRRKjQ0FFOnTtVrc3Z2xt27dyXKiIiIiIhelpqairi4OGRkZEidClGxJpPJ4OnpCaVSKXUqRESFpkgXpQCgbt262Lt3r+6+hYWFhNkQERERURZRFHHnzh1YWFigUqVKHOVBlE8ZGRm4ffs27ty5A3d3dwgcaUFUrKSli3jDvxkA4FlC7iOH1WoF3+f/r8gXpeRyOVxcXKROg4iIiIhekZaW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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Test robustness using jackknife\n", "robustness = remode.evaluate_stability(percentage_steps=50)\n", "print(robustness[\"stable_until\"])\n" ] }, { "cell_type": "code", "execution_count": 6, "id": "8ae0fc0a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'nr_of_modes': 1, 'modes': array([2]), 'xt': array([41, 34, 71, 36, 18]), 'alpha_after_correction': 0.05}\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjMAAAHFCAYAAAAHcXhbAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA7a0lEQVR4nO3deXRUVb7+/6cyFUkIRpEMIEMICcrkhCJBBRrDEJqLcFUElEls6KAQUfEit5vgjUGgTQcFQuMQgoo4AHbrYp5ia0QCOACNERkCIjGKIGMGkv39wx/1s0yQkBQ5Ocn7tVatZe2zzz6f2pbwuM+uKocxxggAAMCmvKwuAAAAoCoIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNYIMwAAwNbqTJhZuHChHA6HHA6HNm3aVOa4MUatWrWSw+FQt27dPHpth8OhxMREj45ZGZs2bbrg67+YrKwsJSYm6vjx4x6vq7quM2LECLVo0cLj4wIArFVnwsx5QUFBeuWVV8q0Z2Zmau/evQoKCrKgqpovKytL06ZNq5YwUx3XAQDUHnUuzAwaNEhLly7ViRMn3NpfeeUVde7cWc2aNbOoMgAAUBl1LswMHjxYkvTmm2+62n7++WctXbpUo0aNKvecn376SfHx8WrSpIn8/PzUsmVLTZkyRYWFhW79Tpw4oYcfflgNGzZU/fr11bt3b3399dfljrlnzx4NGTJEISEhcjqduu666zR37ly3PqWlpUpKSlLr1q3l7++v4OBgdejQQbNnz77o6/zqq6/Uu3dvBQQE6Oqrr9bYsWN18uTJcvuuW7dOPXr0UIMGDRQQEKAuXbpo/fr1ruOJiYl68sknJUkRERHl3q5766231LlzZwUGBqp+/frq1auXPvvsszLX+vTTT9WvXz81bNhQ9erVU2RkpBISEjx+nYULF6p169auuV20aNFF5wwAYFOmjkhPTzeSTHZ2tnnwwQfNrbfe6jqWlpZmAgMDzYkTJ0zbtm1N165dXcfOnj1rOnToYAIDA83f/vY3s2bNGvOXv/zF+Pj4mLi4OFe/0tJS0717d+N0Os2zzz5r1qxZY6ZOnWpatmxpJJmpU6e6+u7atctcccUVpn379mbRokVmzZo15vHHHzdeXl4mMTHR1W/69OnG29vbTJ061axfv96sWrXKpKamuvUpT15engkJCTFNmjQx6enpZsWKFWbo0KGmWbNmRpLZuHGjq+9rr71mHA6Hufvuu82yZcvM+++/b/74xz8ab29vs27dOmOMMYcOHTKPPvqokWSWLVtmPvnkE/PJJ5+Yn3/+2RhjzLPPPmscDocZNWqU+eCDD8yyZctM586dTWBgoNm1a5frWqtWrTK+vr6mQ4cOZuHChWbDhg3m1VdfNffff79Hr3P+33X//v3N+++/b15//XXTqlUr07RpU9O8efOLvFMAAHZTJ8PMxo0bjSSzc+dOY4wxt9xyixkxYoQxxpQJM/PnzzeSzNtvv+023owZM4wks2bNGmOMMStXrjSSzOzZs936Pfvss2XCTK9evcw111zj+kv6vEceecTUq1fP/PTTT8YYY/74xz+aG2644ZJf61NPPWUcDof5/PPP3dpjY2Pdwszp06fNVVddZfr16+fWr6SkxFx//fVugW/WrFlGktm/f79b34MHDxofHx/z6KOPurWfPHnShIWFmfvuu8/VFhkZaSIjI83Zs2cvWHtVr1NSUmIaN25sbrrpJlNaWurqd+DAAePr60uYAYBaqM7dZpKkrl27KjIyUq+++qp27Nih7OzsC95i2rBhgwIDA3XPPfe4tY8YMUKSXLdjNm7cKEkaOnSoW78hQ4a4PS8oKND69es1YMAABQQE6Ny5c65HXFycCgoKtHnzZknSrbfeqi+++ELx8fFavXp1mX0+F7Jx40a1bdtW119//e/WkpWVpZ9++knDhw93q6O0tFS9e/dWdna2Tp8+/bvXWr16tc6dO6dhw4a5jVGvXj117drVdYvo66+/1t69e/XQQw+pXr16FXodlblOTk6OvvvuOw0ZMkQOh8N1fvPmzRUTE3PJ1wUA1Hw+VhdgBYfDoZEjR+qFF15QQUGBoqOjdccdd5Tb9+jRowoLC3P7i1GSQkJC5OPjo6NHj7r6+fj4qGHDhm79wsLCyox37tw5vfjii3rxxRfLveaPP/4oSZo8ebICAwP1+uuva/78+fL29tadd96pGTNmqGPHjhd8fUePHlVERESZ9t/W8v3330tSmaD2az/99JMCAwMvePz8GLfccku5x728fsnLP/zwgyTpmmuuueBYv6ei1zn/7+O3r/V824EDByp1fQBAzVUnw4z0y8rKX//6V82fP1/PPvvsBfs1bNhQn376qYwxboEmPz9f586d09VXX+3qd+7cOR09etQt0OTl5bmNd+WVV8rb21sPPvigxo0bV+41zwcRHx8fTZw4URMnTtTx48e1bt06Pf300+rVq5cOHTqkgICAC9b82+uWV8v52l988UXddttt5Y4VGhpabvtvx3j33XfVvHnzC/Zr1KiRJOnbb7/93fGqep3zc1+R1w8AqB3qbJhp0qSJnnzySX311VcaPnz4Bfv16NFDb7/9tt577z0NGDDA1X7+0zE9evSQJHXv3l0zZ87UG2+8ofHjx7v6LV682G28gIAAde/eXZ999pk6dOggPz+/CtUbHByse+65R4cPH1ZCQoIOHDigNm3alNv3fC1ffPGF262m39bSpUsXBQcH6z//+Y8eeeSR372+0+mUJJ09e9atvVevXvLx8dHevXv13//93xc8Pzo62nVrb+LEia7xPH2d1q1bKzw8XG+++aYmTpzoCqC5ubnKyspS48aNf/d1AgDsp86GGUl67rnnLtpn2LBhmjt3roYPH64DBw6offv2+uijj5ScnKy4uDjdddddkqSePXvqzjvv1KRJk3T69Gl17NhRH3/8sV577bUyY86ePVu333677rjjDv35z39WixYtdPLkSX3zzTd6//33tWHDBklSv3791K5dO3Xs2FGNGjVSbm6uUlNT1bx5c0VFRV2w5oSEBL366qvq27evkpKSFBoaqjfeeENfffWVW7/69evrxRdf1PDhw/XTTz/pnnvuUUhIiH744Qd98cUX+uGHH5SWliZJat++vav24cOHy9fXV61bt1aLFi30zDPPaMqUKdq3b5969+6tK6+8Ut9//722bNmiwMBATZs2TZI0d+5c9evXT7fddpsee+wxNWvWTAcPHtTq1av1xhtveOQ6Xl5e+r//+z+NHj1aAwYM0MMPP6zjx48rMTGx3FtPAIBawOodyNXl159m+j2//TSTMcYcPXrUjB071oSHhxsfHx/TvHlzM3nyZFNQUODW7/jx42bUqFEmODjYBAQEmNjYWPPVV1+V+TSTMcbs37/fjBo1yjRp0sT4+vqaRo0amZiYGJOUlOTq8/zzz5uYmBhz9dVXGz8/P9OsWTPz0EMPmQMHDlz09f7nP/8xsbGxpl69euaqq64yDz30kPnnP/9Z5qPZxhiTmZlp+vbta6666irj6+trmjRpYvr27Wveeecdt36TJ082jRs3Nl5e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P0vDTKdOnbRo0SJFR0fr+++/V1JSkmJiYrRr1y7l5eVJkkJDQ93OCQ0NVW5u7gXHnD59uqZNm+bWNmjQIA0ePNjzLwAALmDFihVWlwDYXv/+/SvUz9Iw06dPH9c/t2/fXp07d1ZkZKQyMjJ02223SZIcDofbOcaYMm2/NnnyZE2cONGtjZUZoOpWr15udQm2EhcXZ3UJQJ1h+W2mXwsMDFT79u21Z88e3X333ZKkvLw8hYeHu/rk5+eXWa35NafTSXABYLmKLo8DqDrLNwD/WmFhoXbv3q3w8HBFREQoLCxMa9eudR0vKipSZmamYmJiLKwSAADUJJauzDzxxBPq16+fmjVrpvz8fCUlJenEiRMaPny4HA6HEhISlJycrKioKEVFRSk5OVkBAQEaMmSIlWUDAIAaxNIw8+2332rw4MH68ccf1ahRI912223avHmzmjdvLkmaNGmSzp49q/j4eB07dkydOnXSmjVrFBQUZGXZAACgBnEYY4zVRQCo+eLj37a6BFuZN+8+q0sA6owatWcGAADgUhFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArRFmAACArVUqzOzfv9/TdQAAAFRKpcJMq1at1L17d73++usqKCjwdE0AAAAVVqkw88UXX+jGG2/U448/rrCwMI0ZM0ZbtmzxdG0AAAAXVakw065dO6WkpOjw4cNKT09XXl6ebr/9drVt21YpKSn64YcfPF0nAABAuaq0AdjHx0cDBgzQ22+/rRkzZmjv3r164okndM0112jYsGE6cuSIp+oEAAAoV5XCzNatWxUfH6/w8HClpKToiSee0N69e7VhwwYdPnxY/fv391SdAAAA5fKpzEkpKSlKT09XTk6O4uLitGjRIsXFxcnL65dsFBERoX/84x+69tprPVosAADAb1UqzKSlpWnUqFEaOXKkwsLCyu3TrFkzvfLKK1UqDgAA4GIqFWb27Nlz0T5+fn4aPnx4ZYYHAACosErtmUlPT9c777xTpv2dd95RRkZGlYsCAACoqEqFmeeee05XX311mfaQkBAlJydXuSgAAICKqlSY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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "## Converting individual points to count data\n", "# Generate random data\n", "np.random.seed(0 definition=\"shape_based\", # default; set \"peak_based\" to exclude uniform distributions\n", ")\n", "data = np.random.choice(range(3, 8), 200, p=[0.2, 0.2, 0.3, 0.2, 0.1])\n", "\n", "# Start ReMoDe\n", "remode = ReMoDe()\n", "\n", "# Create count data\n", "xt_count = remode.format_data(data)\n", "\n", "# Fit the data and plot maxima\n", "result = remode.fit(xt_count, levels=np.arange(3, 8))\n", "print(result)\n", "\n", "remode.plot_maxima()\n", "\n" ] }, { "cell_type": "markdown", "id": "7d41b227", "metadata": {}, "source": [ "## Configuration Options for ReMoDe()\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "65305726-763b-421c-ae8e-74640127cf47", "metadata": {}, "outputs": [], "source": [ "remode = ReMoDe(\n", " alpha=0.05, # alpha level desired (adjusted recursively for multiple testing)\n", " alpha_correction=\"descriptive_peaks\", # default; or \"max_modes\", \"none\", or custom function\n", " statistical_test=\"bootstrap\", # default; or \"fisher\", \"binomial\", or custom function\n", " definition=\"shape_based\", # default; set \"peak_based\" to exclude uniform distributions\n", ")\n", "\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "d74cd67c-f4ab-420d-919d-f5dd3f663175", "metadata": {}, "outputs": [], "source": [ "remode = ReMoDe(\n", " alpha=0.05,\n", " alpha_correction=\"max_modes\", # alternative built-in correction\n", " statistical_test=\"fisher\",\n", " definition=\"peak_based\",\n", ")\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Uniformity Test (`peak_based`)\n", "\n", "With `definition=\"peak_based\"`, ReMoDe applies a Pearson Chi-square test for uniformity.\n", "If the distribution is not significantly different from uniform (`p > 0.05`), it returns zero modes.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "uniform_counts = np.array([10, 10, 10, 10, 10])\n", "\n", "uniform_result = ReMoDe(\n", " statistical_test=\"fisher\",\n", " definition=\"peak_based\",\n", ").fit(uniform_counts)\n", "\n", "print(\"Number of modes:\", uniform_result[\"nr_of_modes\"])\n", "print(\"Uniform distribution:\", uniform_result[\"uniform_distribution\"])\n", "print(\"Chi-square p-value:\", uniform_result[\"uniformity_p_value\"])\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "a9f09ad5", "metadata": {}, "outputs": [], "source": [ "# Example of custom statistical test (this is actually `perform_binomial_test`)\n", "from scipy.stats import binomtest\n", "\n", "\n", "def custom_test(x, candidate, left_min, right_min):\n", " \"\"\"Return left/right p-values for a candidate maximum.\"\"\"\n", " n_left = x[candidate] + x[left_min]\n", " n_right = x[candidate] + x[right_min]\n", " p_left = binomtest(x[candidate], n_left, alternative=\"greater\").pvalue\n", " p_right = binomtest(x[candidate], n_right, alternative=\"greater\").pvalue\n", " return p_left, p_right\n", "\n", "\n", "# Example of custom alpha adjustment\n", "def custom_adjustment(segment_or_length, alpha):\n", " \"\"\"Adjust alpha as a function of segment size.\"\"\"\n", " if hasattr(segment_or_length, \"__len__\"):\n", " length = len(segment_or_length)\n", " else:\n", " length = int(segment_or_length)\n", " return alpha / max(1, length)\n", "\n", "\n", "remode = ReMoDe(\n", " alpha=0.05,\n", " statistical_test=custom_test,\n", " alpha_correction=custom_adjustment,\n", ")\n", "\n" ] } ], "metadata": { "kernelspec": { "display_name": "st", "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.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }