Forthcoming fixes - cmu-phil/tetrad GitHub Wiki
Changes for version 7.6.7. Note interim snapshot builds are available. See:
New features:
- Added a new component to the interface to expand discrete variables into categorical indicator columns.
- Fisher combined p-values were added to the Markov checker.
- Updated all matrix operations to the EJML library because of the improved performance it gives.
- Removed all other matrix libraries by translating or removing old code that used them.
- Removed the deprecated MGM algorithm. Anyone wishing to use it must use version 7.6.6, the last version containing it.
- Added a simulator for functional causal models (Zhang et al. 2015), for Xi = fi(Pa(Xi), ei), Ind(ei, Pa(Xi)).
- Added a simulator for continuous additive causal models (Peters et al., 2014), Xi = fi(Pa(Xi)) + ei, Ind(ei, Pa(Xi)).
- Added a simulator for post-nonlinear causal models (Zhang & Hyvarinen 2009), Xi = f2i(f1i(Pa(Xi) + ei), f2i invertible, Ind(ei, Pa(Xi)).
- Added a CausalPerceptronNetworkDji simulator for general non-parametric SEM models.
- Updated FOFC to remove bugs and streamline.
- Added new implementations of CCA, Bollen-Ting, and Wishart, translated from Python code by B. Andrews.
- Added a new implementation of the CCA rank estimator, following the Python code of B. Andrews.
- Added BF-BIC and BF-LRT to handle search (using, e.g., BOSS or PC) for nonlinear SEM models.
- Added full-sample and covariance-based variants for BF-BIC and BF-LRT.
- Updated Mimbuild to remove bugs and streamline.
- Fixed a bug in DAG to PAG with selection variables.
- Added sensitivity to selection variables to the M-separation test so that, e.g., FCI now gets correct PAGs with selection variables.
- Added class OrderedLocalMarkovProperty, to generate an IM for a MAG that implies global Markov.
- Clarified PAG repair pipeline for outputting a legal PAG from LV methods that do not currently reliably do so.'
- Added Dm and DmFcit implementations to search for intermediate latents.
- Fixed a bug in the "guarantee CPDAG" option for PC where it was possible that the step of adding unshielded colliders to the graph could itself result in a cycle.
- Fixed the calculation of structural Hamming distance.
- Fixed implementation of FCIT so that it passes an Oracle test while at the same time always outputting a legal PAG.
- Fixed implementation of Zhang's PAG->MAG choice so that a legal MAG is always produced.
- Fixed bugs in the DAG to PAG algorithm.
- Fixed implementation of inducing path calculation so that a DAG->PAG->MAG calculation always succeeds.
- Changed name of LV-Dumb to BOSS-POD (BOSS PAG OF DAG).
- Fixed recursive blocking to always output a blocking set.
- Fixed the recursive discriminating path rule to always agree with the greedy discriminating path rule by invoking the greedy rule when the recursive rule fails to produce a sepset.
- Added depth and complete ruleset parameters to all latent variable algorithms that can use them.
- Removed buggy independence fact caching mechanism from the Fisher Z test.
- Fixed buggy R3, R4, R5, and R9 rules for the complete final FCI orientation.
Small fixes:
- Added option to do sampling without replacement to the bootstrap editor in the interface.
- Updated the calculation of the median of an array.
- Added num tests dependent under H0 and H1 to Markov checker interface statistics.
- Added optional seed parameter to random graph generation methods for reproducibility.
- Removed unused parameters from BF-BIC and BF-LRT.
- Added regularization to scoring and testing methods.
- Added DataSetHelper class to assist in transferring mixed data files from R to Java.
- Renamed LV-Lite to FCIT (FCI-Targeted) and made it an experimental algorithm.
- Removed deadweight test and score wrappers from the codebase.
- Consolidated recursive path blocking and recursive R4 code into their own classes; removed related dead code.
- In Markov Checker, persisting state for the conditioning set type selected.
- Removed use of the "preserve Markov" option for FCIT.
- Renamed "use pseudoinverse" property to "enable regularization" for clarity.