CPI Forecasting with ARIMA

How can i do ARIMA Forecast for economic variables like Swiss CPI, code below does not work, whick Field ID works?
spot_df = rd.get_history(
"CHCPIY=ECI", 'CTBTR_1', interval='monthly', start="2024-01-01", count=10000)
print(spot_df)
_e_date = datetime.fromtimestamp(datetime.timestamp(spot_df.index[-1]))
e_date = _e_date + timedelta(days=1)
e_date = e_date.strftime('%Y-%m-%d')
_e_date = _e_date + timedelta(days=30)
fce_date = _e_date.strftime('%Y-%m-%d')
decomposition = seasonal_decompose(spot_df.TRDPRC_1, period=1)
trend = decomposition.trend
seasonal = decomposition.seasonal
residual = decomposition.resid
spot_df['spot_1diff'] = spot_df['CTBTR_1'].diff()
spot_df = spot_df[spot_df['spot_1diff'].notnull()] # drop null rows
lag_acf = acf(spot_df['spot_1diff'], nlags=50)
lag_pacf = pacf(spot_df['spot_1diff'], nlags=50, method='ols')
new_spot = spot_df['spot_1diff'].resample('D').ffill() # resample per day and fill the gaps
new_spot = new_spot.bfill()
new_spot = new_spot.astype('float')
arma_model = ARIMA(new_spot, order=(1, 0, 1))
results = arma_model.fit()
residuals = pd.DataFrame(results.resid)
predictions_ARIMA = pd.Series(results.fittedvalues, copy=True)
predictions_ARIMA_cumsum = predictions_ARIMA.cumsum()
predictions_ARIMA_final = pd.Series(
spot_df['CTBTR_1'].iloc[0], index=new_spot.index)
predictions_ARIMA_final = predictions_ARIMA_final.add(
predictions_ARIMA_cumsum, fill_value=0)
new_spot = spot_df.CTBTR_1.resample(
'D', label='right').ffill().astype('float')
es_model = ExponentialSmoothing(
new_spot, trend='add', damped=False, seasonal='mul', seasonal_periods=30)
es_results = es_model.fit()
predicted_values = es_model.predict(
params=es_results.params, start=e_date, end=fce_date)
preds = pd.DataFrame(index=pd.date_range(
start=e_date, end=fce_date), data=predicted_values, columns=['CTBTR_1'])
plt.figure(figsize=(16, 7))
plt.plot(new_spot, label='Actual')
plt.plot(preds, label='Forecast', color='pink')
plt.legend(loc='best')
plt.show()
Best Answer
-
Thank you for reaching out to us.
If you don't specify the fields parameter, the get_history method will return all available fields.
spot_df = rd.get_history("CHCPIY=ECI", interval='monthly', start="2000-01-01", count=10000) spot_df
The output shows that it only provide the VALUE field.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 687 Datastream
- 1.4K DSS
- 622 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 255 ETA
- 557 WebSocket API
- 38 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 276 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 680 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 105 UPA
- 194 TREP Infrastructure
- 229 TRKD
- 918 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 91 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 48 中文论坛