Fixed unstable behaviour of regex in C++ on both the psoho and natPsoho algorithms.
Added a whitelist_tr argument to the DMMHC algorithm to allow forcing arcs in the transition network.
Fixed the ‘forecast_ts’ function so that when forecasting future values not present in the dataset having ‘plot_res = T’ doesn’t throw an error
Removed C++11 specification
Bringing the package overall status up to scratch for publication on a journal.
Fixed incompatibility with bnlearn “mle-g” parameter.
Generic methods have been added for the “dbn” and “dbn.fit” S3 classes.
Documentation of the exported functions is now more accurate and follows a more stricter standard.
Non-exported functions are now excluded from the man pages.
Regular ‘print’ in low-level, internal functions has been swapped with ‘cat’.
All of bnlearn methods for the classes “bn” and “bn.fit” have been extended to the “dbn” and “dbn.fit” classes in independent functions to ensure compatibility. All these methods are contained in the “bnlearn_compat.R” file.
Generalized matrix calculation now done with MASS::ginv
Added an option to reverse the naming convention of the nodes when plotting a DBN. It transforms t_0 into t_n, t_1 into t_n-1 and so on. In the literature, t_0 is the oldest time-slice, and we reversed that in dbnR. This option lets users plot the networks following convention, but changes nothing of the models underneath.
Fixed interaction between ‘sapply’ and some time series in the ‘plot_single_result’ function that caused the ‘lines’ function to take a very long time to execute.
Fixed plots not showing the predictions line when the predictions where outside the range of the original time series values.
Deprecated the ‘size’ argument in ‘forecast_ts’ and ‘smooth_ts’.
A named vector is no longer the only option required for the ‘mvn_inference’ function. It now also takes a single row data.table and makes the conversion to named vector inside. This avoids the user needing to have an external auxiliary function.
New security check to confirm that a data.table has only one row. This is also needed in the inference, because we can only provide one row of evidence. It gave a non-descriptive error before, now it warns about using more than one row in the evidence data.table.
Added the possibility of plotting only a subset of the nodes with the visualization tool.
Unified the ‘plot_network’ function for visualizing BNs and the ‘plot_dynamic_network’ function for visualizing DBNs into a single one.
More informative error messages in security_checks.R when dealing with ellipsis.
natPsoho algorithm fixed and working
Fixed check results
Removed unused rand import in C++
Added variable inertia, global best and local best parameters over time to the PSOHO algorithm
Now filtered_fold_dt() allows a boolean argument to avoid deleting the id_var column before returning the folded dataset
Added the possibility of doing smoothing over a time series
Fixed a bug that returned NaNs when predicting 1 variable in t_0 and providing all other variables as evidence
Parameter for different bnlearn scores in the PSOHO algorithm
New Jupyter notebook that shows how to integrate dbnR with Python
Fixed the ‘intra’ argument in the mmhc algorithm. The ‘if’ statements regarding it were wrong.
Several fixes in compatibility with ‘as.data.table’ calls
Hotfix for the ‘f_dt’ parameter in the ‘learn_dbn_struc’ function. It was not being passed down to each algorithm.
New auxiliary function ‘filtered_fold_dt’
Added the possibility of not learning intra-slice arcs in the dmmhc algorithm
Additional security checks for the PSOHO algorithm
Added an auxiliary function to reduce the frequency in a data.table by performing the mean of consecutive rows
Added an auxiliary function to fold a dataset and not allow instances from different labeled series to be in the same row
Added the possibility to introduce a previously folded dataset to the structure learning. This helps when the dataset has several iterations of the same process separated by id. If you fold the dataset directly, data from 2 or more different processes will appear in some rows, giving the impression to the model that the ending and the beginning of the processes merge into each other, which most likely is not true