# SumTestSens: Rosenbaum Sensitivity Analysis for Unmatched Groups In rbounds: Perform Rosenbaum Bounds Sensitivity Tests for Matched and Unmatched Data

 SumTestSens R Documentation

## Rosenbaum Sensitivity Analysis for Unmatched Groups

### Description

Calculates sensitivity to hidden bias for tests based on sum statistics (e.g., Wilcoxon's rank sum test), following the method described by Rosenbaum (2002, sec. 4.6). It is meant for unmatched/unstratified data with ordinal or continuous responses.

### Usage

```SumTestSens(T, q, n, m, Gamma)
```

### Arguments

 `T` observed value of the test statistic (e.g., the sum of the ranks of the responses of the treated units; note that a higher rank corresponds to a higher response) `q` vector of functions of the responses (e.g., their ranks), sorted in decreasing order `n` total number of observations `m` number treated units `Gamma` scalar indicating upper limit on the ratio of the a priori odds of treatment assignment between the treated and control groups

### Value

This function prints the upper bound of the normal approximation one-sided p-value for the test at the given value of Gamma. It also invisibly returns a list of intermediate statistics.

### Warning

Since ‘SumTestSens’ calculates through enumeration the exact expectation and variance of the test under the null, it is very computationally intensive and may be unworkable for even medium-sized datasets.

### Author(s)

Devin Caughey, MIT, caughey@mit.edu

### References

Paul R. Rosenbaum. Observational Studies. Springer, New York, 2nd edition, 2002, sec. 4.6

See also `binarysens`, `hlsens`, `mcontrol`

### Examples

```## Example from Rosenbaum (2002, p.~146)
mercury <- data.frame(matrix(c(1, 0, 2.7,    5.3,
2, 0, 0.5,   15.0,
3, 0, 0.0,   11.0,
4, 0, 0.0,    5.8,
5, 0, 5.0,   17.0,
6, 0, 0.0,    7.0,
7, 0, 0.0,    8.5,
8, 0, 1.3,    9.4,
9, 0, 0.0,    7.8,
10, 0, 1.8,   12.0,
11, 0, 0.0,    8.7,
12, 0, 0.0,    4.0,
13, 0, 1.0,    3.0,
14, 0, 1.8,   12.2,
15, 0, 0.0,    6.1,
16, 0, 3.1,   10.2,
17, 1, 0.7,  100.0,
18, 1, 4.6,   70.0,
19, 1, 0.0,  196.0,
20, 1, 1.7,   69.0,
21, 1, 5.2,  370.0,
22, 1, 0.0,  270.0,
23, 1, 5.0,  150.0,
24, 1, 9.5,   60.0,
25, 1, 2.0,  330.0,
26, 1, 3.0, 1100.0,
27, 1, 1.0,   40.0,
28, 1, 3.5,  100.0,
29, 1, 2.0,   70.0,
30, 1, 5.0,  150.0,
31, 1, 5.5,  200.0,
32, 1, 2.0,  304.0,
33, 1, 3.0,  236.0,
34, 1, 4.0,  178.0,
35, 1, 0.0,   41.0,
36, 1, 2.0,  120.0,
37, 1, 2.2,  330.0,
38, 1, 0.0,   62.0,
39, 1, 2.0,   12.8),
nrow = 39, ncol = 4, byrow = TRUE))
colnames(mercury) <- c("ID", "Tr", "Pct.cu.cells", "Hg.in.blood")

(T_test <- rank(mercury\$Hg.in.blood) %*% mercury\$Tr)
(q_test <- sort(rank(mercury\$Hg.in.blood), decreasing = TRUE))
(n_test <- nrow(mercury))
(m_test <- sum(mercury\$Tr))

## Note: since this function uses exact rather than approximate
## formulas for the mean and variance of T, the p-values it
## calculates do not precisely match those in Rosenbaum (2002).

#A single Gamma value - example not run
#testOut2 <- SumTestSens(T = T_test,
#                         q = q_test,
#                         n = n_test,
#                         m = m_test,
#                         Gamma = 35)

## Apply to vector of Gamma values
sapply(c(1, 5, 35), SumTestSens,
T = T_test, q = q_test, n = n_test, m = m_test)
```

rbounds documentation built on April 30, 2022, 1:07 a.m.