Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Augmentation mechanism in Eqn. (69) is inconsistent with Figure A3 (n) #249

Closed
adamrupe opened this issue Sep 27, 2024 · 1 comment
Closed

Comments

@adamrupe
Copy link
Collaborator

adamrupe commented Sep 27, 2024

This issue contains 3 parts.

  1. First we demonstrate our implementation of equation 69 (simple_augmentation_mechanism) and Algorithm 2 (augment_from_mechanism) on a simple example, applying Algorithm 2 and equation 69 to the graph in Figure A3 (g) to obtain the graph in Figure A3 (h)
    Screenshot 2024-10-25 at 7 26 54 AM

  2. Second, we demonstrate our implementation on a more sophisticated example, applying Algorithm 2 and equation 69 to the graph in Figure A3 (m), but in this case, we do not obtain Figure A3 (n).
    Screenshot 2024-10-25 at 7 25 31 AM

  3. We argue for why we believe this is due to a flaw in equation 69 (or our understanding of it), and suggest a fix. Augmentation Mechanisms #256

HCM_J 1

In the HCM paper, a subunit variable $\nu$ with a non-empty subunit parent set $\text{pa}_s(\nu)$ is promoted to a conditional $Q$ variable $Q^{\nu | \text{pa}_s(\nu)}$. For simplicity, let's consider the case where we want an unconditional promoted variable $\tilde{Q}^\nu$ (i.e. script R in (69) is empty), and so must augment it into the collapsed model.

Algorithm 2 in the paper specifies how to augment the collapsed model. It explicitly says the desired augmented variable $\tilde{Q}$ must be given as an input. However, it also assumes the mechanism for $\tilde{Q}$ is known. Because they don't give an explicit algorithm for deriving the mechanism, it should be also treated as an input to the algorithm. With the mechanism also given as input, Algorithm 2 is easy enough to implement (it is called augment_from_mechanism in the code shown below).

Although not explicitly stated as an Algorithm, one could read J.1 from the appendix as the derivation of the mechanism for an augmented variable. From Equation (69), the mechanism for $Q^\nu$ consists of the promoted $Q$ variables of $\nu$ and its subunit parents $\text{pa}_s(\nu)$. This is easily implemented as:
aug_mech_code

For simple cases, this combined with augment_from_mechanism reproduces the examples in the paper. For instance, consider Figure A3 (h), which augments variable Y to the HCM in A3 (g).
A3g
The collapsed model is:
A3g_col
The simple augmentation mechanism code finds the mechanism shown in A3 (h), and together with augment_from_mechanism reproduces A3 (h) (the rendering of NxMixedGraph.draw() is a bit weird, so I also printed the edges)
image

Now let's look at collapsing and augmenting A3 (m) to get A3 (n). This example has two augmented variables, $Q^a$ and $Q^y$, and importantly the augmented $Q^a$ is in the mechanism of the augmented $Q^y$. Because of this, let's first augment $Q^a$ and then augment $Q^y$.
The HCM and collapsed model are:

image

If we use the mechanisms shown in Figure A3 (n), we reproduce A3 (n) after two steps of augmentation:

image

However, if we use the simple_augmentation_mechanism code derived from Equation (69), we do not reproduce A3 (n)!

image

In particular, the mechanism for the promoted $Q^y$ variable is incorrect. Note that Equation (69), and hence also simple_augmentation_mechanism is based on the subunit graph, which is not modified by the first augmentation of $Q^a$. Therefore, $Q^a$ cannot appear in the mechanism of $Q^y$: only $Q^{a|z}$ because Z is a subunit parent of A. Similarly, Z is not a subunit direct ancestor of Y in the HCM A3 (m), $Q^z$ should not be in the mechanism for the augmented $Q^y$, according to (69). However, in their Figure A3 (n) $Q^z$ is in the mechanism of $Q^y$ indirectly through $Q^a$. Remember that $Q^a$ is a deterministic function of its parents, so $Q^a$ can be equivalently replaced by its parents in the mechanism of $Q^y$.

I am working on a recursive algorithm for augmentation to address this inconsistency, discussed in Issue #248 (Augmented variable mechanism)

@adamrupe
Copy link
Collaborator Author

When applying the correct augmentation mechanism (I originally did not catch the distinction between 'subunit parents' and 'direct subunit ancestors'), these are consistent. There is, however, an ambiguity in the order in which you augment the two variables here. They are ultimately equivalent, due to the deterministic relations, but resulting graph topologies are different and therefore the order matters for identification. Thus when searching over possible augmentations, will need to check different orderings when augmenting multiple variables.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants