Zoltán Szabó avatar Zoltán Szabó committed 3dfc21d

High-level information theoretical estimators: 'eval' changed to 'function handles' to speed up computations. Cost object initialization: now allows setting field values (alpha, number of kNN-s, ...) through its argument. => possibility to override default values, automatic inheritence in meta estimators. Quick tests introduced: consistency of the estimators, positive semi-definiteness of Gram matrices determined by distribution kernels, image registration. Refactorization; documentation: improved, for further details see CHANGELOG.txt.

Comments (0)

Files changed (642)

+v0.42 (September 7, 2013):
+
+New:
+====
+-Initialization and estimation of high-level information theoretical estimators (H/I/D/A/C/K): 'eval' changed to 'function handles' to speed up computations; see '<X>_initialization.m' and '<X>_estimation.m', where <X>='H'/'I'/'D'/'A'/'C'/'K'.
+-Cost object initialization now allows setting field values (alpha, number of kNN-s, ...) through its argument. This makes ITE more user-friendly. It also enables overriding default values and is useful in meta estimators for parameter inheritence. See 'post_initialization.m'; '<X>_initialization.m' and '<X><cost_name>_initialization.m', where <X>='H'/'I'/'D'/'A'/'C'/'K'. For the usage in meta estimators, see
+'HTsallis_HRenyi_initialization.m', 'IRenyi_DRenyi_initialization.m', 'ITsallis_DTsallis_initialization.m', 'IRenyi_HRenyi_initialization.m', 'DJensenRenyi_HRenyi_initialization.m', 'DJensenTsallis_HTsallis_initialization.m', 'DsymBregman_DBregman_initialization.m', 'KJS_DJS_initialization.m'. For further details, see doc: Section 3.3.2.
+-Quick tests introduced: consistency of the estimators, positive semi-definiteness of Gram matrices determined by distribution kernels, image registration; see directory 'quick_tests', doc: Section 5, Section F.
+
+Refactorization; documentation improved:
+==============================
+-Function names added to the first line of the code descriptions to improve help.
+-Copyright information: detached from help (one empty line inserted before license information).
+-Homepage, email address: updated.
+-Importance of co.mult: explained in more detail (doc + code (see 'co.mult:OK...')).
+-co.alpha: changed to be the same in all Renyi/Tsallis estimators, co.alpha = 0.99 -- uniformity. 
+-Typo discovered and corrected: 'HShannon_DKL_N_estimation.m': 'Y_normal = ... + m' -> 'Y_normal = ... + repmat(m,1,num_of_samples)' (typo for d>1).
+-Directory 'H_I_D_A_C_K' renamed to 'estimators'. 'ITE_install.m': updated accordingly.
+-Comment on the relation between mutual information and total correlation (or multi-information): added [doc + code (see 'IShannon_HShannon_initialization.m')].
+-To ease the usage of ITE 'ITE_add_to_path.m' and 'ITE_remove_from_path.m': added. These functions make it possible to add/remove the ITE code directory to/from the Matlab/Octave PATH.
+-Explicit instructions for the installation of the toolbox added to 'ITE_install.m' when no compilation is carried out.
+-'HRPensemble_estimation.m': verification that 'RP dimension <= dimension of the samples' added.
+-'mexme.m' (=compilation of KDP): an alternative compilation option added.
+-In pathological cases (quite small dimension and large number of samples) the estimated Renyi additive constant (see 'estimate_HRenyi_constant.m') can be Inf. This case is now handled by introducing 'replace_Infs_with_max.m', see 'compute_length_HRenyi_kNN_1tok.m', 'compute_length_HRenyi_kNN_S.m'.
+- 'MatlabBGL' and the associated GSF based Renyi entropy estimator ('HRenyi_GSF_initialization.m', HRenyi_GSF_estimation.m', 'compute_length_HRenyi_GSF.m'): deleted (self-containedness improved + space considerations); 'compute_MST.m','HRenyi_MST_initialization.m', 'HRenyi_MST_estimation.m': modified accordingly.
+-The embedded 'sqdistance.m' (squared Euclidean distance computation) function could give some small, but negative values in the diagonal of 'sqdistance(Y)'; corrected. 
+-'Guideance' on the choice of the estimators: included, see doc: Section 3.4.
+-Figure listing all the estimators and their relations: added, see doc: Section 3.3.2: Fig. 1.
+-Note on compiler requirements: added (see doc).
+-ITE_install.m: made to be more user-friendly; detection of the already (i) deleted 'ann_wrapperO'/'ann_wrapperM' directory, (ii) downloaded ARfit package: added.
+
 v0.41 (July 12, 2013):
 -Probability product kernel estimation based on k-nearest neighbors: added; see 'KPP_kNN_k_initialization.m' and 'KPP_kNN_k_estimation.m'.
 -Jensen-Shannon kernel estimation: added; see 'KJS_DJS_initialization.m' and 'KJS_DJS_estimation.m'.
 ITE can estimate 
 
 - `entropy (H)`: Shannon entropy, R�nyi entropy, Tsallis entropy (Havrda and Charv�t entropy), complex entropy,
-- `mutual information (I)`: generalized variance, kernel canonical correlation analysis, kernel generalized variance, Hilbert-Schmidt independence criterion, Shannon mutual information, L2 mutual information, R�nyi mutual information, Tsallis mutual information, copula-based kernel dependency, multivariate version of Hoeffding's Phi, Schweizer-Wolff's sigma and kappa, complex mutual information, Cauchy-Schwartz quadratic mutual information, Euclidean distance based quadratic mutual information, distance covariance, distance correlation, approximate correntropy independence measure,
+- `mutual information (I)`: generalized variance, kernel canonical correlation analysis, kernel generalized variance, Hilbert-Schmidt independence criterion, Shannon mutual information (total correlation, multi-information), L2 mutual information, R�nyi mutual information, Tsallis mutual information, copula-based kernel dependency, multivariate version of Hoeffding's Phi, Schweizer-Wolff's sigma and kappa, complex mutual information, Cauchy-Schwartz quadratic mutual information, Euclidean distance based quadratic mutual information, distance covariance, distance correlation, approximate correntropy independence measure,
 - `divergence (D)`: Kullback-Leibler divergence (relative entropy, I directed divergence), L2 divergence, R�nyi divergence, Tsallis divergence, Hellinger distance, Bhattacharyya distance, maximum mean discrepancy (kernel distance), J-distance (symmetrised Kullback-Leibler divergence, J divergence), Cauchy-Schwartz divergence, Euclidean distance based divergence, energy distance (specially the Cramer-Von Mises distance), Jensen-Shannon divergence, Jensen-R�nyi divergence, K divergence, L divergence, certain f-divergences (Csisz�r-Morimoto divergence, Ali-Silvey distance), non-symmetric Bregman distance (Bregman divergence), Jensen-Tsallis divergence, symmetric Bregman distance,
 - `association measures (A)`, including `measures of concordance`: multivariate extensions of Spearman's rho (Spearman's rank correlation coefficient, grade correlation coefficient), correntropy, centered correntropy, correntropy coefficient, correntropy induced metric, centered correntropy induced metric, multivariate extension of Blomqvist's beta (medial correlation coefficient), multivariate conditional version of Spearman's rho, lower/upper tail dependence via conditional Spearman's rho,
 - `cross quantities (C)`: cross-entropy,
 
 **Download** the latest release: 
 
-- code: [zip](https://bitbucket.org/szzoli/ite/downloads/ITE-0.41_code.zip), [tar.bz2](https://bitbucket.org/szzoli/ite/downloads/ITE-0.41_code.tar.bz2), 
-- [documentation (pdf)](https://bitbucket.org/szzoli/ite/downloads/ITE-0.41_documentation.pdf).
+- code: [zip](https://bitbucket.org/szzoli/ite/downloads/ITE-0.42_code.zip), [tar.bz2](https://bitbucket.org/szzoli/ite/downloads/ITE-0.42_code.tar.bz2), 
+- [documentation (pdf)](https://bitbucket.org/szzoli/ite/downloads/ITE-0.42_documentation.pdf).
 
 

code/H_I_D_A_C_K/A_estimation.m

-function [A] = A_estimation(Y,ds,co)
-%Estimates association measure A(y^1,...,y^M), where the m^th subspace is ds(m)-dimensional; using the method/cost object co.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'A<name>_estimation':
-    eval(['A=A',co.name,'_estimation(Y,ds,co);']);%example: A = ASpearman1_estimation(Y,ds,co);
-    

code/H_I_D_A_C_K/A_initialization.m

-function [co] = A_initialization(cost_name,mult)
-%Initialization of an A (association measure) estimator. The estimator is treated as a cost object (co). 
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention: 'A<name>_initialization':
-   eval(['co=A',cost_name,'_initialization(mult)']), %example: co = ASpearman1_initialization(mult);
-    
-disp('A initialization: ready.');

code/H_I_D_A_C_K/C_estimation.m

-function [C] = C_estimation(Y1,Y2,co)
-%Cross quantity estimation (C) of Y1 and Y2 using the specified estimator.
-%
-%INPUT:
-%  Y1: Y1(:,t) is the t^th sample from the first distribution.
-%  Y2: Y2(:,t) is the t^th sample from the second distribution. 
-%  co: cross quantity estimator object.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'C<name>_estimation':
-    eval(['C=C',co.name,'_estimation(Y1,Y2,co);']); %example: CE = CCE_kNN_k_estimation(Y1,Y2,co);

code/H_I_D_A_C_K/C_initialization.m

-function [co] = C_initialization(cost_name,mult)
-%Initialization of a cross quantity estimator. The estimator is treated as a cost object (co). 
-%   
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'C<name>_initialization':
-   eval(['co=C',cost_name,'_initialization(mult)']); %example: co = CCE_kNN_k_initialization(mult);
-    
-disp('C initialization: ready.');

code/H_I_D_A_C_K/D_estimation.m

-function [D] = D_estimation(Y1,Y2,co)
-%Estimates divergence between Y1 and Y2.
-%
-%INPUT:
-%   Y1: Y1(:,t) is the t^th sample from the first distribution. 
-%   Y2: Y2(:,t) is the t^th sample from the second distribution.
-%   co: divergence estimator object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'D<name>_estimation':
-    eval(['D=D',co.name,'_estimation(Y1,Y2,co);']);%example: D = DRenyi_kNN_k_estimation(Y1,Y2,co);

code/H_I_D_A_C_K/D_initialization.m

-function [co] = D_initialization(cost_name,mult)
-%Initialization of a divergence estimator. The estimator is treated as a cost object (co). 
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'D<name>_initialization':
-   eval(['co=D',cost_name,'_initialization(mult)']); %example: co = DRenyi_kNN_k_initialization(mult);
-    
-disp('D initialization: ready.');

code/H_I_D_A_C_K/H_estimation.m

-function [H] = H_estimation(Y,co)
-%Entropy estimation (H) of Y using the specified entropy estimator.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  co: entropy estimator object.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'H<name>_estimation':
-	eval(['H=H',co.name,'_estimation(Y,co);']);%example: H = HRenyi_kNN_1tok_estimation(Y,co);

code/H_I_D_A_C_K/H_initialization.m

-function [co] = H_initialization(cost_name,mult)
-%Initialization of an entropy estimator. The estimator is treated as a cost object (co). 
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'H<name>_initialization':
-   eval(['co=H',cost_name,'_initialization(mult)']); %example: co = HRenyi_kNN_k_initialization(mult);
-    
-disp('H initialization: ready.');

code/H_I_D_A_C_K/I_estimation.m

-function [I] = I_estimation(Y,ds,co)
-%Estimates mutual information I(y^1,...,y^M), where the m^th subspace is ds(m)-dimensional (I), using the specified estimator.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: mutual information estimator object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'I<name>_estimation':
-    eval(['I=I',co.name,'_estimation(Y,ds,co);']);%example: I = IShannon_HShannon_estimation(Y,ds,co);
-    

code/H_I_D_A_C_K/I_initialization.m

-function [co] = I_initialization(cost_name,mult)
-%Initialization of a I (mutual information) estimator. The estimator is treated as a cost object (co). 
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'I<name>_initialization':
-   eval(['co=I',cost_name,'_initialization(mult)']), %example: co = IGV_initialization(mult);
-    
-disp('I initialization: ready.');

code/H_I_D_A_C_K/K_estimation.m

-function [K] = K_estimation(Y1,Y2,co)
-%Estimates the kernel (K) of two distributions from which we have samples, Y1 and Y2; using the specified estimator (co).
-%
-%INPUT:
-%  Y1: Y1(:,t) is the t^th sample from the first distribution.
-%  Y2: Y2(:,t) is the t^th sample from the second distribution. 
-%  co: estimator object of a kernel on distributions.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'K<name>_estimation':
-    eval(['K=K',co.name,'_estimation(Y1,Y2,co);']); %example: K = Kexpected_estimation(Y1,Y2,co);

code/H_I_D_A_C_K/K_initialization.m

-function [co] = K_initialization(cost_name,mult)
-%Initialization of an estimator for a kernel on distributions. The estimator is treated as a cost object (co). 
-%   
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%Here, we make use of the naming convention 'K<name>_initialization':
-   eval(['co=K',cost_name,'_initialization(mult)']); %example: co = Kexpected_initialization(mult);
-    
-disp('K initialization: ready.');

code/H_I_D_A_C_K/base_estimators/ABlomqvist_estimation.m

-function [A] = ABlomqvist_estimation(Y,ds,co)
-%Estimates the multivariate extension of Blomqvist's beta (medial correlation coefficient). 
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association estimator object.
-%
-%REFERENCE: 
-%   Friedrich Schmid, Rafael Schmidt, Thomas Blumentritt, Sandra Gaiser, and Martin Ruppert. Copula Theory and Its Applications, Chapter Copula based Measures of Multivariate Association. Lecture Notes in Statistics. Springer, 2010. (multidimensional case, length(ds)>=2)
-%   Manuel Ubeda-Flores. Multivariate versions of Blomqvist's beta and Spearman's footrule. Annals of the Institute of Statistical Mathematics, 57:781-788, 2005.
-%   Nils Blomqvist. On a measure of dependence between two random variables. The Annals of Mathematical Statistics, 21:593-600, 1950. (2D case, statistical properties)
-%   Frederick Mosteller. On some useful ''inefficient'' statistics. Annals of Mathematical Statistics, 17:377--408, 1946. (2D case, def)
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds)
-        error('The subspaces must be one-dimensional for this estimator.');
-    end
-
-[d,num_of_samples] = size(Y);
-U = copula_transformation(Y);
-
-h = 2^(d-1) / (2^(d-1)-1); %h(d)
-C1 = mean(all(U<=1/2,1)); %C(1/2)
-C2 = mean(all(U>1/2,1)); %\bar{C}(1/2)
-A = h * ( C1 + C2 - 2^(1-d) );

code/H_I_D_A_C_K/base_estimators/ABlomqvist_initialization.m

-function [co] = ABlomqvist_initialization(mult)
-%Initialization of the estimator of the multivariate extension of Blomqvist's beta (medial correlation coefficient).
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'Blomqvist';
-    co.mult = mult;
- 

code/H_I_D_A_C_K/base_estimators/ACCorrEntr_KDE_Lapl_estimation.m

-function [A] = ACCorrEntr_KDE_Lapl_estimation(Y,ds,co)
-%Estimates the centered correntropy (A) using Laplacian KDE (kernel density estimation) + a sorting based trick.
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Murali Rao, Sohan Seth, Jianwu Xu, Yunmei Chen, Hemant Tagare, and Jose C. Principe. A test of independence based on a generalized correlation function. Signal Processing, 91:15-27, 2011.
-%   Aiyou Chen. Fast kernel density independent component analysis. In Independent Component Analysis and Blind Signal Separation (ICA), pages 24-31, 2006. (sorting based trick)
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds) || length(ds)~=2
-        error('There must be 2 pieces of one-dimensional subspaces (coordinates) for this estimator.');
-    end
-    
-A = centcorrenexp(Y(1,:).',Y(2,:).',co.sigma);

code/H_I_D_A_C_K/base_estimators/ACCorrEntr_KDE_Lapl_initialization.m

-function [co] = ACCorrEntr_KDE_Lapl_initialization(mult)
-%Initialization of the Laplacian KDE (kernel density estimation) + a sorting trick based centered correntropy estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'CCorrEntr_KDE_Lapl';
-    co.mult = mult;
-    
-%other fields:
-   co.sigma = 1; %scaling parameter of the Laplacian kernel

code/H_I_D_A_C_K/base_estimators/ACCorrEntr_KDE_iChol_estimation.m

-function [A] = ACCorrEntr_KDE_iChol_estimation(Y,ds,co)
-%Estimates the centered correntropy (A) using Gaussian KDE (kernel density estimation) + incomplete Cholesky decomposition.
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Murali Rao, Sohan Seth, Jianwu Xu, Yunmei Chen, Hemant Tagare, and Jose C. Principe. A test of independence based on a generalized correlation function. Signal Processing, 91:15-27, 2011.
-%   Sohan Seth and Jose C. Principe. On speeding up computation in information theoretic learning. In International Joint Conference on Neural Networks (IJCNN), pages 2883-2887, 2009.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds) || length(ds)~=2
-        error('There must be 2 pieces of one-dimensional subspaces (coordinates) for this estimator.');
-    end
-
-A = centcorren(Y(1,:).',Y(2,:).',co.sigma);

code/H_I_D_A_C_K/base_estimators/ACCorrEntr_KDE_iChol_initialization.m

-function [co] = ACCorrEntr_KDE_iChol_initialization(mult)
-%Initialization of the Gaussian KDE (kernel density estimation) + incomplete Cholesky decomposition based centered correntropy estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'CCorrEntr_KDE_iChol';
-    co.mult = mult;
-    
-%other fields:    
-    co.sigma = 1;%std in the RBF (Gaussian) kernel

code/H_I_D_A_C_K/base_estimators/ACorrEntrCoeff_KDE_direct_estimation.m

-function [A] = ACorrEntrCoeff_KDE_direct_estimation(Y,ds,co)
-%Estimates the correntropy coefficient (A) directly using Gaussian KDE (kernel density estimation).
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Murali Rao, Sohan Seth, Jianwu Xu, Yunmei Chen, Hemant Tagare, and Jose C. Principe. A test of independence based on a generalized correlation function. Signal Processing, 91:15-27, 2011.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds) || length(ds)~=2
-        error('There must be 2 pieces of one-dimensional subspaces (coordinates) for this estimator.');
-    end
-
-A = correncoef_2(Y(1,:).',Y(2,:).',co.sigma);

