Skip to content

Commit c8aa97e

Browse files
committed
Fixed positivity violation with hidden vars
1 parent 1b43da6 commit c8aa97e

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

causal_testing/testing/causal_test_engine.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,9 @@ def execute_test_suite(self, test_suite: CausalTestSuite) -> list[CausalTestResu
7272
minimal_adjustment_set = minimal_adjustment_set - set(edge.outcome_variable.name)
7373

7474
variables_for_positivity = (
75-
list(minimal_adjustment_set) + [edge.treatment_variable.name] + [edge.outcome_variable.name]
75+
list(minimal_adjustment_set) + [edge.treatment_variable.name, edge.outcome_variable.name]
7676
)
77+
7778
if self._check_positivity_violation(variables_for_positivity):
7879
raise ValueError("POSITIVITY VIOLATION -- Cannot proceed.")
7980

@@ -209,13 +210,13 @@ def _check_positivity_violation(self, variables_list):
209210
:param variables_list: The list of variables for which positivity must be satisfied.
210211
:return: True if positivity is violated, False otherwise.
211212
"""
212-
if not set(variables_list).issubset(self.scenario_execution_data_df.columns):
213+
if not (set(variables_list) - {x.name for x in self.scenario.hidden_variables()}).issubset(self.scenario_execution_data_df.columns):
213214
missing_variables = set(variables_list) - set(self.scenario_execution_data_df.columns)
214215
logger.warning(
215-
"Positivity violation: missing data for variables {missing_variables}.\n"
216+
"Positivity violation: missing data for variables %s.\n"
216217
"Causal inference is only valid if a well-specified parametric model is used.\n"
217218
"Alternatively, consider restricting analysis to executions without the variables:"
218-
" %s.",
219+
".",
219220
missing_variables,
220221
)
221222
return True

0 commit comments

Comments
 (0)