Cvičení 2 s návodem Úkol 1.: Použijte funkci clv.m pro generování 200 čísel z rozložení N(0,1). Pomocí funkce kstest.m otestujte na hladině významnosti 0,05, že vygenerovaná data se skutečně řídí rozložením N(0,1). Návod: Vygenerujeme n = 200 realizací z N(0,1): n=200; realizace=clv(0,1,n); Vypočteme hodnoty distribuční funkce rozložení N(0,1) v bodech vygenerovaných realizací: Fi=normcdf(realizace,0,1); Zavoláme funkci kstest: [h,p,ksstat,cv]=kstest(realizace,[realizace,Fi]) (v případě, že testujeme hypotézu o rozložení N(0,1), stačí zadat jen vektor realizací) Vstupní parametry: realizace … sloupcový vektor realizací [realizace,Fi] … matice nx2 obsahující vektor realizací a vektor hodnot distribuční funkce rozložení N(0,1) Výstupní parametry: h … nabývá hodnoty 0, když nulovou hypotézu nezamítáme na hladině významnosti 0,05 a hodnoty 1, když zamítáme na hladině významnosti 0,05 p … p-hodnota ksstat … hodnota testové statistiky cv … kritická hodnota Nepovinný úkol: Místo z rozložení N(0,1) generujte data z rozložení N(2,4) a pro ověření normality opět použijte funkci kstest.m. Návod: realizace=clv(2,2,n); Pro výpočet hodnot distribuční funkce rozložení N(2,4) použijeme příkaz Fi=normcdf(realizace,2,2); Úkol 2.: Pro stejný úkol jako v bodě 1 použijte funkce clv_polynom.m, BM_transformace.m a funkci normrnd.m (je součástí statistického toolboxu). Nepovinný úkol: Místo funkce kstest.m použijte k testování normality funkci chi2gof.m. Návod: Funkce chi2gof.m implicitně třídí data do 10 intervalů. [h,p] = chi2gof(realizace,'cdf',@normcdf) Vstupní parametry: realizace … sloupcový vektor realizací 'cdf' … parametr, který dává funkci na vědomí, že bude použita distribuční funkce nějakého rozložení @normcdf … označení distribuční funkce standardizovaného normálního rozložení Výstupní parametry: h … nabývá hodnoty 0, když nulovou hypotézu nezamítáme na hladině významnosti 0,05 a hodnoty 1, když zamítáme na hladině významnosti 0,05 p … p-hodnota Úkol 3.: Pomocí funkce unifrnd.m vygenerujte 1000 čísel z rozložení Rs(0,1). Na hladině významnosti 0,05: a) proveďte testy náhodnosti, a to test založený na bodech zvratu, test znamének diferencí a test založený na Spearmanově koeficientu; b) proveďte testy nezávislosti, a to test založený na koeficientu autokorelace 1. až 10. řádu a Cochranův test. Návod: Vygenerujeme n = 1000 realizací z Rs(0,1): n=1000; realizace=unifrnd(0,1,n,1); Zvolíme hladinu významnosti: alfa=0,05; Ad a) Provedení testu založeného na bodech zvratu Zavoláme funkci body_zvratu: [h,p,u]=body_zvratu(realizace,alfa) Vstupní parametry: realizace … sloupcový vektor realizací alfa ... hladina významnosti Výstupní parametry: h … nabývá hodnoty 0, když nulovou hypotézu nezamítáme na hladině významnosti 0,05 a hodnoty 1, když zamítáme na hladině významnosti 0,05 p … p-hodnota u … hodnota testové statistiky Provedení testu založeného na znaménkách 1. diferencí Zavoláme funkci znamenka_diferenci: [h,p,u]=znamenka_diferenci(realizace,alfa) Vstupní a výstupní parametry jsou stejné jako u funkce body_zvratu. Provedení testu založeného na Spearmanově koeficientu Utvoříme vektor y=[1:n]’; Pomocí funkce tiedrank zjistíme vektor pořadí: R=tiedrank(realizace); Pomocí funkce corrcoef spočteme koeficient korelace a odpovídající p-hodnotu: [rs,p]=corrcoef(y,R) Rozhodnutí o nulové hypotéze učiníme na základě porovnání p-hodnoty se zvolenou hladinou významnosti alfa. Je-li p ≤ alfa, hypotézu o pořadové nezávislosti realizací zamítáme na hladině významnosti alfa, v opačném případě nikoliv. Ad b) Provedení testu založeného na koeficientech autokorelace 1. až 10. řádu a Cochranova testu: 1. „Ruční” výpočet + funkce Cochran.m Vypočteme koeficient autokorelace 1. řádu a odpovídající p-hodnotu: [r,p]=corrcoef(realizace(1:n-1),realizace(2:n)) Rozhodnutí o nulové hypotéze učiníme na základě porovnání p-hodnoty se zvolenou hladinou významnosti alfa. Je-li p ≤ alfa, hypotézu o neexistenci autokorelace 1. řádu zamítáme na hladině významnosti alfa, v opačném případě nikoliv. Analogicky počítáme koeficient autokorelace 2. řádu a příslušnou p-hodnotu: [r,p]=corrcoef(realizace(1:n-2),realizace(3:n)) Tak postujeme dál až ke koeficientu autokorelace 10. řádu: [r,p]=corrcoef(realizace(1:n-10),realizace(11:n)) Postup lze zjednodušit použitím cyklu: rad=10; for i=1:rad [r,p]=corrcoef(realizace(1:n-i),realizace(i+1:n)) end Cochranův test provádí funkce Cochran.m. [Q,chi,h,p]=Cochran(realizace,rad,alfa) Vstupní parametry: realizace … sloupcový vektor realizací rad … řád autokorelace alfa … hladina významnosti Výstupní parametry: Q … hodnota testové statistiky chi … kritická hodnota h … nabývá hodnoty 0, když nulovou hypotézu nezamítáme na hladině významnosti alfa a hodnoty 1, když zamítáme na hladině významnosti alfa p … p-hodnota 2. Použití funkce autokorelace.m Funkce autokorelace.m má 3 vstupní parametry: x ... vektor realizací k ... maximální řád koeficientu autokorelace alfa ... volitelný parametr, hladina významnosti pro Cochranův test, implicitně alfa=0,05 a 4 výstupní parametry: T ... tabulka obsahující korelogram a výsledky testu hypotézy H0: ρk = 0 Q ... hodnota testové statistiky Cochranova testu P ... p-hodnota Cochranova testu h ...výsledek Cochranova testu: h=0 nezamítáme hypotézu, že všechny koeficienty autokorelace jsou nula, h=1 zamítáme hypotézu