code/H_I_D_A_C_K/base_estimators/ACorrEntrCoeff_KDE_direct_initialization.m

-function [co] = ACorrEntrCoeff_KDE_direct_initialization(mult)
-%Initialization of the Gaussian KDE (kernel density estimation) based direct correntropy coefficient estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'CorrEntrCoeff_KDE_direct';
-    co.mult = mult;
-    
-%other fields:    
-    co.sigma = 1;%std in the RBF (Gaussian) kernel
-   

code/H_I_D_A_C_K/base_estimators/ACorrEntrCoeff_KDE_iChol_estimation.m

-function [A] = ACorrEntrCoeff_KDE_iChol_estimation(Y,ds,co)
-%Estimates the correntropy coefficient (A) using Gaussian KDE (kernel density estimation) + incomplete Cholesky decomposition.
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Murali Rao, Sohan Seth, Jianwu Xu, Yunmei Chen, Hemant Tagare, and Jose C. Principe. A test of independence based on a generalized correlation function. Signal Processing, 91:15-27, 2011.
-%   Sohan Seth and Jose C. Principe. On speeding up computation in information theoretic learning. In International Joint Conference on Neural Networks (IJCNN), pages 2883-2887, 2009.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds) || length(ds)~=2
-        error('There must be 2 pieces of one-dimensional subspaces (coordinates) for this estimator.');
-    end
-
-A = correncoef(Y(1,:).',Y(2,:).',co.sigma);

code/H_I_D_A_C_K/base_estimators/ACorrEntrCoeff_KDE_iChol_initialization.m

-function [co] = ACorrEntrCoeff_KDE_iChol_initialization(mult)
-%Initialization of the Gaussian KDE (kernel density estimation) + incomplete Cholesky decomposition based correntropy coefficient estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'CorrEntrCoeff_KDE_iChol';
-    co.mult = mult;
-    
-%other fields:    
-    co.sigma = 1;%std in the RBF (Gaussian) kernel
-   

code/H_I_D_A_C_K/base_estimators/ACorrEntr_KDE_direct_estimation.m

-function [A] = ACorrEntr_KDE_direct_estimation(Y,ds,co)
-%Estimates the correntropy (A) directly using Gaussian KDE (kernel density estimation).
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Murali Rao, Sohan Seth, Jianwu Xu, Yunmei Chen, Hemant Tagare, and Jose C. Principe. A test of independence based on a generalized correlation function. Signal Processing, 91:15-27, 2011.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds) || length(ds)~=2
-        error('There must be 2 pieces of one-dimensional subspaces (coordinates) for this estimator.');
-    end
-    
-A = corren(Y(1,:).',Y(2,:).',co.sigma);    

code/H_I_D_A_C_K/base_estimators/ACorrEntr_KDE_direct_initialization.m

