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.

flexIC: Minimal, Runnable Demo

Kevin E. Wells, PhD

2025-06-26

1 Simulate marginals

n <- 200; k <- 5
Sigma <- matrix(0.6, k, k); diag(Sigma) <- 1
X0  <- mvtnorm::rmvnorm(n, sigma = Sigma)
R_star <- cor(X0, method = "spearman")

2 IC vs flexIC

out_ic   <- flexIC(X0, R_star, eps = "none")
out_flex <- flexIC(X0, R_star, eps = 0.02, max_iter = 50)
X_ic     <- out_ic
X_flex   <- out_flex

3 Maximum rank-error

err_ic   <- max(abs(cor(X_ic  , method = "spearman") - R_star))
err_flex <- max(abs(cor(X_flex, method = "spearman") - R_star))

data.frame(
  method         = c("IC (eps = 'none')", "flexIC (eps = 0.02)"),
  max_rank_error = c(err_ic, err_flex)
)
#>                method max_rank_error
#> 1   IC (eps = 'none')     0.09301133
#> 2 flexIC (eps = 0.02)     0.04386710

4 Speed benchmark

microbenchmark(
  IC     = flexIC(X0, R_star, eps = "none"),
  flexIC = flexIC(X0, R_star, eps = 0.02, max_iter = 50),
  times  = 100L
)
#> Unit: microseconds
#>    expr    min       lq      mean   median       uq     max neval cld
#>      IC  751.7   844.40  1021.888   903.95   931.85  6931.9   100  a 
#>  flexIC 4392.6 17940.95 19571.516 19111.20 19721.50 34530.2   100   b

5 Optional: Visual check

if (requireNamespace("ggplot2", quietly = TRUE)) {
  flexIC::plot_marginals_grid(X0, X_flex, bins = 30)
}
#> Showing first 4 of 5 variables.

6 Session info

sessionInfo()
#> R version 4.4.2 (2024-10-31 ucrt)
#> Platform: x86_64-w64-mingw32/x64
#> Running under: Windows 11 x64 (build 22631)
#> 
#> Matrix products: default
#> 
#> 
#> locale:
#> [1] LC_COLLATE=C                          
#> [2] LC_CTYPE=English_United States.utf8   
#> [3] LC_MONETARY=English_United States.utf8
#> [4] LC_NUMERIC=C                          
#> [5] LC_TIME=English_United States.utf8    
#> 
#> time zone: America/Chicago
#> tzcode source: internal
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] microbenchmark_1.5.0 mvtnorm_1.3-3        flexIC_0.1.4        
#> 
#> loaded via a namespace (and not attached):
#>  [1] Matrix_1.7-1      gtable_0.3.6      jsonlite_1.8.9    dplyr_1.1.4      
#>  [5] compiler_4.4.2    tidyselect_1.2.1  jquerylib_0.1.4   splines_4.4.2    
#>  [9] scales_1.3.0      yaml_2.3.10       fastmap_1.2.0     lattice_0.22-6   
#> [13] TH.data_1.1-2     ggplot2_3.5.2     R6_2.5.1          labeling_0.4.3   
#> [17] generics_0.1.3    knitr_1.49        MASS_7.3-61       tibble_3.2.1     
#> [21] munsell_0.5.1     bslib_0.8.0       pillar_1.10.1     rlang_1.1.4      
#> [25] multcomp_1.4-26   cachem_1.1.0      xfun_0.50         sass_0.4.9       
#> [29] cli_3.6.3         withr_3.0.2       magrittr_2.0.3    digest_0.6.37    
#> [33] grid_4.4.2        rstudioapi_0.17.1 sandwich_3.1-1    lifecycle_1.0.4  
#> [37] vctrs_0.6.5       evaluate_1.0.3    glue_1.8.0        farver_2.1.2     
#> [41] codetools_0.2-20  zoo_1.8-12        survival_3.7-0    colorspace_2.1-1 
#> [45] rmarkdown_2.29    tools_4.4.2       pkgconfig_2.0.3   htmltools_0.5.8.1

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.