From: <sch...@us...> - 2009-03-10 12:54:13
|
Revision: 5600 http://octave.svn.sourceforge.net/octave/?rev=5600&view=rev Author: schloegl Date: 2009-03-10 12:54:07 +0000 (Tue, 10 Mar 2009) Log Message: ----------- fix docu, emphasize that the correlation matrix based on pairwise correlation is supported Modified Paths: -------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Modified: trunk/octave-forge/extra/NaN/inst/corrcoef.m =================================================================== --- trunk/octave-forge/extra/NaN/inst/corrcoef.m 2009-03-10 12:52:20 UTC (rev 5599) +++ trunk/octave-forge/extra/NaN/inst/corrcoef.m 2009-03-10 12:54:07 UTC (rev 5600) @@ -1,5 +1,5 @@ function [R,sig,ci1,ci2,nan_sig] = corrcoef(X,Y,Mode); -% CORRCOEF calculates the correlation coefficient. +% CORRCOEF calculates the correlation matrix from pairwise correlations. % The input data can contain missing values encoded with NaN. % Missing data (NaN's) are handled by pairwise deletion [15]. % In order to avoid possible pitfalls, use case-wise deletion or This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sch...@us...> - 2009-03-12 16:46:40
|
Revision: 5608 http://octave.svn.sourceforge.net/octave/?rev=5608&view=rev Author: schloegl Date: 2009-03-12 16:46:34 +0000 (Thu, 12 Mar 2009) Log Message: ----------- support FLAG_NANS_OCCURED added Modified Paths: -------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Modified: trunk/octave-forge/extra/NaN/inst/corrcoef.m =================================================================== --- trunk/octave-forge/extra/NaN/inst/corrcoef.m 2009-03-12 16:43:18 UTC (rev 5607) +++ trunk/octave-forge/extra/NaN/inst/corrcoef.m 2009-03-12 16:46:34 UTC (rev 5608) @@ -76,7 +76,7 @@ % [20] http://www.tufts.edu/~gdallal/corr.htm % $Id$ -% Copyright (C) 2000-2004,2008 by Alois Schloegl <a.s...@ie...> +% Copyright (C) 2000-2004,2008,2009 by Alois Schloegl <a.s...@ie...> % This function is part of the NaN-toolbox % http://hci.tu-graz.ac.at/~schloegl/matlab/NaN/ @@ -107,6 +107,7 @@ % - rank correlation works for cell arrays, too (no check for missing values). % + compatible with Octave and Matlab +global FLAG_NANS_OCCURED; NARG = nargout; % needed because nargout is not reentrant in Octave, and corrcoef is recursive @@ -143,6 +144,9 @@ %%%%% generate combinations using indices for pairwise calculation of the correlation YESNAN = any(isnan(X(:))) | any(isnan(Y(:))); +if YESNAN, + FLAG_NANS_OCCURED=(1==1); +end; if isempty(Y), IX = ones(c1)-diag(ones(c1,1)); [jx, jy ] = find(IX); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sch...@us...> - 2009-07-27 12:42:09
|
Revision: 6053 http://octave.svn.sourceforge.net/octave/?rev=6053&view=rev Author: schloegl Date: 2009-07-27 12:42:00 +0000 (Mon, 27 Jul 2009) Log Message: ----------- fix warning status Modified Paths: -------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Property Changed: ---------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Modified: trunk/octave-forge/extra/NaN/inst/corrcoef.m =================================================================== --- trunk/octave-forge/extra/NaN/inst/corrcoef.m 2009-07-26 19:56:03 UTC (rev 6052) +++ trunk/octave-forge/extra/NaN/inst/corrcoef.m 2009-07-27 12:42:00 UTC (rev 6053) @@ -156,7 +156,7 @@ -%FLAG_WARNING = warning; % save warning status +FLAG_WARNING = warning; % save warning status warning('off'); [r1,c1]=size(X); @@ -303,7 +303,7 @@ end; if (NARG<2), -% warning(FLAG_WARNING); % restore warning status + warning(FLAG_WARNING); % restore warning status return; end; @@ -377,6 +377,6 @@ %%%%% ----- end of independence check ------ -%warning(FLAG_WARNING); % restore warning status +warning(FLAG_WARNING); % restore warning status return; Property changes on: trunk/octave-forge/extra/NaN/inst/corrcoef.m ___________________________________________________________________ Added: Id + addstat.m This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sch...@us...> - 2010-03-13 07:52:29
|
Revision: 7060 http://octave.svn.sourceforge.net/octave/?rev=7060&view=rev Author: schloegl Date: 2010-03-13 07:52:23 +0000 (Sat, 13 Mar 2010) Log Message: ----------- fix output argument nansig for case of non-empty Y Modified Paths: -------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Modified: trunk/octave-forge/extra/NaN/inst/corrcoef.m =================================================================== --- trunk/octave-forge/extra/NaN/inst/corrcoef.m 2010-03-12 22:58:27 UTC (rev 7059) +++ trunk/octave-forge/extra/NaN/inst/corrcoef.m 2010-03-13 07:52:23 UTC (rev 7060) @@ -363,6 +363,9 @@ % remove diagonal elements, because these have not any meaning % nan_sig(isnan(nan_R)) = nan; +% reshape +nan_sig = nan_sig(1:c1,c1+(1:c2)); + if 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) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sch...@us...> - 2010-03-23 19:13:55
|
Revision: 7103 http://octave.svn.sourceforge.net/octave/?rev=7103&view=rev Author: schloegl Date: 2010-03-23 19:13:43 +0000 (Tue, 23 Mar 2010) Log Message: ----------- reverse reshaping of nan_sig incase of non-empty Y; set isnan(R) to zero; Modified Paths: -------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Modified: trunk/octave-forge/extra/NaN/inst/corrcoef.m =================================================================== --- trunk/octave-forge/extra/NaN/inst/corrcoef.m 2010-03-23 19:08:52 UTC (rev 7102) +++ trunk/octave-forge/extra/NaN/inst/corrcoef.m 2010-03-23 19:13:43 UTC (rev 7103) @@ -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); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sch...@us...> - 2010-05-27 16:30:36
|
Revision: 7359 http://octave.svn.sourceforge.net/octave/?rev=7359&view=rev Author: schloegl Date: 2010-05-27 16:30:30 +0000 (Thu, 27 May 2010) Log Message: ----------- better explanation of mode 'rank' Modified Paths: -------------- trunk/octave-forge/extra/NaN/inst/corrcoef.m Modified: trunk/octave-forge/extra/NaN/inst/corrcoef.m =================================================================== --- trunk/octave-forge/extra/NaN/inst/corrcoef.m 2010-05-27 10:54:18 UTC (rev 7358) +++ trunk/octave-forge/extra/NaN/inst/corrcoef.m 2010-05-27 16:30:30 UTC (rev 7359) @@ -15,13 +15,14 @@ % % [...] = CORRCOEF(..., Mode); % Mode='Pearson' or 'parametric' [default] -% gives the correlation coefficient -% also known as the 'product-moment coefficient of correlation' +% gives the correlation coefficient +% also known as the 'product-moment coefficient of correlation' % or 'Pearson''s correlation' [1] % Mode='Spearman' gives 'Spearman''s Rank Correlation Coefficient' -% This replaces SPEARMAN.M +% This replaces SPEARMAN.M % Mode='Rank' gives a nonparametric Rank Correlation Coefficient -% This replaces RANKCORR.M +% This is the "Spearman rank correlation with proper handling of ties" +% This replaces RANKCORR.M % % [...] = CORRCOEF(..., param1, value1, param2, value2, ... ); % param value @@ -112,7 +113,7 @@ % + parametric and non-parametric (rank) correlation % + Pearson's correlation % + Spearman's rank correlation -% + Rank correlation (non-parametric, non-Spearman) +% + Rank correlation (non-parametric, Spearman rank correlation with proper handling of ties) % + is fast, using an efficient algorithm O(n.log(n)) for calculating the ranks % + significance test for null-hypthesis: r=0 % + confidence interval included This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |