본문 바로가기
Data Analysis/Spotfire

[TIBCO Spotfire] Data Function을 활용한 시계열 분석 화면 만들기

by 불탄오징어 2019. 12. 24.
반응형

 

 

6-4. Data Function을 활용한 시계열 분석 화면 만들기


이번에는 간단한 시계열 예측 화면을 만들어보겠습니다. Spotfire에서 line 기능을 통해 Forecast Line을 추가하여 간단하게 시계열 예측을 할 수 있습니다. 하지만 이 경우 예측값을 받아올 수 없기 때문에 추가적인 작업이 불가능합니다. 그래서 동일한 예측 모형을 Data Function을 통해 구현하여 보겠습니다. 

 

Line 추가에서 Holtwinters 예측값을 표현할 수 있지만 그 값을 받을 수는 없다.

 

Data 는 AirPassengers 라는 아래의 데이터를 사용했습니다.

 

AirPassengers.csv
0.00MB

 

 

먼저 Data Function을 작성합니다. Register Data Function을 실행한 후 상단에 HoltWinters라고 Data Function 함수명을 지정합니다. HoltWinters() 함수는 R에서 기본적으로 제공하는 시계열 예측 모형으로 통계 비전공자가 다루기에 까다로운 Arima 모형보다 사용하기가 수월하며 Arima 모형과 비슷하게 3가지 인자를 주어야 하지만 모형 특성상 알아서 주어진 데이터에 잘 적합을 하는 특징이 있습니다. 

 

 

위와 같이 설정한 후 스크립트를 입력합니다.

 

# Input으로 받은 x 값에 대해 한번더 Data Frame으로 선언한다.
x <- data.frame(x, stringsAsFactors=F)

# 다른형태의 데이터가 들어와도 상관없도록 내부적으로 사용할 Column name을 지정
colnames(x) <- c('time','value')

# 예측 값에 같이 넣어줄 시간데이터 생성(여기서 n은 Input으로 받은 예측 수)
time <- as.character(seq(max(as.Date(x$time)), by = "month", length = n) )

# HoltWinters모형 적합 후 예측 값 도출
fit <- HoltWinters(ts(x$value, frequency=12))
pred <- as.vector(predict(fit, n))

# 기존 데이터셋과 예측 데이터셋을 각각 만들어준 후 병합하여 반환
original <- data.frame(time = as.character(x$time), value = x$value, div_nm = 'original', stringsAsFactors=F)
prediction <- data.frame(time = time, value = pred, div_nm = 'prediction', stringsAsFactors=F)

y <- rbind(original, prediction)

 

다음으로 Input 값과 Output 값을 선언합니다. Input은 데이터를 받을 x와 예측할 갯수를 받을 n 으로 총 두가지입니다.

 

 

각 Input parameter에 대한 설정은 다음과 같습니다.

 

Input 값 중 데이터를 받을 x, 예측할 갯수를 받을 n

 

마지막으로 Output Parameters는 다음과 같습니다.

 

 

그럼 이 Data Function을 실행해보겠습니다. 실행한 후 아래와 같이 값을 선언합니다.

 

x 값 선언, 날짜, 실제 값 순으로 입력합니다.

 

예측할 갯수를 선업합니다. Value, 10이렇게 각각 선업합니다.

 

다음으로 Output Paramter를 선업합니다.

 

 

그후 OK를 눌러 실행하면 아래와 같은 결과를 얻을 수 있습니다.

 

 

위의 이미지에서 좌측은 Line의 HotWinters 를 사용한 결과 이고 우측은 R을 이용한 HoltWinters 결과입니다. 좌우측 결과가 상이한 이유는 R의 경우 ts 선언 시 frequency=12를 옵션으로 주어 영향을 미친것으로 추정합니다. 추가로 본 예제는 예측 시 predict 함수를 사용했지만 forecast 함수를 사용 시 예측 값외에도 이에 대한 신뢰구간을 추가하여 좀더 예측하는데 도움을 줄 수 있는 시각화 분석 장표를 만들 수 있습니다. 

 

 

댓글