-function [co] = ACorrEntr_KDE_direct_initialization(mult)
-%Initialization of the Gaussian KDE (kernel density estimation) based direct correntropy estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'CorrEntr_KDE_direct';
-    co.mult = mult;
-    
-%other fields:    
-    co.sigma = 1; %std in the RBF (Gaussian) kernel

code/H_I_D_A_C_K/base_estimators/ASpearman1_estimation.m

-function [A] = ASpearman1_estimation(Y,ds,co)
-%Estimates the first multivariate extension of Spearman's rho using empirical copulas.
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Friedrich Shmid, Rafael Schmidt, Thomas Blumentritt, Sandra Gaiser, and Martin Ruppert. Copula Theory and Its Applications, Chapter Copula based Measures of Multivariate Association. Lecture Notes in Statistics. Springer, 2010.
-%   Friedrich Schmid and Rafael Schmidt. Multivariate extensions of Spearman's rho and related statistics. Statistics & Probability Letters, 77:407-416, 2007.
-%   Roger B. Nelsen. Nonparametric measures of multivariate association. Lecture Notes-Monograph Series, Distributions with Fixed Marginals and Related Topics, 28:223-232, 1996.
-%   Edward F. Wolff. N-dimensional measures of dependence. Stochastica, 4:175-188, 1980.
-%   C. Spearman. The proof and measurement of association between two things. The American Journal of Psychology, 15:72-101, 1904.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds)
-        error('The subspaces must be one-dimensional for this estimator.');
-    end
-    
-[d,num_of_samples] = size(Y); %dimension, number of samples
-U = copula_transformation(Y);
-
-h = (d+1) / (2^d - (d+1)); %h_rho(d)
-
-A = h * (2^d * mean(prod(1-U)) -1);
-

