Giter VIP home page Giter VIP logo

jdemetra-nowcasting's People

Contributors

charphi avatar liedo avatar maggima avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jdemetra-nowcasting's Issues

Mac?

This add in works in Mac?,

Best regards

Error during etimation

Hi, I experienced this error when I was running the optimization. While the estimation of parameter was done, error messages came out for other output tab. Not sure what is going on. Thanks

java.lang.NullPointerException      at ec.tss.dfm.DfmResults.calcSmoothedSignal(DfmResults.java:332)      at ec.tss.dfm.DfmResults.calcSignalProjections(DfmResults.java:965)      at ec.tss.dfm.DfmResults.getSignalProjections(DfmResults.java:956)      at be.nbb.demetra.dfm.output.FitSignalDataView.toCollection(FitSignalDataView.java:253)      at be.nbb.demetra.dfm.output.FitSignalDataView.updateChart(FitSignalDataView.java:217)      at be.nbb.demetra.dfm.output.FitSignalDataView.lambda$new$1(FitSignalDataView.java:134)      at java.beans.PropertyChangeSupport.fire(Unknown Source)      at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)      at java.beans.PropertyChangeSupport.firePropertyChange(Unknown Source)      at java.awt.Component.firePropertyChange(Unknown Source)      at be.nbb.demetra.dfm.output.FitSignalDataView.setDfmResults(FitSignalDataView.java:200)      at be.nbb.demetra.dfm.output.FitSignalDataItemFactory$1.getView(FitSignalDataItemFactory.java:51)      at be.nbb.demetra.dfm.output.FitSignalDataItemFactory$1.getView(FitSignalDataItemFactory.java:47)      at ec.ui.view.tsprocessing.ComposedProcDocumentItemFactory.getView(ComposedProcDocumentItemFactory.java:90)      at ec.ui.view.tsprocessing.ProcDocumentViewFactory$View.getView(ProcDocumentViewFactory.java:63)      at ec.ui.view.tsprocessing.DefaultProcessingViewer.showComponent(DefaultProcessingViewer.java:357)      at ec.ui.view.tsprocessing.DefaultProcessingViewer.lambda$new$0(DefaultProcessingViewer.java:77)      at java.beans.VetoableChangeSupport.fireVetoableChange(Unknown Source)      at java.beans.VetoableChangeSupport.fireVetoableChange(Unknown Source)      at org.openide.explorer.ExplorerManager$1AtomicSetSelectedNodes.checkAndSet(ExplorerManager.java:274)      at org.openide.explorer.ExplorerManager$1AtomicSetSelectedNodes.run(ExplorerManager.java:299)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:193)      at org.netbeans.modules.openide.util.DefaultMutexImplementation$1R.run(DefaultMutexImplementation.java:1037)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.doWrapperAccess(DefaultMutexImplementation.java:1054)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:183)      at org.openide.util.Mutex.readAccess(Mutex.java:260)      at org.openide.explorer.ExplorerManager.setSelectedNodes(ExplorerManager.java:304)      at org.openide.explorer.ExplorerManager$1SetExploredContextAndSelection.run(ExplorerManager.java:399)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:193)      at org.netbeans.modules.openide.util.DefaultMutexImplementation$1R.run(DefaultMutexImplementation.java:1037)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.doWrapperAccess(DefaultMutexImplementation.java:1054)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.readAccess(DefaultMutexImplementation.java:183)      at org.openide.util.Mutex.readAccess(Mutex.java:260)      at org.openide.explorer.ExplorerManager.setExploredContextAndSelection(ExplorerManager.java:420)      at org.openide.explorer.view.BeanTreeView.selectionChanged(BeanTreeView.java:149)      at org.openide.explorer.view.TreeView.callSelectionChanged(TreeView.java:833)      at org.openide.explorer.view.TreeView$TreePropertyListener.run(TreeView.java:1475)      at org.netbeans.modules.openide.util.DefaultMutexImplementation$1Exec.run(DefaultMutexImplementation.java:973)      at org.openide.nodes.Children$ProjectManagerDeadlockDetector.execute(Children.java:1938)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:979)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.postRequest(DefaultMutexImplementation.java:942)      at org.netbeans.modules.openide.util.DefaultMutexImplementation.postReadRequest(DefaultMutexImplementation.java:308)      at org.openide.util.Mutex.postReadRequest(Mutex.java:371)      at org.openide.explorer.view.TreeView$TreePropertyListener.valueChanged(TreeView.java:1444)      at javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(Unknown Source)      at javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(Unknown Source)      at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(Unknown Source)      at javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(Unknown Source)      at javax.swing.JTree.setSelectionPath(Unknown Source)      at javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(Unknown Source)      at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(Unknown Source)      at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressedDND(Unknown Source)      at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(Unknown Source)      at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)      at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)      at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)      at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)      at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)      at java.awt.AWTEventMulticaster.mousePressed(Unknown Source)      at java.awt.Component.processMouseEvent(Unknown Source)      at javax.swing.JComponent.processMouseEvent(Unknown Source)      at java.awt.Component.processEvent(Unknown Source)      at java.awt.Container.processEvent(Unknown Source)      at java.awt.Component.dispatchEventImpl(Unknown Source)      at java.awt.Container.dispatchEventImpl(Unknown Source)      at java.awt.Component.dispatchEvent(Unknown Source)      at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)      at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)      at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)      at java.awt.Container.dispatchEventImpl(Unknown Source)      at java.awt.Window.dispatchEventImpl(Unknown Source)      at java.awt.Component.dispatchEvent(Unknown Source)      at java.awt.EventQueue.dispatchEventImpl(Unknown Source)      at java.awt.EventQueue.access$500(Unknown Source)      at java.awt.EventQueue$3.run(Unknown Source)      at java.awt.EventQueue$3.run(Unknown Source)      at java.security.AccessController.doPrivileged(Native Method)      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)      at java.awt.EventQueue$4.run(Unknown Source)      at java.awt.EventQueue$4.run(Unknown Source)      at java.security.AccessController.doPrivileged(Native Method)      at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)      at java.awt.EventQueue.dispatchEvent(Unknown Source)      at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)      at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)      at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)      at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)      at java.awt.EventDispatchThread.pumpEvents(Unknown Source)      at java.awt.EventDispatchThread.pumpEvents(Unknown Source)      at java.awt.EventDispatchThread.run(Unknown Source)

