Ошибка запуска питона (прогнозирования) в таблице - PullRequest
0 голосов
/ 10 мая 2018

Я довольно новичок в этой системе и довольно новый в Python. Таким образом, в коде может быть несколько лишних строк.

Я пытаюсь прогнозировать y (CARA_Flows), используя x (Hybrid_MF). Хотя тот же код отлично работает в Python, я получаю сообщение об ошибке в таблице. Само окно ошибки показывает мне правильное прогнозирование (а также прогноз на следующие 12 месяцев).

Кроме того, нет проблем с интеграцией. Может кто-нибудь помочь мне понять проблему здесь.

SCRIPT_REAL(
"
import pandas as pd
import numpy as np

dateparse = lambda dates: pd.datetime.strptime(dates, '%Y%m')
data = pd.read_excel('S:\AIM India\Anup\Requests_2018\CTI_Forecasting_Tableau\Forecast_CTI_2.xlsx',parse_dates=['YYYYMM'], index_col='YYYYMM',date_parser=dateparse)

ts_exogenMF = data['Hybrid_MF'] 

from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(ts_exogenMF,order=(2, 0, 2))  
results_ARIMA1 = model.fit(disp=-1)  
forecast1,std,conf=results_ARIMA1.forecast(steps=12,alpha=0.5)
forecastMF=forecast1
MF_Arr=[]
MF_Arr=forecastMF

ts = data['CARA_Flows'] 
from statsmodels.tsa.stattools import adfuller
ts_log = np.log(ts)
ts_log_diff = ts_log - ts_log.shift()

model = ARIMA(ts_log,exog=ts_exogenMF,order=(2, 0, 2))  
results_ARIMA2 = model.fit(disp=1)  
Final_Untransformed_Forecast=results_ARIMA2.predict(start=1, end=46, exog=MF_Arr,  dynamic=False)
predictions_ARIMA_log = pd.Series(ts_log.ix[0], index=ts_log.index)
predictions_ARIMA_cumsum = predictions_ARIMA_log.add(Final_Untransformed_Forecast,fill_value=0)
predictions_12M = np.exp(Final_Untransformed_Forecast)

return predictions_12M

",SUM([Hybrid MF]), SUM([CARA Flows]))

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Это исправлено, когда я преобразовал вывод в список. Ниже приведен весь код:

SCRIPT_REAL(
"
import pandas as pd
import numpy as np

dateparse = lambda dates: pd.datetime.strptime(dates, '%Y%m')
data = pd.read_excel('S:\AIM.....\...\ =dateparse)

ts_exogenMF = data['Hybrid_MF'] 

from statsmodels.tsa.arima_model import ARIMA
model = ARIMA(ts_exogenMF,order=(2, 0, 2))  
results_ARIMA1 = model.fit(disp=-1)  
forecast1,std,conf=results_ARIMA1.forecast(steps=12,alpha=0.5)
forecastMF=forecast1
MF_Arr=[]
MF_Arr=forecastMF

ts = data['CARA_Flows'] 
from statsmodels.tsa.stattools import adfuller
ts_log = np.log(ts)
ts_log_diff = ts_log - ts_log.shift()

model = ARIMA(ts_log,exog=ts_exogenMF,order=(2, 0, 2))  
results_ARIMA2 = model.fit(disp=1)  
Final_Untransformed_Forecast=results_ARIMA2.predict(start=0, end=46, exog=MF_Arr,  dynamic=False)
predictions_ARIMA_log = pd.Series(ts_log.ix[0], index=ts_log.index)
predictions_ARIMA_cumsum = predictions_ARIMA_log.add(Final_Untransformed_Forecast,fill_value=0)
predictions_12M = np.exp(Final_Untransformed_Forecast)

predList=pd.Series.tolist(predictions_12M)

return predList

",SUM([Hybrid MF]), SUM([CARA Flows]))
0 голосов
/ 10 мая 2018

Ошибка из-за несоответствия форматов даты с кодом и выводом.Поэтому вы должны заменить pd.datetime.strptime(x, '%Y-%m-%d') на pd.datetime.strptime(dates, '%Y%m')

...