code/H_I_D_A_C_K/base_estimators/ASpearman1_initialization.m

-function [co] = ASpearman1_initialization(mult)
-%Initialization of the first multivariate extension of Spearman's rho estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'Spearman1';
-    co.mult = mult;
-    
-   

code/H_I_D_A_C_K/base_estimators/ASpearman2_estimation.m

-function [A] = ASpearman2_estimation(Y,ds,co)
-%Estimates the second multivariate extension of Spearman's rho using empirical copulas.
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Friedrich Shmid, Rafael Schmidt, Thomas Blumentritt, Sandra Gaiser, and Martin Ruppert. Copula Theory and Its Applications, Chapter Copula based Measures of Multivariate Association. Lecture Notes in Statistics. Springer, 2010.
-%   Friedrich Schmid and Rafael Schmidt. Multivariate extensions of Spearman's rho and related statistics. Statistics & Probability Letters, 77:407-416, 2007.
-%   Roger B. Nelsen. Nonparametric measures of multivariate association. Lecture Notes-Monograph Series, Distributions with Fixed Marginals and Related Topics, 28:223-232, 1996.
-%   Harry Joe. Multivariate concordance. Journal of Multivariate Analysis, 35:12-30, 1990.
-%   C. Spearman. The proof and measurement of association between two things. The American Journal of Psychology, 15:72-101, 1904.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds)
-        error('The subspaces must be one-dimensional for this estimator.');
-    end
-    
-[d,num_of_samples] = size(Y); %dimension, number of samples
-U = copula_transformation(Y);
-
-h = (d+1) / (2^d - (d+1)); %h_rho(d)
-
-A = h * (2^d * mean(prod(U)) -1);
-

