Now we perform hypothesis tests for all 2,000 fund managers in the Fund
dataset. We perform a one-sample t-test of \(H_{0j} : \mu_j = 0\), which states that
the \(j\)th fund manager’s mean return is zero.
fund.pvalues <- rep(0, 2000)
for (i in 1:2000)
fund.pvalues[i] <- t.test(Fund[, i], mu = 0)$p.value
There are far too many managers to consider trying to control the FWER.
Instead, we focus on controlling the FDR: that is, the expected fraction of
rejected null hypotheses that are actually false positives. The p.adjust()
function can be used to carry out the Benjamini-Hochberg procedure.
> q.values.BH <- p.adjust(fund.pvalues, method = "BH")
> q.values.BH[1:10]
[1] 0.08988921 0.99149100 0.12211561 0.92342997 0.95603587 0.07513802
[7] 0.07670150 0.07513802 0.07513802 0.07513802
The q-values output by the Benjamini-Hochberg procedure can be interpreted as the smallest FDR threshold at which we would reject a particular null hypothesis. For instance, a q-value of 0.1 indicates that we can reject the corresponding null hypothesis at an FDR of 10% or greater, but that we cannot reject the null hypothesis at an FDR below 10%.
rejections
.Assume that:
ISLR2
library has been loadedFund
dataset has been loaded and attached