DAG Testing {cherry} | R Documentation |

Tests all hypotheses in a given DAG while controlling the FWER, using a user-specified local test.

```
DAGmethod (DAGstructure, test, alpha_max = 0.05, method = "all", isadjusted = FALSE,
optimization = "none", degree = "group", pvalues = NULL, verbose = FALSE)
```

`DAGstructure` |
DAGstructure object, as returned by the function |

`test` |
A function that performs the local test. The function should have a set as input and return a p-value. |

`alpha_max` |
The significance level of the test procedure. |

`method` |
Type of DAG procedure that is chosen. "all" gives the all-parents procedure, "any" the any-parent procedure. |

`isadjusted` |
If set to TRUE, adjusted p-values will be calculated. Otherwise, the p-values of all rejected hypotheses will equal alpha_max. |

`optimization` |
Can be, in ascending order of accuracy and computational costs: "none", "LP" (linear programming) or "ILP" (integer linear programming). |

`degree` |
Can be "group" or "individual". If "group" is chosen, optimization is done on a group level, otherwise on an individual level (more accurate, but more time-consuming). |

`pvalues` |
Optional (in case of stored p-values): a vector in which the raw p-values of the exact sets as found in the DAGstructure argument are stored (in the same order). If the test function is provided, this argument is not necessary. |

`verbose` |
If set to TRUE, while running the method, a counter will indicate how many hypotheses are already rejected. |

The function `DAGmethod`

tests all possible hypotheses within a given DAG structure, while controlling the familywise error rate.

The function `DAGmethod`

returns an object of class `DAG`

.

Rosa Meijer: r.j.meijer@lumc.nl

Meijer and Goeman (2015) Biometrical Journal 57 (1) 123-143.

`DAG`

, `DAGstructure`

, `construct`

, `DAGpick`

.

```
#Generate data, where the response Y is associated with two (out of 4) covariates
set.seed(1)
n=100
p=4
X <- matrix(rnorm(n*p),n,p)
beta <- c(0,0.5,0.5,0)
Y <- X %*% beta + rnorm(n)
# Let us assume we have the following sets that we want to test:
sets <- list(c(1,2,3,4), c(1,2), c(2,3,4), c(2,3), 1, 2, 3, 4)
names(sets) <- c(1234, 12, 234, 23, 1, 2, 3, 4)
# Start by making the corresponding graph structure
struct <- construct(sets)
# Check whether the DAG has toway logical relations:
istwoway(struct)
# Define the local test to be used in the closed testing procedure.
# This test expects a set as input.
mytest <- function(set)
{
X <- X[,set,drop=FALSE]
lm.out <- lm(Y ~ X)
x <- summary(lm.out)
return(pf(x$fstatistic[1],x$fstatistic[2],x$fstatistic[3],lower.tail=FALSE))
}
# Perform the DAG procedure (default is all-parents method).
DAG <- DAGmethod(struct, mytest, isadjusted=TRUE)
summary(DAG)
# What are the smallest sets that are found to be significant?
implications(DAG)
# What is the adjusted p-value of the null-hypothesis corresponding to the fourth set,
# which is set c(2,3)?
# To look up the pvalue, the function uses the index or name of the set
# in the list of sets stored in the DAGstructure.
# (Note that, if there were duplicate sets in the original list, this index can be different from
# the one in the original list given to \code{construct})
pvalue(DAG,4)
pvalue(DAG, "23") #as above, but while using names
# How many of the elementary hypotheses (the last 4 sets) have to be false
# with probability 1-alpha?
# Sets (don't have to be elementary hypotheses in general) must be specified
# by their index or name.
DAGpick(DAG, 5:8)
DAGpick(DAG, c("1","2","3","4")) #as above, but while using names
```

[Package *cherry* version 0.6-14 Index]