치트시트

MATLAB을 활용한 시계열 데이터 전처리

본 참고 자료는 흔한 활용 사례를 다루며, 모든 내용을 포괄적으로 다루지는 않습니다.

timetable형

시계열 데이터의 정리와 작업을 위해 설계된 MATLAB 데이터형입니다.

timetable형의 구성요소

tt = timetable(times, var1, var2, ... ,varN);

(모든 변수는 동일한 개수의 행을 가져야 합니다.)

tt = table2timetable(t);

(“t”의 첫 번째 datetime형 또는 duration형 변수가 행 시간값이 됩니다.)

timetable형 조작

데이터 액세스

아래 명령은 동일한 배열을 반환함.

tt.Temperature

tt{:,'Temperature'} tt{:,1}

자세히 알아보기

새 변수 추가

tt.newVar = zeros(height(tt),1);

변수 이름 변경

tt.properties.VariableNames = newNames;

(이름은 유효한 MATLAB 식별자여야 함)

팁: 유효하지 않을 수 있는 이름을 유효한 이름으로 변환하려면 matlab.lang.makevalidname을 사용하십시오.

retime을 사용한 데이터 리샘플링

tt = retime(tt,newtimes,method);

method는 시간 재샘플링을 수행한 후 공백을 채우며, 옵션은 synchronize의 옵션과 동일(“timetable형 병합” 참조)합니다.

데이터 정리

데이터 평활화

B = smoothdata(A,method);

잡음 있는 데이터의 평활화 방법:

'movmean','movmedian','gaussian', 'lowess','loess','rlowess', 'rloess','sgolay'

자세히 알아보기

이상값 탐지

TF = isoutlier(A,method);

이상값 식별 방법:

'median','mean','quartiles', 'grubbs','gesd'

자세히 알아보기

변화 지점 탐지

TF = ischange(A,method);

급격한 변화 탐지 방법: 'mean','variance','linear'

자세히 알아보기

timetable형 병합

여러 timetable형을 공통 시간 벡터로 동기화합니다.

tt = synchronize(tt1,tt2,...,ttN);

자세히 알아보기

동기화를 수행하면 누락된 데이터 점(변수가 측정되지 않은 시점)이 발생하는 경우가 많습니다. synchronize는 공백을 채우기 위해 데이터를 조정하는 여러 방법을 지원합니다.

채우기: 'fillwithmissing','fillwithconstant'

보간: 'linear','spline','pchip'

최근접이웃: 'previous', 'next','nearest'

집계: 'mean','min','max',@func,...

누락된 데이터

누락값 찾기

TF = ismissing(tt);

자세히 알아보기

누락값 채우기

tt = fillmissing(tt,method);

다음과 같은 방법으로 누락값을 근접한 점에서 계산된 값으로 교체할 수 있습니다.

'previous','next','nearest',

'linear','spline','pchip'

자세히 알아보기

누락값이 포함된 행 제거

tt = rmmissing(tt);

빅데이터

tall형 배열은 너무 커서 메모리로 불러올 수 없는 데이터에 대해 작업할 수 있도록 MATLAB 함수를 확장합니다.

tall형 타임테이블 생성

% Create a datastore that points to % the data

ds = datastore('*.csv');

% Create a tall table from the % datastore

t = tall(ds);

자세히 알아보기

% Convert to a timetable

tt = table2timetable(t);