fmri_r2p

Description

FMRI_R2P Converts Pearson correlation coefficient(s) to p-values. Transforms a correlation coefficient r to a p-value using the Fisher z-transformation followed by normal-distribution inference. Supports one-tailed and two-tailed tests, and handles both scalar and map inputs.

Usage

[p_pos, p_neg] = fmri_r2p(r, df)
[p_pos, p_neg] = fmri_r2p(r, df, tail)

Inputs

  • R: Correlation coefficient(s). Scalar, vector, or brain map (228453 x 1). Values should be in [-1, 1].

  • DF: Degrees of freedom. Use fmri_effdf for autocorrelated data; otherwise df = N - 2 where N is the number of time points.

  • TAIL: Test direction: 2 = two-tailed (default) 1 = one-tailed, positive (r > 0) -1 = one-tailed, negative (r < 0)

Outputs

  • P_POS: P-values for positive correlations (r > 0 is the signal). Empty [] when tail = -1.

  • P_NEG: P-values for negative correlations (r < 0 is the signal). Empty [] when tail = 1.

Examples

% Whole-brain significance map (two-tailed)
r_map = fmri_corregressor(regressor, data);
df    = size(data, 2) - 2;
[p_pos, p_neg] = fmri_r2p(r_map, df);
% Single correlation with autocorrelation-corrected df (positive)
df = fmri_effdf(ts1, ts2);
r  = corr(ts1, ts2);
p  = fmri_r2p(r, df, 1);
% One-tailed test for negative correlations
[~, p_neg] = fmri_r2p(r_map, df, -1);
% Threshold map at p < 0.001 (positive correlations)
sig_map = p_pos < 0.001;
fmri_showslices(sig_map, 1, 2)

See Also

  • fmri_effdf

  • fmri_corregressor

  • fmri_cleanclusters

  • fmri_tfce