본문 바로가기

통계, 신호처리, 알고리즘6

EEG 개요 # EEG(뇌전도, 뇌파)에 관하여 개인적인 관심으로 EEG(electroencephalography, 뇌전도 혹은 뇌파(brainwave))에 대해 알아보고자 합니다. 위키백과에 따르면, 뇌전도는 신경계와 뇌신경 사이에 신호가 전달될 때 생기는 전도의 흐름이며, 뇌의 활동 상황을 측정하는 지표라고하네요. 두피에 전극을 부착하여 측정하며, 뇌 손상, 뇌전증 혹은 여러 질환을 평가하는데 활용되거나, 법률적으로 뇌사를 진단하는 데도 사용된다고 합니다. 뇌파는 간질검사에도 활용되는데요, 그밖에도 뇌종양, 뇌손상, 뇌졸증, 수면장애 등에 관한 질환을 진단하는데도 활용할 수 있다고 합니다. 보통 성인 두피에서 측정되는 전기 신호는 진폭이 10 µV ~ 100 µV 가량 된다고 합니다. 뇌파 주파수 대역은 델타파,.. 2020. 6. 14.
SciPy를 이용한 시계열 데이터 스파이크 검출 #1 시계열 데이터 스파이크 검출 #1 시계열 데이터(time series data)에서 발생할 수 있는 스파이크(spike) 신호를 검출하는 방법을 알아보겠습니다. ECG(electrocardiogram, 심전도) 데이터나 기온, 습도와 같은 기후데이터 혹은 주가와 같이 시간에 따라 변하는 데이터에서는 다양한 이유로 이러한 국부적인 극대값(local maxima, 스파이크 현상)이 발생할 수 있습니다. 경우에 따라 이 스파이크 신호는 특이값(outlier)으로 분류되어 검출되어야하거나 혹은 제거, 보간(interpolation) 등의 방법으로 데이터가 수정되어야 될 필요가 있습니다. SciPy의 signal processing 모듈중 find_peaks 함수를 사용하면, 시계열 데이터에서 스파이크에 해당하는.. 2020. 5. 23.
왜도(skewness) 왜도(skewness)란 확률 분포의 비대칭성을 나타내는 지표입니다. 값이 양수일 경우 분포가 왼쪽으로 치우쳐있고(오른쪽으로 꼬리가 긴) 값이 음수일 경우 분포가 오른쪽으로 치우쳐(왼쪽으로 꼬리가 긴) 있습니다. - 수식으로는 아래와 같이 z-score의 3승의 평균값으로 구할 수 있습니다. - 정규분포나 좌우 대칭인 분포의 왜도값은 0 혹은 0에 가까운 값을 가집니다. ♣ 실습 ♣ 파이썬 패키지인 SciPy의 stats모듈의 skew 함수를 이용하여 구하거나, 직접 함수를 만들어 구할 수 있습니다. 1) 정규 분포 데이터 생성 2) Skewness 함수 정의 3) 정의된 skewness 함수로 연산 * 정규분포의 랜덤변수를 생성하였으므로 왜도값이 0에 가까운 값을 보입니다. 4) SciPy의 skew .. 2020. 5. 18.
SciPy의 'curve_fit'을 이용한 커브 피팅 SciPy의 'curve_fit'을 이용하면 입력데이터가 예상하는 특정 함수와 유사한 추이를 보이는지를 알아볼 수 있습니다. 입력데이터의 개형을 유추할 함수가 주어져야하며, 이때 해당하는 함수의 파라미터를 추정해줍니다. ♣ 실습 ♣ 1) 먼저 'curve_fit'을 사용하기 위해 scipy.optimize에서 함수를 호출합니다. 2) 지금은 피팅할 데이터가 없으니 임의로 피팅할 데이터를 생성합니다. 여기서는 3차 다항식를 생성하고 노이즈를 추가해주었습니다. 3) 위의 데이터를 추정하기 위한 함수의 기본형을 설정해주어야 합니다. 경우에따라 함수의 기본형을 추정하기 어려울 때에는 몇번의 시행착오를 거쳐야 하기도 하며, 때로는 원하는 결과를 얻지 못할 수도 있습니다. 4) 자, 이제 커브피팅을 해봅시다. 3).. 2020. 4. 22.