\section{Bounding Causal Effects}
\label{sec:partial-identification}
This section aims to consider the separations between variables encoded in a PAG and the decomposition of causal effects it implies to provide a systematic algorithm to bound causal effects. After getting familiar with these decompositions our next task is to introduce a new notion of partial identification for this setting. 

%We introduce the task of partial identification of a causal effect from an observational distribution and knowledge of a PAG that represents a set of compatible causal diagrams. This notion generalizes the model-specific definition of partial identification.

\begin{definition}[Partial Identification from a PAG]
    \label{def:partial_identification_pag}
    The causal effect $P_\x(\y)$ is said to be partially identifiable from a PAG $\1P$ and $P(\v)$ if they determine a bound $[a, b]$ for $P_\x(\y)$ that is strictly contained in $[0,1]$ and is valid for any SCM compatible with $\1P$.
\end{definition}

An SCM is said to be compatible or consistent with a PAG $\1P$ if it induces a causal diagram that can be represented with $\1P$. The following result shows that this notion of partial identification is driven by the constraints in the data distribution only, up to an assumption of faithfulness. 

\begin{proposition}
    \label{prop:duality}
    Let $\1P$ be the PAG underlying $P(\V)$. Under faithfulness, a causal effect is partially identifiable from $P(\V)$ with bound $[a,b]$ if and only if it is partially identifiable from $\1P$ and $P(\V)$ with bound $[a,b]$.
\end{proposition}

In words, \Cref{prop:duality} relates the solution space of two classes of models, namely the set of models compatible with a distribution $P(\V)$ and the set of models compatible with $P(\V)$ and the true PAG $\1P$. It shows that the
partial identification status of a query is preserved across settings under an assumption of faithfulness.

Our next results will be concerned with proposing a concrete procedure to derive bounds for the partial identification problem in \Cref{def:partial_identification_pag}. The strategy involves bounding unidentifiable probabilities $Q[\S],\S\subset\C$ in terms of larger identifiable probabilities $Q[\C]$. These will then be introduced into existing identification algorithms from a PAG based on the decomposition in \Cref{prop:decomposition} to produce a systematic bounding algorithm. 


\begin{proposition}[Lower bound]
    \label{prop:lowerbound}
    Given a PAG $\1P$, consider sets $\S \subset \C \subseteq \V$ and define $\W = \texttt{PossAn}(\S)_{\1P_\C}$, $\R = \W \backslash \S$, and $\T=\texttt{PossSp}(\S)_{\1P_\C}\backslash \S$. Let $\A,\B$ partition $\R$ such that $\B = \texttt{PossDe}(\T)_{\1P_\C}\inter \R, \A=\R\backslash\B$. $Q[\S]$ is lower bounded as follows:
    \begin{align}
        \label{eq:lowerbound}
        Q[\S] \geq  \max_\z \frac{Q[\W]}{\sum_{\s,\b} Q[\W]},
    \end{align}
    where $\Z = \texttt{PossPa}(\W)_{\1P} \backslash \texttt{PossPa}(\S)_{\1P}$.
\end{proposition}

\begin{proposition}[Upper bound]
    \label{prop:upperbound}
    Given a PAG $\1P$, consider sets $\S \subset \C \subseteq \V$ and let a partial topological ordering of $\S$ be $\S_1 \prec \cdots \prec \S_k$. Define $\W = \texttt{PossAn}(\S)_{\1P_\C}$, $\R = \W \backslash \S$, and $\T=\texttt{PossSp}(\S)_{\1P_\C}\backslash \S$. Let $\A,\B$ partition $\R$ such that $\B = \texttt{PossDe}(\T)_{\1P_\C}\inter \R, \A=\R\backslash\B$. $Q[\S]$ is upper bounded as follows:
    \begin{align}
        \label{eq:upperbound}
        Q[\S] \leq& \min_{\z} \left\{\frac{Q[\W]}{\sum_{\s,\b} Q[\W]} - \sum_{\s_k}\frac{Q[\W]}{\sum_{\s,\b} Q[\W]} \right\} \nonumber\\
        &+ Q[\S\backslash \S_k],
    \end{align}
    where $\Z = \texttt{PossPa}(\W)_{\1P} \backslash \texttt{PossPa}(\S)_{\1P}$.
\end{proposition}

These results use graph theoretic notation to distinguish between qualitatively different relationships among variables in a PAG. The following example illustrates these results more concretely.


\begin{example}[Contrast with natural bounds] \label{ex:contrast_nb} Consider the evaluation of a query $P_b(x)$ given the distribution $P(x,b)$ that does not advertise any statistical independencies between $X$ and $B$. The corresponding PAG is given by $\{B \circ \hspace{-0.13cm}-\hspace{-0.13cm} \circ X\}$. With the notation of the propositions above, $P_b(x) = Q[\S], \S=\{X\}, \W = \{B,X\}, \B=\{B\}, \Z = \emptyset, \S_k=\S$, and therefore,  
\begin{align}
    \label{eq:tight_bound1}
    P(b,x) \leq P_b(x) \leq P(b,x) - P(b) + 1,
\end{align}
using the facts that $Q[\W] = P(b,x), \sum_\s Q[\W] = P(b)$. These expressions recover the NBs. With additional independencies, tighter bounds could be given by the proposed techniques. Continuing with this example, assume that in addition to $X,B$ we observe samples from variables $A,D,C$ whose conditional independencies are summarized by the PAG in \Cref{fig:examples:a}. Consider now the query $P_{b,d,c}(x,a)$. By inspecting the PAG we find that $\S=\{X,A\}, \W=\{A,B,X\}, \B=\{A,B\}, \S_k=\{X\}, \Z=\emptyset$, and,
\begin{align}
    P(b,x,a) \leq P_{b,d,c}(x,a) \leq P(b,x,a) - P(a,b) + P(a).
\end{align}
In contrast, the NBs return $P(b,x,a,c,d) \leq P_{b,d,c}(x,a) \leq P(b,x,a,c,d) - P(b,c,d) + 1$. We can verify that the proposed lower bound is tighter as
\begin{align}
    \label{eq:improvement_nb_lower}
    (\text{NB} =) \hspace{0.2cm} P(b,x,a,c,d) \leq P(b,x,a).
\end{align}
And, the upper bound is tighter as,
\begin{align}
    \label{eq:improvement_nb_upper}
    (\text{NB} =) \hspace{0.2cm} P(b&,x,a,c,d) - P(b,c,d) + 1 \nonumber\\
    &\stackrel{(1)}{\geq} \sum_{c,d}\Big\{P(b,x,a,c,d) - P(b,c,d)\Big\} + 1\nonumber \\
    &= P(b,x,a) - P(b) + 1\nonumber \\
    &= P(b,x,a) + \sum_a \Big\{P(a) - P(a,b)\Big\} \nonumber\\
    &\stackrel{(2)}{\geq} P(b,x,a) + P(a) - P(a,b).
\end{align}
The first and last inequalities (1,2) hold by noting that $P(b,x,a,c,d) - P(b,c,d) \leq 0$ and $P(a) - P(a,b) \geq 0$, respectively. \QED
\end{example}

We can see that in some cases these bounds coincide with the NBs, as in \Cref{eq:tight_bound1}, while in others they improve upon the NBs, as in \Cref{eq:improvement_nb_lower,eq:improvement_nb_upper}. The following result makes this claim more concrete.

\begin{proposition}
    \label{prop:bounds_vs_natural}
    Consider a query $P_\x(\y)$ and let $\1P$ be the PAG over $\{\X,\Y\}$ compatible with $P$. Then, under an assumption of faithfulness, the bounds given in \Cref{prop:lowerbound,prop:upperbound} are at least as tight as the natural bounds.
\end{proposition}

It is worth emphasizing that this result does not come for free. The assumption of faithfulness is critical: without it, no $d$-separation could be guaranteed, the compatible PAG would have to be fully connected (and non-informative), and consequently the proposed bounds would revert to the NBs in all cases.

We are now ready to describe a systematic algorithm for bounding arbitrary causal effects that exploits the new bounds. The procedure is given in \Cref{alg:partialid}. It extends the identification algorithm IDP \citep{jaber2019causal} with a call to the propositions above (line 12) whenever a component $Q[\cdot]$ is not uniquely identifiable.

\renewcommand{\algorithmicrequire}{\textbf{Input:}}
\renewcommand{\algorithmicensure}{\textbf{Output:}}

\begin{algorithm}[t]
    %\fontsize{9}{9}\selectfont
    \caption{Partial IDP}
    \label{alg:partialid}
    \begin{algorithmic}[1]
    \REQUIRE A PAG $\1P$ and disjoint sets $\X,\Y\subset\V$
    \ENSURE Lower or upper bound expressions ($type$) for $P_{\x}(\y)$
    \STATE Let $\D := \texttt{PossAn}(\Y)_{\1P_{\V\backslash\X}}$
    \RETURN $\sum_{\d\backslash\y} \texttt{PID}(\D, \V, P, type)$\\\medskip
    \STATE \textbf{function} \texttt{PID}$(\C, \T, Q = Q[\T], type)$\\\smallskip
    \begin{ALC@g}
	\STATE if $\C = \emptyset$ then return 1.
	\STATE if $\C = \T$ then return $Q$.\\\smallskip
	/* In $\1P_\T$, let $\B$ denote a bucket, and let $\C_\B$ denote the $pc$-component of $\B$ */ \\\smallskip
	\IF{$\exists \B \subset \T \backslash \C$ such that $\C_\B \inter \texttt{PossCh}(\B)_{\1P_{\T}} \subseteq \B$}
		\STATE Compute $Q[\T \backslash \B]$ from $Q[\T]$ via \cite[Prop. 2]{jaber2018causal}.
		\RETURN $\texttt{PID}(\C,\T \backslash \B,Q[\T \backslash \B], type)$\smallskip
	\ELSIF{$\exists \B \subset \C$ such that $\1R_\B \neq \C$}
	    \IF{Lower bound desired}\medskip
	        \RETURN $\frac{\texttt{PID}(\1R_{\B},\T,Q, lower) \hspace{0.05cm}\cdot\hspace{0.05cm} \texttt{PID}(\1R_{\C \backslash \1R_\B} ,\T,Q, lower)}{\texttt{PID}(\1R_\B \inter\1R_{\C \backslash \1R_\B}, \T, Q, upper)}$
	    \ELSE
	        \RETURN $\frac{\texttt{PID}(\1R_{\B},\T,Q, upper)  \hspace{0.05cm}\cdot\hspace{0.05cm} \texttt{PID}(\1R_{\C \backslash \1R_\B} ,\T,Q, upper)}{\texttt{PID}(\1R_\B \inter\1R_{\C \backslash \1R_\B}, \T, Q, lower)}$
	    \ENDIF
	\ELSE
		\RETURN Lower or upper bounds (according to $type$) for $Q[\C]$ from $Q[\T]$ via \Cref{prop:lowerbound,prop:upperbound}.\smallskip
    \ENDIF
    \end{ALC@g}
    \end{algorithmic}
\end{algorithm}


\begin{proposition}
    \label{pro:soundness_alg} Partial IDP (\Cref{alg:partialid}) terminates and is sound.
\end{proposition}

The proof follows from the soundness of IDP \citep{jaber2019causal} and \Cref{prop:lowerbound,prop:upperbound}. A similar algorithm for partially identifying conditional causal effects could be derived by adapting CIDP (conditional IDP) due to \cite{jaber2022causal} with a call to the propositions above whenever a component is not uniquely identifiable. To get more familiar with the proposed procedure, we exemplify the various steps of Partial IDP in several additional scenarios.


\begin{example}[Steps of Partial IDP] \label{ex:steps} Consider the query $P_{x, w, z}(y)$ given $\1P$ in \Cref{fig:steps}. Notice that the effect is not immediately identifiable as the path $Z\rightarrow Y$ start with an invisible edge (that doesn't rule out unobserved confounding between $Z$ and $Y$ \cite[Thm. 3]{jaber2019causal}. The first step in lines 1 and 2 of \Cref{alg:partialid} involves identifying $Q[\D], \D=\texttt{PossAn}(Y)_{\1P_{\{S,Y\}}} = \{Y\}$ by running the \texttt{IDP} procedure in line 3. The first if condition, on line 6, is triggered as $\B=\{S\} \subset \T\backslash \C=\{W,X,Z,S\}$ satisfies that $\C_S\inter \texttt{PossCh}(S)_{\1P_\T} = \emptyset$ that is trivially included in $S$. Following \cite[Prop. 2]{jaber2018causal}, in line 7 we can therefore evaluate $Q[W,X,Z,Y]$ from $Q[\T] = P(w,x,z,y,s)$ that returns $Q[W,X,Z,Y]=P(w,x,y,z)$.  Next we consider applying \texttt{PID} with the set $\T=\{W,X,Z,Y\}$, finding that $\B=\{X,W\}$ triggers the if condition, as the intersection of $\C_{\{X,W\}} = \{W,X,Z\}$ and $\texttt{PossCh}(\{X,W\})_{\1P_{\{W,X,Z,Y\}}} = \{X,Y\}$ equals $\{W,X\}$ which is included in $\B$. This licenses the evaluation of $Q[Z,Y]$ from $Q[W,X,Z,Y]$ to obtain $Q[Z,Y]=P(y\mid z, x)P(z)$, further simplifying the set $\T=\{Z,Y\}$. The next call to \texttt{PID} reveals that none of the if conditions in lines 6 and 9 are triggered and we have to resort to the computation of bounds on $Q[Y]$ from $Q[Y,Z]$ in line 16. A call to \Cref{prop:lowerbound,prop:upperbound} then returns:
\begin{align}
    Q[Y] \geq Q[Y,Z] = P(y \mid z, x)P(z),
\end{align}
which implies $P_{x, w, z}(y) \geq P(y \mid z, x)P(z)$. For the upper bound,
\begin{align}
    Q[Y] \leq Q[Y,Z] - \sum_y Q[Y,Z] + 1,
\end{align}
which implies $P_{x, w, z}(y) \leq P(y \mid z, x)P(z) - P(z) + 1$.

We could show, moreover, that these bounds are tighter than the NBs as, for the lower bound,
\begin{align}
    (\text{NB} =) \hspace{0.2cm} P(y&,z,x,w) \nonumber\\
    &\leq P(y,z,x)\nonumber\\
    &= P(y\mid z,x)P(x \mid z)P(z)\nonumber\\
    &\stackrel{(1)}{\leq} P(y\mid z,x)P(z),
\end{align}
which is the proposed lower bound. (1) holds because $P(x \mid z)\leq 1$. For the upper bound,
\begin{align}
    (\text{NB} =) \hspace{0.2cm} P(y&,z,x,w) - P(z,x, w) + 1 \nonumber\\
    &\stackrel{(2)}{\geq} 1 + \sum_w \big\{P(y,z,x,w) - P(z,x, w)\big\} \nonumber\\
    &= 1 + P(x\mid z)\big\{P(y\mid z,x)P(z) - P(z)\big\}\nonumber\\
    &\stackrel{(3)}{\geq} P(y\mid z,x)P(z) - P(z) + 1,
\end{align}
which is the proposed upper bound. (2) holds because $P(y,z,x,w) - P(z,x, w) \leq 0$ and (3) holds because $P(x\mid z)\leq 1$ and the term in brackets $\{\cdot\} \leq 0$.\QED
\end{example}

\begin{figure}[t]
%\vspace{-0.1cm}
\captionsetup{skip=5pt}
\centering
    \begin{tikzpicture}[SCM,scale=1]
        \node (W) at (0,0) {$W$};
        \node (X) at (1.5,0) {$X$};
        \node (Y) at (3,0) {$Y$};
        \node (S) at (4.5,0) {$S$};
        \node (Z) at (2.25,1) {$Z$};
        
        \path [arrows = {Circle[fill=white]->}] (W) edge (X);
        \path [arrows = {Circle[fill=white]->}] (Z) edge (X);
        \path [->] (Z) edge (Y);
        \path [->] (X) edge node[above] {\scriptsize{$v$}} (Y);
        \path [->] (Y) edge node[above] {\scriptsize{$v$}} (S);
        \path [->] (Z) edge (Y);
    \end{tikzpicture}
\caption{PAG for \Cref{ex:steps}.}
\label{fig:steps}
\end{figure}


\begin{example}[Applications in biology] \label{ex:sachs} We illustrate next the inference that could be made for decision making in medicine and healthcare with a (publicly available) dataset from the literature.

We revisit the protein signalling study of \citep{sachs2005causal}. Signalling pathways regulate the activity of a cell. The ability to precisely predict the effect of perturbations in signalling pathways, \textit{e.g.}, by knocking out a gene that inactivates a protein in the network, on a phenotype of interest, such as cell growth, can have important applications for the treatment of disease. We consider computing bounds on the effect of \texttt{PKC} inactivation on the \texttt{RAF/MEK/ERK} pathway given the PAG in \Cref{fig:sachs:b} recovered from phosphorylation data (\textit{i.e.} markers of pathway activation)\footnote{We use a discretized version of the data following \citep{hartemink2000using} with levels: high (2), average (1), low (0) activation, downloaded from the \texttt{bnlearn} data repository \citep{scutari2009learning}.}. 

In this example, the query of interest is given by $P(\texttt{RAF}, \texttt{MEK}, \texttt{ERK} \mid do(\texttt{PKC}))$. In line 2 of \Cref{alg:partialid}, we may rewrite this quantity as $\sum_{\texttt{PKA}} Q[\texttt{RAF}, \texttt{MEK}, \texttt{ERK},\texttt{PKA}]$ where we have used the ancestral set of the outcome variables. A call to \texttt{PID} then triggers the if condition in line 9 in which the bucket $\B=\{\texttt{MEK}\}$ for which the region $\1R_{\B} = \{\texttt{MEK}\}\neq \{\texttt{RAF}, \texttt{MEK}, \texttt{ERK},\texttt{PKA}\}$. We may therefore decompose $Q[\texttt{RAF}, \texttt{MEK}, \texttt{ERK},\texttt{PKA}]$ into two terms $Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}]$ and $Q[ \texttt{MEK}]$ that may be considered separately. Among these expressions: $Q[ \texttt{MEK}]=P(\texttt{MEK} \mid \texttt{RAF})$ is identifiable but $Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}]$ isn't. Calling \texttt{IPD} on the second term we find, however, that the first if condition in line 6 is triggered: $\T=\V$ reduces to $\T=\{\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}\}$ and 
\begin{align}
    Q[\texttt{RAF}&, \texttt{ERK},\texttt{PKA}, \texttt{PKC}]= \\
    &P(\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}, \texttt{MEK}) / P(\texttt{MEK} \mid \texttt{RAF})\nonumber
