% Poni¿sze dane przedstawiaj± wyniki finansowe uzyskiwane
% przez 33 zestawy firm. Pierwszy typ to firmy po po³aczeniu,
% drugi to firmy o rozmiarze zbli¿onym do rozmiaru firm,
% które uleg³y po³±czeniu, trzeci to firmy o rozmiarze
% zbli¿onym do rozmiaru firmy powsta³ej po po³±czeniu.
A=[1	-0.2000    	0.0256         	0
    2 	-0.3483   	-0.1250    	0.0805
    3	0.0751    	0.0632   	-0.0231
    4	0.1261   	-0.0420    	0.1647
    5	-0.1017    	0.0800    	0.2778
    6 	0.0378    	0.1491    	0.4302
    7	0.1162    	0.1518    	0.1429
    8	-0.0984    	0.0377    	0.0400
    9	0.0214    	0.0766    	0.0111
    10	-0.0171    	0.2843    	0.1891
    11 	-0.3648    	0.1391   	 0.0389
    12 	0.0881    	0.0387    	0.0948
    13	-0.2632    	0.0564    	0.0451
    14	-0.0494    	0.0537    	0.0083
    15	0.0115    	0.0481    	0.0948
    16	0.0097    	0.1982    	0.0609
    17	0.0714    	0.4208   	-0.0248
    18 	0.0018   	0.0743    	0.0532
    19	0.0048   	-0.0071    	0.0501
    20	-0.0540   	0.1715   	0.1095
    21	0.0227    	0.0279   	-0.0225
    22 	0.0598   	0.0486    	0.1671
    23  	-0.0599    	0.0264    	0.0207
    24	-0.0886   	-0.0593    	0.0771
    25	-0.0248   	-0.0184    	0.0596
    26	0.0764    	0.0126    	0.0346
    27	-0.0017   	-0.0455    	0.0536
    28	-0.2198    	0.3431    	0.0428
    29	0.3824    	0.2210    	0.1158
    30	-0.0068    	0.2549    	0.2370
    31	-0.1630    	0.0112   	0.1905
    32	0.1918    	0.1505    	0.1520
    33 	0.0612    	0.1704    	0.0935];

% tworzymy rangi R:
D=A(:,2:4);

[a,max_ix]=max(D,[],2);
[b,min_ix]=min(D,[],2);

R=zeros(33,3);
for i=1:33
    R(i,max_ix(i))=1;
    R(i,min_ix(i))=-1;
end
% ogladamy oryginalna tblice danych i po prawej tablice przypisanych im
% rang
disp([D R])

% H0: proces ³¹czenia firm nie ma zanaczenia -> rangi przypisywane sa
% losowo
% H1: proces ³¹czenia ma wp³yw na wyniki finansowe -> uk³ad rang nie jest
% losowy

% statystyka testowa: ró¿nica miêdzy najwieksza a najmniejsza  sumaryczna
% ranga

s=sum(R);
S=max(s)-min(s);

% teraz symulujemy proces losowego przypisywania rang i zbieramy rozk³ad
% naszej statystyki S

N_rep=1e4;
S_dist=zeros(1,N_rep);
for i=1:N_rep
    r=zeros(1,3);
    for j=1:33
        r=r+randsample([-1 0 1],3);
    end
    S_dist(i)=max(r)-min(r);
end
p=length(find(S_dist>=S))/N_rep
hist(S_dist,1:33)
title(sprintf('prawdopodobienstwo hipotezy 0 p=%.3f, S=%d',p,S ))