antoinecarme / pyaf

PyAF is an Open Source Python library for Automatic Time Series Forecasting built on top of popular pydata modules.
BSD 3-Clause "New" or "Revised" License
458 stars 73 forks source link

Top Down Forecasts for 2 or 3 level Hierarchical Dataset #112

Closed GregCrysler closed 5 years ago

GregCrysler commented 5 years ago

Hey There Antoine, First of all, excellent, excellent library and my hat's off to you.

I've got an issue though and I'm hoping you can help. I've been experimenting with a hierarchical dataset, trying to estimate the optimal levels of hierarchy given cardinality, sparsity, statistical "moments", etc. I'm getting an error when generating top-down forecasts (below) I've attached the code (note lines 106-115) and the anonymized data. If you have any advice, I'd be grateful.

(1) error


KeyError Traceback (most recent call last) C:\Anaconda_102018\lib\site-packages\pyaf\HierarchicalForecastEngine.py in forecast(self, iInputDS, iHorizon) 32 try: ---> 33 lForecastFrame = self.forecast_HierarchicalModel(iInputDS, iHorizon); 34 return lForecastFrame;

C:\Anaconda_102018\lib\site-packages\pyaf\HierarchicalForecastEngine.py in forecast_HierarchicalModel(self, iInputDS, iHorizon) 97 def forecast_HierarchicalModel(self , iInputDS, iHorizon): ---> 98 return self.mSignalHierarchy.forecast(iInputDS, iHorizon);

C:\Anaconda_102018\lib\site-packages\pyaf\TS\SignalHierarchy.py in forecast(self, iInputDS, iHorizon) 461 --> 462 lForecast_DF = self.internal_forecast(iInputDS , iHorizon) 463

C:\Anaconda_102018\lib\site-packages\pyaf\TS\SignalHierarchy.py in internal_forecast(self, iInputDS, iHorizon) 439 if(lMethod == "TD"): --> 440 lForecast_DF_TD_AHP = self.computeTopDownForecasts(lForecast_DF, self.mAvgHistProp, "AHP_TD") 441 lForecast_DF = lForecast_DF_TD_AHP;

C:\Anaconda_102018\lib\site-packages\pyaf\TS\SignalHierarchy.py in computeTopDownForecasts(self, iForecast_DF, iProp, iPrefix) 364 for col in sorted(self.mStructure[level][signal]): --> 365 new_TD_forecast = lForecast_DFTD[str(signal) + "" + iPrefix + "_Forecast"] * iProp[signal][col]; 366 lForecast_DFTD[str(col) +"" + iPrefix + "_Forecast"] = new_TD_forecast;

KeyError: 'A0'

During handling of the above exception, another exception occurred:

PyAF_Error Traceback (most recent call last)

in ----> 1 dfapp_out = mEngine.forecast(train_df, H); C:\Anaconda_102018\lib\site-packages\pyaf\HierarchicalForecastEngine.py in forecast(self, iInputDS, iHorizon) 37 except Exception as error: 38 # print('caught this forecast error: ' + repr(error)) ---> 39 raise tsutil.PyAF_Error("HIERARCHICAL_FORECAST_FAILED"); 40 41 def getModelInfo(self): PyAF_Error: HIERARCHICAL_FORECAST_FAILED [TopDownForecastingIssue_AnonymizedData.031919.zip](https://github.com/antoinecarme/pyaf/files/2985346/TopDownForecastingIssue_AnonymizedData.031919.zip) [TopDownForecastingError_031918.txt](https://github.com/antoinecarme/pyaf/files/2985350/TopDownForecastingError_031918.txt)
antoinecarme commented 5 years ago

@GregCrysler

Thanks for using pyaf.

This is not a customer support service. My advice to you is to read the docs and ask a consultant or a technical guy around you if you need help to use pyaf. Only bug reports and feature requests are accepted here.

The error message you are having is a generic python message and a little understanding of such messages is required to use pyaf.

Cheers.

GregCrysler commented 5 years ago

Ha - ok. I understand the error message, just not why it should be exclusive to the Top Down forecasts (non-generic, very specific). If I didn't make that clear, sorry. Either way, thanks for all your work on pyAF.

GregCrysler commented 5 years ago

Oh - and here's my version info:

PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('matplotlib_version', '2.2.2') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('numpy_version', '1.12.1') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('pandas_version', '0.23.4') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('pydot_version', '1.3.0') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('python_implementation', 'CPython') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('python_version', '3.6.6') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('scipy_version', '1.1.0') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('sklearn_version', '0.20.0') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('sqlalchemy_version', '1.2.11') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('system_platform', 'Windows-7-6.1.7601-SP1') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('system_processor', 'Intel64 Family 6 Model 94 Stepping 3, GenuineIntel') PYAF_SYSTEM_DEPENDENT_VERSION_INFO ('system_uname', uname_result(system='Windows', node='FSCLT82056', release='7', version='6.1.7601', machine='AMD64', processor='Intel64 Family 6 Model 94 Stepping 3, GenuineIntel')) PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('ALLUSERSPROFILE', 'C:\ProgramData') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('APPDATA', 'C:\Users\vafsccryslg\AppData\Roaming') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('CLICOLOR', '1') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COMMONPROGRAMFILES', 'C:\Program Files\Common Files') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COMMONPROGRAMFILES(X86)', 'C:\Program Files (x86)\Common Files') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COMMONPROGRAMW6432', 'C:\Program Files\Common Files') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COMPUTERNAME', 'FSCLT82056') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('COMSPEC', 'C:\WINDOWS\system32\cmd.exe') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('DEFLOGDIR', 'C:\ProgramData\McAfee\DesktopProtection') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('DEPLOYMENT.EXPIRATION.CHECK.ENABLED', 'false') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('EMET_CE', 'I:-1;S:0;F:0;E:0;V:Nov 8 2016 21:09:48') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('FP_NO_HOST_CHECK', 'NO') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('FSHARPINSTALLDIR', 'C:\Program Files (x86)\Microsoft SDKs\F#\10.1\Framework\v4.0\') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('GIT_PAGER', 'cat') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('HOMEDRIVE', 'C:') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('HOMEPATH', '\Users\vafsccryslg') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('IPY_INTERRUPT_EVENT', '576') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('JPY_INTERRUPT_EVENT', '576') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('JPY_PARENT_PID', '556') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('LOCALAPPDATA', 'C:\Users\vafsccryslg\AppData\Local') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('LOGONSERVER', '\\VAAAC3DC4') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('MPLBACKEND', 'module://ipykernel.pylab.backend_inline') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('MSBUILDLOADMICROSOFTTARGETSREADONLY', 'true') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('NUMBER_OF_PROCESSORS', '8') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('OS', 'Windows_NT') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PAGER', 'cat') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PATH', 'C:\Anaconda_102018\Library\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Micro Focus\Reflection\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\IBM\SPSS\Statistics\24\JRE\bin;C:\Program Files\Tumbleweed\Desktop Validator\;C:\Program Files\Tumbleweed\Desktop Validator\x86;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\dotnet\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program Files\1E\NomadBranch\;C:\Program Files (x86)\Sennheiser\SoftphoneSDK\;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\PolicyPak\;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda2;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda2\Scripts;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda2\Library\bin;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda3;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda3\Scripts;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda3\Library\bin') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PATHEXT', '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PKGDEFAPPLICATIONCONFIGFILE', 'C:\Users\vafsccryslg\AppData\Local\Microsoft\VisualStudio\15.0_27ac76c2\devenv.exe.config') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROCESSOR_ARCHITECTURE', 'AMD64') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROCESSOR_IDENTIFIER', 'Intel64 Family 6 Model 94 Stepping 3, GenuineIntel') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROCESSOR_LEVEL', '6') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROCESSOR_REVISION', '5e03') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROGRAMDATA', 'C:\ProgramData') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROGRAMFILES', 'C:\Program Files') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROGRAMFILES(X86)', 'C:\Program Files (x86)') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PROGRAMW6432', 'C:\Program Files') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PSMODULEPATH', 'C:\Program Files\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PUBLIC', 'C:\Users\Public') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('PYTHONPATH', 'C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda3\pkgs;C:\Users\vafsccryslg\AuthPy;C:\Users\vafsccryslg\AppData\Local\Continuum\Anaconda3;C:\Users\vafsccryslg\AuthPy') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('SESSIONNAME', 'Console') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('SYSTEMDRIVE', 'C:') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('SYSTEMROOT', 'C:\WINDOWS') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TEMP', 'C:\Users\VAFSCC~1\AppData\Local\Temp\1') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TERM', 'xterm-color') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('TMP', 'C:\Users\VAFSCC~1\AppData\Local\Temp\1') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('UATDATA', 'C:\WINDOWS\CCM\UATData\D9F8C395-CAB8-491d-B8AC-179A1FE1BE77') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('USERDNSDOMAIN', 'AAC.DVA.VA.GOV') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('USERDOMAIN', 'AAC') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('USERDOMAIN_ROAMINGPROFILE', 'AAC') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('USERNAME', 'vafsccryslg') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('USERPROFILE', 'C:\Users\vafsccryslg') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VALOGLOCATION', 'C:\ProgramData\DeptOfVeteransAffairs\Logs') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VISUALSTUDIODIR', 'C:\Users\vafsccryslg\Documents\Visual Studio 2017') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VISUALSTUDIOEDITION', 'Microsoft Visual Studio Enterprise 2017') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VISUALSTUDIOVERSION', '15.0') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VS120COMNTOOLS', 'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VSAPPIDDIR', 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VSAPPIDNAME', 'devenv.exe') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VSEDEFLOGDIR', 'C:\ProgramData\McAfee\DesktopProtection') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VSLANG', '1033') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('VSSKUEDITION', 'Enterprise') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('WINDIR', 'C:\WINDOWS') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('WINDOWS_TRACING_FLAGS', '3') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('WINDOWS_TRACING_LOGFILE', 'C:\BVTBin\Tests\installpackage\csilogfile.log') PYAF_SYSTEM_DEPENDENT_ENVIRONMENT_VARIABLE ('_PTVS_PID', '28972')

antoinecarme commented 5 years ago

Closing.

GregCrysler commented 5 years ago

Appreciate the effort. Re-wrote the “options” code to handle it.. I’ll be respectful of the closure, though as I don’t want to offend.

Very Sincerely, Greg

From: CARME Antoine notifications@github.com Sent: Monday, May 20, 2019 9:14 AM To: antoinecarme/pyaf pyaf@noreply.github.com Cc: Crysler, Gregory (BAH) Gregory.Crysler@va.gov; Mention mention@noreply.github.com Subject: [EXTERNAL] Re: [antoinecarme/pyaf] Top Down Forecasts for 2 or 3 level Hierarchical Dataset (#112)

Closing.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/antoinecarme/pyaf/issues/112?email_source=notifications&email_token=AGBRYCWVLVETSQTMQ4LZPYDPWKW3TA5CNFSM4G7T5MK2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVY6ZTQ#issuecomment-494005454, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AGBRYCUWX2XKYIFAENNUAMLPWKW3TANCNFSM4G7T5MKQ.