2021년 5월 3일 월요일

Python - ARIMA model , Auto_arima - access Best order value

Python 에서 ARIMA model을 사용하기 전에 보통 "auto_arima 함수를 작동시키고 여기서 발생한 BEST ARIMA order 값을 가져
다 사용하게 된다

이때 summary() 에서 존재하는 값을 가져다 사용하기 위한 설명

Code 부분
from pmdarima.arima import auto_arima
model_autoARIMA = auto_arima(train_data,start_p=0,start_q=0,
test='adf', #use adftest to find optimal 'd'
max_p=3,max_q=3, #maximum p and q
m=1, #frequency of series
d=None, #let model datermine 'd'
trace=True,
error_action ='ignore',
support_warning=True,
stepwise=True)
print(model_autoARIMA.summary())

시행 결과는 다음과 같이 나온다




이제 남은것은 summary의 model에 접근 하면 된다
print(model_autoARIMA)
ARIMA(0,1,0)(0,0,0)[0]  #출력값

이지만 바로 이것을 사용하기 위해
model = ARIMA(train_data, order=model_autoARIMA) 사용시 에러가 발생한다

model_autoARIMA의 TYPE을 확인하면
print(type(model_autoARIMA))
<class 'pmdarima.arima.arima.ARIMA'> #출력값


이 정보를 토대로 검색해보니 제공되는 Method를 알수 있었다 (링크)

익숙한 summary() 와 함깨 to_dict()가 보인다, 이를 이용하면 결과값을 dictionary 로 바꿀수 있는것 같다

tmp_dict = model_autoARIMA.to_dict()
print(tmp_dict)



결과로 p-value 부터 우리가 원하는 order 부분도 dictionary 형태로 저장되어 있는것을 확인할수 있다
이를 이용해 일반적인 dictionary접근법을 사용하면
print(tmp_dict['order'])
(0, 1, 0) #출력값

 

을 볼수 있으며 데이터 type을 출력해보면 tuple 인것을 확인할 수 있다
print(type(tmp_dict['order']))
<class 'tuple'> #출력값

댓글 없음:

댓글 쓰기