Program Analysis for Adaptive Data Analysis
Jiawen Liu, Weihao Qu, Marco Gaboardi, Deepak Garg, Jonathan R. Ullman
Abstract
Data analyses are usually designed to identify some property of the population from which the data are drawn, generalizing beyond the specific data sample. For this reason, data analyses are often designed in a way that guarantees that they produce a low generalization error. That is, they are designed so that the result of a data analysis run on a sample data does not differ too much from the result one would achieve by running the analysis over the entire population.
An adaptive data analysis can be seen as a process composed by multiple queries interrogating some data, where the choice of which query to run next may rely on the results of previous queries. The generalization error of each individual query/analysis can be controlled by using an array of well-established statistical techniques. However, when queries are arbitrarily composed, the different errors can propagate through the chain of different queries and bring to a high generalization error. To address this issue, data analysts are designing several techniques that not only guarantee bounds on the generalization errors of single queries, but that also guarantee bounds on the generalization error of the composed analyses. The choice of which of these techniques to use, often depends on the chain of queries that an adaptive data analysis can generate.
In this work, we consider adaptive data analyses implemented as while-like programs and we design a program analysis which can help with identifying which technique to use to control their generalization errors. More specifically, we formalize the intuitive notion of adaptivity as a quantitative property of programs. We do this because the adaptivity level of a data analysis is a key measure to choose the right technique. Based on this definition, we design a program analysis for soundly approximating this quantity. The program analysis generates a representation of the data analysis as a weighted dependency graph, where the weight is an upper bound on the number of times each variable can be reached, and uses a path search strategy to guarantee an upper bound on the adaptivity. We implement our program analysis and show that it can help to analyze the adaptivity of several concrete data analyses with different adaptivity structures.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext eb1d381b-c3d1-4427-806a-9d2fd34ca36eCited by top-tier papers1
Ask how each one uses itBuilds on2
Related papers
- Adaptive Data Analysis with Correlated ObservationsAryeh Kontorovich, Menachem Sadigurschi, Uri StemmerICML 2022 · 13 citations
- Tight Bounds for Answering Adaptively Chosen Concentrated QueriesEmma Rapoport, Edith Cohen, Uri StemmerNeurIPS 2025 · 2 citations
- Generalization in the Face of Adaptivity: A Bayesian PerspectiveMoshe Shenfeld, Katrina LigettNeurIPS 2023 · 6 citations
- A Categorical Basis for Robust Program AnalysisZachary Kincaid, Shaowei ZhuPLDI 2026
- Adaptive Recursive Query OptimizationAnna Herlihy, Guillaume Martres, Anastasia Ailamaki, Martin OderskyICDE 2024 · 5 citations
