Skip to content

Instantly share code, notes, and snippets.

@rkern
Created September 4, 2022 00:51
Show Gist options
  • Save rkern/362dafde332b6815430c3e295595cf25 to your computer and use it in GitHub Desktop.
Save rkern/362dafde332b6815430c3e295595cf25 to your computer and use it in GitHub Desktop.
Whittaker-Henderson Smoothing
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Whittaker-Henderson Smoothing (with cross-validation)\n",
"\n",
"Copyright 2022 Robert Kern\n",
"All rights reserved.\n",
"\n",
"Redistribution and use in source and binary forms, with or without\n",
"modification, are permitted provided that the following conditions\n",
"are met:\n",
"\n",
"1. Redistributions of source code must retain the above copyright\n",
" notice, this list of conditions and the following disclaimer.\n",
"\n",
"2. Redistributions in binary form must reproduce the above\n",
" copyright notice, this list of conditions and the following\n",
" disclaimer in the documentation and/or other materials provided\n",
" with the distribution.\n",
"\n",
"3. Neither the name of the copyright holder nor the names of its\n",
" contributors may be used to endorse or promote products derived\n",
" from this software without specific prior written permission.\n",
"\n",
"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n",
"\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n",
"LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n",
"A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n",
"OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n",
"SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n",
"LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n",
"DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n",
"THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n",
"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n",
"OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
]
},
{
"cell_type": "code",
"execution_count": 313,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"\n",
"from matplotlib import pyplot as plt\n",
"import numpy as np\n",
"from scipy import linalg, signal\n",
"\n",
"\n",
"def wh_smooth(x, lam, p=1, valid_mask=None):\n",
" if len(x) < 2*p+1:\n",
" raise ValueError(f\"signal must be at least {2*p+1} long; got {len(x)}\")\n",
" Dp = np.diff(np.eye(2*p+1), n=p, axis=0)\n",
" DTD = Dp.T @ Dp\n",
" abl = np.zeros((p+1, 2*p+1))\n",
" for i in range(p+1):\n",
" abl[i, :abl.shape[1]-i] = np.diagonal(DTD, i)\n",
" abl *= lam\n",
" dn = len(x) - (2*p+1)\n",
" abl = np.hstack([\n",
" abl[:, :p+1],\n",
" np.repeat(abl[:, p:p+1], dn, axis=1),\n",
" abl[:, -p:],\n",
" ]) \n",
" if valid_mask is None:\n",
" abl[0] += 1.0\n",
" y = x\n",
" else:\n",
" abl[0] += valid_mask\n",
" y = np.where(valid_mask, x, 0)\n",
"\n",
" smoothed = linalg.solveh_banded(abl, y, lower=True)\n",
" return smoothed"
]
},
{
"cell_type": "code",
"execution_count": 325,
"metadata": {},
"outputs": [],
"source": [
"def wh_gcv(x, p=1, valid_mask=None, lam_range=(1e-2, 1e10), n_small=100):\n",
" lambdas = np.geomspace(lam_range[0], lam_range[1], 2*round(np.log10(lam_range[1] / lam_range[0])) + 1)\n",
" \n",
" def func(lam):\n",
" xhat = wh_smooth(x, lam, p, valid_mask=valid_mask)\n",
" if len(x) < 10 * n_small:\n",
" # Don't use the approximation.\n",
" h_small = np.diagonal(wh_smooth(np.eye(len(x), len(x)//2), lam, p))\n",
" else:\n",
" lam_small = (n_small / len(x)) ** (2*p) * lam\n",
" # Make copy to ensure writeability later.\n",
" h_small = np.diagonal(wh_smooth(np.eye(n_small, n_small//2), lam_small, p)).copy()\n",
" # Compute one full-length impulse response near the middle to rescale the smaller diagonal correctly.\n",
" x_mid = np.zeros(len(x))\n",
" x_mid[len(x) // 2] = 1.0\n",
" h_mid = wh_smooth(x_mid, lam, p)[len(x) // 2]\n",
" h_small *= h_mid / h_small[-1]\n",
" h_mean = np.mean(h_small)\n",
" if valid_mask is None:\n",
" dx = x - xhat\n",
" else:\n",
" dx = x[valid_mask] - xhat[valid_mask]\n",
" loo_var = np.mean((dx / (1 - h_mean)) ** 2)\n",
" return loo_var\n",
" \n",
" gcvs = np.array([func(lam) for lam in lambdas])\n",
" i_min = np.argmin(gcvs)\n",
" lam_min = lambdas[i_min]\n",
" return lam_min, lambdas, np.array([func(lam) for lam in lambdas])"
]
},
{
"cell_type": "code",
"execution_count": 326,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 29.8 ms, sys: 60 µs, total: 29.8 ms\n",
"Wall time: 29.7 ms\n"
]
},
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fc56ce809b0>]"
]
},
"execution_count": 326,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 2 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"n = 10_000\n",
"p = 1\n",
"sigma = 0.5\n",
"\n",
"rng = np.random.default_rng(0x5c71bbdc9f57e0ac1a9668e7ead5c3b3)\n",
"\n",
"t = np.linspace(0.0, 1.0, n)\n",
"x0 = signal.chirp(t, 1, 1.0, 40.0)\n",
"x = rng.normal(x0, sigma)\n",
"\n",
"%time lam_min, lams, gcvs = wh_gcv(x, p=p)\n",
"#lam_min = 1e8\n",
"y = wh_smooth(x, lam_min, p)\n",
"\n",
"fig, ax = plt.subplots(2, 1)\n",
"ax[0].semilogx(lams, gcvs)\n",
"ax[0].vlines([lam_min], gcvs.min(), gcvs.max(), color='black')\n",
"\n",
"ax[1].plot(t, x, 'k,', alpha=0.125 if n > 1000 else 1.0)\n",
"ax[1].plot(t, x0, 'b-')\n",
"ax[1].plot(t, y, 'g-')"
]
},
{
"cell_type": "code",
"execution_count": 327,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x7fc56cbefe10>]"
]
},
"execution_count": 327,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"valid_mask = np.ones(len(x), dtype=bool)\n",
"i = int(0.05*len(x))\n",
"j = i + min(500, 0.1*len(x))\n",
"valid_mask[i:j] = False\n",
"\n",
"y = wh_smooth(x, lam_min, p, valid_mask=valid_mask)\n",
"plt.plot(t[valid_mask], x[valid_mask], 'k,', alpha=0.125 if n > 1000 else 1.0)\n",
"plt.plot(t, x0, 'b-')\n",
"plt.plot(t, y, 'g-')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"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.6.13"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment