Statistics ToolBox Nadstavba pro statistické výpočty Statistics ToolBox obsahuje více než 200 m-souborů které podporují výpočty v následujících oblastech. [manual ST] 1. PROBABILITY DISTRIBUTIONS – Statistics toolbox podporuje 20 rozdělení pravděpodobnosti diskrétní a spojité náhodné veličiny. Pro každé rozdělení má 5 asociovaných funkcí, jsou to: - pravděpodobnostní funkce (pdf) - distribuční funkce (cdf) - inverzní distribuční funkce - generátor náhodných čísel - střední hodnotu a rozptyl jako funkci parametru 2. DESCRIPTIVE STATISTICS - stanovení statistických charakteristik souborů 3. LINEAR MODELS - lineární regresní analýza, ANOVA 4. NONLINEAR MODELS – funkce pro interaktivní predikci a vizualizaci pro vícerozměrné data 5. HYPOTHESIS TESTS - testování statistických hypotéz, t-test, Z-test aj. 6. MULTIVARIATE víceproměnných dat
STATISTICS
–
metody
pro
statistickou
analýzu
7. STATISTICAL PLOTS – statistické grafy např. boxplot, histogram aj. 8. DEMOS - demonstrační výukové úlohy 9. DATA - demonstrační datové soubory Ve statistickém toolboxu MATLABu jsou implementovány funkce pro práci s následujícími 6-ti druhy rozdělení diskrétní náhodné veličiny: - Binomické - Geometrické - Hypergeometrické - Negativní binomické - Poissonovo - Rovnoměrné diskrétní a funkce pro práci s následujícími 14-ti druhy rozdělení spojité náhodné veličiny: - Beta 1
- Pearsonovo chí-kvadrát - Exponenciální - Fischerovo F - Gama - Gaussovo normální - Studentovo t - Rovnoměrné spojité - Weibullovo - Lognormal - Rayleigh - Noncentral Chí-kvadrát - Noncentral F - Noncentral t Pro každý implementovaný typ rozdělení je možno zobrazit distribuční funkci a funkci rozložení hustoty pravděpodobnosti, provádět s nimi výpočty popř. vypočítat jejich charakteristiky. Je rovněž možno používat inverzní distribuční funkci, která stanoví hodnoty určitého rozdělení podle zadaných pravděpodobností. Prostředky MATLABu se dají také zobrazit velmi jednoduše rozdíly jednotlivých typů rozdělení. K použití se rovněž nabízejí generátory náhodných čísel pro každý typ rozdělení. V demonstračním bloku DEMOS je uvedena speciální funkce distool, která umožňuje grafickou demonstraci jednotlivých typů rozdělení. Je možno volit alternativně zobrazení distribuční funkce nebo funkce rozdělení hustoty všech typů implementovaných rozdělení.. Je možno interaktivně měnit parametry studovaného rozdělení a zjišťovat jeho funkční hodnoty pro různé hodnoty nezávisle proměnné. Ve statistickém toolboxu MATLABu jsou přímo k dispozici funkce, vypočítávající následující charakteristiky polohy: aritmetický průměr, geometrický průměr, harmonický průměr, medián, kvantily a aritmetický průměr bez extrémních hodnot a dále charakteristiky rozptýlení: rozptyl, směrodatnou odchylku, průměrnou odchylku, variační rozpětí a interkvartilové rozpětí aj. Prakticky velmi důležité jsou možnosti grafické prezentace výsledků zpracování statistického souboru. Tak lze znázornit histogramy absolutních četností, absolutních kumulovaných četností, krabicový graf (prezentace polohy 1. kvartilu, mediánu a 3. kvartilu), přilehlé hodnoty, vrubový krabicový graf (s prezentací konfidenčního intervalu aritmetického průměru). Pro zjištění, zda výběrový soubor pochází ze základního souboru s normálním rozložením hustoty pravděpodobnosti, slouží graf normálního rozložení. K dispozici je funkce, umožňující zjistit, zda mají dva výběrové soubory stejné rozdělení (kvantil-kvantilový graf). Plnou čarou jsou spojeny 1. a 3. kvartily (dolní 2
a horní kvartil). Výběry mají pravděpodobně stejné rozdělení, je-li závislost na první pohled lineární. Jako demonstrační funkce pro generování náhodných hodnot s různými typy rozdělení a vykreslování histogramů četnosti je v demonstračním bloku DEMOS připravena funkce randtool. Při studiu daného rozdělení je možno interaktivně měnit parametry rozdělení a rozsah souboru, ukládat data do výstupních souborů aj. Funkce MATLABu umožňují dále provádět analýzu lineárních regresních modelů. K dispozici jsou především funkce pro analýzu rozptylu (ANOVA Analysis of Variance). Je možno je použít buď jako postup pro zjištění zdrojů variability u lineárních modelů, nebo jako samostatných technik. Ze statistického hlediska je možno tyto funkce chápat jako speciální případ regresní analýzy, kdy vysvětlující proměnné mají pouze binární charakter a mohou nabývat pouze hodnot 0 nebo 1. Při analýze zdrojů variability máme možnost vyšetřovat výběrový soubor při uvážení jednoho vlivu (faktoru) pomocí funkce pro jednofaktorovou (one-way) analýzu rozptylu, dvoufaktorová (two-way) analýza rozptylu umožňuje zkoumání vlivů dvou faktorů. Pro zkoumání vlivu faktorů na variabilitu se provádějí testy hypotéz o jejich významnosti. Funkce umožňují rovněž porovnávání dvou či více výběrů. Pro zobrazení výsledku analýzy je pak např. k dispozici okno se skupinou odpovídajících krabicových (vrubových krabicových) grafů, které umožňují evidentní posouzení shodnosti resp. diference středních hodnot jednotlivých výběrů. Funkce pro vícenásobnou lineární regresi umožňuje získat regresní závislost pro predikční účely. K dispozici je graf, znázorňující 95% konfidenční intervaly residuí. Jako demonstrační funkce pro interaktivní polynomiální aproximaci souboru s možností predikce jeho hodnot je v bloku DEMOS k dispozici funkce polytool. Tato funkce vytváří interaktivní grafické prostředí pro křivkovou aproximaci polynomy různého stupně. Významné jsou dále funkce, umožňující testování statistických hypotéz. Je možno provádět testy hypotéz o rozptylu (F-test), testy hypotéz o střední hodnotě (t-test), testy významnosti rozdílu párových hodnot a testy dobré shody. Přehled základních a nejpoužívanějších funkcí Statistics Toolboxu Není v možnostech těchto skript popsat veškeré funkce Statistics Toolboxu. Zaměříme se jen na ty hlavní a na ty, které se používají při výuce v tomto předmětu. Je zde uveden popis funkce včetně jednoduchého příkladu 3
použití. Výpis všech funkcí obsažených ve Statistics Toolboxu je uveden v souboru Contents.m v adresari …\Toolbox\Stats. Bližší popis těchto funkcí je možno získat pomocí nápovědy (HELP) přímo v Matlabu, nebo z manuálu k Statistics toolboxu [manuál]. Odhady parametrů NORMFIT – Odhad parametru a interval spolehlivosti pro data s normálním rozložením. [MUHAT,SIGMAHAT] = NORMFIT(X) vrací odhad parametru pro data s normálním rozdělením. MUHAT je odhad střední hodnoty, SIGMAHAT je odhad směrodatné odchylky. [MUHAT,SIGMAHAT,MUCI,SIGMACI] = NORMFIT(X) vrací 95% interval spolehlivosti pro odhad parametru. [MUHAT,SIGMAHAT,MUCI,SIGMACI] = NORMFIT(X,ALPHA) vrací 100(1-ALPHA) procentní interval spolehlivosti pro odhad parametru. Příklad: Data jsou dána 2 sloupcovou maticí s normálním rozložením. Oba sloupce mají µ = 10 a σ = 2. data = normrnd(10,2,100,2); [mu,sigma,muci,sigmaci] = normfit(data) mu = 10.1455 10.0527 sigma = 1.9072 2.1256 muci = 9.7652 9.6288 10.5258 10.4766 sigmaci = 1.6745 1.8663 2.2155 2.4693 Funkce rozložení hustoty pravděpodobnosti (pdf) NORMPDF – Funkce hustoty pravděpodobnosti pro normální rozdělení (pdf). Y = NORMPDF(X,MU,SIGMA) vrací pdf normálního rozdělení se střední hodnotou MU a směrodatnou odchylkou SIGMA. Defaultní hodnoty pro MU a SIGMA jsou 0 a 1.
4
Příklad: mu = [0:0.1:2]; [y i] = max(normpdf(1.5,mu,1)); MLE = mu(i) MLE = 1.5000 UNIFPDF – Funkce hustoty pravděpodobnosti spojitého rovnoměrného rozdělení (pdf). Y = UNIFPDF(X,A,B) vrací pdf na intervalu [A,B] hodnot X. Defaultně je A=0 a B=1. Příklad: x = 0.1:0.1:0.6; y = unifpdf(x) y= 1 1 1 1 1 1 Kumulativní distribuční funkce (cdf) NORMCDF – Kumulativní distribuční funkce normálního rozdělení (cdf). P = NORMCDF(X,MU,SIGMA) vrací cdf normálního rozdělení se střední hodnotou MU a směrodatnou odchylkou SIGMA, vypočtené pro hodnoty X. Defaultní hodnoty pro MU a SIGMA jsou 0 a 1 Příklad: Jaká je pravděpodobnost, že hodnota výběru dat ze standardního normálního rozdělení bude v intervalu [-1 1]? p = normcdf([-1 1]); p(2)-p(1) ans = 0.6827 UNIFCDF - Kumulativní distribuční funkce spojitého rovnoměrného rozdělení (cdf). P = UNIFCDF(X,A,B) vrací cdf pro rovnoměrné rozdělení na intervalu [A,B] pro hodnoty X. Defaultně je A=0 a B=1.
5
Příklad: Jaká je pravděpodobnost, že hodnota výběru dat z rovnoměrného rozdělení s intervalem [-1;1] bude menší než 0,75? probability = unifcdf(0.75,-1,1) probability = 0.8750 Statistika NORMSTAT – Střední hodnota a rozptyl pro normální rozdělení. [M,V]=NORMSTAT(MU,SIGMA) vrací střední hodnotu a rozptyl normálního rozdělení se střední hodnotou MU a směrodatnou odchylkou SIGMA. Příklad: n = 1:5; [m,v] = normstat(n'*n,n'*n) m= 1 2 3 4 5 2 4 6 8 10 3 6 9 12 15 4 8 12 16 20 5 10 15 20 25 v= 1 4 9 16 25 4 16 36 64 100 9 36 81 144 225 16 64 144 256 400 25 100 225 400 625 UNIFSTAT - Střední hodnota a rozptyl pro rovnoměrné rozdělení. [M,V]=UNIFSTAT(A,B) vrací střední hodnotu a rozptyl rovnoměrného rozdělení na intervalu [A,B]. Příklad: a = 1:6; b = 2.*a; [m,v] = unifstat(a,b) 6
m= 1.5000 3.0000 4.5000 6.0000 7.5000 9.0000 v= 0.0833 0.3333 0.7500 1.3333 2.0833 3.0000 Popisná statistika MAD – Střední hodnota/median absolutní odchylky. Y = MAD(X) vrací střední hodnotu absolutní odchylky hodnot v X. Příklad: x = normrnd(0,1,100,100); s = std(x); s_MAD = 1.3 * mad(x); efficiency = (norm(s - 1)./norm(s_MAD - 1)).^2 efficiency = 0.5972 MEAN - Průměr nebo střední hodnota. Pro vektory, MEAN(X) je střední hodnota hodnot v X. Pro matice, MEAN(X) je řádkový vektor obsahující střední hodnotu každého sloupce. Příklad: A = [1 2 3; 3 3 6; 4 6 8; 4 7 7]; mean(A) ans = 3.0000 4.5000 6.0000 mean(A,2) ans = 2.0000 4.0000 6.0000 6.0000 MEDIAN - Hodnota mediánu. Pro vektory, MEDIAN(X) je hodnota mediánu prvků v X. Pro matice, MEDIAN(X) je řádkový vektor obsahující medián každého sloupce. Příklad:
7
A = [1 2 4 4; 3 4 6 6; 5 6 8 8; 5 6 8 8]; median(A) ans = 4
5
7
7
median(A,2) ans = 3 5 7 7 STD - Směrodatná odchylka Pro vektory, Y = STD(X) vrací směrodatnou odchylku. Pro matice, Y je řádkový vektor obsahující směrodatnou odchylku každého řádku. Příklad: Pro matici X: X= 1 5 9 7 15 22 s = std(X,0,1) s= 4.2426 7.0711 9.1924 s = std(X,0,2) s= 4.000 7.5056 VAR - Rozptyl. Pro vektory, Y = VAR(X) vrací rozptyl pro hodnoty v X. Pro matice, Y je řádkový vektor obsahující rozptyl každého sloupce z X. Příklad: Pro X = [4 -2 1 9 5 7]
8
Je rozptyl: var(X,0,1) ans = 12.5000 24.5000 18.0000 var(X,0,2) ans = 9 4 Testování hypotéz TTEST [h,p,ci]=TTEST(x,m,alpha) provádí test střední hodnoty souboru, určuje, zda soubor s normálním rozložením může mít na hladině významnosti α střední hodnotu m, přičemž standardní odchylka je neznámá. Pokud h=0, nemůžeme zamítnout nulovou hypotézu, pokud je h=1, zamítáme nulovou hypotézu. Příklad: Nasimulujeme 100 náhodných vzorků z normálního rozdělení, které má střední hodnotu 0 a rozptyl 1. x = normrnd(0.1,1,1,100); Testujeme nulovou hypotézu, že vzorky pocházejí z normálního rozdělení se střední hodnotou 0. [h,p,ci] = ttest(x,0) h= 0 p= 0.8323 ci = -0.1650 0.2045 Vidíme, že h=0, tudíž přijímáme nulovou hypotézu. 9
TTEST2 [h,p,ci]=TTEST2(x,y,alpha) provádí test rozdílu středních hodnot dvou souborů jejichž směrodatnou odchylku neznáme. ZTEST [h,p,ci]=ZTEST(x,m,sigma) provádí test hypotézy o střední hodnotě souboru se známým rozptylem. Statistické grafy BOXPLOT - Zobrazuje krabicový graf výběrového souboru. BOXPLOT(X) - zobrazí krabicový graf s jedním boxem pro každý sloupec vektoru X. Boxy obsahují čáry, které reprezentují spodní kvartil, medián a vrchní kvartil. Příklad: Následující příkaz vytvoří boxplot nákladů na kilometr jízdy autem v jednotlivých zemích load carsmal; boxplot(MPG,Origin);
HIST - Histogram. N=HIST(Y) rozdělí prvky hodnotu prvku v každém sloupci
Y do 10 stejně velikých sloupců a vrátí
Příklad: Vytvoří Bellovu křivku histogramu z Gaussovských dat. 10
x = -2.9:0.1:2.9; y = randn(10000,1); hist(y,x)
HIST3 – Trojrozměrný histogram dvourozměrných dat. Příklad: Použijte soubor „carbig“ k vytvoření histogramu 7x7 sloupců. load carbig X = [MPG,Weight]; hist3(X,[7 7]); xlabel('MPG'); ylabel('Weight'); %Vytvoří histogram s poloprůhlednými sloupci hist3(X,[7 7],'FaceAlpha',.65); xlabel('MPG'); ylabel('Weight'); set(gcf,'renderer','opengl');
11
NORMPLOT – Zobrazuje křivku normálního rozdělení (grafický test normality souboru) H=NORMPLOT(X) vytvoří křivku normálního rozdělení z dat X. Pro matice X, NORMPLOT zobrazuje křivku pro každý sloupec. Příklad: x = normrnd(10,1,25,1); normplot(x)
Demonstrační úlohy Disttool – demonstruje funkce rozdělení hustoty pravděpodobnosti (pdf) nebo distribuční funkce (cdf) pro veškeré typy rozdělení.
Polytool – demonstruje experimentální polynomiální aproximace s možnosti výpočtu predikovaných hodnot. 12
Randtool – interaktivní generování náhodných čísel se zvoleným rozdělením a znázorněním pomocí histogramu
Robustdemo – interaktivní regrese pomocí robustních metod
13
Tato kapitola, ve které jsou popsány základní funkce Statistics Toolboxu v žádném případě nenahrazuje návody k použití jejich statistických procedur. Jejím cílem je seznámení studentů s nabídkou podobných programových balíků, s objemem a formami příkazů pro plnění jednotlivých statistických funkcí. Tato část bude užitečná zvláště pro taková pracoviště, která již používají nebo chystají použití MATLABu jako standardního prostředí pro výuku nebo řešení vědecko-technických či inženýrsko-projekčních úloh.
14