본문 바로가기
공부/Human dynamics

[개념 소개] Detrended fluctuation analysis(DFA)와 fractal fluctuation의 신경생리학적 의미

by 죠옹 2023. 7. 14.

어떤 값이 변동(Fluctuation)할 때, 그 배경이 되는 메커니즘을 생각해볼 수 있다. 다음 값이 바로 이전 값과 상관이 있는 경우도, 비교적 긴 시간 스케일에서 상관이 있는 경우도 있다. 이는 시스템의 메커니즘이 작동하는 시간 스케일에 의존하는데, auto-correlation이나, Hurst exponent, power spectral 분석 같은 방법이 이런 백그라운드의 메커니즘의 스케일과 상관정도를 분석하기 위해 사용된다.

 

그런데 생체 신호같이 어떤 물리적 고정점이 없이 비정상성을 보이는(nonstationarity) 시그널이라면, 위와 같은 분석이 가짜 상관을 잡아낼 가능성이 있다. 그럴 땐 조사하는 타임 스케일에서의 trend를 잡아낸 후 fluctuation을 분석하는 편이 외적인 trend가 아닌 시스템 자체의 본질적인 유동을 잡기에 유리하다.

 

그래서 많이 사용되는 방법이 Detrended Fluctuation Analysis(DFA)라고 한다. 방법은 보통 fluctuation analysis와 비슷한데, 이제 각 윈도우의 trend를 제거한 잔차값을 보자는 것이다.

 

DFA 구하는 방법

1. 관측값 x(t)에 전체 데이터 평균을 뺀 뒤 (x(t) - <x>), 시계열을 따라 Cumulative sum -> y(t)

2. 전체 시계열을 사이즈 n 크기의 window로 겹치지 않게 자르고, 각 window내에서 trend fitting을 함. (linear 또는 polynomial function으로)

3. 핏팅한 펑션값과 y(t) 값의 잔차의 제곱평균제곱근(root mean squre; RMS)를 각 윈도우마다 구한다.

4. 각 윈도우 마다 구한 RMS의 RMS를 구한다. -> F(n)

5. 2-4를 다른 사이즈의 n에서 반복해서 구한 뒤, n - F(n)을 플롯한다.

6. log-log scale에서 n - F(n)의 기울기를 구한다   F ∝ n^α

 

정성적인 해석

위 과정을 말로 이해해보자. 어떤 관측값을 누적해서 더해나가는 건 long-range correlation을 보기에 유리하다. 만약 anti-correlated, 그러니까 값이 컸다 작았다 청개구리처럼 유동한다면, cumulative sum은 꺠짞꺠짞거릴 것이다. 그런데, 서로 상관이 되어 있다면, 값은 쭈우욱 증가하거나 아주 서서히 증가할 것이다 (과정 1-2). 그런데 이게 window로 나눠서 보면, 그 윈도우 크기에 맞는 너울거림이 포착될 것이다. 작게작게 꺠짞인다면, window 사이즈가 늘어난다고 해도 너울거림의 정도는 크게 변하지 않을 것이고, 크게크게 너울친다면, window 사이즈를 늘렸을 때 그 너울의 정도가 더 크게 반영될 것이다 (과정 3-4). 그리고 상관이 길어지면 길어질 수록, 더 큰 window에서 그 존재감을 숨기지 않고 드러낼 것이다. 그것을 반영하는 것이 윈도우 사이즈n과 그 때의 잔차의 영향력 F(n)의 관계인 alpha인 것이다.

 

Detrend?

위의 과정2에서 trend를 제거해 주는 부분이 들어간 것이 DFA의 특징이다. Nonstationary 시그널인 경우, 각 window에 전반적으로 들어가 버린 trend가 실제 너울거림과는 관계 없는 너울거림을 반영시킬 수 있으므로, 그냥 분산값을 구하는 게 아니라, 잔차의 MSE를 넣어주자는 것이다.

 

Multifractal DFA

과정 3에서 RMS를 구하고 과정 4에서 다시 RMS를 구하는 과정은, 그냥 잔차의 제곱을 모든 구간에서 더하는 거랑 똑같다. 제곱의 평균의 제곱근을 다시 제곱 한 뒤에 그거의 평균을 내서 제곱근을 하는거니까, 결국 모든 잔차의 제곱평균제곱근을 구하는 것고 마찬가지다. 각 윈도우에서 trend피팅한 함수를 대충 y'(t)라고 두면,

사이즈 n의 윈도우 내에서의 잔차의 (k=1, 2, ..., n) RMS는

$F(n, w) = \sqrt{ 1/n \sum_{k=1}^{n} {(y(k)-y'(k))^{2}} }$

이고, 이걸 또 전체 window (w=1, 2, ..., l) 에서 RMS를 구하면

$F(n) = \left( 1/l \sum_{w=1}^{l} {F(n, w)}^{2} \right) ^{1/2} $

인거니까, 결국 잔차의 제곱을 전 구간에 대해 평균해준 거랑 같다.

그런데 굳이 이렇게 표시한 이유는 밑의 식의 숫자 2들을 q로 바꿔주면, Multifractal DFA가 되는 건데, 이게 q가 2인 경우가 일반 DFA고, q를 바꾸면 상대적으로 큰 잔차를 강조하거나 줄일 수 있다.
Multifractal DFA는 이제 자기유사성이 하나로 딱 깨끗하게 정해지지 않는 경우, 더 정확하게 보기 위해 사용하는데, 일반적으로 단일 자기유사성을 지닌 시스템은 q의 변화에 민감하지 않은 반면, 다중 자기유사성을 가진 시스템은 q가 변하면 Exponent가 더 크게 변한다. 

참고)

링크1

링크2

 

α값의 의미

6에서 alpha를 구하는 이유는, 값이 아무 상관도 없는 white noise인 경우, alpha값이 0.5로 나온다는 것이 일종의 기준이 될 수 있기 때문인데, 0.5보다 작으면 anti-correlated 되어 있는 기존 유동의 반대로 이동하는 청개구리 심보의 유동, 0.5보다 크면 이전 값에 상관이 있다고 본다. 참고로, alpha값 1이 pink noise에 해당하고, 3/2가 brownian noise에 해당하니, 대개 상관은 0.5와 1 사이에서 논하는 경우가 많다.

 

이게 또 흥미로운게, n-F(n) 그래프에서 기울기의 변화를 보며, 해당 스케일에서 상관이 있거나 없거나 하는 식으로 해석하는 경우도 있다는 거다. 예를 들어 window size가 10-60인 구간에서는 alpha가 0.9로 long-term memory를 보이다가, 60-120 구간에서는 0.5로 떨어져, white noise에 가까워진다는 식으로 해석이 가능하다는 거다. 이 경우에는 60분 이하의 시간 스케일에서 자기상관이 있는 메커니즘을 상상해볼 수 있다.

 

또 alpha값을 구할 수 있는 경우, 이는 log-log scale에서 n-F(n)의 관계가 멱함수 형태로 표현된다는 건데, 이는 multiscale에서 상관의 자기유사성이 있다는 것을 뜻한다. 그러니까 다양한 시간 scale에서 유동을 만들어 내는 메커니즘이 있다는 거다. 이를 fractal fluctuation이라고 부른다.

 

생체 시그널과 fractal fluctuation의 관계?

흥미롭게도 사람(포유류)의 다양한 circadian rhythm (심박, locomotor, actigraphy)의 DFA를 분석해보면, n과 F(n)가 멱함수 형태로 관찰되는 경우가 많은데, 건강한 사람이라면 외부의 자극이나 평균적인 움직임의 활발함과 상관 없이 이 scale이 일정하게 나타난다고. 노화나 질환이 있는 경우에는 자기 유사성이 약해지는 경우가 많은데 (주로 long-range correlation), 이게 어떤 SCN을 core로 한 활동 제어 메커니즘과 관련이 있지 않겠냐 하는 게 이제 큰 떡밥인 것으로 보인다.

 

이런 떡밥을 잘 모아 놓은 Review가 있는데, 꽤 흥미롭다 [1].

 

Circadian rhythm은 24시간 주기로 순환하면 제역할을 하는거니까 어떻게 보면 굳이 multiscale에서의 자기 유사성을 가질 필요는 없다. 그런데 circadian rhythm의 코어인 Suprachiasmatic nucleus(SCN)에 이상이 있는 쥐를 보면 4시간에서 24시간 사이의 시간 scale에서 자기유사성이 소멸된다는 보고가 있다고 한다. 그러니까, SCN이 체내 리듬을 조절하는 제어 메커니즘은 그저 주기적일 뿐만 아니라, 다양한 시간 스케일에서 다중적인 제어모드를 굴리는 multistability를 가진 제어 메커니즘일 가능성이 있다는 것이다.

 

리뷰에서는 성숙한 뇌는 서로 다른 수준의 작업 사이를 쉽게 전환하고 동시에 이를 관리하는 여러 모드의 공존상태가 자기유사성으로 나타나며, 질환에 의해 특정 수준의 모드가 제대로 작동하지 않을 시, 이러한 모드가 깨질 가능성을 이야기하는데 상당히 흥미로운 주장인 것 같다.

 

 

[1] Pittman‐Polletta, B. R., Scheer, F. A., Butler, M. P., Shea, S. A., & Hu, K. (2013). The role of the circadian system in fractal neurophysiological control. Biological Reviews, 88(4), 873-894.

 

 

관련 글)

[예제] Fitbit 심박 데이터로 Detrended flucatuation analysis (DFA) 해보기 with python

 

반응형

댓글