@@ -162,7 +162,7 @@ def __call__(self, X, Y, condition_set=None):
162162 inv = np .linalg .inv (sub_corr_matrix )
163163 except np .linalg .LinAlgError :
164164 raise ValueError ('Data correlation matrix is singular. Cannot run fisherz test. Please check your data.' )
165- r = - inv [0 , 1 ] / sqrt (inv [0 , 0 ] * inv [1 , 1 ])
165+ r = - inv [0 , 1 ] / sqrt (abs ( inv [0 , 0 ] * inv [1 , 1 ]) )
166166 if abs (r ) >= 1 : r = (1. - np .finfo (float ).eps ) * np .sign (r ) # may happen when samplesize is very small or relation is deterministic
167167 Z = 0.5 * log ((1 + r ) / (1 - r ))
168168 X = sqrt (self .sample_size - len (condition_set ) - 3 ) * abs (Z )
@@ -382,7 +382,7 @@ def __call__(self, X, Y, condition_set=None):
382382 inv = np .linalg .inv (sub_corr_matrix )
383383 except np .linalg .LinAlgError :
384384 raise ValueError ('Data correlation matrix is singular. Cannot run fisherz test. Please check your data.' )
385- r = - inv [0 , 1 ] / sqrt (inv [0 , 0 ] * inv [1 , 1 ])
385+ r = - inv [0 , 1 ] / sqrt (abs ( inv [0 , 0 ] * inv [1 , 1 ]) )
386386 if abs (r ) >= 1 : r = (1. - np .finfo (float ).eps ) * np .sign (r ) # may happen when samplesize is very small or relation is deterministic
387387 Z = 0.5 * log ((1 + r ) / (1 - r ))
388388 X = sqrt (len (test_wise_deletion_XYcond_rows_index ) - len (condition_set ) - 3 ) * abs (Z )
0 commit comments