Interbeat Interval Filtering

İlker Bayram
[email protected]
Abstract

Interbeat intervals (IBIs) carry heart rate and heart-rate variability information. When the IBIs are correct, this information can be extracted through simple statistics such as mean/median/standard deviation. However, more robust approaches are needed especially in ambulatory conditions where the underlying signal can be noisy. In this paper, we propose a lightweight filter that (i) tracks the time-varying distribution of interbeat intervals, (ii) is robust to outliers. The tracked distribution summarizes relevant information of interest and alleviates the need for further analysis. We demonstrate numerically that the tracked distribution can provide more accurate estimates than a two-stage algorithm that first fixes the IBIs before computing the statistics of interest.

I Introduction

The history/distribution of interbeat intervals (IBI) carries information about the cardiovascular system. Non-invasive methods of obtaining these intervals usually rely on detecting individual heartbeats from a modality like ECG, PPG, PCG, etc., to obtain IBIs. However, these modalities can be prone to motion/muscle artifacts, or, more generally, the signal quality from such non-invasive modalities may be poor. This in turn can throw off beat/peak detectors, resulting in erroneous interbeat intervals.

In this paper, we propose a light-weight algorithm that can track the time-varying IBI distribution that is also robust to errors in IBIs. The proposed algorithm is specifically useful for battery-powered devices that operate under strict energy/memory constraints.

Related Work

We combine ideas from heart beat series modeling and robust state-space filtering.

We assume a simple model where each IBI is taken as a sample from an inverse Gaussian distribution. Such a model can be motivated by assuming an underlying process m(t)𝑚𝑡m(t)italic_m ( italic_t ) and considering the hitting times for its running integral y(t)=0tm(s)𝑑s𝑦𝑡superscriptsubscript0𝑡𝑚𝑠differential-d𝑠y(t)=\int_{0}^{t}m(s)\,dsitalic_y ( italic_t ) = ∫ start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_t end_POSTSUPERSCRIPT italic_m ( italic_s ) italic_d italic_s. Every time y(t)𝑦𝑡y(t)italic_y ( italic_t ) hits an integer, say, we declare a heart beat. If we take m(t)𝑚𝑡m(t)italic_m ( italic_t ) to be a random walk with drift, the IBIs follow an inverse Gaussian distribution (see Section II-A, or [9]). Building on this model, Barbieri et al. [7] propose to estimate, via linear regression, the parameters of the inverse Gaussian distribution using past IBIs. This yields a more accurate (i.e., lower variance) conditional density for the next beat, given the beat history.

Another variation on the above model is the ‘integral pulse frequency model’ (IPFM) [8, 21, 3, 18]. For this, m(t)𝑚𝑡m(t)italic_m ( italic_t ) is taken as a bandlimited signal. By performing spectral analysis of a variant of m(t)𝑚𝑡m(t)italic_m ( italic_t ) (e.g., cancelling the DC component, or normalizing with respect to time-varying heart rate), one can obtain further insight about HRV.

In an extension that builds on [7], Barbieri et al. assume in [6] that the model parameters (weights used in linear regression) follow a random walk. They propose an adaptive filter for estimating these time-varying parameters. This filter implicitly assumes that the input beats are correct. Taking a further step, Citi et al. [10] propose a beat correction algorithm, which can be used as a preprocessing step for further HRV analysis. Given the history, the algorithm in [10] evaluates the current IBI to decide whether it’s valid, or falls in one of the anomaly classes. Depending on the class, it fixes the interval to produce either a single IBI or multiple IBIs.

There also exist relevant work targeting not necessarily heart beats but more general neural spiking activity. In [1, 12], the authors consider Gaussian processes as latent states that drive a point process through its intensity function (the intensity function setting the probability of firing in an infinitesimal interval – see e.g. [26, 22] for background). Smith and Brown [1] propose estimating the parameters of the intensity function as well as the underlying latent space by resorting to the expectation maximization (EM) algorithm [11]. In contrast, Eden et al. [12] derive recursive update equations that estimate the latent space. In both papers [1, 12], the observations are not restricted to spike locations, but are arbitrary points in time. The latent process can, in principle, be estimated for every time instant.

Another category is rule-based algorithms as in [16, 20]. These algorithms can adapt their behavior to the underlying sequence of inter beat intervals and aim to fix the inter beat intervals that look anomalous. Thanks to the simplicity of their rules, they are easy to implement and efficient to run.

More generally, the literature on robust state space filters is vast. However, many of the papers in the existing literature assume a state and observation space that can be described or well approximated by a Gaussian process. Usually, outliers are handled by either incorporating an outlier generation model or manipulating the state/observation distributions to follow a heavy-tailed distribution – see for instance [27, 23, 2] for some relatively recent examples. While these approaches are valuable, they do not directly address our problem, where the states are clearly non-Gaussian.

An important category is the probabilistic data association filter (PDAF). PDAF is specifically designed to hande clutter or missing detections [4, 5]. In this framework, multiple hypotheses are postulated to describe the process that generates the observations. Given the observation, one computes the probability of each hypothesis and updates the filter parameters based on these probabilities. However, like the general robust filters mentioned above, in PDAF and its many variants, one usually assumes that the underlying states follow a Gaussian process.

Contribution

The proposed filter aims to retain the simplicity of rule-based methods [16, 20] designed specifically for IBI filtering, and robustness of the state-space filters [27, 23] that are not directly suitable for IBI filtering. We adopt the inverse Gaussian model for IBIs. In contrast to [6], we assume the parameters of this distribution are themselves random variables, with a suitable distribution. We handle anomalous observations by resorting to the PDAF [4, 5]. We specifically consider a two-hypothesis scenario; the observation being anomalous or not. We show that this choice plays well with the current setup, and yields a simple algorithm.

Pseudo-code for the algorithm is in Algorithm 1. While the steps may not be clear at this stage, we remark that the most complicated operations are exp()\exp(\cdot)roman_exp ( ⋅ ) and \sqrt{\cdot}square-root start_ARG ⋅ end_ARG. Therefore, the algorithm is very suitable for running on edge devices.

Another aspect we emphasize from an edge device perspective is how the algorithm helps save on memory or energy. Generally, the IBI distribution changes much more slowly than individual IBIs. In turn, the parameters describing the distribution can be communicated at a much lower rate. For a battery-powered device, this means considerable compression and savings in terms of either memory, if the information is being stored, or energy, if the information is being communicated.

1:λn,μn|r:nfc(λn,μn|θn)similar-tosubscript𝜆𝑛conditionalsubscript𝜇𝑛subscript𝑟:absent𝑛subscript𝑓𝑐subscript𝜆𝑛conditionalsubscript𝜇𝑛subscript𝜃𝑛\lambda_{n},\mu_{n}|r_{:n}\sim f_{c}(\lambda_{n},\mu_{n}|\theta_{n})italic_λ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ∼ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) per (3), new IBI rn+1subscript𝑟𝑛1r_{n+1}italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT, parameters γ𝛾\gammaitalic_γ, pesubscript𝑝𝑒p_{e}italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT, λesubscript𝜆𝑒\lambda_{e}italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT, θn:=[abcd]assignsubscript𝜃𝑛matrix𝑎𝑏𝑐𝑑\theta_{n}:=\begin{bmatrix}a\,b\,c\,d\end{bmatrix}italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT := [ start_ARG start_ROW start_CELL italic_a italic_b italic_c italic_d end_CELL end_ROW end_ARG ]
2:Distribution of μn+1,λn+1subscript𝜇𝑛1subscript𝜆𝑛1\mu_{n+1},\lambda_{n+1}italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT approximated as fc(λn+1,μn+1|θn+1)subscript𝑓𝑐subscript𝜆𝑛1conditionalsubscript𝜇𝑛1subscript𝜃𝑛1f_{c}(\lambda_{n+1},\mu_{n+1}|\theta_{n+1})italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ), parameterized through θn+1subscript𝜃𝑛1\theta_{n+1}italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT.
3:μ2a/bsuperscript𝜇2𝑎𝑏\mu^{*}\leftarrow 2a/bitalic_μ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ← 2 italic_a / italic_b
4:λ(2acb2)/(2ad)superscript𝜆2𝑎𝑐superscript𝑏22𝑎𝑑\lambda^{*}\leftarrow(2ac-b^{2})/(2ad)italic_λ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ← ( 2 italic_a italic_c - italic_b start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) / ( 2 italic_a italic_d )
5:h0peλeexp(λern+1)subscript0subscript𝑝𝑒subscript𝜆𝑒subscript𝜆𝑒subscript𝑟𝑛1h_{0}\leftarrow p_{e}\,\lambda_{e}\,\exp(-\lambda_{e}\,r_{n+1})italic_h start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ← italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT roman_exp ( - italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT )
6:h1(1pe)λ2πrn+13exp(λ(rn+1μ)22μ2rn+1)subscript11subscript𝑝𝑒superscript𝜆2𝜋superscriptsubscript𝑟𝑛13𝜆superscriptsubscript𝑟𝑛1𝜇22superscript𝜇2subscript𝑟𝑛1h_{1}\leftarrow(1-p_{e})\,\sqrt{\dfrac{\lambda^{*}}{2\pi\,r_{n+1}^{3}}}\,\exp% \left(-\dfrac{\lambda(r_{n+1}-\mu)^{2}}{2\mu^{2}\,r_{n+1}}\right)italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ← ( 1 - italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ) square-root start_ARG divide start_ARG italic_λ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT end_ARG start_ARG 2 italic_π italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT end_ARG end_ARG roman_exp ( - divide start_ARG italic_λ ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT - italic_μ ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG 2 italic_μ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_ARG )
7:β1h1/(h0+h1)subscript𝛽1subscript1subscript0subscript1\beta_{1}\leftarrow h_{1}/(h_{0}+h_{1})italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ← italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT / ( italic_h start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) \triangleright Prob(rn+1subscript𝑟𝑛1r_{n+1}italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT is not anomalous)
8:β01β1subscript𝛽01subscript𝛽1\beta_{0}\leftarrow 1-\beta_{1}italic_β start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ← 1 - italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT \triangleright Prob(rn+1subscript𝑟𝑛1r_{n+1}italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT is anomalous) - for reporting
9:θn+1γθn+β1[0.5rn+110.5/rn+10.5]subscript𝜃𝑛1𝛾subscript𝜃𝑛subscript𝛽1matrix0.5subscript𝑟𝑛110.5subscript𝑟𝑛10.5\theta_{n+1}\leftarrow\gamma\,\theta_{n}+\beta_{1}\begin{bmatrix}0.5r_{n+1}\\ 1\\ 0.5/r_{n+1}\\ 0.5\end{bmatrix}italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ← italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT [ start_ARG start_ROW start_CELL 0.5 italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW start_ROW start_CELL 0.5 / italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0.5 end_CELL end_ROW end_ARG ]
Algorithm 1 IBI Filter

Outline

We start with some background information on the inverse Gaussian distribution in Section II. The filter is derived in Section III. Section IV provides numerical experiments that demonstrate the utility of the filter. Section V contains concluding remarks and outlook.

II Background on the Inverse Gaussian Distribution

The assumption underlying the proposed filter is that, locally, IBIs are generated by independently sampling an inverse Gaussian random variable (see [9] for a motivation, [7] for a modified model). The filter keeps track of this distribution.

We provide an overview of the inverse Gaussian distribution (see, e.g., [22] for derivations of these properties), and describe a useful conjugate prior.

II-A The Inverse Gaussian Distribution

An inverse Gaussian random variable is the time it takes for a random walk with drift to reach unity. Assuming w(t)𝑤𝑡w(t)italic_w ( italic_t ) denotes a standard Brownian motion process, a random walk with drift can be obtained as

x(t)=1μt+1λw(t).𝑥𝑡1𝜇𝑡1𝜆𝑤𝑡x(t)=\frac{1}{\mu}t+\frac{1}{\sqrt{\lambda}}\,w(t).italic_x ( italic_t ) = divide start_ARG 1 end_ARG start_ARG italic_μ end_ARG italic_t + divide start_ARG 1 end_ARG start_ARG square-root start_ARG italic_λ end_ARG end_ARG italic_w ( italic_t ) .

Here, the term t/μ𝑡𝜇t/\muitalic_t / italic_μ ensures that x(t)𝑥𝑡x(t)italic_x ( italic_t ) has linearly increasing mean, whereas λ𝜆\lambdaitalic_λ controls its variance. The first time that x(t)𝑥𝑡x(t)italic_x ( italic_t ) reaches unity is an inverse Gaussian random variable, parameterized by μ𝜇\muitalic_μ and λ𝜆\lambdaitalic_λ. Its pdf is of the form

fIG(t)={0,if t<0,λ2πt3exp(λ(tμ)22μ2t),if t0.subscript𝑓IG𝑡cases0if 𝑡0𝜆2𝜋superscript𝑡3𝜆superscript𝑡𝜇22superscript𝜇2𝑡if 𝑡0f_{\text{IG}}(t)=\begin{cases}0,&\text{if }t<0,\\ \sqrt{\dfrac{\lambda}{2\pi t^{3}}}\,\exp\left(-\dfrac{\lambda\,(t-\mu)^{2}}{2% \mu^{2}\,t}\right),&\text{if }t\geq 0.\end{cases}italic_f start_POSTSUBSCRIPT IG end_POSTSUBSCRIPT ( italic_t ) = { start_ROW start_CELL 0 , end_CELL start_CELL if italic_t < 0 , end_CELL end_ROW start_ROW start_CELL square-root start_ARG divide start_ARG italic_λ end_ARG start_ARG 2 italic_π italic_t start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT end_ARG end_ARG roman_exp ( - divide start_ARG italic_λ ( italic_t - italic_μ ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT end_ARG start_ARG 2 italic_μ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_t end_ARG ) , end_CELL start_CELL if italic_t ≥ 0 . end_CELL end_ROW

The mean and variance of an inverse Gaussian random variable X𝑋Xitalic_X are

𝔼(X)𝔼𝑋\displaystyle\mathbb{E}(X)blackboard_E ( italic_X ) =μ,absent𝜇\displaystyle=\mu,= italic_μ , (1)
var(X)var𝑋\displaystyle\text{var}(X)var ( italic_X ) =μ3λ.absentsuperscript𝜇3𝜆\displaystyle=\dfrac{\mu^{3}}{\lambda}.= divide start_ARG italic_μ start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT end_ARG start_ARG italic_λ end_ARG . (2)

Likelihood for an Inverse Gaussian

Suppose x1,,xnsubscript𝑥1subscript𝑥𝑛x_{1},\ldots,x_{n}italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are independent samples from an inverse Gaussian distribution. The likelihood is of the form

L(λ,μ;x1,,xn)=zλn/2exp(λ(μ2i=1nxi2μ1n+i=1n12xi)),L𝜆𝜇subscript𝑥1subscript𝑥𝑛𝑧superscript𝜆𝑛2𝜆superscript𝜇2superscriptsubscript𝑖1𝑛subscript𝑥𝑖2superscript𝜇1𝑛superscriptsubscript𝑖1𝑛12subscript𝑥𝑖\text{L}(\lambda,\mu;x_{1},\ldots,x_{n})\\ =z\,\lambda^{n/2}\exp\left(-\lambda\biggl{(}\mu^{-2}\sum_{i=1}^{n}\frac{x_{i}}% {2}\,-\mu^{-1}\,n+\sum_{i=1}^{n}\frac{1}{2\,x_{i}}\biggr{)}\right),start_ROW start_CELL L ( italic_λ , italic_μ ; italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL = italic_z italic_λ start_POSTSUPERSCRIPT italic_n / 2 end_POSTSUPERSCRIPT roman_exp ( - italic_λ ( italic_μ start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT divide start_ARG italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG - italic_μ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_n + ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT divide start_ARG 1 end_ARG start_ARG 2 italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG ) ) , end_CELL end_ROW

where z𝑧zitalic_z is independent of λ𝜆\lambdaitalic_λ or μ𝜇\muitalic_μ.

Natural Conjugate Prior

The IBI filter operates by updating statistics for μ𝜇\muitalic_μ and λ𝜆\lambdaitalic_λ. That is, we retain some “prior” information about these parameters, and update the prior information as we receive new observations. For Bayesian filtering, this prior information typically consists of a distribution. Adapting to our context, we need to postulate a distribution for λ𝜆\lambdaitalic_λ, μ𝜇\muitalic_μ, and update that distribution with each new IBI observation. A convenient distribution to use as prior is the natural-conjugate prior [13].

From the likelihood function, we find that the natural conjugate is of the form (following the notation of [19])

fc(λ,μ|a,b,c,d)λdexp(λ(aμ2bμ1+c)),proportional-tosubscript𝑓𝑐𝜆conditional𝜇𝑎𝑏𝑐𝑑superscript𝜆𝑑𝜆𝑎superscript𝜇2𝑏superscript𝜇1𝑐f_{c}(\lambda,\mu|a,b,c,d)\propto\lambda^{d}\,\exp(-\lambda(a\mu^{-2}-b\mu^{-1% }+c)),italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ , italic_μ | italic_a , italic_b , italic_c , italic_d ) ∝ italic_λ start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT roman_exp ( - italic_λ ( italic_a italic_μ start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPT - italic_b italic_μ start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT + italic_c ) ) , (3)

valid for μ>0𝜇0\mu>0italic_μ > 0, λ>0𝜆0\lambda>0italic_λ > 0. Palmer [19] shows that this function is not integrable in its natural domain R+={(μ,λ):μ>0,λ>0}subscript𝑅conditional-set𝜇𝜆formulae-sequence𝜇0𝜆0R_{+}=\{(\mu,\lambda):\mu>0,\lambda>0\}italic_R start_POSTSUBSCRIPT + end_POSTSUBSCRIPT = { ( italic_μ , italic_λ ) : italic_μ > 0 , italic_λ > 0 }. Therefore, it is not a proper distribution. Nevertheless, it becomes integrable if we restrict the region of integration [19]. In the following, we will assume this restriction is in place, and employ fc(λ,μ)subscript𝑓𝑐𝜆𝜇f_{c}(\lambda,\mu)italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ , italic_μ ) to encode the information on λ𝜆\lambdaitalic_λ, μ𝜇\muitalic_μ.

Comparing the natural conjugate prior’s parameters to the likelihood function, we reach a useful interpretation of the parameters as

  • 2a𝑎aitalic_a: sum of IBIs

  • b𝑏bitalic_b : number of IBIs

  • 2c𝑐citalic_c : sum of the inverse of IBIs

  • 2d𝑑ditalic_d: number of IBIs

For what follows, we also note that the maximizer of fc(λ,μ)subscript𝑓𝑐𝜆𝜇f_{c}(\lambda,\mu)italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ , italic_μ ) is (which can be found by setting the gradient to zero),

μsuperscript𝜇\displaystyle\mu^{*}italic_μ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT =2ab,absent2𝑎𝑏\displaystyle=\frac{2a}{b},= divide start_ARG 2 italic_a end_ARG start_ARG italic_b end_ARG , (4)
λsuperscript𝜆\displaystyle\lambda^{*}italic_λ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT =cb2/(2a)d.absent𝑐superscript𝑏22𝑎𝑑\displaystyle=\frac{c-b^{2}/(2a)}{d}.= divide start_ARG italic_c - italic_b start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT / ( 2 italic_a ) end_ARG start_ARG italic_d end_ARG . (5)

III Derivation of the Filter

We follow the standard schema for Bayesian filtering [24]. Specifically, we propose a state-space model where the parameters of the model are allowed to vary with time. Given the set of past IBIs r:n={rn,rn1,}subscript𝑟:absent𝑛subscript𝑟𝑛subscript𝑟𝑛1r_{:n}=\{r_{n},r_{n-1},\ldots\}italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT = { italic_r start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_n - 1 end_POSTSUBSCRIPT , … }, we assume that

p(μn,λn|r:n)=fc(μn,λn|θn),𝑝subscript𝜇𝑛conditionalsubscript𝜆𝑛subscript𝑟:absent𝑛subscript𝑓𝑐subscript𝜇𝑛conditionalsubscript𝜆𝑛subscript𝜃𝑛p(\mu_{n},\lambda_{n}|r_{:n})=f_{c}(\mu_{n},\lambda_{n}|\theta_{n}),italic_p ( italic_μ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) = italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) ,

where θn={an,bn,cn,dn}subscript𝜃𝑛subscript𝑎𝑛subscript𝑏𝑛subscript𝑐𝑛subscript𝑑𝑛\theta_{n}=\{a_{n},b_{n},c_{n},d_{n}\}italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT = { italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_b start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_d start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } collects together the parameters.

III-A State Update Model

Before receiving the next IBI, we postulate that the state updates as

p(μn+1,λn+1|r:n)𝑝subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝑟:absent𝑛\displaystyle p(\mu_{n+1},\lambda_{n+1}|r_{:n})italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) fc(μn+1,λn+1|θn)γproportional-toabsentsubscript𝑓𝑐superscriptsubscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝜃𝑛𝛾\displaystyle\propto f_{c}(\mu_{n+1},\lambda_{n+1}|\theta_{n})^{\gamma}∝ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT italic_γ end_POSTSUPERSCRIPT
=fc(μn+1,λn+1|γθn),absentsubscript𝑓𝑐subscript𝜇𝑛1conditionalsubscript𝜆𝑛1𝛾subscript𝜃𝑛\displaystyle=f_{c}(\mu_{n+1},\lambda_{n+1}|\gamma\,\theta_{n}),= italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) ,

where 0<γ<10𝛾10<\gamma<10 < italic_γ < 1.

For a unimodal function like fcsubscript𝑓𝑐f_{c}italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT, raising to a power less than unity preserves the mode, and increases the variance of the distribution. This is precisely the behavior that the standard random walk model in Gaussian state-space filtering achieves. For a detailed justification of this specific update model, we refer to [25].

Finally, given the distribution p(μn+1,λn+1|r:n)𝑝subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝑟:absent𝑛p(\mu_{n+1},\lambda_{n+1}|r_{:n})italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ), the next IBI rn+1subscript𝑟𝑛1r_{n+1}italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT is assumed to be independent of previous IBIs, and follows the distribution fIG(|λn+1,μn+1)f_{\text{IG}}(\cdot|\lambda_{n+1},\mu_{n+1})italic_f start_POSTSUBSCRIPT IG end_POSTSUBSCRIPT ( ⋅ | italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ).

III-B Filter Updates

Given this model, we can write down the rules for updating the parameters. Specifically, since

p(μn+1,λn+1|r:n+1)p(rn+1|μn+1,λn+1)p(μn+1,λn+1|r:n),proportional-to𝑝subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝑟:absent𝑛1𝑝conditionalsubscript𝑟𝑛1subscript𝜇𝑛1subscript𝜆𝑛1𝑝subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝑟:absent𝑛p(\mu_{n+1},\lambda_{n+1}|r_{:n+1})\\ \propto p(r_{n+1}|\mu_{n+1},\lambda_{n+1})\cdot p(\mu_{n+1},\lambda_{n+1}|r_{:% n}),start_ROW start_CELL italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL ∝ italic_p ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ⋅ italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) , end_CELL end_ROW

we obtain

p(μn+1,\displaystyle p(\mu_{n+1},italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , λn+1|r:n+1)\displaystyle\lambda_{n+1}|r_{:n+1})italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT )
fIG(rn+1|μn+1,λn+1)fc(μn+1,λn+1|γθn)proportional-toabsentsubscript𝑓IGconditionalsubscript𝑟𝑛1subscript𝜇𝑛1subscript𝜆𝑛1subscript𝑓𝑐subscript𝜇𝑛1conditionalsubscript𝜆𝑛1𝛾subscript𝜃𝑛\displaystyle\propto f_{\text{IG}}(r_{n+1}|\mu_{n+1},\lambda_{n+1})\,\cdot f_{% c}(\mu_{n+1},\lambda_{n+1}|\gamma\theta_{n})∝ italic_f start_POSTSUBSCRIPT IG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ⋅ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT )
fc(μn+1,λn+1|θn+1)proportional-toabsentsubscript𝑓𝑐subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝜃𝑛1\displaystyle\propto f_{c}(\mu_{n+1},\lambda_{n+1}|\theta_{n+1})∝ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) (6)

where

θn+1=[an+1bn+1cn+1dn+1]=γ[anbncndn]+[0.5rn+110.5/rn+10.5].subscript𝜃𝑛1matrixsubscript𝑎𝑛1subscript𝑏𝑛1subscript𝑐𝑛1subscript𝑑𝑛1𝛾matrixsubscript𝑎𝑛subscript𝑏𝑛subscript𝑐𝑛subscript𝑑𝑛matrix0.5subscript𝑟𝑛110.5subscript𝑟𝑛10.5\theta_{n+1}=\begin{bmatrix}a_{n+1}\\ b_{n+1}\\ c_{n+1}\\ d_{n+1}\end{bmatrix}=\gamma\,\begin{bmatrix}a_{n}\\ b_{n}\\ c_{n}\\ d_{n}\end{bmatrix}+\begin{bmatrix}0.5\,r_{n+1}\\ 1\\ 0.5/r_{n+1}\\ 0.5\end{bmatrix}.italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT = [ start_ARG start_ROW start_CELL italic_a start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_b start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_c start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_d start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] = italic_γ [ start_ARG start_ROW start_CELL italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_b start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL italic_d start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ] + [ start_ARG start_ROW start_CELL 0.5 italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW start_ROW start_CELL 0.5 / italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0.5 end_CELL end_ROW end_ARG ] .

If, at anytime, the mean and variance of the heart rate distribution is required, they can be estimated using the mode of fc(λn,μn|θn)subscript𝑓𝑐subscript𝜆𝑛conditionalsubscript𝜇𝑛subscript𝜃𝑛f_{c}(\lambda_{n},\mu_{n}|\theta_{n})italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ), along with (1)

𝔼(HR)𝔼HR\displaystyle\mathbb{E}(\text{HR})blackboard_E ( HR ) =2anbnabsent2subscript𝑎𝑛subscript𝑏𝑛\displaystyle=\frac{2a_{n}}{b_{n}}= divide start_ARG 2 italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_ARG start_ARG italic_b start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_ARG
var(HR)varHR\displaystyle\text{var}(\text{HR})var ( HR ) =16an4dnbn3(2acb2).absent16superscriptsubscript𝑎𝑛4subscript𝑑𝑛superscriptsubscript𝑏𝑛32𝑎𝑐superscript𝑏2\displaystyle=\frac{16\,a_{n}^{4}\,d_{n}}{b_{n}^{3}\,(2ac-b^{2})}.= divide start_ARG 16 italic_a start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 4 end_POSTSUPERSCRIPT italic_d start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_ARG start_ARG italic_b start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ( 2 italic_a italic_c - italic_b start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) end_ARG .

