clear, close all

% příští týden - zápočtový test 2. 70 %
% Table of Contents
% Testy pro diskrétní data pro jeden výběr
%     Test podílu
%     Chí-kvadrát test dobré shody
% Testy pro diskrétní data pro dva výběry
%     Test o shodě dvou podílů
%     McNemarův test
% Samostatná práce v Graderu
%%
%% Cvičení 12. Testy pro diskrétní data
% Postup:
% Máme 1 výběr nebo 2 výběry?
% Testujeme podíl, rozdělení výběru, shodu podílů, změnu stavu nebo nezávislost?
% Zvolíme test - viz. tabulka s testy
% H0 nezamítáme (p>\alpha ) nebo zamítáme (p<\alpha )
% Závěr
%% Testy pro diskrétní data pro jeden výběr
%% Test podílu
% jeden výběr
% alternativní rozdělení diskrétní náhodné veličiny - úspěch, neúspěch
% Víme, že z celkového počtu 132 uchazečů, kteří se zúčastnili přijímacích zkoušek na střední školu, 41 neuspělo. Je toto zjištění v rozporu s tvrzením, že podíl úspěšných uchazečů je minimálně 71%? Testujte tvrzení na hladině významnosti 0.05.
% jeden výběr, zajímá nás podíl - to je test podílu
% máme diskrétní náhodnou veličinu přijímací zkoušky $\in\{\mbox{uspěl},\mbox{neuspěl}\}$
% zajímá nás podíl úspěšných uchazečů - úspěch je tedy uspěl
% H0: $p=0.71$ nebo $p>0.71$- podíl úspěšných uchazečů se rovná nebo je větší než 71% (minimálně - miň než 71% být nemůže)
% HA: $p<0.71$
% Levostranný, pravostranný test nebo  obouostranný test?
%
% Vypočteme výběrový podíl úspěšných uchazečů:

p=(132-41)/132

% v Matlabu chybí funkce pro test podílu - použijeme jednoduchý kód:

% T=(p-p0)/sqrt((p0*(1-p0))/n) %% statistika
% p_levostranny=1-normcdf(-T) %%% p-hodnota pro levostranný test
% p_pravostranny=normcdf(-T)  %%% p-hodnota pro pravostranný test
% p_oboustranny=normcdf(-abs(T))*2 %%% p-hodnota pro obouostranný test


p0=0.71;   % předpokládaná hodnota podílu
n=132;    % počet dat
T=(p-p0)/sqrt((p0*(1-p0))/n); %% statistika
p_levostranny=1-normcdf(-T)%%% p-hodnota pro levostranný test

% Zamítáme H0 nebo nezamítáme a proč? Závěr?
%
%% Chí-kvadrát test dobré shody
% $$T=\sum^n_{i=1}\frac{(O_i-E_i)^2}{E_i}~\sim \chi ^2(n-1)$$
%
% $O_i$ - pozorované četnosti (observed), $E_i$  - očekávané četnosti (expected)
% test rozdělení - použijeme pro diskrétní rozdělení
% Mobilní operátor chce přilákat více mladých zákazníků ve věku do 26 let. Prozatím jeho služeb využívaly věkové kategorie následovně: 18% jsou zákaznící do 26 let, 58% tvoří lidé ve věku 27-44 let, 14% jsou mezi 45 a 60 let, zbytek jsou zákazníci starší 60 let. Mobilní operátor uvedl na trh nové tarify pro všechny věkové kategorie a zatím pozoruje jejich využití takto: tarif "Student" do 26 let využilo 617 zákazníků, tarif "Rodina" si vybralo 1197 zákazníků ve věku 27-44 let. Na tarif "Individual" přešlo 329 lidí ve věku 45-60 let a 157 zákazníků starších 60 let si zvolilo nový tarif "60+". Je statisticky významný rozdíl ve využití nových tarifů různými věkovými kategoriemi?
% Máme diskrétní náhodnou veličinu věkové kategorie $ \in\{\mbox{do 26 let, 27-44 let, 45-60 let, více než 60 let}\}$
% Máme rozdělení této veličiny - pravděpodobnostní funkci:
% \begin{array}{|c|c|c|c|c|}
% \hline
% x_{i} & \mbox{do 26 let} & \mbox{27-44 let} & \mbox{45-60 let} & \mbox{starší než 60 let}\\
% \hline
% f(x_{i}) & 0.18 & 0.58 & 0.14 & ?\\
% \hline
% \end{array}
%  Kolik procent tvoří zákazníci starší 60 let?

%zbytek=

% rozdělení

pf=[0.18 0.58 0.14 0.1];

% Testujeme, zda rozdělení věkových skupin při využití nových tarifů se neliší - použijeme chí-kvadrát test dobré shody
% H0: rozdělení věkových skupin při využití nových tarifů je stejné jako doposud
% HA: rozdělení není stejné
% Pozorované četnosti O - data při využití nových tarifů

O=[617 1197 329 157];

% Očekávané četnosti E - v případě, kdyby se rozdělení nelišila
% Výpočet E:

n=sum(O) % spočteme počet dat 
E=pf*n % vynásobíme počtem dat pravděpodobnostní funkci
bins=1:4;% počet skupin

