2021년 6월 7일 월요일

Python - SARIMAX estimation model - 2/3

ARIMA 에서 파생된 SARIMAX 예측 모델을 사용해 추정해 보는 포스팅

예제 순서

1.US Wholesale Price Index (WPI) 데이터 Set에 ARIMA order (1,1,1)을 넣어서 추정
2.1번 예제에 MA(4) 항을 넣어서 계절적 특성(seasonal effect) 을 추가한다
3.월별 항공사 데이터에 ARIMA order(2,1,0) 과 Seasonal order(1,1,0,12)를 넣기
4.외인성 회귀 변수가 있는 ARIMA (1,1) 모델의 사용
5.Dynamic Forecasting
===================================

Example - 3 - 월별 항공사 데이터에 ARIMA order(2,1,0) 과 Seasonal order(1,1,0,12)를 넣기

Code
# Dataset
air2 = requests.get('https://www.stata-press.com/data/r12/air2.dta').content
data = pd.read_stata(BytesIO(air2))
data.index = pd.date_range(start=datetime(data.time[0], 1, 1), periods=len(data), freq='MS')
data['lnair'] = np.log(data['air'])
# Fit the model
mod = sm.tsa.statespace.SARIMAX(data['lnair'], order=(2,1,0), seasonal_order=(1,1,0,12), simple_differencing=True)
res = mod.fit(disp=False)
print(res.summary())
simple_differencing=True
=통합 순서가 처리되는 방식을 제어하는 구문

===================================

Example - 3 - 4.외인성 회귀 변수가 있는 ARIMA (1,1) 모델의 사용

Code
# Dataset
friedman2 = requests.get('https://www.stata-press.com/data/r12/friedman2.dta').content
data = pd.read_stata(BytesIO(friedman2))
data.index = data.time
data.index.freq = "QS-OCT"

# Variables
endog = data.loc['1959':'1981', 'consump']
exog = sm.add_constant(data.loc['1959':'1981', 'm2'])

# Fit the model
mod = sm.tsa.statespace.SARIMAX(endog, exog, order=(1,0,1))
res = mod.fit(disp=False)
print(res.summary())

 


댓글 없음:

댓글 쓰기