The Benjamini-Hochberg False Discovery Rate PValue adjustment is a very simple way to control for the rate of false positives among many tests (usually assumed to be independent or positively correlated).
For lots of PValues showing in a window in similar report tables, it is fairly easy to use right-click Make Combined Data Table to get those PValues into a data table; then you can use this add-in to obtain the False Discovery Rate adjusted PValues.
Large, complex data sets are common where multiple questions are at issue. It is very useful to have adjusted p-values to help judge the reliability of a finding
I want to do this FDR correction on p-values of multivariate correlations. Can I use this add-in on each column one by one?
great add-in. is it possible to use it within a script?
my_FDR = Function( {dtR, Label, Prob},
dt1 = dtR << sort(invisible, by( :Column( Prob ) ), Order( Ascending ) );
dt1 << select where( Is Missing( :Column( Prob )[] ) ) << DELETE ROWS;
dt1 << New Column( "FDR PV", Format( "Pvalue", 17 ) );
M = N Rows( dt1 );
:FDR PV[M] = :Column( Prob )[M];
For( i = M - 1, i >= 1, i--,
:FDR PV[i] = Min( :FDR PV[i + 1], :Column( Prob )[i] * M / i )
);
dtR << Update(
With( dt1 ),
Match Columns( :Column( Label ) = :Column( Label ) ),
Add Columns from Update Table( :FDR PV ),
Replace Columns in Main Table( None )
);
close(dt1, nosave);
);
I just knocked up this bit of code, which does the same thing as the add-in but can be called from a script.