Skip to content

Implement Test Corrections #10

@kslote1

Description

@kslote1

Multiple Testing Corrections

The Multiple Testing Problem

In causal discovery, we typically test m hypotheses simultaneously:

$$ H_{0,k}: I(X_{j_k}^{(t-\tau_k)}; X_i^{(t)} \mid \mathbf{Z}_i^{(t)}) = 0, \quad k = 1, \ldots, m $$

Family-Wise Error Rate (FWER):

$$ \text{FWER} = P(\text{at least one false rejection}) = P\left(\bigcup_{k \in \mathcal{H}_0} {p_k \leq \alpha}\right) $$

False Discovery Rate (FDR):

$$ \text{FDR} = \mathbb{E}\left[\frac{V}{\max(R, 1)}\right] $$

where (V) is the number of false rejections and (R) is the total number of rejections.


Bonferroni Correction

Method: Reject (H_{0,k}) if (p_k \leq \alpha / m)

Properties:

  • Controls FWER exactly: (\text{FWER} \leq \alpha)
  • Conservative (low power) when (m) is large
  • Appropriate when few true relationships exist

Application in oCSE:
Use when testing a small number of pre-specified relationships or
when strong FWER control is required.


False Discovery Rate Control

Benjamini–Hochberg Procedure:

  1. Order p-values: (p_{(1)} \leq p_{(2)} \leq \cdots \leq p_{(m)})
  2. Find largest (k) such that (p_{(k)} \leq \frac{k}{m}\alpha)
  3. Reject (H_{0,(1)}, \ldots, H_{0,(k)})

Adaptive FDR:

Estimate the proportion of true nulls (\pi_0):

$$ \hat{\pi}_0 = \frac{\text{num}{p_i > \lambda}}{m(1 - \lambda)} $$

Then use threshold:

$$ p_{(k)} \leq \frac{k}{m \hat{\pi}_0}\alpha $$

By-Stage Methods:
Control FDR at each stage of forward/backward selection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions