| Title: | Information-Theoretic Dimensionality Estimation |
|---|---|
| Description: | An information-theoretic diagnostic technique for estimating the intrinsic dimensionality of tabular datasets. Evaluates shared probability mass via a transformed mutual information metric. Aims to extract the Intrinsic Generative Rank (r) and structural topology. For full methodological details, see the preprint by Lee-St. John (2026) <https://zenodo.org/records/22028087>. |
| Authors: | Terrence J. Lee-St. John [aut, cre] |
| Maintainer: | Terrence J. Lee-St. John <[email protected]> |
| License: | Apache License 2.0 |
| Version: | 1.0.1 |
| Built: | 2026-09-15 18:30:28 UTC |
| Source: | https://github.com/cran/Entropic.Scree |
An information-theoretic diagnostic technique for estimating the intrinsic dimensionality of tabular datasets. Evaluates shared probability mass via a transformed mutual information metric. Aims to extract the Intrinsic Generative Rank (r) and structural topology. For full methodological details, see the preprint at https://zenodo.org/records/22028087.
Entropic.Scree( data, low_entropy_thresh = 0.05, num_bins = NULL, bin_multiplier = 1, num_cores = parallel::detectCores() - 2, interactive_mode = TRUE, purge_constants = TRUE, check_collinearity = TRUE, triple_tap_window = 20, fwer_alpha = 0.01, extract_eigenvectors = FALSE, extract_bipolar_modules = FALSE, bipolar_top_n = 0.2, return_processed_data = FALSE )Entropic.Scree( data, low_entropy_thresh = 0.05, num_bins = NULL, bin_multiplier = 1, num_cores = parallel::detectCores() - 2, interactive_mode = TRUE, purge_constants = TRUE, check_collinearity = TRUE, triple_tap_window = 20, fwer_alpha = 0.01, extract_eigenvectors = FALSE, extract_bipolar_modules = FALSE, bipolar_top_n = 0.2, return_processed_data = FALSE )
data |
A data.table containing the dataset to evaluate. Base data.frames are not supported. |
low_entropy_thresh |
Numeric. Minimum marginal entropy threshold. Default is 0.05. |
num_bins |
Integer. Number of bins for discretization. Default is NULL (auto-calculated). |
bin_multiplier |
Numeric. Multiplier for the automatic bin calculation. Default is 1.0. |
num_cores |
Integer. Number of CPU cores for OpenMP parallelization. |
interactive_mode |
Logical. If TRUE, displays plot and prompts user to confirm ranks. |
purge_constants |
Logical. If TRUE, automatically removes zero-variance variables. |
check_collinearity |
Logical. If TRUE, purges perfectly collinear variables. |
triple_tap_window |
Integer. Window size for the triple-tap heuristic. Default is 20. |
fwer_alpha |
Numeric. Family-wise error rate alpha threshold. Default is 0.01. |
extract_eigenvectors |
Logical. If TRUE, extracts and returns eigenvectors. |
extract_bipolar_modules |
Logical. If TRUE, forces eigenvector extraction to build topological poles. |
bipolar_top_n |
Numeric. Proportion of top variables to include in poles. |
return_processed_data |
Logical. If TRUE, includes the processed data.table in the output. |
A list of class "entropic_scree" containing the following components:
eigenvalues |
A numeric vector of extracted eigenvalues. |
similarity_matrix |
The double-centered mutual information matrix. |
retained_features |
A character vector of variables that passed entropy thresholds. |
bin_distributions |
A table of bin counts for the discretized data. |
R_eff |
Total Unique Probabilistic Volume scalar. |
K_log_gap |
Integer estimate for the Observed Generative Rank. |
K_triple_tap |
Integer estimate for the Extended Signal Tail. |
triple_tap_multiplier |
The local dynamic t-multiplier used in Engine B. |
K_roots |
The finalized integer representing the Intrinsic Generative Rank. |
K_extended |
The finalized integer representing the Extended Signal Tail. |
top_of_bulk |
Index marking the boundary of idiosyncratic variance. |
total_signal_volume |
Total shared signal volume scalar. |
unique_signal_volume |
Unique signal volume scalar. |
redundant_signal_volume |
Redundant signal volume scalar. |
idiosyncratic_volume |
Idiosyncratic informational variance scalar. |
AIG |
Average Informational Gravity variable equivalent. |
FSIG_final |
A numeric vector of Factor-Specific Informational Gravity. |
structural_topology_profile |
A numeric vector of relative factor gravities. |
FSIG_extended_bulk |
Extended FSIG metric utilizing the macro bulk bound. |
FSIG_extended_kaiser |
Extended FSIG metric utilizing the Kaiser bound. |
eigenvectors |
A matrix of extracted eigenvectors, if requested. |
bipolar_modules |
A structured list of topological extraction poles, if requested. |
processed_data |
The pre-processed data.table, if requested. |
# Generate a small random dataset dummy_data <- data.table::data.table( V1 = rnorm(50), V2 = rnorm(50), V3 = rnorm(50) ) # Run the estimation (interactive_mode MUST be FALSE for automated checks) res <- Entropic.Scree(dummy_data, interactive_mode = FALSE, num_cores = 1)# Generate a small random dataset dummy_data <- data.table::data.table( V1 = rnorm(50), V2 = rnorm(50), V3 = rnorm(50) ) # Run the estimation (interactive_mode MUST be FALSE for automated checks) res <- Entropic.Scree(dummy_data, interactive_mode = FALSE, num_cores = 1)
A companion function to modify the rank estimates of a previously evaluated Entropic Scree object. This allows users to recalculate informational gravity and structural composition without re-running the computationally expensive C++ mutual information engine.
Update.Entropic.Scree( scree_obj, new_K_roots = NULL, new_K_extended = NULL, bipolar_top_n = 0.2, interactive_mode = TRUE )Update.Entropic.Scree( scree_obj, new_K_roots = NULL, new_K_extended = NULL, bipolar_top_n = 0.2, interactive_mode = TRUE )
scree_obj |
A valid output list from |
new_K_roots |
Integer. The new Observed Generative Rank. If NULL, retains original. |
new_K_extended |
Integer. The new Extended Signal Tail Rank. If NULL, retains original. |
bipolar_top_n |
Numeric. Proportion of top variables to include in newly extracted poles. |
interactive_mode |
Logical. If TRUE, prints updated metric dashboards to the console. |
A mutated list of class "entropic_scree" containing the updated
structural topology profiles, signal volumes, and informational gravity metrics
based on the new rank thresholds.