{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/robustness-auditing-for-linear-regression-to","title":"Robustness Auditing for Linear Regression: To Singularity and Beyond","arxiv_id":"2410.07916","date":"2024-10-10","proceeding":null,"authors":["Ittai Rubinstein","Samuel B. Hopkins"],"abstract":"It has recently been discovered that the conclusions of many highly influential econometrics studies can be overturned by removing a very small fraction of their samples (often less than $0.5\\%$). These conclusions are typically based on the results of one or more Ordinary Least Squares (OLS) regressions, raising the question: given a dataset, can we certify the robustness of an OLS fit on this dataset to the removal of a given number of samples? Brute-force techniques quickly break down even on small datasets. Existing approaches which go beyond brute force either can only find candidate small subsets to remove (but cannot certify their non-existence) [BGM20, KZC21], are computationally intractable beyond low dimensional settings [MR22], or require very strong assumptions on the data distribution and too many samples to give reasonable bounds in practice [BP21, FH23]. We present an efficient algorithm for certifying the robustness of linear regressions to removals of samples. We implement our algorithm and run it on several landmark econometrics datasets with hundreds of dimensions and tens of thousands of samples, giving the first non-trivial certificates of robustness to sample removal for datasets of dimension $4$ or greater. We prove that under distributional assumptions on a dataset, the bounds produced by our algorithm are tight up to a $1 + o(1)$ multiplicative factor.","url_abs":"https://arxiv.org/abs/2410.07916v1","url_pdf":"https://arxiv.org/pdf/2410.07916v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"robustness-auditing-for-linear-regression-to","repo_url":"https://github.com/ittai-rubinstein/ols_robustness","is_official":1,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":{"status":"ok"}}],"tasks":[{"task_slug":"econometrics","task_name":"Econometrics"},{"task_slug":"regression-1","task_name":"regression"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2410.07916","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2410.07916"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/ittai-rubinstein/ols_robustness","reach":{"status":"ok"}}],"summary":{"ran":20,"unverified":2},"by_repo_kind":{"official":{"samples":22,"ran":20,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":22,"samples":[{"code_sha256_prefix":"f870b847a1110a75","entry":"approximate_most_influential_pertrubation","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/lower_bounds/amip.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/lower_bounds/amip.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"f870b847a1110a75"}},{"code_sha256_prefix":"7500999d93e83723","entry":"bound_42_hypercontractivity","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/hypercontractivity_reduction.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/hypercontractivity_reduction.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7500999d93e83723"}},{"code_sha256_prefix":"d083e44e07f5981e","entry":"bound_42_hypercontractivity_gm","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/hypercontractivity_reduction.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/hypercontractivity_reduction.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"d083e44e07f5981e"}},{"code_sha256_prefix":"4933136938918ca3","entry":"categorical_triangle_inequality","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/categorical_triangle_inequality.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/categorical_triangle_inequality.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4933136938918ca3"}},{"code_sha256_prefix":"12ea2c67aabeebbe","entry":"compute_beta_and_f","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/lower_bounds/amip.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/lower_bounds/amip.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"12ea2c67aabeebbe"}},{"code_sha256_prefix":"4265834f3cf0c804","entry":"compute_i_phi_coefficients","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/hypercontractivity_reduction.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/hypercontractivity_reduction.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"4265834f3cf0c804"}},{"code_sha256_prefix":"ef019453fa6adc41","entry":"compute_linear_combination_ku_datas","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/ku_triangle_inequality.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/ku_triangle_inequality.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ef019453fa6adc41"}},{"code_sha256_prefix":"65de6bb84b46038b","entry":"diagonal_matrix_product","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/lower_bounds/kzc.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/lower_bounds/kzc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"65de6bb84b46038b"}},{"code_sha256_prefix":"398bb9cf6392d204","entry":"dynamic_programming_1d","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/dynamic_programming.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/dynamic_programming.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"398bb9cf6392d204"}},{"code_sha256_prefix":"490a5bfdad60b596","entry":"dynamic_programming_2d","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/dynamic_programming.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/dynamic_programming.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"490a5bfdad60b596"}},{"code_sha256_prefix":"ff9b878454d7ea8d","entry":"efficient_greedy_removals","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/lower_bounds/kzc.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/lower_bounds/kzc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"ff9b878454d7ea8d"}},{"code_sha256_prefix":"eff9e12561a99df1","entry":"f","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/lower_bounds/amip.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/lower_bounds/amip.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"eff9e12561a99df1"}},{"code_sha256_prefix":"616bb4f47a0c056b","entry":"leave_one_out_regression_vectorized","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/lower_bounds/kzc.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/lower_bounds/kzc.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"616bb4f47a0c056b"}},{"code_sha256_prefix":"87a5378683067341","entry":"normalize_and_split_dataframes","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/categorical_data.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/categorical_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"87a5378683067341"}},{"code_sha256_prefix":"2e38ede09da9d67b","entry":"optimize_matrix_sdp","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/sdp_bounds.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/sdp_bounds.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"2e38ede09da9d67b"}},{"code_sha256_prefix":"b57797272c866c51","entry":"perform_regression_and_append_residuals","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/categorical_data.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/categorical_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"b57797272c866c51"}},{"code_sha256_prefix":"300ec7a3948ba792","entry":"refined_triangle_inequality_indices","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/triangle_inequality.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/triangle_inequality.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"300ec7a3948ba792"}},{"code_sha256_prefix":"c9d454d394856eb6","entry":"spectral_bound_sum_ips","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/spectral_algorithms.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/spectral_algorithms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"c9d454d394856eb6"}},{"code_sha256_prefix":"54c3a836679cdb70","entry":"spectral_bound_sum_ips_squared","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/spectral_algorithms.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/spectral_algorithms.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"54c3a836679cdb70"}},{"code_sha256_prefix":"7bd97d5c6b40238d","entry":"split_and_normalize","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/categorical_data/categorical_data.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/categorical_data/categorical_data.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"7bd97d5c6b40238d"}},{"code_sha256_prefix":"a6a5dfe2d50f6c5b","entry":"optimize_matrix","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/sdp_bounds.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/sdp_bounds.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"a6a5dfe2d50f6c5b"}},{"code_sha256_prefix":"59adb64bb8c50d38","entry":"spectral_bound_sum_ips_improved","repo":"ittai-rubinstein/ols_robustness","repo_kind":"official","path":"src/geometric_algorithms/spectral_algorithms.py","file_url":"https://github.com/ittai-rubinstein/ols_robustness/blob/HEAD/src/geometric_algorithms/spectral_algorithms.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"NONE","inline_ok":false,"mcp_get_code":{"code_sha256":"59adb64bb8c50d38"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}