neuropsychology / NeuroKit

NeuroKit2: The Python Toolbox for Neurophysiological Signal Processing
https://neuropsychology.github.io/NeuroKit
MIT License
1.52k stars 404 forks source link

Normalization by maximum PSD value while calculating frequency based HRV metrics #878

Closed himalayajung closed 6 months ago

himalayajung commented 1 year ago

I understand the rationale to normalize PSD values by the maximum PSD value since it makes it easier to compare different PSD methods (at least visually). (normalize=True is the default value in https://github.com/neuropsychology/NeuroKit/blob/master/neurokit2/hrv/hrv_frequency.py) However, doesn't the normalization change the PSD values and hence the frequency HRV metrics values? Also I think it changes the unit of PSD?

Is normalization recommended while calculating frequency HRV metrics?

danibene commented 1 year ago

@himalayajung thank you for raising this issue!

I think you're correct that this changes the unit. Regarding the question about whether it is recommended, I found the following excerpt from Laborde et al., 2017, recommending including both absolute and normalized units (but with a different normalization than the max PSD):

"Regarding the frequency domain the researcher is faced with variables presented with different units. In line with the Task Force (Malik, 1996), we would always recommend to present the absolute power and the normalized units even though there can be some problems using normalized units (Heathers, 2014). These normalized units represent the relative value of each power component in proportion to the total power minus the VLF component."

Here is the full reference: Laborde, S., Mosley, E., & Thayer, J. F. (2017). Heart rate variability and cardiac vagal tone in psychophysiological research–recommendations for experiment planning, data analysis, and data reporting. Frontiers in psychology, 8, 213.

I would also be curious about the justification for setting normalize=True as the default value (@DominiqueMakowski in case you have any insight here).

stale[bot] commented 11 months ago

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.