What is DfmSimulation.java actually doing?

In the simulation tab, the user has the option to specify the dates in which the model has to be estimated (let's call them estimation dates):

dates

The sofware (in particular DfmSimulation.java) is supposed to sequentially generate all the information sets that become available every time there is a new data release (let's refer to those time events as publication dates). The information regarding data releases is also specified by the user in the model tab:

delay

What happens inside the DfmSimulation.java is that the method "mustBeEstimated" determines whether each one of those information sets will trigger a new estimation or not: the method "isNotBefore()" checks whether each publication date follows or coincides with an "estimation date", in which case the model is estimated with the information set available.

Thus, the estimation dates trigger the estimation of the model. However, they do not necesarily coincide with the publication dates, so what actually happens is that the model will be re-estimated each time a publication date follows an estimation date. During the simulation, when you click to see the details on the task being run (see picture below), you obtain the confirmation that data for a given information set has been generated.

taskRunning

What happens if one sets a very long evaluation sample and the publication dates are before the estimation dates ? In that case, the model will not be re-estimated until an information set available after the estimation date has been reached. So all the forecasts conditional on the recursively generated information sets will be based on the model parameters that are currently saved in the workspace. Bottom line: users interested in simulating out of sample forecasts from the model should take into account:

  • The real-time data availability, which is given by the publication delay of each time series. The forecasts are sequentially generated conditional on the information set available at each publication date
  • The fact that the model can be re-estimated (for example, once a year, or once every two years) . Those estimation dates should be decided by the user.

Is there a way to export all the data from output and forecast simulation into excel/csv format? Thank

From Ryan1993: Is there a way to export all the data from output and forecast simulation into excel/csv format?

Yes, there is. Exporting the data available in the tables and graphs that appear in the output tab (e.g. estimations results, graphs with fitted variables, forecasting simulation results, etc...) is possible with the following gestures:

  • Drag and drop
  • Right click + copy + paste

In this example, we want to copy the data underling this graph, which corresponds to the euro area GDP growth forecast for 2011Q1. The blue line is the dynamic factor model forecast which starts almost one year ahead and becomes negative 100 days before the quarter has ended. The green line corresponds to the forecasts done with an ARIMA model, which of course, does not exploit the rich information set at our disposal, which contains more than 30 variables in this example. The red bar corresponds to the realization of GDP growth for 2011Q1, which takes place 45 days after the end of the quarter:

copyData

DFM does not open from (re)-loaded workspace

When trying to learn how to use this plugin I followed the steps in Wiki and loaded the same workspace as in the example, the BM2014_JAE. Workspace opens, I can see the titles of the three models listed under Nowcasting/documents/DynamicFactorModel. Doubleclicking on the first two gives no result though, nothing opens on the right hand side panel. No errormessages are displayed either. Third one, by some miracle, does open. Is it just me, or ... ? Running versions 2.1.0 of both JDemetra and the plugin.

Problem when dragging data to nowcasting model

Hi Mats,

I've got trouble dragging the data to dfm model. The following message occurs. Any idea how could I solve it? thanks a lot,
marek

java.lang.NoClassDefFoundError: ec/tss/tsproviders/utils/MultiLineNameUtil
at be.nbb.demetra.dfm.DfmModelSpecView$SeriesNameRenderer.getTableCellRendererComponent(DfmModelSpecView.java:461)
at javax.swing.JTable.prepareRenderer(Unknown Source)
at ec.util.grid.swing.XTable.prepareRenderer(XTable.java:179)
at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
at javax.swing.plaf.ComponentUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at ec.util.grid.swing.XTable.paintComponent(XTable.java:203)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JViewport.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at org.netbeans.swing.tabcontrol.TabbedContainer.paint(TabbedContainer.java:994)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JLayeredPane.paint(Unknown Source)
at javax.swing.JComponent.paintChildren(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintToOffscreen(Unknown Source)
at javax.swing.BufferStrategyPaintManager.paint(Unknown Source)
at javax.swing.RepaintManager.paint(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at javax.swing.RepaintManager$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
at javax.swing.RepaintManager.access$1200(Unknown Source)
at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
[catch] at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

NPE when using the plugin with JD+ v2.2.4

SEVERE [global]
java.lang.NullPointerException: dataset is marked non-null but is null
	at ec.util.chart.swing.Charts.createSparkLineChart(Charts.java:338)
	at be.nbb.demetra.dfm.DfmExecViewTopComponent.getToolbarRepresentation(DfmExecViewTopComponent.java:146)
	at org.netbeans.core.multiview.MultiViewPeer.showCurrentElement(MultiViewPeer.java:489)
	at org.netbeans.core.multiview.MultiViewPeer.showCurrentElement(MultiViewPeer.java:437)
	at org.netbeans.core.multiview.MultiViewPeer$SelectionListener.selectionChanged(MultiViewPeer.java:904)
	at org.netbeans.core.multiview.MultiViewModel.fireSelectionChanged(MultiViewModel.java:234)
	at org.netbeans.core.multiview.MultiViewModel.setActiveDescription(MultiViewModel.java:95)
	at org.netbeans.core.multiview.MultiViewModel$BtnGroup.setSelected(MultiViewModel.java:297)
	at java.desktop/javax.swing.JToggleButton$ToggleButtonModel.setSelected(JToggleButton.java:356)
	at java.desktop/javax.swing.ButtonGroup.setSelected(ButtonGroup.java:168)
	at org.netbeans.core.multiview.MultiViewModel$BtnGroup.setSelected(MultiViewModel.java:293)
	at org.netbeans.core.multiview.TabsComponent$ButtonMouseListener.mousePressed(TabsComponent.java:885)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:288)
	at java.desktop/java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:287)
	at java.desktop/java.awt.Component.processMouseEvent(Component.java:6618)
	at java.desktop/javax.swing.JComponent.processMouseEvent(JComponent.java:3398)
	at java.desktop/java.awt.Component.processEvent(Component.java:6386)
	at java.desktop/java.awt.Container.processEvent(Container.java:2266)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:4996)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2324)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
	at java.desktop/java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948)
	at java.desktop/java.awt.LightweightDispatcher.processMouseEvent(Container.java:4572)
	at java.desktop/java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516)
	at java.desktop/java.awt.Container.dispatchEventImpl(Container.java:2310)
	at java.desktop/java.awt.Window.dispatchEventImpl(Window.java:2780)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4828)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:775)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:98)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:136)
