{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "# Running Parallel Chains\n", "\n", "Author(s): Paul Miles | Date Created: August 31, 2018\n", "\n", "This demonstration was made using version 1.6.0 of [pymcmcstat](https://github.com/prmiles/pymcmcstat/wiki).\n", "\n", "Determining whether or not your chains have converged to the posterior density is a significant challenge when performing MCMC simulations. There are many diagnostics available for assessing chain convergence. The most robust approach is to use the Gelman-Rubin diagnostic, which requires several sets of chains for comparison. The Gelman-Rubin approach essentially performs an analysis of the variances within each chain set and between each chain set. For more details regarding this approach see\n", "\n", "- Gelman, A., & Rubin, D. B. (1992). Inference from iterative simulation using multiple sequences. Statistical science, 7(4), 457-472. [https://doi.org/10.1214/ss/1177011136](https://doi.org/10.1214/ss/1177011136)\n", "- Brooks, S. P., & Gelman, A. (1998). General methods for monitoring convergence of iterative simulations. Journal of computational and graphical statistics, 7(4), 434-455. [https://doi.org/10.1080/10618600.1998.10474787](https://doi.org/10.1080/10618600.1998.10474787)\n", "\n", "While this diagnostic approach does not require computations to be run in parallel, it is certainly more convenient if you can generate a set of chains by running parallel MCMC simulations. In this tutorial we demonstrate how to use the `ParallelMCMC` class of the [pymcmcstat](https://github.com/prmiles/pymcmcstat/wiki) package." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "1.9.0\n" ] } ], "source": [ "# import required packages\n", "import numpy as np\n", "import os\n", "from pymcmcstat.MCMC import MCMC\n", "from pymcmcstat.ParallelMCMC import ParallelMCMC\n", "from datetime import datetime\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "import pymcmcstat\n", "print(pymcmcstat.__version__)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Define Model and Sum-of-Squares Function" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# define test model function\n", "def modelfun(xdata, theta):\n", " m = theta[0]\n", " b = theta[1]\n", " nrow, ncol = xdata.shape\n", " y = np.zeros([nrow,1])\n", " y[:, 0] = m*xdata.reshape(nrow,) + b\n", " return y\n", "\n", "def ssfun(theta, data):\n", " xdata = data.xdata[0]\n", " ydata = data.ydata[0]\n", " # eval model\n", " ymodel = modelfun(xdata, theta)\n", " # calc sos\n", " res = ymodel[:, 0] - ydata[:, 0]\n", " return (res**2).sum(axis = 0)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Define Data Set - Plot" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "