MATLAB을 활용한 시계열 데이터 전처리
본 참고 자료는 흔한 활용 사례를 다루며, 모든 내용을 포괄적으로 다루지는 않습니다.
timetable형
시계열 데이터의 정리와 작업을 위해 설계된 MATLAB 데이터형입니다.
timetable형의 구성요소
tt = timetable(times, var1, var2, ... ,varN);
(모든 변수는 동일한 개수의 행을 가져야 합니다.)
tt = table2timetable(t);
(“t”의 첫 번째 datetime형 또는 duration형 변수가 행 시간값이 됩니다.)
timetable형 조작
데이터 액세스
아래 명령은 동일한 배열을 반환함.
새 변수 추가
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'
timetable형 병합
여러 timetable형을 공통 시간 벡터로 동기화합니다.
tt = synchronize(tt1,tt2,...,ttN);
동기화를 수행하면 누락된 데이터 점(변수가 측정되지 않은 시점)이 발생하는 경우가 많습니다. synchronize는 공백을 채우기 위해 데이터를 조정하는 여러 방법을 지원합니다.
채우기: 'fillwithmissing','fillwithconstant'
보간: 'linear','spline','pchip'
최근접이웃: 'previous', 'next','nearest'
집계: 'mean','min','max',@func,...
빅데이터
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);