The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
\donttest{}
to avoid CRAN NOTE for elapsed time > 10s
(lingam_parce_bootstrap,
lingam_rcd_bootstrap).autoplot() to the new
result classes: tidy() methods for LiMResult,
ParceLingamResult and RCDResult (keeping
NA adjacency entries visible as estimate = NA
rows), MultiGroupLingamResult and
MultiGroupBootstrapResult (stacked with a
group column), and ImputationBootstrapResult
(collapsed via as_bootstrap_result());
glance() methods for LiMResult
(n_discrete), ParceLingamResult
(n_na_entries), RCDResult
(n_confounded_pairs), and
MultiGroupLingamResult (n_groups); and
autoplot() methods for LiMResult,
ParceLingamResult, RCDResult (suspected
latent-confounder / unresolved pairs drawn as dashed segments), and
MultiGroupLingamResult (one group at a time via the
group argument).lingam_rcd(),
lingam_rcd_bootstrap(), and
generate_rcd_sample(), an R port of RCD (Repetitive Causal
Discovery; Maeda and Shimizu 2020) for causal discovery robust against
latent confounders. Unlike lingam_parce(), RCD does not
recover a causal order; instead it repeatedly extracts each variable’s
ancestor set (ancestors_list), narrows ancestor sets down
to direct parents, and tests remaining parent-free pairs for a shared
latent confounder, marking the corresponding adjacency-matrix entries
NA. estimate_total_effect_rcd() and
get_error_independence_p_values_rcd() are the
RCDResult counterparts of
estimate_total_effect() and
get_error_independence_p_values(). Reuses the HSIC and
F-correlation independence measures added for
lingam_parce(), and adds an optional MLHSICR
regression mode (HSIC-sum minimization via
stats::optim(method = "L-BFGS-B")) as a fallback when OLS
residuals are not independent of the explanatory variables.bootstrap_with_imputation(), an R port of the
Python lingam.tools.bootstrap_with_imputation(), for causal
discovery on data containing missing values. Each bootstrap resample
(drawn with replacement, missing values retained) is multiply imputed
into n_repeats complete datasets (by default via
mice::mice(method = "norm"), a new Suggests
dependency), and a common causal structure shared by all imputed
datasets is jointly estimated with lingam_multi_group().
Imputation and causal-discovery estimation can be swapped for custom
implementations via the imputer and cd_fit
arguments; their return values are validated with descriptive errors on
violation. The result is an ImputationBootstrapResult,
whose extra n_repeats dimension can be collapsed into a
regular BootstrapResult with the new
as_bootstrap_result() helper to reuse the existing
bootstrap analysis functions (get_probabilities(),
get_causal_direction_counts(), etc.).evaluate_model_fit(), an R port of the Python
lingam.utils.evaluate_model_fit(). Fits the causal graph
implied by an estimated adjacency matrix (or a lingamr result object
such as LingamResult / ParceLingamResult /
LiMResult) as a structural equation model via
lavaan::sem() (a new Suggests dependency) and
returns standard SEM fit measures (CFI, RMSEA, AIC/BIC, etc.).
NA entries marking a latent confounder pair are represented
as a residual covariance in the lavaan model, equivalent to the
latent-variable representation used by the Python
semopy-based original.lingam_parce(),
lingam_parce_bootstrap(), and
generate_parce_sample(), an R port of BottomUpParceLiNGAM
(Tashiro et al. 2014) for causal discovery robust against latent
confounders. The algorithm searches for a causal order from the sink
side and stops once an independence test is rejected; variables it could
not order are returned as a single unresolved block, and the
corresponding adjacency-matrix entries are NA.
estimate_total_effect_parce() and
get_error_independence_p_values_parce() are the
ParceLingamResult counterparts of
estimate_total_effect() and
get_error_independence_p_values(). Adds two new
internal-only independence measures reusable by future ports: an HSIC
gamma-approximation test (R/hsic.r) and F-correlation /
kernel canonical correlation (R/f_correlation.r).lingam_multi_group(),
lingam_multi_group_bootstrap(),
get_group_result(), and
generate_multi_group_sample(), an R port of
MultiGroupDirectLiNGAM (Shimizu 2012) for jointly estimating a Direct
LiNGAM model across multiple datasets (“groups”) that share a common
causal order but may have different structural coefficients. Per-group
analysis (total causal effects, independence tests, plotting) reuses the
existing single-group functions via get_group_result(),
which extracts a group as a plain LingamResult.lingam_high_dim(), an R port of
HighDimDirectLiNGAM (Wang & Drton 2020) for causal discovery on
high-dimensional data (large p, or p > n).
Causal order search uses moment statistics of non-Gaussianity instead of
pairwise independence measures, and is deterministic.lingam_lim() and
generate_lim_sample(), an R port of the LiM (LiNGAM for
Mixed data) algorithm (Zeng et al. 2022) for causal discovery on data
containing a mixture of continuous and binary (0/1) discrete
variables.measure = "kernel") that made soft prior knowledge
silently ineffective.reg_method = "ridge" erroring inside
lingam_direct_bootstrap() and
estimate_total_effect() /
estimate_all_total_effects().lambda = "oracle" not being rejected upfront for
reg_method = "lasso" (only "ridge" was
previously validated), which previously surfaced as an unclear
glmnet error.fit_regression.r): the AIC/BIC lambda
search grid is now scaled to the response’s magnitude instead of using a
fixed absolute grid.select_var_lag() now guards against selecting an
overfit, near-saturated lag order when the sample size is small relative
to the number of variables and candidate lags.lingam_direct_bootstrap() no longer aborts entirely
when a single bootstrap iteration fails (e.g. a degenerate resample);
the failing iteration is now skipped with a warning, and results reflect
however many iterations succeeded.compute_total_effects argument to
lingam_direct_bootstrap() to skip the (comparatively
expensive) total-effects estimation step when only edge/order stability
is needed.get_causal_direction_counts() is now vectorized and
substantially faster for large bootstrap results.get_error_independence_p_values(method = "kendall") now
warns for large n, where Kendall’s tau is O(n^2) per
variable pair.measure = "kernel") now switches to an incomplete-Cholesky
low-rank approximation for n > 1000, cutting per-pair
cost from O(n^3) to about O(n*d^2) (~200x faster at n = 5000);
n <= 1000 still uses the exact computation.\examples to the remaining exported
print.* methods.BootstrapResult query functions, numerical validation of
total-effect estimates, and additional input-validation tests).lingam_direct()) with selectable
regression backends for adjacency-matrix estimation via
reg_method: ordinary least squares ("ols"),
LASSO ("lasso"), adaptive LASSO
("adaptive_lasso"), and ridge regression
("ridge").lingam_direct_bootstrap() provides bootstrap stability
assessment, including causal-order stability, and supports multi-core
execution through the parallel and n_cores
arguments (via parallel::makePSOCKcluster()). Sequential
execution remains the default. Parallel runs use L’Ecuyer parallel RNG
streams, so results are reproducible for a given
seed/n_cores but differ numerically from the
sequential path.summary_lingam().autoplot() (static).tidy() /
glance()).These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.