III-C Filtering Out Anomalous Intervals

The simple tracker outlined above assumes that IBIs do not contain any outliers. In practice, IBI estimation is far from ideal, especially in ambulatory conditions. There can be failures due to incorrect peak detection, which can happen if the input signal quality is poor. Apart from peak detector failure, it is also possible to observe unexpected IBIs, due to ectopic beats. We would like the filter to be robust against such IBIs. For the purposes of this document, we do not distinguish ectopic beats from erroneous IBIs, and collect them under the same label, “anomalous”.

We follow the PDAF [4] framework to derive an algorithm that handles such cases.

Given each IBI, we have to evaluate two hypothesis:

  • H0n+1superscriptsubscriptH0𝑛1\text{H}_{0}^{n+1}H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT : (n+1)stsuperscript𝑛1st(n+1)^{\text{st}}( italic_n + 1 ) start_POSTSUPERSCRIPT st end_POSTSUPERSCRIPT IBI is anomalous

  • H1n+1:=H0cassignsuperscriptsubscriptH1𝑛1superscriptsubscriptH0𝑐\text{H}_{1}^{n+1}:=\text{H}_{0}^{c}H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n + 1 end_POSTSUPERSCRIPT := H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT : (n+1)stsuperscript𝑛1st(n+1)^{\text{st}}( italic_n + 1 ) start_POSTSUPERSCRIPT st end_POSTSUPERSCRIPT IBI is not anomalous

In the following, for simplicity of notation, we will drop the superscript, and write H0subscriptH0\text{H}_{0}H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, H1subscriptH1\text{H}_{1}H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT.

We are interested in computing the probabilities of these hypotheses. To do that, we declare

  1. (i)

    a prior probability pesubscript𝑝𝑒p_{e}italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT for getting an anomalous IBI,

  2. (ii)

    a probability distribution for anomalous observations .

For (ii), we postulate that anomalous observations follow an exponential distribution:

fe(x)=λeexp(λex)u(x),subscript𝑓𝑒𝑥subscript𝜆𝑒subscript𝜆𝑒𝑥𝑢𝑥f_{e}(x)=\lambda_{e}\,\exp(-\lambda_{e}\,x)\,u(x),italic_f start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ( italic_x ) = italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT roman_exp ( - italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_x ) italic_u ( italic_x ) ,

where u(x)𝑢𝑥u(x)italic_u ( italic_x ) denotes the step function. To incorporate PDAF, we introduced two new scalars, pesubscript𝑝𝑒p_{e}italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT, λesubscript𝜆𝑒\lambda_{e}italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT, as parameters to tune.

The posterior distribution of μn+1subscript𝜇𝑛1\mu_{n+1}italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT, λn+1subscript𝜆𝑛1\lambda_{n+1}italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT takes the form

i=01p(μn+1,λn+1|Hi,r:n+1)p(Hi|r:n+1)superscriptsubscript𝑖01𝑝subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝐻𝑖subscript𝑟:absent𝑛1𝑝conditionalsubscript𝐻𝑖subscript𝑟:absent𝑛1\sum_{i=0}^{1}\,p(\mu_{n+1},\lambda_{n+1}|H_{i},r_{:n+1})\cdot p(H_{i}|r_{:n+1})∑ start_POSTSUBSCRIPT italic_i = 0 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT ) ⋅ italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT ) (7)

For what follows, for i=0,1𝑖01i=0,1italic_i = 0 , 1, we define

αisubscript𝛼𝑖\displaystyle\alpha_{i}italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT :=p(μn+1,λn+1|Hi,r:n+1),assignabsent𝑝subscript𝜇𝑛1conditionalsubscript𝜆𝑛1subscript𝐻𝑖subscript𝑟:absent𝑛1\displaystyle:=p(\mu_{n+1},\lambda_{n+1}|H_{i},r_{:n+1}),:= italic_p ( italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT ) ,
βisubscript𝛽𝑖\displaystyle\beta_{i}italic_β start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT :=p(Hi|r:n+1).assignabsent𝑝conditionalsubscript𝐻𝑖subscript𝑟:absent𝑛1\displaystyle:=p(H_{i}|r_{:n+1}).:= italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT ) .

Computing Probability of Parameters Given Hypotheses

αisubscript𝛼𝑖\alpha_{i}italic_α start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT’s are relatively easy to compute. Under H0subscriptH0\text{H}_{0}H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, we simply take

α0=fc(λn+1,μn+1|γθn).subscript𝛼0subscript𝑓𝑐subscript𝜆𝑛1conditionalsubscript𝜇𝑛1𝛾subscript𝜃𝑛\alpha_{0}=f_{c}(\lambda_{n+1},\mu_{n+1}|\gamma\theta_{n}).italic_α start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) .

Under H1subscriptH1\text{H}_{1}H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, we take

α1=fc(λn+1,μn+1|θn+1),subscript𝛼1subscript𝑓𝑐subscript𝜆𝑛1conditionalsubscript𝜇𝑛1subscript𝜃𝑛1\alpha_{1}=f_{c}(\lambda_{n+1},\mu_{n+1}|\theta_{n+1}),italic_α start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ,

whose expression was provided in (6).

Computing Hypothesis Probabilities

We first write

βi=p(Hi|r:n+1)subscript𝛽𝑖𝑝conditionalsubscript𝐻𝑖subscript𝑟:absent𝑛1\displaystyle\beta_{i}=p(H_{i}|r_{:n+1})italic_β start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n + 1 end_POSTSUBSCRIPT ) p(Hi,rn+1|r:n)proportional-toabsent𝑝subscript𝐻𝑖conditionalsubscript𝑟𝑛1subscript𝑟:absent𝑛\displaystyle\propto p(H_{i},r_{n+1}|r_{:n})∝ italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT )
=p(rn+1|Hi,r:n)p(Hi|r:n)absent𝑝conditionalsubscript𝑟𝑛1subscript𝐻𝑖subscript𝑟:absent𝑛𝑝conditionalsubscript𝐻𝑖subscript𝑟:absent𝑛\displaystyle=p(r_{n+1}|H_{i},r_{:n})\,p(H_{i}|r_{:n})= italic_p ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT )

Whether the (n+1)stsuperscript𝑛1st(n+1)^{\text{st}}( italic_n + 1 ) start_POSTSUPERSCRIPT st end_POSTSUPERSCRIPT IBI will be anomalous or not does not depend on previous observations. Therefore,

