DOE OSTI2013
Analysts working with very large data sets often use statistical models to “guess” at unknown, inaccurate, or missing information associated with the data. For example, a distant object viewed through an optical lens will have its position slightly shifted by imperfections in the lens. Thus, rather than considering the object’s observed position to be absolutely correct, it makes sense to take into account the lens’s imperfections to obtain a probabilistic guess as to the object’s true position. For another example, it might be important to associate some sort of error distribution with each of the individual sensors in an array of magnetometers. This error distribution may be complex and include spatially-driven covariances, because errors in nearby sensors are likely to be correlated (caused, for example, by the presence of some nearby, fixed metal object). This project is concerned with the design and implementation of a prototype data management system called the Monte Carlo Database System, or MCDB for short. MCDB allows an expert-level analyst or statistician to attach arbitrary stochastic models to very large data sets in order to “guess” the values for unknown or inaccurate data, such as the actual position of the observed object in the lens example above. When the resulting data set is analyzed, the underlying stochastic models are used to generate hundreds or thousands of possible data set instances, and each of those possible instances is analyzed separately by MCDB. Thus, MCDB does not just give a single answer to the analysis, but it actually gives an empirical distribution of query results that embody the underlying uncertainty, and can in turn be analyzed using standard statistical techniques. The stochastic models in MCDB are implemented as user-defined, external C++ libraries called Variable Generation functions (VG functions for short). Because the VG function interface is exceedingly general, it allows MCDB to be used in a very wide variety of application domains, in conjunction with virtually any stochastic model. Ultimately, we ended up calling the system that we developed over the course of the project SimSQL, to denote the fact that it allowed for stochastic simulation of data. The software developed during the lifetime of the project is available for download from the SimSQL project website: http://cmj4.web.rice.edu/SimSQL/SimSQL.html.