rMSSD – Finding the Right Metric

My question throughout these months of study has been around unnecessary distraction from an enjoyable life due to stressing out about things that did not merit the stress. My very first results were around surprising ways I was stressing myself out that on examination disappeared. Most of this work was self reported upsets. 

Once I started down the road to finding technology that could help me know when I was upset things became very complicated very fast. There are a large number of devices that claim to measure stress but my experience was that they were not consistently reading stress events. I highlight Heartmath in a lot of my work and it does provide a good baseline for relaxed coherence, but the technology is virtually unusable in all but quiet meditative session. For example, if you turn your head the readings will drop out to zero which is not very useful if you are meeting someone in a coffee shop. 

I have spent a lot of time with apps and Bluetooth heart rate belts. I built my knowledge reading academic papers and with off the shelf apps got to the point I have a good set of readings on stress events. The most complicated manual structure I devised was this:

  • take a reading with a Polar H7 heart rate sensor,
  • capture the output in SweetbeatLife app,
  • email the results to myself from the app,
  • download that associate file
  • import the data in that file to Kubios,
  • in Kubios cut the data into 30 second increments which meant three keystrokes repeated up to 120 times,
  • generate a pdf report that shows 11 different heart rate variability features,
  • enter the data from those features back into a spreadsheet (typically 660 entries),
  • manually tag whether I was clear headed or upset in a new column on the spreadsheet,
  • save that spreadsheet to CSV format,
  • copy a text version of that CSV format into the WEKA arff format,
  • use that arff formatted data to run an Artifical Neural Network in WEKA,
  • reword that WEKA data back into a prose form that said “this is how much I was upset or not”

I got pretty good results that were consistent with some academic papers I read and I had the satisfaction of learning a lot about HRV, and the process was not sustainable. I want to take readings while shooting shotguns and getting a foot massage, not spend all my time crunching data. 

To cut through that complexity and make the measuring and reading of data a small part of the experience I am settling on rMSSD as a single metric on which I am going to focus. Both the SweetBeatLIfe app and HeartRateLogger give a real time rMSSD reading and have that as an exportable feature. I can use Kubios to extract it from all the Heartmath work I have done. And I was pleased to read in an academic paper “SDNN/RMSSD as a Surrogate for LF/HF: A Revised Investigation” in Section 4.1 titled “The Epoch Aspect” that the rMSSD was a stable measurement when used in 10, 20, 30, 60, 120, 300 and 600 second readings. That means there has been some work done to support the fact that an rMSSD on 30 second increments can be reliable as long as I compare it to other 30 second increments. The study also indicates that rMSSD is a good proxy for the frequency based measurements that many of the apps use to indicate stress. 

So with my process of data collection vastly simplified I can work on refining and interpreting data given the various contexts I will be operating in. Administrative burden relieved I am off to the foot masseuse. 



Doc’s Needle Better Than Dentist Drill

Finishing off my service provider stress-off I had the opportunity to take a reading while getting shots at the Doctor. I used the Polar H7, SweetBeat Life and Kubios to pull the data together. I was quite surprised to see that getting a needle stuck in me was not nearly as stressful at having the tooth drilled, and other then the moment of anticipation prior to the jab I was quite relaxed. 


You can see at time had 2 I was anticipating the jab and the jab itself happened between 3 and 4. Afterward I was quite pleased when it was over. So looking across service providers my stress leader board looks like this:


When relaxed my average pNN50 was just a bit higher than getting a needle at the doctor. Doctors win gold, hairdressers win silver and dentists get a distant bronze. I use average pNN50 read at 30 second intervals to compare because the length of time I was in an anticipatory state and the time of treatment was different for each provider.

I can only speculate why the stress levels were not what I was expecting. I would have guessed a doctor’s jab would be nearer the dentists drill. Two factors may have influenced the readings, both related to mental state. First, the length of time was different for each. The doctor’s needle was very fast. The haircut had not pain, but it was 45 minutes long. And I was in the dentists chair for an hour during which 20 minutes was drilling. So mentally I was working on different time horizons. 