[catch] at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

drag and drop excel sheet

There is a small problem with the drag and drop command when you use the Providers tab as a try to load your data. For some reason you have to do the gesture two times instead of one time. I made a small GIF video to illustrate the problem:

issuedragdrop

Forecasting simulation results are not saved in the workspace

The results of the forecasting simulations are shown from many different perspectives. This is a screenshot of the "fixed horizon perspective":

evaluate

However, those simulation results are not saved in the workspace. It is not saved for efficiency reasons, so technically this is not a bug. Although the nowcasting plug-in makes it straightforward to simulate real-time forecasts over a period of time, it could take hours if the evaluation sample is large and the model parameters are re-estimated many times. Thus, it would be very convenient that users would be able to save the results of a simulation in the workspace. This would also simplify the comparison of results accross different models models, which could be all saved in the same workspace.

Three possible solutions:

  1. Store all the information in the workspace
  2. Store in the workspace only the parameters resulting from each recursive estimation
  3. Store the necesary information outside the workspace and load it only when requested by the user

nbm files of current version of the plugin (2.2.0)

Hi Newbie here.

Fantastic software. Very, very useful....

...Not sure if this is an 'issue', but I definitely need help...

I have a question:

For background: I found and installed the jdemetra plug ins

nbdemetra-core2-2.1.0.nbm
nbdemetra-dfm-2.1.0.nbm

*I'm not sure where to obtain the corresponding files for the 2.2 version

I'm inferring that would mean finding
nbdemetra-core2-2.2.0-SNAPSHOT.nbm
nbdemetra-dfm-2.2.0-SNAPSHOT.nbm

***Could you kindly please point to where can I find those? ***

Or Am i misreading the information in?
https://github.com/nbbrd/jdemetra-nowcasting

'Current version of the plugin (master branch) needs the version 2.2.0-SNAPSHOT '

and there is no version 2.2 of the dfm plugin?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.