Simulating Noisy, Nonparametric, and Multivariate Discrete Patterns

Requiring no analytical forms, nonparametric discrete patterns are flexible in representing complex relationships among random variables. This makes them increasingly useful for data-driven applications. However, there appears to be no software tools for simulating nonparametric discrete patterns, which prevents objective evaluation of statistical methods that discover discrete relationships from data. We present a simulator to generate nonparametric discrete functions as contingency tables. User can request strictly many-to-one functional patterns. The simulator can also produce contingency tables representing dependent non-functional and independent relationships. An option is provided to apply random noise to contingency tables. We demonstrate the utility of the simulator by showing the advantage of the FunChisq test over Pearson’s chi-square test in detecting functional patterns. This simulator, implemented in the function simulate_tables in the R package FunChisq (version 2.4.0 or greater), offers an important means to evaluate the performance of nonparametric statistical pattern discovery methods.

Ruby Sharma , Sajal Kumar , Hua Zhong , Mingzhou Song

Supplementary materials

Supplementary materials are available in addition to this article. It can be downloaded at

CRAN packages used

rTableICC, FunChisq

CRAN Task Views implied by cited packages


Text and figures are licensed under Creative Commons Attribution CC BY 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".


For attribution, please cite this work as

Sharma, et al., "The R Journal: Simulating Noisy, Nonparametric, and Multivariate Discrete Patterns", The R Journal, 2017

BibTeX citation

  author = {Sharma, Ruby and Kumar, Sajal and Zhong, Hua and Song, Mingzhou},
  title = {The R Journal: Simulating Noisy, Nonparametric, and Multivariate Discrete Patterns},
  journal = {The R Journal},
  year = {2017},
  note = {},
  doi = {10.32614/RJ-2017-053},
  volume = {9},
  issue = {2},
  issn = {2073-4859},
  pages = {366-377}