Second, the certainty of outcome and context was different. In the doctors office my wife was with me, we were joking around and discussing our upcoming trip to Vietnam. We know the doctor and the atmosphere was quite convivial. The jab was going to be quick and done. So my relaxed state was consistent with those environmental factors. The haircut was with a long time and trusted provider and sadly I had to tell him at the end I was moving from London to San Francisco and would no longer be seeing him. So the readings tail off at the end where I said goodbye. Finally, the dentist was putting in a filling “to see how it goes” with the possibility that if they drilled and found the tooth in too bad a shape more detailed, longer and painful work was going to have necessary. So the anticipation in that chair was very high stakes. 

Despite my calling this a description of the effect of the doctor and dentist, what we are actually seeing is the physiological output of my expectations. Where this journey has taken us is where it began. My interpretation of the situation fires my physiological stress. With the doctor, dentist and hairdresser I was sitting and they were using a sharp object to bring on some physical improvement. In each case my own interpretation of what was happening and what was about to happen triggered my reaction, so we continue to show that all stress has a powerful subjective element.    

Hairdresser beats Dentist in Stress-off

Taking my heart reading while getting a haircut begins to flush out the professional services stress leaderboard. Using Polar H7 heart rate strap and a new app, the Heart Rate Variability Logger by Marco Altini I captured several time domain measurements for the comparison.

In this case I used the pNN50 which is a percentage of the normal heartbeat intervals that are greater than 50 milliseconds. The intuition there is if a low percentage of your heartbeat intervals are over 50 milliseconds then your heart is beating regularly and quickly, so you are likely in an excited state. Conversely, if 30% of your heartbeats are over 50 milliseconds you have a fair bit of variability in the beats.

Here is the comparison:

Slide1The green line above is the average of my baseline when relaxed (32% pNN50) and the red line below is the stressed baseline (4.5% pNN50). These measurements are all taken over consecutive 30 second periods so I am comparing apples to apples.

The orange line shows a snapshot of the tooth drilling session at the dentist. As you can see, it closely follows the stress average. The purple line is the haircut. Much higher pNN50, averaging up around 20%. Much less stress for sure.

So though getting a haircut is not as relaxing as meditation, if you are having a bad day head over to your hairdresser for a trim. It may put you in a better mood.


Stress Reading While Firing Shotgun


On holiday last week I went to the range with my son and shot his Remington 12 gauge shotgun,  AR15 and FN SCAR. We also did a little handgun work with the M1911. It was a nice day for it. While shooting the Remington I took my heart reading using the Polar H7 strap which sent data to the Sweetwater app from which I exported the RR interval output to Kubios

Previously I had used an Artificial Neural Network (ANN) to determine my stress levels from 11 different measures that Kubios produces. Of those, the ANN told me that the Heart Rate Variability Triangularity Index (HRVTI) was the best predictor of stress level. 

My HRVTI when relaxed averaged 9.72 and when stressed averaged 5.25 so I had a range to compare my readings. Here is a graph showing the ten minute period when I was loading & shooting the 12 gauge.  



You can see from the graph that I was in a stress state through the period. The average was 4.8 versus the average of 5.2 HRVTI that I got from stress events like a trip to the dentist. So being at the range with a gun in your hand is a pretty stressful event. I think that makes sense. Not only did I have a weapon in my hand there were guns blazing all around me, so the qualitative experience was certainly one of being on high alert. 

Using the Quantified Self three prime questions I can report:

  • What did you do? Measured my stress level while shooting a 12 gauge shotgun.
  • How did you do it? See above
  • What did you learn? Blazing away with a shotgun is physiologically more stressful than having a tooth drilled. 

Machine Learning, Heart Rate Variability & Highway Congestion

Using a machine learning algorithm I had determined my baseline for relaxation and stress. When I began I had used 11 features to train the algorithm which means I used 11 sources of data that the algorithm used to try and predict a relaxed or stress sate. The WEKA software has the ability to show which of the data sources is the most useful in determining the outcome and as it did so it allowed me to narrow the features to three. All three are heart rate variability measurements in the time domain, rMSSD, pNN50 and Heart Rate Variability Triangularity Index (HRVI).

Now that I have a trained Artifical Neural Network algorithm on WEKA I can use it to look at large sets of historical data. The more immediate problem I am trying to solve is how to get an indication in real time regarding my physiological state. I want to be in a meeting and be able to see on a screen that I my system has shifted to fight/flight mode.

When I looked at the stress and relaxed data into a spreadsheet these time domain features were markedly lower when stressed, and higher when relaxed. I could use them as a real time proxy for stress if I could find the vehicle to deliver those numbers in real time. I found an iPhone app called Heart Rate Variability Logger. To use it you need a bluetooth heart rate belt and I have the Polar H7. So I was set to start testing.

