Skip to contents

A negative control outcome is one the exposure cannot plausibly affect but that shares the exposure's confounders. Its true effect is zero by construction, so any effect the model finds there is bias, not signal. The logic is one-directional: a non-zero estimate is evidence of residual confounding or misspecification, while a zero estimate is NOT evidence of unconfoundedness – it says only that this control did not detect a problem.

Usage

Negctc(y_neg, D, X = NULL, alpha = 0.05)

Arguments

y_neg

Negative-control outcome, length n.

D

Exposure, length n.

X

Optional adjustment covariates, n by q.

alpha

Size of the test.

Value

List with estimate (b_D), se, z, p_value, confounding_suspected, negct_verdict_at_5pct, ci_lower, ci_upper, alpha, n, p.

Details

The estimate is the OLS coefficient on D in y_neg = b0 + b_D D + X gamma + e with the homoscedastic standard error \(sqrt(s^2 (X primeX)^-1_DD)\), s^2 = RSS/(n - p), and the test is the Wald z-test of b_D = 0.

References

Lipsitch, Tchetgen Tchetgen and Cohen (2010), Epidemiology 21(3), 383-388, doi:10.1097/EDE.0b013e3181d61eeb , verified against Crossref; Shi, Miao and Tchetgen Tchetgen (2020), Current Epidemiology Reports 7, 190-202, doi:10.1007/s40471-020-00243-4 . Neither paper was in the local corpus; the estimator is ordinary least squares and the test is the standard Wald one.

Examples

V <- c(1, 2, 3, 4, 5, 6, 7, 8)
Negctc(V, V)
#> $estimate
#> [1] 1
#> 
#> $se
#> [1] 1.881825e-16
#> 
#> $z
#> [1] 5.31399e+15
#> 
#> $p_value
#> [1] 0
#> 
#> $confounding_suspected
#> [1] 1
#> 
#> $negct_verdict_at_5pct
#> [1] 1
#> 
#> $ci_lower
#> [1] 1
#> 
#> $ci_upper
#> [1] 1
#> 
#> $alpha
#> [1] 0.05
#> 
#> $n
#> [1] 8
#> 
#> $p
#> [1] 2
#> 
#> $method
#> [1] "Negative control outcome (Wald test of a known null)"
#> 
#> attr(,"class")
#> [1] "morie_rich_result" "list"