Ústav automatizace a informatiky Fakulta strojního inženýrství Vysoké učení technické v Brně Přednáška č. 7 z předmětu Zpracování informací Ing. Radek Poliščuk, Ph.D. Tato publikace vznikla jako součást projektu CZ.04.1.03/3.2.15.2/0285 Inovace VŠ oborů strojního zaměření, který je spolufinancován evropským sociálním fondem a státním rozpočtem České republiky 1/12
Ohlédnutí přednášky 4-6 DBS umožňují uživatelům a IS vykonávat jejich DML i DDL požadavky na data (vytváření, zápis, aktualizace, čtení výsledků, tvorbu výstupních sestav,...). Pro formulaci těchto požadavků na data se používá počítačový jazyk SQL. Výstupem funkce SELECT bývá zpravidla Dataset ve formě tabulky. Dataset může obsahovat vyfiltrovaná, agregovaná i skalárně upravená vstupní data. Teprve takto získané vysledky se používají jako zdroj dat pro následnou analýzu v daném informačním systému. 2/12
Obsah přednášky Přednáška 7 Analýza tabulkových dat vznik a určení tabulkových editorů relativně/absolutně adresovaná data a vzorce kontingenční tabulky a OLAP soustavy rovnic regresní a kovarianční analýzy vizualizace dat pomocí grafů Realita DATA Informační systém Informace Příjemce 3/12
Paralelně s vývojem sekvenčních zápisových technik (výrobní postupy, recepty, algoritmy...) se používaly i vícerozměrné formy zápisu (tabulky, schémata, animace), např. Účetní knihy (starověk), matriky (středověk) a veškeré tabulkové protokoly (výstupem výpočtů prvních počítačů byly dělostřelecké tabulky). Takto zorganizovaný zápis umožňoval data nejen přehlednou formou zobrazit, ale i nad snadno definovatelnými skupinami provádět určité operace (přepočty, sumy...) a z DAT tak extrahovat INFORMACE. Všechny druhy číselných dat je možné transformovat do formy tabulky/tabulek. Většina DBS je schopná už v rámci DML (SQL příkaz Select) nad daty provádět základní analytické operace: filtrování (klauzule WHERE a HAVING) transformace (běžné algebraické operace nad výstupními daty: +-*/,sin,cos...) agregace (operace nad skupinami dat: Count, Sum, Avg, Min, Max...) Výstupem je pak vždy zase datová tabulka ( DATASET ). pro pokročilejší typy analýz (OLAP, regresní a kovarianční analýzy, řešení soustav rovnic, MKP...) a výstupů (grafy, animace...) už bývá vhodnější použít příslušný analytický software... 4/12
Tabulkové editory Potřeba flexibilnější práce s daty než je pouhé spuštění programu a čekání na výsledek vedla v 70. letech k návrhu prvních interaktivních tabulkových procesorů, umožňujících vytváření průběžných přehledů a rozvah (...účetnictví). Toto bylo umožněno zavedením souřadnic pro jednotlivá pole tabulky, z nichž každé se tak může chovat nejen jako textová konstanta, ale i jako textová, číselná nebo jiná proměnná, indexovaná vždy svým sloupcem a řádkem. Každá buňka může obsahovat i vzorec, definující její hodnotu buď relativními (=A1), nebo absolutními (=$A$1) odkazy na okolní buňky nebo pole (A1:C5). Relativním rozkopírováním vzorců je potom možné definovat celé tabulky. A B C D E 1 Položka á ks cena vč. DPH 20% 2 počítač 10 500,00 Kč 1 =B2*C2 =D2*(1+E$1) 3 monitor 6 200,00 Kč 1 6 200,00 Kč 7 440,00 Kč 4 myš 350,00 Kč 1 350,00 Kč 420,00 Kč 5 klávesnice 720,00 Kč 1 720,00 Kč 864,00 Kč 6 DVD média 10,00 Kč 25 250,00 Kč 300,00 Kč 7 Celkem: =SUM(D2:D6) 22 569,00 Kč Prvním komerčním tabulkovým procesorem pro PC byl VISICALC (viz http://www.danbricklin.com/visicalc.htm), následoval Lotus 1-2-3 (a další, které se jeho funkce dodnes snaží kopírovat MS Multiplan, MS Excel, SO/OOo Calc...). 5/12
Tabulkové editory pracují buď s vlastními (přímo zadanými) daty, nebo mohou prostřednictvím SQL přistupovat k datasetům z existujících datových zdrojů. podobně jako u DBS, je možné na získaná data aplikovat řádkové filtry (v Excelu i Calcu, menu Data ), transformace (přepočet dat vzorci do nových sloupců s použitím a relativních a abs. odkazů) agregační funkce (sumační, statistické,...) s výstupem ve vzorcových polích. 6/12
Některá data transformovat jednoduchými vzorci nejde přímo => speciální funkce: Konsolidace dat sloučení zdrojových dat z více zdrojů (oblastí, vlastních i mapovaných DB listů) Kontingenční tabulky (Pivot Tables, v OOo viz průvodce daty ) určeno k přehledné vizualizaci vzájemného vztahu dvojic statistických znaků agregace řádkových záznamů do tabulky dle zvolených statistických kritérií (filtry, sumace, průměry, min/max,...): Pobočka Produkt Měsíc Rok Ks Brno A 1 2005 5 Brno A 3 2005 3 Praha A 2 2005 6 Praha B 1 2005 2 Plzeň A 1 2005 3 Plzeň B 2 2004 4 Plzeň A 2 2004 1 Brno C 1 2005 5 Praha A 3 2005 8 Pobočka (Vše) Součet z Ks Produkt Rok Měsíc A B C Celkový součet 2004 2 1 4 5 Celkem z 2004 1 4 5 2005 1 8 2 5 15 2 6 6 3 11 11 Celkem z 2005 25 2 5 32 Celkový součet 26 6 5 37 7/12
Online Analytical Processing (OLAP, E.F. Codd & Associates,1993) Dolují-li se kontingenční data ne z jedné, ale z mnoha (typicky časovými) relacemi propojených tabulek, je mezikrok s 2D zdrojovou tabulkou neefektivní a nekonzistentní (spousta opakujících se dat = velký dataset, nepřehledné a děravé KT, pomalé zpracování=>offline data). Pobočka (Vše) Součet z Ks Produkt Rok Měsíc A B C Celkový součet 2004 2 1 4 5 Celkem z 2004 1 4 5 2005 1 8 2 5 15 2 6 6 3 11 11 Celkem z 2005 25 2 5 32 Celkový součet 26 6 5 37 => Snaha o vícerozměrný on-line pohled na data ( hyperkostka ), s výstupem vždy jen ve zvolených řezech, vedených podél os které nás zajímají. data se drží buď v dynamické vícerozměrné struktuře (MOLAP - viz spreadsheety, XML), nebo se obvyklé relační tabulky doplňují o předzpracované informace (ROLAP) specializovaná SQL nadstavba MDX (Microsoft, '97), výrazně zjednodušující dotazy: SELECT { [Measures].[Store Sales] } ON COLUMNS, { [Date].[2002], [Date].[2003] } ON ROWS FROM Sales WHERE ( [Store].[USA].[CA] ) 8/12
Mnoho technických úloh vede k řešení soustav lineárních rovnic: A x = b => x = A -1 b kde A je čtvercová matice soustavy, x je vektor proměnných a b je vektor pravých stran. pro menší soustavy (<128 2 polí) jsou použitelné funkce pro inverzi matic koeficientů: OOo Calc: MInverse(rozsah zdrojových dat), MS Excel/CZ: Inverze(rozsah zdrojových dat)...nutno zadat jako maticový vzorec, jinak se výsledek nerozloží do matice! Pro větší soustavy lin. rovnic (>128 128) je nutný specializovaný software, využívající přímé metody (Gaussova eliminační metoda, L-U rozklad...) - pomalejší - ale fungují vždy, nebo iterační metody (Jacobiho, Gauss-Seidel) pro vhodná data rychlé, nemusí vždy konvergovat! 9/12
Regresní a kovarianční analýzy: Statistická analýza vzájemné závislosti náhodných veličin (podrobnosti viz Matematika 3) Nejčastěji používaná: Metoda nejmenších čtverců hledá se ideální přímka (lze zobecnit i na polynom) pro proložení množiny bodů: f(x) míru vzájemné lineární závislosti x a y pak udává korelační koeficient: kde je rozptyl (disperze) dané veličiny 10/12
Vizualizace dat pomocí grafů: Graf je grafické zobrazení číselných dat. Namísto procházení mnoha sloupců čísel na listu stačí letmý pohled k tomu, abyste zjistili potřebné údaje. Před vlastní tvorbou grafu bychom si měli ujasnit, co zobrazuje a k čemu slouží: zobrazení prosté posloupnosti hodnot (spojité:čarové grafy, diskrétní:bodové) zobrazení vzájemného poměru hodnot (blokové, skládané a koláčové grafy) zobrazení závislosti mezi sloupci (X-Y grafy, radarové grafy) zobrazení statistických údajů (proložení regresních křivek, krabicové grafy...) Opatrně s 3D pohledy: některé řady mohou zůstat zakryté, u koláčových grafů dojde ke zkreslení! 11/12
Celoškolský software Během studia na FSI se možná setkáte s tímto komerčním analytickým softwarem: ABAQUS (simulace a metody konečných prvků) ANSYS, LS-DYNA, CivilFEM (MKP) Labview (laboratorní software pro řízení, sběr, analýzu i vizualizaci dat) Maple (symbolický algebraický a vizualizační sw více viz předmět Matematika 2) Mathematica (dtto) Matlab (dtto) Microsoft Windows a Office (kancelářské aplikace Word, Excel, Access,...) Minitab (statistický software) Pro/ENGINEER (konstrukce) Statistica (statistika a kvalitativní ukazatele výroby, plánování experimentů) (některé licence jsou na serveru https://sw.vutbr.cz volně přístupné i pro studenty FSI) Open-Source nebo zdarma dostupné varianty: OpenOffice.org (kancelářské aplikace, náhrada MS Office) GNU Octave (symbolický algebraický a vizualizační sw, náhrada Matlabu) Python (symbolický algebraický software, rozhraní pro vývoj univerzálních aplikací) Při znalosti potřebných algoritmů si můžete vytvořit i svou vlastní aplikaci pomocí Delphi 6PE (nainstalováno na internetových studovnách, pro nekomerční použití) Lazarus (multiplatformní Open-Source klon Delphi, vč. object Pascalu) Microsoft Visual Studio.Net (Visual Basic, C#, C++, Java; Express edice zdarma). 12/12