MATLAB Answers

How to plot a spatial correlation with a p-value threshold?

20 views (last 30 days)
Hi there!
I am trying to set a p-value threshold and plot along with my spatial correlation. The spatial correlation is between temperature and precipitation over a 40 year time series across all latitudes and longitudes in my study. This is what I have so far:
precip = double(ncread('','precip'); % size = 316x332x40 (latxlonxyears)
temp = double(ncread('','t2m'); % size = 316x332x40 (latxlonxyears)
lat = double(ncread('','latitude')); % size = 316x332 (latxlon)
lon = double(ncread('','longitude')); % size = 316x332 (latxlon)
% here I run the correlation for each latxlon point to get a spatial correlation plot (316x332)
for p = 1:316
for q = 1:332
This gives me a great map of correlation values between temperature and precipitation.
My question is, how can I then find the areas in this correlation plot that have a p-value < 0.05?
I have tried this:
XX = [];
for s = 1:316
for q = 1:332
%XX = [XX;p(1)];
XX = cat(3,XX,p);
xxreshape = reshape(XX,[316 332]);
but all of the values come out as 1 for both r and p.
Any suggestions or help is greatly appreciated!
Thank you

Accepted Answer

Jeff Miller
Jeff Miller on 5 Feb 2021
After you get X (bottom of your first code segment):
rCrit = 0.312; % Based on N=40 and alpha = 0.05, 2-tailed, from a table of critical r values
sigLoc = abs(X)>rCrit;
sigLoc(lat,long) will be true if the correlation was signficant

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!