\end{align}
Finally, we now proceed to bound $Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}]$ from $Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}]$ with \Cref{prop:lowerbound,prop:upperbound}. Following the notation of \Cref{prop:lowerbound,prop:upperbound}, in $\1P_{\{\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}\}}$, $\W = \texttt{PossAn}(\S)=\{\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}\}, \R=\B=\{\texttt{PKC}\}$, and $\Z=\emptyset$. It then follows that,
\begin{align}
    Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}] \geq Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}],
\end{align}
and that,
\begin{align}
    Q[\texttt{RAF}&, \texttt{ERK},\texttt{PKA}] \leq Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}] \\ 
    &-\sum_{\texttt{ERK}}Q[\texttt{RAF}, \texttt{ERK},\texttt{PKA}, \texttt{PKC}]  + Q[\texttt{RAF},\texttt{PKA}].\nonumber
\end{align}
$Q[\texttt{RAF},\texttt{PKA}]$ on the r.h.s. could be further upper-bounded from $Q[\texttt{RAF},\texttt{PKA},\texttt{PKC}]$ with a similar strategy; in particular giving $Q[\texttt{RAF},\texttt{PKA}] \leq Q[\texttt{RAF},\texttt{PKA},\texttt{PKC}] + 1 - Q[\texttt{PKC}] = P(\texttt{RAF},\texttt{PKA},\texttt{PKC}) + 1 - P(\texttt{PKC})$.

