%% Testo
% Partendo dalla tabella di contingenza che segue:
% X= Facoltà scelta
% Y= sbocco professionale
% X   /   Y	 Azienda Privata	Azienda pubblica Libero Profes	Non occup
% Economia	150	   80	     20	 50
% Giurisprud.	80	    250	30	140
% Lettere		30	    50	0	120
% Totale		260	    380	50	310
% 1) Calcolare e commentare l'indice X^2,
%  2) l'indice \Phi,
% 3) l'indice di Cramer V
% 4) l'indice \lambda_{y!x} di Goodman e Kruskall.
% 5) l'indice tau di Goodman e Kruskall \tau_{y!x}
% 6) l'indice H_{y!x} di Theil
%% Soluzione
%
%% Costruzione tabella di contingenza

N=[150	   80	     20	 50	
 80	    250	30	140	
 30	    50	0	120];

[I,J] = size(N);

% sample size
n = sum(N(:));


% nidot = row sums
nidot=sum(N,2);
% ndotj= column sums
ndotj=sum(N,1);

% Matrix of theoretical frequencies
Ntheo=(nidot*ndotj/n);

% INDICE CHI2


% Chi2 index
Chi2=sum(((N(:)-Ntheo(:)).^2)./Ntheo(:));

% INDICE PHI


% Phi index
Phi=sqrt(Chi2/n);

% INDICE DI CRAMER


% Cramer index
CramerV=Phi/sqrt(min([I-1 J-1]));

% Goodman and Kruskall lambda


% Goodman and Kruskall lambda
ndotjmax=max(ndotj);
nidotmax=max(nidot);

GKlambdayx=(sum(max(N,[],2))-ndotjmax)/(n-ndotjmax);

nidotmat=repmat(nidot,1,J);
ndotjmat=repmat(ndotj,I,1);

sumdotj2=sum(ndotj.^2);
boo=(N(:)~=0);

% INDICE TAU


% tau index (proportional reduction in variation of Goodman and Kruskall),
% when variation is mesured using Gini's coefficient
tauyx= (  n*sum(N(:).^2./nidotmat(:))-sumdotj2)/(n^2-sumdotj2);

% INDICE H di THEIL


% H index = proportional reduction in variation when variation is measured
% using the entropy
% H index (uncertainty coefficient) of Theil
Hyx= -sum(N(boo).*log(N(boo)./Ntheo(boo))  )/sum(ndotj.*log(ndotj/n));