Dealing with Big Data often is characterized by different aspects that are often referred to as the „four Vs”, namely volume, velocity, variety and veracity, cf. (Franke et al., 2016, p. 373). As it is difficult to define what is small, medium or big data, we follow the quite simple definition given by John Tukey for Big Data: „anything that won’t fit on one device”, cf. Donoho (2017).
Besides the pure amount of data, one need to decide if the available data are really suitable for the provided problem statement. Unfortunately this question cannot be answered by statistical means. Another important concern is a selection bias, which means that the data are biased according to some effects, factors, unobserved constraints etc. A prominent example is the Google Flu Trend that failed to predict the A/H1N1 pandemic in 2009, caused by the selection bias. Not only this issue, but also some other interesting aspects of analyzing Big Data are discussed in Harford (2014).
Often Big Data is recorded casually and/or arises by combining different data sources, which is the aspect of veracity, cf. (Franke et al., 2016, p. 374). In order to use such data with inferential statistics, one should keep in mind that statistical methods are developed typically for planned experiments. This is strongly connected to a method’s assumptions and the question of effects to investigate and how to measure them. Thus, especially the methods from nonparametric statistics are of great interest because they have only weak assumptions.
The article at hand mainly covers the volume aspect in connection with inferential statistics. Thereby, one aim is to bring together data mining and statistics, as both can benefit from each other.
We want to briefly illustrate statistical theory for the Kolmogorov-Smirnov (KS) test for providing some insights when it might be beneficial to come up with inferential methods for large datasets. The KS test may be used to find anomalies or identify structures in the data.
In Sobolewski and Woźniak (2013) some statistical tests are used to analyze data streams, in order to identify pattern changes (so called virtual concept drift). In contrast to Sobolewski and Woźniak (2013), we concentrate on the KS test only, but we also investigate methodological and implementational details while using a software tool like Apache Spark. Thereby, we discuss the application of the methods of inferential statistics, esp. statistical tests, to large volumes of data. One of the first contributions that mentioned the issue of large datasets in connection with inferential statistics was Granger (1998), who claimed that a large amount of data might not be advantageous for inferential statistics. Especially for testing goodness-of-fit the problem of too high discriminatory power arises. As a consequence, the application of a statistical test does not make sense and the information from the data cannot be fully utilized.
In this article we present an approach to use the KS test for a large amount of data, while not having the above mentioned problem. Additionally, there is no model assumption needed, as we rely on the empirical distribution and therewith making use of a large dataset without the drawback of too high discriminatory power. For analyzing Big Data, typically there is no appropriate known distribution model that would fit the data, as there is no information about the „true” underlying process where the data comes from. Our approach is general in the sense that it can be used with the most prominent goodness-of-fit tests, such as KS test and test. In order to keep it short, we will demonstrate it based on the KS test. We will concentrate on existing methods that are already implemented to some extent. That means, we focus on the perspective of statistical application using tools that are available and ready-to-use. Basically, we suggest a transformation approach to turn a two sample problem into a one sample problem. By using a statistical test, it is possible to quantify the reliability/uncertainty of the method. From the technical point of view, an implementation of the presented approach can be realized quite easily even for distributed data on a compute cluster.
Overall, we address a twofold audience. On one hand the statistician who has to cope with large amounts of data that cannot be handled without stronger computational resources. On the other hand, for interested readers from the field of computer science we want to provide some insight on the KS test as it might be of interest for more data-driven approaches having only weak assumptions on the data.
The article is structured as follows. After this introduction, in Section 2, we sketch some important issues of using Big Data in connection with statistical analysis. Section 3 deals with the theoretical background of the KS test and presents a transformation approach that reduces some arbitrary goodness-of-fit problem to testing for uniformity. This is beneficial as, e. g. Apache Spark222https://spark.apache.org, does not provide such a great amount of available distributions out of the box for the KS test as R333https://www.r-project.org or Python444https://www.python.org do. Section 4 contains some simulations based on the methodology in Section 3. Furthermore, we discuss some issues that arise while using a large amount of data for statistical inference, esp. testing. Finally, the article ends with an outlook and conclusions in Section 5.
2 Big Data: Challenges and Solutions
Big Data comes along with many issues that affect the analysis workflow on the technical and methodological level as well. In the following we shortly discuss some of the most important ones and the implications.
One of the issues in connecting inferential statistics and Big Data is the assumption „”, with denoting the sample size, which is discussed controversially. It means that „sampling does not make sense if all data is available”, cf. (Van der Aalst, 2016, p. 354). On the other hand there is the position that „” mostly is not true in important cases, cf. (Harford, 2014, p. 19). As a consequence, „” should be seen at least as an assumption that needs to be checked carefully. In the case where one can assume that having all data means to have the full knowledge regarding the question of interest, the application of an inferential method is not of use at all, cf. (Hand, 1999, Section 2). But also this case, especially for massive datasets, has its specialties that need to be considered, cf. (Van der Aalst, 2016, Section 12.1.1). In our article, we will not refer to this situation as sampling is not of use there.
Nevertheless, working with samples and therewith, using inferential statistics, might be helpful in different situations. One simple reason for sampling is a complexity reduction of data at least in terms of the data size. Note that this strategy will not work in the case of high dimensional data, where the number of variables exceeds the number of observations for every variable. An interesting overview on the issue of high dimensional data is given inFan et al. (2014).
Data analysis also comes with the aspect of efficiency, i. e. „assuming we have infinite computing resources for Big Data analytics is a thoroughly impracticable plan, the input and output ratio (e.g., return on investment) will need to be taken into account […]”, cf. (Tsai et al., 2015, p. 23). Another aspect is working with streams directly or samples out of streams, cf. (Leskovec et al., 2014, p. 112). Sampling in streams is not an easy task as the population size grows continuously and typically one will not store all the streamed data, cf. Park et al. (2007); Bhattacharya et al. (2017)
. Note that the sampling issue typically has implications on the often presumed iid-assumption (independent and identically distributed random variables). Further aspects on working with samples can be found in(Srivastava and Srivastava, 2015, Section 4.2).
Nevertheless, given that the assumptions for an inferential method are met, one might interpret results of a statistical test on these data in a descriptive/exploratory manner, i. e. the results only refer to the analyzed dataset. From a practical point of view, a statistical test can provide a descriptive or exploratory indication for some issue that we are interested in. This reflects the more pragmatic view from the area of data mining, as one is looking for tools and methods that are of practical use, cf. (Hand, 1999, Section 2)
. Unfortunately, many of the assumptions for inferential methods are too strong, i. e. these are not met while working with Big Data, e. g. an assumption for normal distribution of the data. Thus, the area of nonparametric (or distribution free) statistics is of great interest here, because only some mild assumptions need to be fulfilled. The KS test belongs to the class of nonparametric tests.
Beside methodological issues, the application of statistical methods for large data sets comes along with the technical issue of parallelization as this forms a base of getting advantage by using a compute cluster. Basically, parallelization means that a method, e. g. a statistical test, can be broken into single tasks that are performed independently and simultaneously on different CPUs or nodes in a compute cluster and on subsets of data. Note that this might be a challenging problem as it depends not only on the method itself, but also on programming languages, hardware architectures etc. Insights on the methodological side for parallelization are provided in Jordan (2013). The technical aspects are discussed in the vast literature about high performance computing and parallel programming, for an introduction cf. Pacheco (2011).
3 Theoretical Background and Statistical Methodology
In this section, the most important statistical theory regarding the one-sample KS test is presented. Often, there is a need to compare two samples whether they could stem from the same distribution or not. In connection with testing, this is a two sample problem.
3.1 Kolmogorov-Smirnov Test in Brief
In the following, we provide a short overview on the KS test. A more general discussion on goodness-of-fit tests can be found e. g. in (Lehmann, 2004, pp. 335). For more detailed information on the KS test cf. (Lehmann and Romano, 2005, pp. 584) or (Gibbons and Chakraborti, 2011, pp. 108).
be a random sample of i.i.d. real-valued observations from an unknown, continuous distribution with the cumulative distribution function (cdf). The KS test is a goodness-of-fit test to investigate the hypothesis
where denotes the cdf of a fully specified theoretical distribution. Roughly speaking, the test checks whether a random sample of data can be assumed to stem from the specified theoretical distribution
. The test statistic, the KS statistic, is defined as
where denotes the random empirical cumulative distribution function (ecdf)
As , the limiting distribution of is the so called Kolmogorov distribution with distribution function
This asymptotic test rejects the null hypothesis if, with denoting the quantile of the Kolmogorov distribution. The significance level is set by selecting an appropriate value for the probability . Having large sample sizes, the usage of the asymptotic version of the KS test is justified. The KS test is consistent against the alternatives (which is a desirable property of a test), i. e. the probability for rejecting a wrong null hypothesis converges to one as (cf. (Lehmann, 2004, p. 342)). In other words, the discriminatory power between two different distributions of the KS test increases with increasing sample size. Note that calculating the power against alternatives varies depending on the investigated alternatives, cf. Boyerinas (2016), Senger (2013), Razali et al. (2011) or Milbrodt and Strasser (1990). In that sense, the behavior of testing power is strongly connected to the concrete application.
3.2 Transformation to Uniformity
Here we transform the two sample goodness-of-fit problem into testing uniformity as a one-sample test.
For the first step, assume two independent random samples , , and , , whereby and denote some arbitrary unknown, but continuous and real valued cdfs. Now, we want to check whether our random samples could stem from the same distribution, i. e. we could test the hypothesis
This two sample KS test can be found e. g. in (Gibbons and Chakraborti, 2011, pp. 234).
From probability theory we know the so called probability integral transformation, cf.(Casella and Berger, 2002, p. 54). Let a random variable have a continuous cdf denoted by . Then, the transformation
has a uniform distributionon the unit interval , denoted as
The random ecdfs
are consistent estimators for the theoretical cdfsand resp. in (3). Based on (4) it holds
Note that independence of the transformed samples is still maintained, which follows from the disjoint blocks theorem, cf. (Karr, 1993, p. 76). The two sample problem (3) can be turned into a one-sample problem as under
as , where stands for convergence in distribution.
Practically speaking, for observed data, i. e. two sample realizations and we take one of the realized ecdf, say for the estimator , and calculate the transformation
Under from (3), we would expect the transformed data from (7) to be approximately distributed as , which can be checked by using the one-sample KS test as already presented. Note that the transformation from (7) does not need any sorted data, which makes it easy to implement this step even for distributed data on a compute cluster. Remark: The two sample version of the KS test typically needs sorted data (sorting data is computationally intensive) for getting the supremal distance between the two ecdfs, cf. (Press et al., 1992, pp. 617).
In Section 3, we showed that it is sufficient to concentrate on testing uniformity as a goodness-of-fit test problem can be transformed adequately. As such a transformation strategy is common in statistics, alternatives for testing uniformity were investigated broadly in the literature using different approaches. An overview of different tests with an investigation of some of their properties can be found e. g. in Blinov and Lemeshko (2014), Marhuenda et al. (2005), Gokhale (1983) or Dudewicz and Van Der Meulen (1981). Here we have chosen the KS test as it is one of the most popular tests for goodness-of-fit, especially in the case of continuous distributions.
4 Application and Implementation
In our application we are interested in detecting anomalies by using the KS test. Basically, this means to compare two distributions in order to investigate their equivalence. In this section the simulation results are described in a first step. In a second step the results are discussed in a more general manner, esp. referring the application of statistical tests with large datasets.
4.1 Simulation Results
For illustrating the above presented transformation approach, we performed simulations of the KS test. Thereby, we check the hypothesis whether two samples could stem from the same distribution, according to (3
). Having in mind the idea of anomaly detection, there might be information about a common state for some system that we will name reference distribution with cdf. On the other hand, there is another distribution with cdf that might characterize the above system over a time period, e. g. during the last hour or the last day. This distribution we will name comparison distribution. Now we are interested, whether there is some indication that the system does not behave as usual, i. e. .
Figures 1 and 2 illustrate the empirical power functions of our simulations for varying values of the sample sizes and , where the transformation approach is compared to the two sample KS test. Basically, the power function of a statistical test provides the probability to reject the null hypothesis (no matter whether it is correct or not). Here we have chosen a standard normal distribution, , under the null hypothesis, characterized with cdf (according to (3)). Furthermore, the space of the alternative hypothesis contains all normal distributions with . Thus, the power functions depend on the parameter of a normal distribution . Iterating over fixed values of , each statistical test (here: two sample KS test and transformation approach) is performed times. Depending on , the empirical power function is the relative frequency of cases where was rejected during the replications.
The illustrated power functions only reflect probabilities referring alternative hypotheses that contain the normal distribution. In that sense, esp. the type II error (accept a wrong null hypothesis) only reflects deviations from the parameterof the normal distribution, but not deviations with respect to some arbitrary distribution. More precisely, the illustrated empirical power functions are estimates for these probabilities based on the relative frequencies of rejecting the null hypothesis. As it is desirable, the rejection probability is increasing while the deviation from increases. As expected, the power functions are steepening with increasing sample sizes, this is the consistency of the KS test (as mentioned in Section 3
). The chosen level of significance reflects the reliability referring the decision, i. e. it is a possibility to handle the uncertainty that might arise from the data, namely the sample error. Another simulation setting was performed with an exponential distribution under, since it reflects a non-symmetrical case. As this led to quite similar results, these are not reported here.
Note that transformations based on the reference distribution, i. e. its ecdf, lead to testing of discrete distributions. The KS test becomes conservative as it is applied to discrete distributions, i. e. the level of significance becomes no larger than in the case of a continuous distribution, cf. Goodman (1954). Roughly speaking it is more unlikely to reject the null hypothesis. This can be seen in Figures 1 and 2
as the power function of the transformation approach is shifted downwards referring the two sample test. While the type I error (rejecting a true null hypothesis) is decreasing, the type II error is increasing. The type I error is directly accessible via the (empirical) power function, the type II error is calculated as one minus the power function. This shift is vanishing as the sample size for the reference distribution grows. Another aspect that comes up by using an ecdf for transformation are ties, because an ecdf is a step-function consisting of constant parts and therewith creating ties within the transformation. To get rid of occurring ties, one could add some random noise to the transformed values, whereby one need to ensure that the transformed values are not exceeding the unit interval.
Note the twofold approximation in connection with the transformation idea. As we are using a one-sample test, the distribution is estimated by but the test „sees” as the „true” distribution. For getting the properties of a one-sample KS test we consider , while the size of our sample to be compared remains unchanged or is increasing more slowly at least. If this relation is violated, nearly every will be rejected. The bottom line is the transformation approach works in the case of a sufficient large sample size from the reference distribution and the sample size of the distribution to be compared should not be too large. This effect is illustrated in Figure 2. For practical applications mostly it is possible to get increasing information about the reference distribution while we have only a smaller amount of information about the distribution(s) to be compared.
As a consequence, the ratio of sample sizes is an important aspect. Based on the above simulation results, see Figure 1, we recommend to strive for . Thereby, one might be aware that a small sample size of the comparison sample may be not in contradiction to many distributions. This is closely connected to the fact, that the KS test with the transformation approach depends on and not on the sample size of the reference sample. The critical value of the KS test depends on while the sample size only influences the precision of the estimated reference distribution. For practical use, one should have a sufficient large sample for the reference distribution that is able to characterize its important characteristics. In a second step, based on the above recommendation (), a maximum sample size can be chosen. Note that based on the transformation into a one sample problem, the reference distribution is emphasized against the comparison distribution. This is in contrast to the two sample test, where the information of both samples are weighted equally in some sense.
4.2 General Discussion on Statistical Tests with Big Data
In statistical inference mainly the sample error is involved in nearly every consideration. Typically, a sufficient large amount of observations is desirable in order to get more reliable results. As a consequence of having Big Data in connection with goodness-of-fit, already small differences between two datasets are indicated as statistically significant, i. e. the null hypothesis is rejected. This aspect refers to the discriminatory power of test, which increases with an increasing sample size as already mentioned in Section 3 and the simulations in Section 4.1. Unfortunately, such a result does not reflect the practical relevance of an existing difference/distance. Up to the present, this issue of interpreting test results often is not reflected sufficiently in practice, cf. Gupta (2012) or Ranganathan et al. (2015). Especially in connection with Big Data (but not only there), we need to define a difference/distance between two distributions in advance that might still be acceptable from the practical point of view. The statistical test then evaluates whether a statistically significant deviation from this defined distance exists. Thereby, the application of confidence bands for distribution functions might be useful in order to ease the single KS test runs. These confidence bands can be constructed based on the KS test statistic and its asymptotic distribution, cf. (Gibbons and Chakraborti, 2011, pp. 121).
In many practical applications there might be no appropriate probability distribution model because of „unusual” distribution shapes that make it hard to apply some known distribution model. Thus, a utilization of the ecdf directly is justified (at least as reference distribution), because having a large amount of observations makes this ecdf a reliable reference of an unknown data generating process. Thereby, we need to carefully choose our dataset in such a way that it includes what we are interested in. Especially referring Big Data, this is an issue as the datasets are not arising from a clear sample design, but are often observational data (for this issue cf.(Franke et al., 2016, Section 2.3, p. 374)). As a consequence, at best there is little control about the data generating process.
4.3 Technical Details
From the technical point of view we need to distinguish two cases. The first is applying a test to one long sample, which is typically a job for Big Data frameworks as the data do not fit into memory of a single machine. The second case is applying a test to many samples simultaneously, whereby every single sample fits into memory. This problem can be solved either with the help of parallel programming techniques or with Big Data frameworks.
Testing only smaller amounts of data does not need the possibility of distributed data and therefore utilizing a tool like Spark. Nevertheless, performing a huge amount of test runs in parallel, Spark can be used but running every single test on one compute node. Thereby, the Scala implementation of the KS test can be used. Remark: The RDD-based implementation for Spark uses a part of the Scala implementation of the KS test, esp. for obtaining the p-value from the calculated realization of the test statistic. With a fixed dataset we performed a rash of KS tests on Spark and R as well, which led to quite similar results (up to seven decimal places). Moreover, there is a difference regarding the implementation for the KS test. While an implementation of the one sample test is quite easy, the two sample version typically needs sorting of the data that might be computationally intensive esp. with large datasets. From this point of view, it is of advantage to utilize an approximation by transforming the problem. Additionally, the transformation as suggested is easy to implement even in the case of distributed data as it can be parallelized.
Typical software used for data analysis, like R, Python, SPSS, etc., is not capable of dealing with large datasets out of the box.
The reason is, that by design, these tools are keeping all the data in the main memory of the computer system, which is very limited in size.
There are solutions available, such as, e.g. the R package
bigmemory, that does not read the whole data into the memory, but rather references some part of it in cache and loads other portions of it on demand.
Python can handle larger datasets using packages like
pandas (working with chunks) or
dask (distributed datasets).
Even if this problem is solved, another one arises, namely one-threaded computations even on multicore systems.
A solution would be to parallelize the execution, using different extensions, like
parallel in R, or packages like
multiprocessing in Python.
If none of the above helps, one should consider switching to the Big Data Frameworks.
The most widely used ones come from Apache Software family, e.g. Apache Hadoop555https://hadoop.apache.org, Apache Spark, etc.
The main advantage of those are distributed computing and data storage, fault tolerance and easy scalability.
The above mentioned software tools are developed by different communities, that have their special core aspects. E. g. R is mainly used and developed within a statistical motivated community. Thus, R has a wide coverage of implemented statistical methods, especially in inferential statistics. Python is used often in the engineering field and has well developed libraries especially for tasks in deep learning. Upcoming frameworks as Apache Spark or Apache Flink666https://flink.apache.org are developed by a community that comes from the field of computer science. Compared to a tool like R, these frameworks are quite new developments that focus on the problem to work with large amounts of data. Thereby, these frameworks are mainly focusing on basic descriptive and exploratory statistics but may lack of inferential methods. Apache Spark Vers. 2.3.2 comes with a KS test implementation that is restricted to the two-sided one-sample test with the uniform and the normal distribution as reference distributions under the null hypothesis. With the above presented transformation approach it is possible to use this one-sample variant of the KS test in connection with the uniform distribution.
5 Conclusions and Outlook
Often for Big Data there is no appropriate distribution model to represent the data. Additionally, large sample sizes for testing are not desirable in some sense. In order to avoid these problems our proposed transformation approach even utilizes information from a large dataset whereby no distributional assumption is required. Based on the theoretical background we developed our method and performed simulations in order to demonstrate its properties. The method allows a more data-driven approach whereby it remains possible to assess its uncertainty that arises from a sample. In order to apply our transformation approach, a one sample implementation of the KS test that allows for testing uniformity is sufficient.
From the technical point of view the above approach can be implemented for distributed datasets which makes it applicable to Big Data, particularly on a compute cluster.
Furthermore, working with ecdfs and the transformation into uniformity testing constitutes a unified measure that may allow to compare deviations for different comparison samples over different reference distributions. But this issue might be investigated in a further work. Testing uniformity has a prominent position due to its generality which leads to many extensions of our approach, as it is not restricted to KS and tests. Furthermore, there are possibilities to expand, e.g. the KS test, to the multivariate case, cf. Justel et al. (1997), Sugiura (1965) or Fasano and Franceschini (1987). The same question arises for test and testing uniformity. On the technical field of investigation one could explore these alternatives referring their appropriateness for a parallelized implementation.
- Bhattacharya et al. (2017) Bhattacharya, A., Issac, D., Jaiswal, R. and Kumar, A. (2017). Sampling in space restricted settings, Algorithmica pp. 1–20.
- Blinov and Lemeshko (2014) Blinov, P. Y. and Lemeshko, B. Y. (2014). A review of the properties of tests for uniformity, 12th International Conference on Actual Problems of Electronics Instrument Engineering (APEIE), IEEE, pp. 540–547.
- Boyerinas (2016) Boyerinas, B. M. (2016). Determining the statistical power of the Kolmogorov-Smirnov and Anderson-Darling goodness-of-fit tests via Monte Carlo simulation, Technical report, Center of Naval Analyses Arlington, United States.
- Casella and Berger (2002) Casella, G. and Berger, R. L. (2002). Statistical inference, Vol. 2, Duxbury Pacific Grove, CA.
Donoho, D. (2017).
50 years of data science,Journal of Computational and Graphical Statistics 26(4): 745–766.
- Dudewicz and Van Der Meulen (1981) Dudewicz, E. J. and Van Der Meulen, E. C. (1981). Entropy-based tests of uniformity, Journal of the American Statistical Association 76(376): 967–974.
- Fan et al. (2014) Fan, J., Han, F. and Liu, H. (2014). Challenges of big data analysis, National Science Review 1(2): 293–314.
- Fasano and Franceschini (1987) Fasano, G. and Franceschini, A. (1987). A multidimensional version of the Kolmogorov-Smirnov test, Monthly Notices of the Royal Astronomical Society 225(1): 155–170.
- Franke et al. (2016) Franke, B., Plante, J.-F., Roscher, R., Lee, E.-s. A., Smyth, C., Hatefi, A., Chen, F., Gil, E., Schwing, A. and Selvitella, A. (2016). Statistical inference, learning and models in big data, International Statistical Review 84(3): 371–389.
- Gibbons and Chakraborti (2011) Gibbons, J. D. and Chakraborti, S. (2011). Nonparametric statistical inference, International Encyclopedia of Statistical Science, Springer, pp. 977–979.
- Gokhale (1983) Gokhale, D. (1983). On entropy-based goodness-of-fit tests, Computational Statistics & Data Analysis 1: 157–165.
- Goodman (1954) Goodman, L. A. (1954). Kolmogorov-Smirnov tests for psychological research, Psychological Bulletin 51(2): 160–168.
- Granger (1998) Granger, C. W. J. (1998). Extracting information from mega-panels and high-frequency data, Statistica Neerlandica 52(3): 258–272.
Gupta, S. K. (2012).
The relevance of confidence interval and p-value in inferential statistics,Indian Journal of Pharmacology 44(1): 143.
- Hand (1999) Hand, D. J. (1999). Statistics and data mining: intersecting disciplines, ACM SIGKDD Explorations Newsletter 1(1): 16–19.
- Harford (2014) Harford, T. (2014). Big data: A big mistake?, Significance 11(5): 14–19.
- Jordan (2013) Jordan, M. I. (2013). On statistics, computation and scalability, Bernoulli 19(4): 1378–1390.
- Justel et al. (1997) Justel, A., Peña, D. and Zamar, R. (1997). A multivariate kolmogorov-smirnov test of goodness of fit, Statistics & Probability Letters 35(3): 251–259.
- Karr (1993) Karr, A. F. (1993). Probability, Springer.
- Lehmann (2004) Lehmann, E. L. (2004). Elements of large-sample theory, Springer.
- Lehmann and Romano (2005) Lehmann, E. L. and Romano, J. P. (2005). Testing statistical hypotheses, Springer.
- Leskovec et al. (2014) Leskovec, J., Rajaraman, A. and Ullman, J. D. (2014). Mining of massive datasets, Cambridge University Press.
- Marhuenda et al. (2005) Marhuenda, Y., Morales, D. and Pardo, M. (2005). A comparison of uniformity tests, Statistics 39(4): 315–327.
- Milbrodt and Strasser (1990) Milbrodt, H. and Strasser, H. (1990). On the asymptotic power of the two-sided Kolmogorov-Smirnov test, Journal of Statistical Planning and Inference 26(1): 1–23.
- Pacheco (2011) Pacheco, P. (2011). An introduction to parallel programming, Elsevier.
- Park et al. (2007) Park, B.-H., Ostrouchov, G. and Samatova, N. F. (2007). Sampling streaming data with replacement, Computational Statistics & Data Analysis 52(2): 750–762.
- Press et al. (1992) Press, W. H., Teukolsky, S. A., Vetterling, W. T. and Flannery, B. P. (1992). Numerical Recipes in FORTRAN, 2 edn, Cambridge University Press.
- Ranganathan et al. (2015) Ranganathan, P., Pramesh, C. and Buyse, M. (2015). Common pitfalls in statistical analysis: p-values, statistical significance and confidence intervals, Perspectives in Clinical Research 6(2): 116.
- Razali et al. (2011) Razali, N. M., Wah, Y. B. et al. (2011). Power comparisons of Shapiro-Wilk, Kolmogorov-Smirnov, Lilliefors and Anderson-Darling tests, Journal of Statistical Modeling and Analytics 2(1): 21–33.
- Senger (2013) Senger, Ö. (2013). Chinese Business Review 12(7).
- Sobolewski and Woźniak (2013) Sobolewski, P. and Woźniak, M. (2013). Comparable study of statistical tests for virtual concept drift detection, Proceedings of the 8th International Conference on Computer Recognition Systems CORES 2013, Springer, pp. 329–337.
- Srivastava and Srivastava (2015) Srivastava, J. and Srivastava, A. K. (2015). Understanding linkage between data mining and statistics, International Journal of Engineering Technology, Management and Applied Sciences 3(10): 4–12.
- Sugiura (1965) Sugiura, N. (1965). Multisample and multivariate nonparametric tests based on U statistics and their asymptotic efficiencies, Osaka Journal of Mathematics 2(2): 385–426.
- Tsai et al. (2015) Tsai, C.-W., Lai, C.-F., Chao, H.-C. and Vasilakos, A. V. (2015). Big data analytics: a survey, Journal of Big Data 2(1): 21.
- Van der Aalst (2016) Van der Aalst, W. (2016). Process mining: Data Science in Action, 2 edn, Springer.