p(Hi|r:n)=p(Hi)={pe,for i=0,1pe,for i=1,𝑝conditionalsubscript𝐻𝑖subscript𝑟:absent𝑛𝑝subscript𝐻𝑖casessubscript𝑝𝑒for 𝑖01subscript𝑝𝑒for 𝑖1p(H_{i}|r_{:n})=p(H_{i})=\begin{cases}p_{e},&\text{for }i=0,\\ 1-p_{e},&\text{for }i=1,\end{cases}italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT | italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) = italic_p ( italic_H start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) = { start_ROW start_CELL italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT , end_CELL start_CELL for italic_i = 0 , end_CELL end_ROW start_ROW start_CELL 1 - italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT , end_CELL start_CELL for italic_i = 1 , end_CELL end_ROW

Consider now the other term. We have

p(rn+1|H0,r:n)=λeexp(λern+1),𝑝conditionalsubscript𝑟𝑛1subscript𝐻0subscript𝑟:absent𝑛subscript𝜆𝑒subscript𝜆𝑒subscript𝑟𝑛1p(r_{n+1}|H_{0},r_{:n})=\lambda_{e}\,\exp(-\lambda_{e}\,r_{n+1}),italic_p ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) = italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT roman_exp ( - italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ,

and

p(rn+1|H1,r:n)=fIG(rn+1|λ,μ)fc(λ,μ|γθn)𝑑λ𝑑μ.𝑝conditionalsubscript𝑟𝑛1subscript𝐻1subscript𝑟:absent𝑛subscript𝑓IGconditionalsubscript𝑟𝑛1𝜆𝜇subscript𝑓𝑐𝜆conditional𝜇𝛾subscript𝜃𝑛differential-d𝜆differential-d𝜇p(r_{n+1}|H_{1},r_{:n})=\int\,f_{\text{IG}}(r_{n+1}|\lambda,\mu)\,\cdot f_{c}(% \lambda,\mu|\gamma\theta_{n})\,d\lambda\,d\mu.italic_p ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) = ∫ italic_f start_POSTSUBSCRIPT IG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_λ , italic_μ ) ⋅ italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ , italic_μ | italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) italic_d italic_λ italic_d italic_μ .

The latter integral does not have a closed form expression. While it’s not the only choice, we opt for the simple approximation of

fc(λ,μ|γθn)=δ(λλn+1)δ(μμn+1),subscript𝑓𝑐𝜆conditional𝜇𝛾subscript𝜃𝑛𝛿𝜆subscriptsuperscript𝜆𝑛1𝛿𝜇subscriptsuperscript𝜇𝑛1f_{c}(\lambda,\mu|\gamma\theta_{n})=\delta(\lambda-\lambda^{*}_{n+1})\cdot% \delta(\mu-\mu^{*}_{n+1}),italic_f start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( italic_λ , italic_μ | italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) = italic_δ ( italic_λ - italic_λ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ⋅ italic_δ ( italic_μ - italic_μ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ,

where the maximum likelihood estimates of λ𝜆\lambdaitalic_λ and μ𝜇\muitalic_μ are given in (4). Plugging those in, we have

p(rn+1|H1,r:n)=fIG(rn+1|λn+1,μn+1).𝑝conditionalsubscript𝑟𝑛1subscript𝐻1subscript𝑟:absent𝑛subscript𝑓IGconditionalsubscript𝑟𝑛1subscriptsuperscript𝜆𝑛1subscriptsuperscript𝜇𝑛1p(r_{n+1}|H_{1},r_{:n})=f_{\text{IG}}(r_{n+1}|\lambda^{*}_{n+1},\mu^{*}_{n+1}).italic_p ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_r start_POSTSUBSCRIPT : italic_n end_POSTSUBSCRIPT ) = italic_f start_POSTSUBSCRIPT IG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_λ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) .

To summarize, we have

β0=b0b0+b1,β1=b1b0+b1,formulae-sequencesubscript𝛽0subscript𝑏0subscript𝑏0subscript𝑏1subscript𝛽1subscript𝑏1subscript𝑏0subscript𝑏1\beta_{0}=\dfrac{b_{0}}{b_{0}+b_{1}},\,\,\beta_{1}=\dfrac{b_{1}}{b_{0}+b_{1}},italic_β start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = divide start_ARG italic_b start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG start_ARG italic_b start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG , italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = divide start_ARG italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG italic_b start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG ,

where

b0subscript𝑏0\displaystyle b_{0}italic_b start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT =peλeexp(λern+1),absentsubscript𝑝𝑒subscript𝜆𝑒subscript𝜆𝑒subscript𝑟𝑛1\displaystyle=p_{e}\,\lambda_{e}\,\exp(-\lambda_{e}\,r_{n+1}),= italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT roman_exp ( - italic_λ start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) ,
b1subscript𝑏1\displaystyle b_{1}italic_b start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =(1pe)fIG(rn+1|λn+1,μn+1))\displaystyle=(1-p_{e})\,f_{\text{IG}}(r_{n+1}|\lambda^{*}_{n+1},\mu^{*}_{n+1}))= ( 1 - italic_p start_POSTSUBSCRIPT italic_e end_POSTSUBSCRIPT ) italic_f start_POSTSUBSCRIPT IG end_POSTSUBSCRIPT ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT | italic_λ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT , italic_μ start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) )

III-D Collapsing the Mixture

We provided expressions to compute the posterior probability in (7). However, this is a mixture distribution. In order to keep the recursions in the same form, we need to reduce the mixture to a single component as is typically done in Gaussian sum filtering and variants [4].

To come up with a reduction scheme, we recall the interpretation of the parameters in θnsubscript𝜃𝑛\theta_{n}italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT. These are either the number of observations, or the sum of a function of the observations. Under H0subscriptH0\text{H}_{0}H start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT, it is as if we miss an observation, whereas in H1subscriptH1\text{H}_{1}H start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, we do make the proper observation. Therefore we can simply use a convex combination to combine the two set of parameters. The weight of the convex combination can be taken as β0subscript𝛽0\beta_{0}italic_β start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT. This leads to the update rule

θn+1subscript𝜃𝑛1\displaystyle\theta_{n+1}italic_θ start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT =β0(γθn)+β1(γθn+v(rn+1))absentsubscript𝛽0𝛾subscript𝜃𝑛subscript𝛽1𝛾subscript𝜃𝑛𝑣subscript𝑟𝑛1\displaystyle=\beta_{0}(\gamma\theta_{n})+\beta_{1}\left(\gamma\,\theta_{n}+v(% r_{n+1})\right)= italic_β start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ( italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ) + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ( italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT + italic_v ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) )
=γθn+β1v(rn+1)absent𝛾subscript𝜃𝑛subscript𝛽1𝑣subscript𝑟𝑛1\displaystyle=\gamma\,\theta_{n}+\beta_{1}\,v(r_{n+1})= italic_γ italic_θ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT + italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_v ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT )

where

v(rn+1)=[0.5rn+110.5/rn+10.5].𝑣subscript𝑟𝑛1matrix0.5subscript𝑟𝑛110.5subscript𝑟𝑛10.5v(r_{n+1})=\begin{bmatrix}0.5\,r_{n+1}\\ 1\\ 0.5/r_{n+1}\\ 0.5\end{bmatrix}.italic_v ( italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT ) = [ start_ARG start_ROW start_CELL 0.5 italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW start_ROW start_CELL 0.5 / italic_r start_POSTSUBSCRIPT italic_n + 1 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0.5 end_CELL end_ROW end_ARG ] .

The final expression suggests that we have made a ‘partial’ observation (of weight β1subscript𝛽1\beta_{1}italic_β start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT) - an interpretation that is consistent with the motivation for the rule.

Putting it all together gives Algorithm 1.

IV Experiments

We consider IBI series obtained from the Fantasia database [15] made available through the Physionet ATM [14]. We conduct two experiments to assess different features of the proposed filter.

In the first experiment, we compare how the anomaly probability of the proposed filter compares against the robust Kalman filter proposed in [27].

The second experiment evaluates the proposed filter’s ability to accurately and robustly estimate HRV. We compare the filter against a two-stage scheme, that comprises a rule-based IBI fixing algorithm followed by a sliding window standard deviation computation. These are compared to ground truth HRV computed also using a sliding window.

Refer to caption
Figure 1: True IBIs, and anomalous IBIs obtained by perturbing heart beat locations

For our experiments, given beat locations, we introduce two types of errors:

  • Missed detections, by randomly removing a small percentage, pmsubscript𝑝𝑚p_{m}italic_p start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT, of the beats,

  • False detections, by adding a small percentage, pfsubscript𝑝𝑓p_{f}italic_p start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT, of beats, where each addition is uniformly distributed over the entire collection.

Each ‘missed detection’ introduces a large anomalous IBI, whereas a ‘false detection’ introduces a consecutive pair of low anomalous IBIs. We set pf=pm=psubscript𝑝𝑓subscript𝑝𝑚𝑝p_{f}=p_{m}=pitalic_p start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT = italic_p start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT = italic_p in our experiments.

Anomaly Detection Capability

For this experiment, we used the data from the subject ‘f1y02’ (young subject with relatively high HRV) from the Fantasia dataset. We produced a set of noisy IBIs by the procedure outlined above, by setting p=10%𝑝percent10p=10\%italic_p = 10 %. Fig. 1 shows a small excerpt with true and anomalous IBIs used in the experiment.

In practice, we will not have access to a probability of anomaly, so we initialized our filter by setting the probability of error to 0.090.090.090.09. In fact, the value p𝑝pitalic_p used in IBI generation and the probability of error in our filter are actually not exactly the same, so we are not really committing an inverse crime [28].

Running the IBIs through the proposed filter, we obtain a ‘probability of anomaly‘ for each IBI. Based on whether the IBI is true or not, we can produce two histograms as shown in Fig. 2. Ideally, we would see a single peak at 1 for the anomalous IBIs, and a single peak at 0 for the true IBIs.

Refer to caption
Figure 2: Histograms of anomaly probabilities computed via the proposed filter, and the robust Kalman filter from [27] .

We also ran the IBIs through the robust Kalman filter [27]. We modified the parameters so as to get as favorable a distribution as possible. We see from Fig. 2 that the proposed filter detects the anomalous IBIs more accurately. We think the main reason for the relatively poor performance of the robust Kalman filter is that its assumptions regarding the data distribution is not valid for this scenario. In other words, by tailoring the filter to a more accurate but still simple data model (namely, inverse Gaussian), we are able to retain simplicity of the filter without sacrificing accuracy.

HRV Accuracy

To test HRV accuracy, we let p𝑝pitalic_p vary from 1% to 50% in our experiments. 50%percent5050\%50 % error is obviously an exaggeration, and we do not expect methods to handle such error levels successfully. But testing with high error helps us understand how robust the methods under investigation are.

We compare our algorithm against the rule-based algorithm proposed by Lipponen and Tarvainen [16], implemented in neurokit2 [17]. This algorithm takes as input a set of noisy IBIs, determines which IBIs are incorrect, and fixes them.

For the kthsuperscript𝑘thk^{\text{th}}italic_k start_POSTSUPERSCRIPT th end_POSTSUPERSCRIPT beat at tksubscript𝑡𝑘t_{k}italic_t start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT, we compute an HRV value by considering the standard deviations of IBIs that fall in a sliding window. Specifically, we

  • compute the standard deviation of the neighboring 50 IBIs {tk24,tk+25}subscript𝑡𝑘24subscript𝑡𝑘25\{t_{k-24},\ldots t_{k+25}\}{ italic_t start_POSTSUBSCRIPT italic_k - 24 end_POSTSUBSCRIPT , … italic_t start_POSTSUBSCRIPT italic_k + 25 end_POSTSUBSCRIPT } from either the original (clean) sequence of IBIs, or the sequence of “corrected” IBIs, or

  • use the std of the empiricial estimate of the inverse Gaussian distribution, namely μ(t)3/λ(t)𝜇superscript𝑡3𝜆𝑡\sqrt{\mu(t)^{3}/\lambda(t)}square-root start_ARG italic_μ ( italic_t ) start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT / italic_λ ( italic_t ) end_ARG.

For p=5%𝑝percent5p=5\%italic_p = 5 %, the resulting 3 curves are shown in Fig 3. Even though the error is not critically high, the decoupled approach of fixing the IBIs followed by std computation with a sliding window does not give an accurate estimate.

Refer to caption
Figure 3: Standard deviation of IBIs obtained from the original IBI sequence (black), the tracked distribution (red), and the fixed sequence of noisy IBIs (green). The error percentage for this example was set to p=5%𝑝percent5p=5\%italic_p = 5 %. Despite fixing, the std estimates remain considerably high compared to the original.

Given these HRV estimates, we can compute an RMS error between

  • the std’s from original and fixed beats,

  • the std of the original beats and the std of the estimated inverse Gaussian.

Refer to caption
Figure 4: RMS error between HRV estimates obtained by fixing the noisy beat locations (red) and the proposed filter (black).

For different p𝑝pitalic_p values, these RMS values are shown in Fig. 4 for two different IBI sequences (f1y02 and f1o01) from the Fantasia dataset. In both, the trend suggests that while fixing the beats can be effective for very low probability of error, the proposed method is preferable in performance when error probability is high.

Refer to caption
Figure 5: Histograms of IBIs obtained from 200 beats at various instances, compared to the instantaneous estimate of the IBIs from the proposed filter.

To check how the distribution varies over time, we show the estimated distribution from the proposed filter at different instances in Fig. 5. For these histograms, we consider 200 consecutive beats. Even though the histogram itself can be noisy due to the low number of beats that contribute to the histogram, the inverse Gaussian distribution appears to correctly track the distribution, leading to a more interpretable summary.

V Conclusion

This paper introduces a filter that tracks inter beat intervals that is robust to outliers. While there are competing approaches in the literature, the proposed filter fills a gap :

  • it is lean enough to be implemented on a wearable device without requiring too much memory/computation, in contrast to other Bayesian-filtering approaches,

  • it is robust and accurate enough that it performs arguably better than a two-stage approach where the first stage consists of applying a simple rule-based lightweight IBI correction.

The proposed filter builds on the framework of probabilistic data association filter (PDAF) with two hypotheses : the input IBI is an anomaly or not. A more rigorous approach is to consider additional hypotheses as done by [10] (which used a different framework for correcting IBIs). We plan to investigate such an extension in future work.

References

  • [1] E.N. Brown A.C. Smith. Estimating a state-space model from point process observations. Neural Comput., 15(5):965–991, 2003.
  • [2] G. Agamennoni, J. I. Nieto, and E. M. Nebot. Approximate inference in state-space models with heavy-tailed noise. IEEE Transactions on Signal Processing, 60(10):5024–5037, 2012.
  • [3] R. Bailón, G. Laouini, C. Grao, M. Orini, P. Laguna, and O. Meste. The integral pulse frequency modulation model with time-varying threshold: Application to heart rate variability analysis during exercise stress testing. IEEE Transactions on Biomedical Engineering, 58(3):642–652, 2011.
  • [4] Y. Bar-Shalom, F. Daum, and J. Huang. The probabilistic data association filter. IEEE Control Systems Magazine, 29(6):82–100, Dec 2009.
  • [5] Y. Bar-Shalom, X. R. Li, and T. Kirubarajan. Estimation with Applications to Tracking and Navigation. Wiley, 2001.
  • [6] R. Barbieri and E.N. Brown. Analysis of heartbeat dynamics by point process adaptive filtering. IEEE Transactions on Biomedical Engineering, 53(1):4–12, 2006.
  • [7] R. Barbieri, E. C. Matten, A. A. Alabi, and E. N. Brown. A point-process model of human heartbeat intervals: new definitions of heart rate and heart rate variability. American journal of physiology Heart and circulatory physiology, 288, 2005.
  • [8] E. J. Bayly. Spectral analysis of pulse frequency modulation in the nervous systems. IEEE Transactions on Biomedical Engineering, BME-15(4):257–265, 1968.
  • [9] E. N. Brown. Course 14 - theory of point processes for neural systems. Les Houches, 80:691–727, 2005.
  • [10] L. Citi, E. N. Brown, and R. Barbieri. A real-time automated point-process method for the detection and correction of erroneous and ectopic heartbeats. IEEE Transactions on Biomedical Engineering, 59(10):2828–2837, 2012.
  • [11] A. P. Dempster, N. M. Laird, and D. B. Rubin. Maximum likelihood from incomplete data via the EM algorithm. Journal of the Royal Statistical Society B, 39:1–38, 1977.
  • [12] U. T. Eden, L. M. Frank, R. Barbieri, V. Solo, and E. N. Brown. Dynamic analysis of neural encoding by point process adaptive filtering. Neural Comput., 16(5):971–998, 2004.
  • [13] D. Fink. A compendium of conjugate priors. Technical Report, 1997.
  • [14] A.L. Goldberger, L.A.N Amaral, L. Glass, J.M. Hausdorff, P.Ch. Ivanov, R.G. Mark, J.E. Mietus, G.B. Moody, C.-K. Peng, and H.E. Stanley. Physiobank, physiotoolkit, and physionet: Components of a new research resource for complex physiologic signals. Circulation, 101(23):e215e–e220, 2000.
  • [15] N. Iyengar, C.K. Peng, R. Morin R, A.L. Goldberger, and L.A. Lipsitz. Age-related alterations in the fractal scaling of cardiac interbeat interval dynamics. Am. J. Physiol, 271:1078–1084, 1996.
  • [16] J.A. Lipponen and M.P. Tarvainen. A robust algorithm for heart rate variability time series artefact correction using novel beat classification. J Med Eng Technol., 43(3):173–181, 2019.
  • [17] D. Makowski, T. Pham, Z. J. Lau, J. C. Brammer, F. Lespinasse, H. Pham, C. Schölzel, and S. H. Annabel Chen. NeuroKit2: A python toolbox for neurophysiological signal processing. Behavior Research Methods, 53(4):1689–1696, feb 2021.
  • [18] J. Mateo and P. Laguna. Analysis of heart rate variability in the presence of ectopic beats using the heart timing signal. IEEE Transactions on Biomedical Engineering, 50(3):334–343, 2003.
  • [19] J. M. Palmer. Certain Non-Classical Inference Procedures Applied to the inverse Gaussian distribution. PhD thesis, Oklahoma State University, 2004.
  • [20] J. Rand, A. Hoover, S. Fishel, J. Moss, J. Pappas, and E. Muth. Real-time correction of heart interbeat intervals. IEEE Transactions on Biomedical Engineering, 54(5):946–950, 2007.
  • [21] O. Rompelman, J.B.I.M. Snijders, and C. J. Van Spronsen. The measurement of heart rate variability spectra with the help of a personal computer. IEEE Transactions on Biomedical Engineering, BME-29(7):503–510, 1982.
  • [22] S. Ross. Introduction to Probability Models. Academic Press, 2014.
  • [23] M. Roth, E. Özkan, and F. Gustafsson. A student’s t filter for heavy tailed process and measurement noise. In 2013 IEEE International Conference on Acoustics, Speech and Signal Processing, pages 5770–5774, 2013.
  • [24] S. Särkkä. Bayesian Filtering and Smoothing. Cambridge University Press, 2013.
  • [25] J. Q. Smith. A generalization of the bayesian steady forecasting filter. Journal of the Royal Statistical Society B, 41:375–387, 1979.
  • [26] D. L. Snyder and M. I. Miller. Random Point Processes in Time and Space. Springer, 1991.
  • [27] H. Wang, H. Li, J. Fang, and H. Wang. Robust gaussian kalman filter with outlier detection. IEEE Signal Processing Letters, 25(8):1236–1240, 2018.
  • [28] A. Wirgin. The inverse crime. arXiv:math-ph/0401050, 2004.