\begin{figure}[t]
\centering
\begin{subfigure}[t]{0.45\linewidth}\centering%(d)
  \begin{tikzpicture}[SCM,scale=1]
        \node (PKA) at (1,0) {\texttt{PKA}};
        \node (RAF) at (0,-1) {\texttt{RAF}};
        \node (PKC) at (-0.2,0) {\texttt{PKC}};
        \node (MEK) at (1.5,-1) {\texttt{MEK}};
        \node (ERK) at (3,-1) {\texttt{ERK}};
        \node (AKT) at (2.5,0) {\texttt{AKT}};

        \path [->] (PKC) edge (RAF);
        \path [->] (RAF) edge (MEK);
        \path [->] (MEK) edge (ERK);
        \path [->] (PKA) edge (ERK);
        \path [->] (PKA) edge (AKT);
        \path [->] (PKA) edge (RAF);
    \end{tikzpicture}
\caption{}
\label{fig:sachs:a}
\end{subfigure}\hfill
\begin{subfigure}[t]{0.45\linewidth}\centering%(d)
  \begin{tikzpicture}[SCM,scale=1]
        \node (PKA) at (1,0) {\texttt{PKA}};
        \node (RAF) at (0,-1) {\texttt{RAF}};
        \node (PKC) at (-0.2,0) {\texttt{PKC}};
        \node (MEK) at (1.5,-1) {\texttt{MEK}};
        \node (ERK) at (3,-1) {\texttt{ERK}};
        \node (AKT) at (2.5,0) {\texttt{AKT}};

        \path [arrows = {Circle[fill=white]->}] (PKC) edge (RAF);
        \path [->] (RAF) edge node[above] {\scriptsize{$v$}} (MEK);
        \path [->] (MEK) edge node[above] {\scriptsize{$v$}} (ERK);
        \path [arrows = {Circle[fill=white]->}] (PKA) edge (ERK);
        \path [arrows = {Circle[fill=white]->}] (PKA) edge (AKT);
        \path [arrows = {Circle[fill=white]->}] (PKA) edge (RAF);
    \end{tikzpicture}
\caption{}
\label{fig:sachs:b}
\end{subfigure}
\null
  \caption{(\subref{fig:sachs:a}) Protein signalling network \cite[Fig. 2]{sachs2005causal}, (\subref{fig:sachs:b}) corresponding PAG for \Cref{ex:sachs}.}
  \label{fig:sachs}
\end{figure}

Combining these expressions, we could use the observed data to estimate the conditionals and infer the probabilities of high and low pathway activation after knocking out (intervening on) \texttt{PKC}:
\begin{align}
    P(\texttt{RAF}=0, \texttt{MEK}=0, &\texttt{ERK}=0 \mid do(\texttt{PKC}=0)) \\
    &\in [0.0214, 0.0864],\nonumber\\
    P(\texttt{RAF}=2, \texttt{MEK}=2,&\texttt{ERK}=2 \mid do(\texttt{PKC}=0)) \\
    &\in [0.1120, 0.3115],\nonumber
\end{align}
respectively. In turn, by relying on the current consensus biological network \cite[Fig. 2]{sachs2005causal}, given in \Cref{fig:sachs:a}, the causal effects would be point estimated to be 0.0441 and 0.1861 respectively. Without committing to a particular causal diagram, the inferred bounds would be the more cautious approximation of causal effects. \QED
\end{example}

We provide additional worked examples to illustrate the proposed bounding technique in \Cref{sec:app_experiments}.

\textbf{Remark} (Statistical uncertainty). The bounds computed in \Cref{ex:sachs} do not account for statistical uncertainty (both in the discovery of the PAG and in the approximation of bounds). In practice, an assumption of strong faithfulness is typically required for consistently recovering the True PAG from finite samples \citep{robins2003uniform,zhang2012strong}. A more careful analysis would be required to make actionable causal claims. 

%In this example, therefore, the observational data alone already suggests that chemotherapy treatment is more likely to cause breathing difficulty on average than not cause breathing difficulty.


For some queries, we could show that the bounds returned by Partial IDP in \Cref{alg:partialid} are tight: one example is the first query in \Cref{ex:contrast_nb} (\Cref{eq:tight_bound1}). In general, however, analytical bounds returned for arbitrary queries and equivalence classes are not known to be tight. Determining whether this is the case is an important research direction. 

In the next section, to investigate the derivation of tighter bounds for arbitrary queries, we switch gears and consider a different approach to bounding causal effects in equivalence classes, namely enumeration strategies.