As I was playing with the app last night I had to call down to the front desk of my hotel to make arrangements to catch and early flight the following morning. I was pretty relaxed prior to the call. On contacting the front desk they told me “all roads were closed” and that my journey of 20 minutes was going to take an hour. That meant a 4am wakeup. You can see when I got this news at about 40% of the way into the session (where it says 16.2):


In the baseline data that I used for the machine learning algorithm, my average pNN50 while relaxed was 32.6 and while stressed, 4.5. Here my pNN50 went from around 30 to 16. That is a pretty good indicator that news of my early wakeup stressed me out. I did some paced breathing to come out of it.

The good news is my hour long journey actually took 30 minutes so my pNN50 was in fine shape as I made my flight with plenty of time. I was also pleased that I now have a practical way to monitor my stress in real time that is backed by insights gleaned from a machine learning algorithm.

Machine Learning & Stress Prediction

Seeking a reliable way to measure when I was am in a relaxed and focussed frame of mind and when I was feeling stress I looked again at the data I had collected for several sessions. I used the data from the readings when I was getting my tooth drilled and when I was giving a speech as a reliable reading of when I was in a stress state. I also used sessions of high coherence while using Heartmath Pro as a baseline for when I was in a relaxed state. I used this as a training set which I fed into an Artificial Neural Network using a freeware package called WEKA.  

The machine learning algorithm came back with a 98.3% accuracy on the ability to classify whether I was relaxed or stressed. Now that I had an algorithm I could run it on other data to see how it looked. First I ran the data for a meeting I had with a colleague that was very positive. Running the data I was not surprised to see that I was relaxed during the majority of the session. Twice I dropped into stress in a 53 minute meeting. That was consistent with my experience. 


Running the algorithm on a second meeting gave me a different outcome. I remember the meeting well and the conversation was not combative, but the topic was more difficult. This result was more of a stress state with a four time periods where I was in Poise. Again this was consistent with my experience of the meeting. 


I cut the data in the training set and the meeting data lists into 30 second increments. This is the shortest period of time needed to get a meaningful set of heart rate variability data.  It also allows me to use my previous work in returning to Poise as a comparison. The next step is to run the algorithm on the data from different situations. 

QSEU14 Presentation “We Never Fight on Wednesday”

One Big Reset

Not a lot of exciting news as I gather mounds of data for my next study. With a focus on the small increments within a working session or a meeting with another person I sometimes don’t report bigger wins in reducing actual Upsets.

Last night I had a belief that a good night of sleep was important and when the dog woke me up at 2.30am because she wanted some water I triggered an Upset. In this case I was irritated enough that getting back to sleep was a problem. In a quintessential Freakback being Upset about not sleeping made it hard to get back to sleep.

I pulled out my HeartmathPro and did a session to 500 points. Heartmath awards you points per second based on your coherence score, the higher earning more points. I do 500 points a day to keep myself reminded of what coherence feels like and I have been improving over time. Here is a graph of the time it has taken to earn 500 points in each of the last 46 sessions:

Slide1The trend line is down overall and you can see that some sessions take a long time, some are quite short. With practice I no longer need a breath pacer, I can breath along with the displayed RR interval curve and maintain high coherence.

Last night though I was irritated at the dog, and irritated I could not sleep, when I sat and did the breathing I had a record breaking session and finished 500 points in just over 10 minutes. This is the fastest time I have ever recorded. Here are the waveforms of the session as displayed by the Kubios software:


The top is the total session and the bottom the breakout of the first five minutes. That is a nearly perfect session. When I finished the irritation was completely gone. I set the device aside and fell asleep immediately.

That is a great ending and a victory for breath pacing and coherence. And puzzling in that I would have guessed that I would have taken a longer time to earn the points given I was irritated. Not so. My mind shifted to Poise almost immediately as seen on the waveforms and all trace of the irritation was gone.

As a sleep aid and way to reverse Upset emotions coherence is tough to beat.

Heart Rate Variabilty While Giving a Public Speech

I was delighted to get an invite to speak at the Bay Area Quantified Self Meetup tonight. It was a great meeting and a very welcoming crowd. Here is what it looked like from an outside view as I was on stage giving the talk (Photo courtesy of Mariana Quiroga @marianaquiroga):

Qs Speech

The words and slides that I shared will come in another post. Lets instead go from the outside view to the very inside view – what was happening with my heart rate variability as I spoke. While I gave the speech I was wearing my Polar H7 which was connected to the SweetBeat Life app. After I took the readings I uploaded the data to Kubios. And to be fair to all participants, before the speech I did a session on Breathe Sync to top up my calmness.  

In this graphic I show a baseline of what my RR interval, AR Spectrum and Low Frequency(LF)/High Frequency(HF) ratio looks like when I am completely relaxed. Beneath that I show progressive parts of the speech from the start point to the one-third mark: 


You can see at the top on the data labelled “Smooth Sailing – baseline” the nice three peak wave in the left graphic, one clear peak in the AR Spectrum in the graphic outlined in blue and an LF of 4382 versus an HF of 454 and a ratio of LF/HF of 9.6. That is a picture of a relaxed and coherent state. Notice the difference at the beginning of giving my speech. Two peaks for RR Interval and a very pronounced HF spike (the yellow bit) and values of LF (22.4K) and HF (30.7K) that are off the charts. A huge surge of energy as I begin the speech. 

As I progress into the speech my power (LF &HF) drops dramatically. I have no variability at the 17% but some variability by the 30% point. But by that point my frequency levels are as low as they are when running a 10K race. So it looks like from a frequency level that 30% into the speech I am expending as much energy as running a foot race. 

Here is the graphic of the speech from the halfway point to the end: 


At the 50% mark I have returned to a normal level of energy (HF is 2304, LF is 141) though my variability is low (RR interval on left). My subjective experience was that while giving the speech I felt on top of the material. At the 75% mark I have another drop in HF and LF. I recall thinking these slides where complicated so I was on my guard. As the speech reached the end point I see some return to LF levels at 1897 with one peak in the RR interval. And when I have gone through an interesting Q&A there is a huge surge of LF energy. A “rush” of completion perhaps?

I have always considered myself a capable public speaker and enjoyed giving my talks. Whenever faced with a speech I dig into it knowing I can do it. Looking at the data it could be that I have a regular cycle of stress in the beginning that ends with a huge surge of “completion” energy. When I remember the speech I remember the surge, not the stress. So I seek to do it again, ignoring the multiple less enjoyable steps that led to the surge. 

Its only a hypothesis. Now you have a snapshot of a public speech at the heart rate variability level. 

Why I Like Breathe Sync

Breathe Sync is one of a host of paced breathing apps on the iOS App Store. I have tried five different apps for the iPhone and Android whose aim is to bring the breath to an evenly paced level. The formats vary. A few just offer the pacing clock and you breathe in accordance with a visual representation of the in breath and the out breath. Others use the camera phone to measure some level of cardiac coherence and give feedback, either in real time or at the end of the session.

I like Breathe Sync because it has given me the fastest and most effective path to get into a high level of coherence. I use it now to “power up” when I need a boost to coherence. The interface is very straightforward:


The circle in the middle expands and contracts based on in the in and out breath respectively. The heart in the upper right pulses to let you know that the app is picking up your heart rate. And the timer on the bottom lets you know how much time until the end of the session. You have your finger on the camera so it is reading your heart rate. And here is where Breathe Sync is different – it changes your breath pattern based on the state of your heart rate. Coherence occurs when your heart rhythm and your breath rhythm are moving on the same cycle and Breathe Sync gets you there faster as it moves your breath rhythm to your heart rhythm.

How much so? I measured my coherence using Heartmath Pro and for 25 sessions would fire up Breathe Sync for a 1 minute session when I was in low coherence according to the Heartmath coherence score. The average Heartmath coherence score increased was 2.7 points per Breathe Sync one minute session. From experience, that is a large increase. When I used Heartmath’s own breath pacer in comparison 1 minute sessions after hitting a low coherence score the improvement was .75 points per session.

The difference in approach is that Heartmath does not change the breathing based on your heart rhythm. You breath steadily and eventually the heart catches up. It works but it is much slower.

As with all disciplines there is a mixture of tools that gives good results. Heartmath gives a coherence score that lets you know how you are doing. Breathe Sync gets you to coherence faster than any other approach. And SweetBeat Life allows you to take detailed and accurate telemetry while on the road. Currently I use all three to get the best results.



Get every new post delivered to your Inbox.

Join 493 other followers