[h,p,st] = chi2gof(bins,'Frequency',O,'Expected',E)

% Zamítáme H0 nebo nezamítáme a proč? Závěr?
%
%% Testy pro diskrétní data pro dva výběry
%% Test o shodě dvou podílů
% dva výběry
% alternativní rozdělení dvou diskrétních náhodných veličin - úspěch, neúspěch
% Výpočet statistiky:
% T=\frac{\hat p_1-\hat p_2}{\sqrt{p(1-p)(\frac{1}{n_1}+\frac{1}{n_2})}}
% kde
% p=\frac{p_1n_1+p_2n_2}{n_1+n_2}
%
% Na odděleních urgentního příjmu dospělých a dětí v průběhu tří měsíců  bylo  sledováno dodržování doporučených postupů. Na oddělení pro dospělé bylo u 16 z 128 lékařů zjištěno nedodržování doporučených postupů z různých důvodů. Na dětském oddělení doporučené postupy nedodržovalo 5 lékařů z 117. Testujte hypotézu, že podíly lékařů, kteří nedodržují doporučené postupy, na odděleních  se neliší.
% dva výběry - oddělení urgentního příjmu pro dospělých a pro dětí
% zajímá nás shoda podílů - to je test o shodě podílů
% dvě diskrétní náhodné veličiny: dodržování doporučených postupů na oddělení pro dospělé a na oddělení pro děti
% obě  veličiny mají dvě možné hodnoty: $\{\mbox{dodržují, nedodržují}\}$
% zajímají nás podíly lékařů, kteří nedodržují doporučené postupy - úspěch je tedy nedodržují
% H0: $p_{dos}=p_{det}$ - podíly lékařů, kteří nedodržují doporučené postupy, na odděleních  se neliší
% HA: $p_{dos}\neq p_{det}$ - podíly se liší
% Levostranný, pravostranný test nebo  obouostranný test?
%
% Vypočteme výběrové podíly lékařů, kteří nedodržují doporučené postupy:

p_dos=16/128; % z oddělení pro dospělé 
p_det=5/117; % z na oddělení pro děti

% v Matlabu chybí funkce pro test o shodě podílů - použijeme jednoduchý kód:

%% T=(p1-p2)/sqrt(p*(1-p)*(1/n1+1/n2)); %% statistika
%% p_levotranny=1-normcdf(-abs(T)) %%p-hodnota pro levostranný test
%% p_pravostranny=normcdf(-abs(T)) %% p-hodnota pro pravostranný test
%% p_oboustranny=normcdf(-abs(T))*2 %% p-hodnota pro obouostranný test

n1=128; % počet dat z oddělení pro dospělé 
n2=117; % počet dat z oddělení pro děti
p1=p_dos; % podíl z oddělení pro dospělé 
p2=p_det; % podíl z oddělení pro děti

p=(p1*n1+p2*n2)/(n1+n2);
T=(p1-p2)/sqrt(p*(1-p)*(1/n1+1/n2)); %% statistika
p_oboustranny=normcdf(-abs(T))*2 %% p-hodnota pro obouostranný test

% Zamítáme H0 nebo nezamítáme a proč? Závěr?
%
%% McNemarův test
% dva párové diskrétní výběry
% binární data
% kontingenční tabulka 2x2
% pouze pravostranný
% Máme 20 pacientů, kterým jsme podali nadějný lék. Pozorujeme, zda ustoupily potíže po podání léku. Každého pacienta jsme se zeptali, zda měl/a potíže před podáním léku a po podání léku. Máme data, kde 1 znamená ``nejsou potíže'', 2 znamená ``jsou potíže''. Na hladině významnosti 0.05 testujte hypotézu, že se stav pacientů nezměnil.

pred=[2.   1.   1.   2.   2.   1.   2.   1.   1.   2.   2.   2.   1.  2.   1.   1.   2.   2.   2.   2.];
po=[2.   2.   1.   2.   1.   2.   2.   1.   2.   2.   2.   2.   2.  1.   2.   1.   2.   1.   1.   2.];

% Máme dva párové výběry s  binárními daty, zajímá nás změna stavu pacientů - McNemarův test
% vytvoříme kontingenční tabulku - viz. slajdy z přednášky

KT=crosstab(pred,po) % použijeme jenom pro kontingenční tabulku

% Zajímají nás četnosti, které znamenají změnu stavu: potíže nebyly před podáním léku, ale po podání se objevily (b-=5), nebo naopak, pacient měl potíže před podáním léku, ale po podání je už  nemá (c=4)
% H0: b=c - není žádná změna po podání léku
% HA: $b\neq c$ - je změna po podání léku
%
% v Matlabu chybí funkce pro McNemarův test  - použijeme jednoduchý kód:
%
%%

%% T=((b-c)^2)/(b+c); % statistika
%% p_McNemar=1-chi2cdf(T,1) %% p-hodnota
b=5; c=4;
T=((b-c)^2)/(b+c); % statistika
p_McNemar=1-chi2cdf(T,1)

% Zamítáme H0 nebo nezamítáme a proč? Závěr?
%% Samostatná práce v Graderu
%
%
%
%