code/H_I_D_A_C_K/base_estimators/ASpearman2_initialization.m

-function [co] = ASpearman2_initialization(mult)
-%Initialization of the second multivariate extension of Spearman's rho estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%mandatory fields:
-    co.name = 'Spearman2';
-    co.mult = mult;
-    
-   

code/H_I_D_A_C_K/base_estimators/ASpearman3_estimation.m

-function [A] = ASpearman3_estimation(Y,ds,co)
-%Estimates the second multivariate extension of Spearman's rho using empirical copulas.
-%
-%We use the naming convention 'A<name>_estimation' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   Y: Y(:,t) is the t^th sample.
-%  ds: subspace dimensions.
-%  co: association measure estimator object.
-%
-%REFERENCE:
-%   Friedrich Shmid, Rafael Schmidt, Thomas Blumentritt, Sandra Gaiser, and Martin Ruppert. Copula Theory and Its Applications, Chapter Copula based Measures of Multivariate Association. Lecture Notes in Statistics. Springer, 2010.
-%   Roger B. Nelsen. An Introduction to Copulas (Springer Series in Statistics). Springer, 2006.
-%   Roger B. Nelsen. Distributions with Given Marginals and Statistical Modelling, chapter Concordance and copulas: A survey, pages 169-178. Kluwer Academic Publishers, Dordrecht, 2002.
-%   C. Spearman. The proof and measurement of association between two things. The American Journal of Psychology, 15:72-101, 1904.
-%
-%Copyright (C) 2012 Zoltan Szabo ("http://nipg.inf.elte.hu/szzoli", "szzoli (at) cs (dot) elte (dot) hu")
-%
-%This file is part of the ITE (Information Theoretical Estimators) Matlab/Octave toolbox.
-%
-%ITE is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by
-%the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
-%
-%This software is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
-%MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
-%
-%You should have received a copy of the GNU General Public License along with ITE. If not, see <http://www.gnu.org/licenses/>.
-
-%co.mult:OK.
-
-%verification:
-    if sum(ds) ~= size(Y,1);
-        error('The subspace dimensions are not compatible with Y.');
-    end
-    if ~one_dimensional_problem(ds)
-        error('The subspaces must be one-dimensional for this estimator.');
-    end
-    
-[d,num_of_samples] = size(Y); %dimension, number of samples
-U = copula_transformation(Y);
-
-h = (d+1) / (2^d - (d+1)); %h_rho(d)
-
-A1 = h * (2^d * mean(prod(1-U)) -1);
-A2 = h * (2^d * mean(prod(U)) -1);
-A = (A1+A2)/2;
-
-

code/H_I_D_A_C_K/base_estimators/ASpearman3_initialization.m

-function [co] = ASpearman3_initialization(mult)
-%Initialization of the third multivariate extension of Spearman's rho estimator.
-%
-%Note:
-%   1)The estimator is treated as a cost object (co).
-%   2)We use the naming convention 'A<name>_initialization' to ease embedding new association measure estimator methods.
-%
-%INPUT:
-%   mult: is a multiplicative constant relevant (needed) in the estimation; '=1' means yes, '=0' no.
-%OUTPUT:
-%   co: cost object (structure).
-%