HRV 분석기의 분석 방법과 Kubios 비교
HRV 분석기가 쓰는 모든 알고리즘과 그 근거 논문, ‘Kubios 기본값’ 프리셋이 정하는 설정, 결과를 검증한 방법을 설명합니다.
최종 업데이트
분석기는 RR 간격에서 시간 영역, 주파수 영역, 비선형 HRV 지표를 브라우저 안에서 계산합니다. 프리셋은 두 가지입니다. 이 사이트 전체가 쓰는 설정인 ‘사이트 기본값’과 ‘Kubios 기본값’입니다.
‘Kubios 기본값’ 프리셋의 분석 설정은 Kubios HRV User’s Guide 3.5판(3.3절과 6절)에서 가져왔습니다. 설정 두 가지는 가이드에 없습니다. 프리셋은 임계 수준 ‘중간’ 보정을 켜며, smoothness priors 추세 제거의 λ = 500은 이 방법을 만든 Tarvainen 연구진의 기본값입니다. 이름은 설정의 출처를 말해 줄 뿐, Kubios와 같은 수치를 보장한다는 뜻이 아닙니다.
아직 분석기를 Kubios HRV Standard와 비교하지 않았으므로 아래 Kubios 열은 모두 ‘아직 비교 전’으로 표시됩니다. 독립적인 오픈소스 HRV 라이브러리인 NeuroKit2와는 공개 기록으로 비교했습니다. NeuroKit2 열에는 일치하는 지표와 일치 정도가 적혀 있습니다.
내 기록에 이 방법을 쓰려면 HRV 분석기를 여세요.
알고리즘
| 알고리즘 | 분석기가 하는 일 | 참고문헌 | Kubios 기본값 프리셋 | NeuroKit2 | Kubios HRV Standard |
|---|---|---|---|---|---|
| 시간 영역 통계 평균 RR 간격, 평균 심박수, SDNN, RMSSD, lnRMSSD, SDSD, NN50, pNN50, NN20, pNN20 제공 | 평균 RR과 평균 심박수, SDNN(표본 표준편차), RMSSD와 lnRMSSD, SDSD, 그리고 연속한 차이에서 센 NN50, pNN50, NN20, pNN20을 계산합니다. 사이트 규칙으로 제거한 박동을 가로지르거나 기록이 끊긴 곳을 가로지르는 차이는 구하지 않습니다. | [1] | 설정 없음. | 허용 오차 안에서 일치:
| 아직 비교 전 |
| 기하학적 지표 HRV 삼각 지수, TINN 제공 | HRV 삼각 지수와 TINN을 1/128초(7.8125 ms) 구간의 히스토그램에서 구합니다. 구간 폭은 Task Force가 선택한 값입니다. 5분 이상인 기록에서 표시됩니다. | [1] | 설정 없음. | 비교 안 함 | 아직 비교 전 |
| 장기 지표 SDANN, SDNN 지수 제공 | 5분 구간에서 구한 SDANN과 SDNN 지수입니다. 기록에 완전한 구간이 둘 이상 있을 때 표시됩니다. | [1] | 설정 없음. | 비교 안 함 | 아직 비교 전 |
| 임계값 아티팩트 보정 | 최대 열 개의 이웃 간격의 중앙값에서 해당 수준의 임계값보다 더 멀리 떨어진 간격을 표시합니다. 임계값은 60 bpm에서 매우 약함 0.45초, 약함 0.35초, 중간 0.25초, 강함 0.15초, 매우 강함 0.05초이며 심박수가 높을수록 더 낮아집니다. 표시된 간격은 모두 3차 스플라인(또는 선형) 보간으로 바꾸므로 간격의 수는 그대로입니다. 보정한 간격이 5%를 넘으면 결과에 주의 문구가 붙습니다. | [2] | 중간, 3차 스플라인. 가이드에는 수준이 나열되어 있지만 그중 무엇이 기본값인지는 나와 있지 않습니다. | 비교 안 함 | 아직 비교 전 |
| 자동 임계 수준 | Kubios의 자동 보정이 아니라 분석기 자체의 규칙입니다. 표시되는 간격의 수가 더는 늘지 않는 가장 약한 수준을 택하되, 그 수준에서 표시되는 간격이 최소 1개이고 최대 5%여야 합니다. 규칙 전문은 방법 설명에 나와 있습니다. | [2] | 사용하지 않음. | 비교 안 함 | 아직 비교 전 |
| 사이트 규칙 | 300~2000 ms 밖의 간격, 또는 범위 안 이웃 최대 열 개의 중앙값에서 25%를 넘게 벗어난 간격을 제거하며, 제거한 박동을 가로지르는 연속한 차이는 구하지 않습니다. 사이트의 나머지 부분도 같은 규칙을 씁니다. | 없음 | 사용하지 않음. | 비교 안 함 | 아직 비교 전 |
| 리샘플링 | Welch 주기도를 위해 간격을 지나는 3차 스플라인을 그리고, 일정한 주파수로 다시 읽어 냅니다. 바꾸지 않으면 4 Hz입니다. | 없음 | 4 Hz, 3차 스플라인. | 비교 안 함 | 아직 비교 전 |
| Smoothness priors 추세 제거 | λ = 500으로 느린 추세를 제거하며, 대신 선형 추세 제거를 고르거나 추세 제거를 끌 수도 있습니다. 분석기는 Welch 주기도 전에 4 Hz 시계열에서, 그리고 해당 설정이 켜져 있으면 비선형 지표 전에 박동 시계열에서 추세를 제거합니다. | [3] | Smoothness priors, λ = 500 (Tarvainen의 기본값이며 가이드에는 λ가 나와 있지 않음). 비선형 지표는 추세를 제거한 시계열을 씁니다. | 비교 안 함 | 아직 비교 전 |
| Welch 주기도 VLF 파워, LF 파워, HF 파워, 총 파워(TP), ln VLF, ln LF, ln HF, LF n.u., HF n.u., LF/HF, VLF 피크, LF 피크, HF 피크 제공 | 절반씩 겹치는 Hann 창을 평균하고, 각 대역의 파워는 그 안에 든 주파수 구간의 값을 합해 구합니다. 대역 경계를 바꾸거나 ULF 대역을 켤 수 있습니다. 창 하나보다 짧은 기록은 0으로 채운 주기도 하나만 얻습니다(아래 ‘Kubios HRV와의 알려진 차이’ 참조). | [4] , [1] | 300초 창, 50% 겹침. VLF 0~0.04 Hz, LF 0.04~0.15 Hz, HF 0.15~0.4 Hz. | 허용 오차 안에서 일치:
| 아직 비교 전 |
| Lomb–Scargle 주기도 VLF 파워, LF 파워, HF 파워, 총 파워(TP), ln VLF, ln LF, ln HF, LF n.u., HF n.u., LF/HF, VLF 피크, LF 피크, HF 피크 제공 | 리샘플링이나 추세 제거 없이 불균일한 박동 시점에서 곧바로 스펙트럼을 구하며, 사용 중인 가장 높은 대역 경계(최소 0.5 Hz)까지 계산합니다. Welch 주기도와 같은 대역 지표를 제공합니다. | [5] , [6] | 사용하지 않음. | 비교 안 함 | 아직 비교 전 |
| 푸앵카레 플롯 SD1, SD2, SD2/SD1 제공 | SD1은 연속한 차이에서, SD2는 SD1과 시계열의 표준편차에서 구하고, 둘의 비도 제공합니다. | [7] | SD2는 추세를 제거한 시계열에서 구합니다. | 허용 오차 안에서 일치:
| 아직 비교 전 |
| 추세 제거 변동 분석 DFA α1, DFA α2 제공 | α1과 α2 범위의 모든 크기의 박스를 겹치지 않게 사용하며, α1과 α2는 각 범위에서 로그–로그 축에 직선을 맞춘 기울기입니다. α2에는 가장 큰 크기의 박스가 최소 네 개 필요합니다. | [8] | α1은 4~12박동, α2는 13~64박동 범위이며, 추세를 제거한 시계열 기준입니다. | 허용 오차 안에서 일치:
| 아직 비교 전 |
| 표본 엔트로피와 근사 엔트로피 표본 엔트로피, 근사 엔트로피 제공 | r × SD 이내로 일치하는 m개 박동 묶음을 셉니다. 표본 엔트로피는 묶음이 자기 자신과 일치하는 경우를 제외하고, 근사 엔트로피는 포함합니다. 긴 기록은 브라우저가 느려지지 않도록 처음 3000박동만 씁니다. | [9] , [10] | m = 2, r = 0.2 × SD이며, 추세를 제거한 시계열 기준입니다. | 허용 오차 안에서 일치:
| 아직 비교 전 |
| 바옙스키 스트레스 지수 바옙스키 스트레스 지수, 스트레스 지수 (√SI) 제공 | 50 ms 구간의 간격 히스토그램에서 구합니다. 분석기는 바옙스키 지수와 그 제곱근을 보여 주며, 제곱근은 Kubios가 ‘Stress index’로 보고하는 값입니다. | [11] , [2] | 설정 없음. | 비교 안 함 | 아직 비교 전 |
비교 방법
기준 기록은 RR 간격 구간 열 개로, 5분 구간 다섯 개와 20분 구간 다섯 개입니다. PhysioNet의 Normal Sinus Rhythm RR Interval Database에서 nsr001~nsr005 기록을 사용했습니다.
NeuroKit2 값은 2026년 10월 16일에 계산했으며, 버전은 NeuroKit2 0.2.13(Python 3.13.11, NumPy 2.5.4, SciPy 1.18.1)입니다. 사이트의 자동 테스트가 같은 기록을 분석하며, 지표가 허용 오차를 벗어나면 실패합니다.
이 비교에서는 분석기를 가능한 한 NeuroKit2의 선택에 맞추었습니다. 아티팩트 보정 없음, 추세 제거 없음, Welch 창 64초, 원시 시계열에 대한 비선형 지표, 4~11박동의 DFA α1입니다. NeuroKit2의 값도 이에 맞춰 계산했습니다.
| 지표 | 허용 차이 | 확인된 최대 차이 |
|---|---|---|
| 평균 RR 간격 | 0.1 ms | 반올림 차이만 |
| SDNN | 0.1 ms | 반올림 차이만 |
| RMSSD | 0.1 ms | 반올림 차이만 |
| pNN50 | 0.1%p | 반올림 차이만 |
| SD1 | 0.01 ms | 반올림 차이만 |
| LF 파워 | 1% | 0.1% |
| HF 파워 | 6% | 4.7% |
| LF/HF | 6% | 4.4% |
| 표본 엔트로피 | 0.0001% | 반올림 차이만 |
| DFA α1 | 0.05 | 0.032 |
‘Kubios 기본값’ 프리셋과 NeuroKit2 자체 기본값을 비교하면 주파수 영역 지표의 차이가 훨씬 큽니다. HF 파워는 최대 200%, LF 파워는 최대 170%까지 다릅니다. 대부분은 창 때문입니다. 프리셋의 300초 창은 5분 기록에 주기도를 하나만 만들지만, NeuroKit2는 기록 길이의 절반인 창 여러 개를 평균합니다. 나머지는 추세 제거, 대역 파워를 합하는 방식, 보간의 차이입니다. 시간 영역 지표는 여전히 반올림 수준에서 일치합니다.
Kubios HRV Standard
아직 비교 전입니다. 같은 기록 열 개에 대한 Kubios HRV Standard의 결과가 나오면 이 페이지에 그 버전과 날짜를 적고, 지표가 허용 오차 안에 있는 경우에만 일치한다고 표시하겠습니다.
Kubios HRV와의 알려진 차이
- Kubios HRV는 자기회귀(AR) 스펙트럼도 보고하지만 분석기는 그렇지 않습니다. 분석기는 Welch 주기도와 Lomb–Scargle 주기도를 제공합니다.
- Kubios 가이드에는 추세 제거가 박동 시계열에 적용되는지 4 Hz로 리샘플링한 시계열에 적용되는지 나와 있지 않습니다. 분석기는 스펙트럼에는 4 Hz 시계열에서, 비선형 지표에는 박동 시계열에서 추세를 제거하므로 어느 쪽이든 Kubios와 다를 수 있습니다.
- Welch 창보다 짧은 기록(예: 프리셋의 300초 창에서 5분 기록)이면, 분석기는 Hann 창을 데이터에만 적용하고 그 창에 맞춰 파워를 보정한 뒤 결과를 전체 창 길이까지 0으로 채웁니다. 주파수 격자는 전체 창의 것이 그대로 유지되며 대역 파워가 낮게 나오지 않습니다. Kubios는 이 경우를 다르게 처리할 수 있으므로 짧은 기록의 스펙트럼은 Kubios와 조금 다를 수 있습니다.
- Kubios의 Stress index는 바옙스키 스트레스 지수의 제곱근입니다. 분석기는 둘 다 각기 다른 이름으로 보여 줍니다.
- 자동 임계 수준은 분석기 자체의 규칙입니다. Kubios의 Premium 에디션에 있는 자동 보정은 다른 방법입니다.
참고문헌
- Task Force of the European Society of Cardiology and the North American Society of Pacing and Electrophysiology. Heart rate variability: standards of measurement, physiological interpretation and clinical use. Circulation. 1996;93(5):1043–1065. doi:10.1161/01.CIR.93.5.1043
- Tarvainen MP, Lipponen J, Niskanen JP, et al. Kubios HRV software user’s guide. Kubios Oy. Version 3.5, 3 November 2021. https://www.kubios.com/downloads/Kubios_HRV_Users_Guide.pdf
- Tarvainen MP, Ranta-aho PO, Karjalainen PA. An advanced detrending method with application to HRV analysis. IEEE Transactions on Biomedical Engineering. 2002;49(2):172–175. doi:10.1109/10.979357
- Welch P. The use of fast Fourier transform for the estimation of power spectra: a method based on time averaging over short, modified periodograms. IEEE Transactions on Audio and Electroacoustics. 1967;15(2):70–73. doi:10.1109/TAU.1967.1161901
- Lomb NR. Least-squares frequency analysis of unequally spaced data. Astrophysics and Space Science. 1976;39(2):447–462. doi:10.1007/BF00648343
- Scargle JD. Studies in astronomical time series analysis. II - Statistical aspects of spectral analysis of unevenly spaced data. The Astrophysical Journal. 1982;263:835. doi:10.1086/160554
- Brennan M, Palaniswami M, Kamen P. Do existing measures of Poincare plot geometry reflect nonlinear features of heart rate variability? IEEE Transactions on Biomedical Engineering. 2001;48(11):1342–1347. doi:10.1109/10.959330
- Peng CK, Havlin S, Stanley HE, et al. Quantification of scaling exponents and crossover phenomena in nonstationary heartbeat time series. Chaos: An Interdisciplinary Journal of Nonlinear Science. 1995;5(1):82–87. doi:10.1063/1.166141
- Richman JS, Moorman JR. Physiological time-series analysis using approximate entropy and sample entropy. American Journal of Physiology-Heart and Circulatory Physiology. 2000;278(6):H2039–H2049. doi:10.1152/ajpheart.2000.278.6.H2039
- Pincus SM. Approximate entropy as a measure of system complexity. Proceedings of the National Academy of Sciences. 1991;88(6):2297–2301. doi:10.1073/pnas.88.6.2297
- Baevsky RM, Chernikova AG. Heart rate variability analysis: physiological foundations and main methods. Cardiometry. 2017;(10):66–76. doi:10.12710/cardiometry.2017.10.6676