Mercurial > forge
changeset 6917:4efe218bc22e octave-forge
reverse reshaping of nan_sig incase of non-empty Y; set isnan(R) to zero;
author | schloegl |
---|---|
date | Tue, 23 Mar 2010 19:13:43 +0000 |
parents | 3379338ddcb2 |
children | c76dd0b09f9e |
files | extra/NaN/inst/corrcoef.m |
diffstat | 1 files changed, 9 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/extra/NaN/inst/corrcoef.m Tue Mar 23 19:08:52 2010 +0000 +++ b/extra/NaN/inst/corrcoef.m Tue Mar 23 19:13:43 2010 +0000 @@ -150,6 +150,7 @@ end; end; end; +if isempty(Mode) Mode='pearson'; end; Mode=[Mode,' ']; @@ -203,7 +204,7 @@ IX = ones(c1,c2); [jxo,jyo] = find(IX); - R = repmat(nan,c1,c2); + R = zeros(c1,c2); end; if strcmp(lower(Mode(1:7)),'pearson'); @@ -318,6 +319,7 @@ % SIGNIFICANCE TEST +R(isnan(R))=0; tmp = 1 - R.*R; tmp(tmp<0) = 0; % prevent tmp<0 i.e. imag(t)~=0 t = R.*sqrt(max(NN-2,0)./tmp); @@ -332,6 +334,7 @@ end; sig = 2 * min(sig,1 - sig); + if NARG<3, warning(FLAG_WARNING); % restore warning status return; @@ -353,20 +356,18 @@ if (NARG<5) || ~YESNAN, nan_sig = repmat(NaN,size(R)); warning(FLAG_WARNING); % restore warning status - return; + return; end; - %%%%% ----- check independence of NaNs (missing values) ----- -[nan_R, nan_sig] = corrcoef(X,(isnan(X))); +[nan_R, nan_sig] = corrcoef(X,double(isnan(X))); % remove diagonal elements, because these have not any meaning % nan_sig(isnan(nan_R)) = nan; +% remove diagonal elements, because these have not any meaning % +nan_R(isnan(nan_R)) = 0; -% reshape -nan_sig = nan_sig(1:c1,c1+(1:c2)); - -if any(nan_sig(:) < alpha), +if 0, any(nan_sig(:) < alpha), tmp = nan_sig(:); % Hack to skip NaN's in MIN(X) min_sig = min(tmp(~isnan(tmp))); % Necessary, because Octave returns NaN rather than min(X) for min(NaN,X) fprintf(1,'CORRCOFF Warning: Missing Values (i.e. NaNs) are not independent of data (p-value=%f)\n', min_sig);