The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
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[@]metanet.ch.
\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.