You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: paper/paper.md
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,7 +27,7 @@ authors:
27
27
- name: Richard Somers
28
28
orcid: 0009-0009-1195-1497
29
29
affiliation: 1
30
-
- name: Nicholas Lattimer
30
+
- name: Nicholas Latimer
31
31
orcid: 0000-0001-5304-5585
32
32
affiliation: 1
33
33
- name: Neil Walkinshaw
@@ -45,7 +45,7 @@ bibliography: paper.bib
45
45
46
46
# Summary
47
47
Scientific models possess several properties that make them notoriously difficult to test, including a complex input space, long execution times, and non-determinism, rendering existing testing techniques impractical.
48
-
In fields such as epidemiology, where researchers seek answers to challenging causal questions, a statistical methodology known as Causal Inference (CI) has addressed similar problems, enabling the inference of causal conclusions from noisy, biased, and sparse observational data instead of costly randomised trials.
48
+
In fields such as epidemiology, where researchers seek answers to challenging causal questions, a statistical methodology known as Causal Inference (CI) [@pearl2009causality,@hernan2020causal]has addressed similar problems, enabling the inference of causal conclusions from noisy, biased, and sparse observational data instead of costly randomised trials.
49
49
CI works by using domain knowledge to identify and mitigate for biases in the data, enabling them to answer causal questions that concern the effect of changing some feature on the observed outcome.
50
50
The Causal Testing Framework (CTF) is a software testing framework that uses CI techniques to establish causal effects between software variables from pre-existing runtime data rather than having to collect bespoke, highly curated datasets especially for testing.
51
51
@@ -56,18 +56,18 @@ Nondeterministic software can be tested using Statistical Metamorphic Testing [@
56
56
However, this requires the software to be executed repeatedly for each set of parameters of interest, so is computationally expensive, and is constrained to testing properties over software inputs that can be directly and precisely controlled.
57
57
Statistical Metamorphic Testing cannot be used to test properties that relate internal variables or outputs to each other, since these cannot be controlled a priori.
58
58
59
-
By employing domain knowledge in the form of a causal graph --- a lightweight model specifying the expected relationships between key software variables --- the CTF circumvents both of these problems by enabling models to be tested using pre-existing runtime data.
59
+
By employing domain knowledge in the form of a causal graph --- a lightweight model specifying the expected relationships between key software variables --- the CTF overcomes the limitations of Statistical Metamorphic Testing by enabling models to be tested using pre-existing runtime data.
60
60
The CTF is written in Python but is language agnostic in terms of the system under test.
61
61
All that is required is a set of properties to be validated, a causal model, and a set of software runtime data.
62
62
63
63
# Causal Testing
64
-
Causal Testing [@clark2023testing] has four main steps, outlined in \ref{fig:schematic}.
65
-
Firstly, the user supplies a causal model, which takes the form of a directed acyclic graph (DAG) where an edge $X \to Y$ represents variable $X$ having a direct causal effect on variable $Y$.
64
+
Causal Testing [@clark2023testing] has four main steps, outlined in Figure \ref{fig:schematic}.
65
+
Firstly, the user supplies a causal model, which takes the form of a directed acyclic graph (DAG) [@pearl2009causality]where an edge $X \to Y$ represents variable $X$ having a direct causal effect on variable $Y$.
66
66
Secondly, the user supplies a set of causal properties to be tested.
67
67
Such properties can be generated from the causal DAG [@clark2023metamorphic]: for each $X \to Y$ edge, a test to validate the presence of a causal effect is generated, and for each missing edge, a test to validate independence is generated.
68
68
The user may also refine tests to validate the nature of a particular relationship.
69
69
Next, the user supplies a set of runtime data in the form of a table with each column representing a variable and rows containing the value of each variable for a particular run of the software.
70
-
Finally, the CTF automatically validates the causal properties by using the causal DAG and data to calculate a causal effect estimate, and validating this against the expected causal relationship.
70
+
Finally, the CTF automatically validates the causal properties by using the causal DAG to identify a statistical estimand [@pearl2009causality] (essentially a set of features in the data which must be controlled for), calculate a causal effect estimate from the supplied data, and validating this against the expected causal relationship.
@@ -78,12 +78,12 @@ The CTF instead evaluates the adequacy of a particular dataset by calculating a
78
78
## Missing Variables
79
79
Causal Testing works by using the causal DAG to identify the variables that need to be statistically controlled for to remove their biassing effect on the causal estimate.
80
80
This typically means we need to know their values.
81
-
However, where such biassing variables are not recorded in the data, the Causal Testing Framework can still sometimes estimate unbiased causal effects by using Instrumental Variables, an advanced Causal Inference technique.
81
+
However, where such biassing variables are not recorded in the data, the Causal Testing Framework can still sometimes estimate unbiased causal effects by using Instrumental Variables[@hernan2020causal], an advanced Causal Inference technique.
82
82
83
83
## Feedback Over Time
84
84
Many scientific models involve iterating several interacting processes over time.
85
85
These processes often feed into each other, and can create feedback cycles.
86
-
Traditional CI cannot handle this, however the CTF uses a family of advanced CI techniques, called g-methods, to enable the estimation of causal effects even when there are feedback cycles between variables.
86
+
Traditional CI cannot handle this, however the CTF uses a family of advanced CI techniques, called g-methods[@hernan2020causal], to enable the estimation of causal effects even when there are feedback cycles between variables.
87
87
88
88
# Related Work
89
89
The Dagitty tool [@textor2017dagitty] is a browser-based environment for creating, editing, and analysing causal graphs.
0 commit comments