cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Browse apps to extend the software in the new JMP Marketplace
False Discovery Rate PValue
John_Sall
Staff

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.

Comments
stanyoung

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

kohnos

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?  

stanyoung
Put all the correlation p-values into one column, then use the False
Discovery Rate PValue add-in. Be sure to use only the upper triangle
p-values
ghartel1

great add-in. is it possible to use it within a script?

ghartel1
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.  

Recommended Articles