본문 바로가기

SciPy3

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.