62 REGRESNÍ ANALÝZA V PROSTŘEDÍ MATLAB BEZOUŠKA VLADISLAV Abstrakt: Text se zabývá jednoduchým řešením metody nejmenších čtverců v prostředí Matlab pro obecné víceparametrové aproximační funkce. Celý postup numerické regrese je proveden pomocí iteračních algoritmů. Postup regresní analýzy je ukázán na konkrétních datech získaných z materiálových zkoušek. Keywords: regresní analýza, metoda nejmenších čtverců, iterace, Matlab. 1 Úvod V technických výzkumných úlohách se velmi často vyskytuje problém, kdy je potřeba naměřená data co nejlépe aproximovat nějakou funkcí. Tento postup je též běžně nazýván regresní analýzou. Nejznámější a patrně nejpoužívanější metodou regresní analýzy je metoda nejmenších čtverců. Tato metoda, která umožňuje nalézt koeficienty vybrané aproximační funkce k naměřeným datům, je pro jednoduché aproximační funkce dobře zvládnutelná a mnoho výpočtových programů ji také nabízí k použití např. MS Excel, Matlab, Uvedené programy standardně podporují lineární a polynomickou regresi. Problém ovšem nastane je-li aproximační funkce složitější nebo má více nezávislých proměnných. 2 Metody Hledání koeficientů složitější aproximační funkce může znamenat zdlouhavý a obtížný výpočet. Během materiálových zkoušek byla naměřena tato data, viz. tab. 1. Tab.1 Data z materiálových zkoušek T (C o ) Y(mm) -75 18-60 28-50 36-40 55-20 85 0 93 20 94 Naměřený průběh by měl teoreticky odpovídat funkci: L + H H L T A Y = + tanh (1) 2 2 B kde L, H jsou konstanty, T je nezávislá proměnná (teplota), A, B jsou parametry aproximační funkce. Úkolem je aproximovat naměřená data (tab. 1) parametrickou aproximační funkcí (1). Klasické softwarové prostředky neposkytují již hotové regresní nástroje (kromě speciálních případů lineární a polynomické aproximační funkce) proto nezbývá než použít specializovaný program nebo řešit úlohu numericky. Ryze analytické řešení je v těchto případech vesměs zdlouhavé a složité. Pro numerické řešení je vhodné vycházet z metody nejmenších čtverců, protože umožňuje přehlednou implementaci iteračních algoritmů. Metoda nejmenších čtverců je
63 založena na minimalizaci čtverců odchylek aproximační funkce od naměřených dat. Suma čtverců odchylek je dána vztahem: m ( Y i Y i ) i= 1 2 2 S = ˆ (2) kde Yi jsou naměřené hodnoty a Ŷi jsou funkční hodnoty aproximační funkce. Má-li aproximační funkce další neznámé parametry, ve funkci (1) jsou to parametry A,B, je úloha složitější o hledání minima výrazu (2) při všech možných hodnotách parametrů aproximační funkce. Pro aproximační funkci s jedním parametrem je možné provést výpočty pro odhad parametru v tabulkovém editoru, např. MS Excel. Pro odhad dvou a více parametrů aproximační funkce je již práce v tabulkovém editoru nevyhovující a výpočet je nutné řešit programově. Při numerickém řešení je nutno provést volbu intervalu hodnot ve kterém leží právě ten koeficient který funkci (2) minimalizuje. Není-li možné interval odhadnout z povahy aproximační funkce, je vhodné zvolit nejprve širší interval s hrubším dělením, provést výpočty minim a na jejich základě šíři intervalu zmenšovat a součastně zjemňovat dělení intervalu. Na obr. 1 je ukázka vývojového diagramu pro odhad parametrů aproximační funkce (1). START Definice konstant L, H Vložení naměřených dat Nastav poč. a konec intervalů pro odhad parametrů A,B Je B=konci intervalu B=B+0,1 + Je A=konci intervalu A=A+0,1 Výpočet S 2 Ulož výsledek do matice M(Ai,Bj) + Hledání minima matice M Nalezení pořadnic minim Výpočet koeficientů A, B Kreslení grafu Obr.1 Vývojový diagram
64 Vývojový diagram začíná definicí konstant vybrané aproximační funkce a zadáním počátků a konců intervalů pro odhad koeficientů A,B. Následuje první iterační smyčka pro B, která vždy zvýší hodnotu parametru B o konstantu dělení intervalu (na obr. 1 je to 0,1). Pro konkrétní hodnotu B-parametru je ve druhé iterační smyčce vypočítán vektor hodnot S 2 pro celou množinu hodnot A-parametru. Výpočet se opakuje pro další hodnotu B- parametru dokud není vyčerpána množina hodnot uvažovaných B-parametrů. Výsledkem je dvourozměrná matice čtverců odchylek S 2 z níž je dále vybráno minimum a jemu příslušející dvojice parametrů A,B. Obecně je možné pomocí vnořených iteračních smyček vypočítat pro n-parametrovou aproximační funkci n-rozměrnou matici hodnot S 2. Nevýhodou tohoto numerického postupu může být doba výpočtu, která roste s počtem iterací. Celý algoritmus v jazyku Matlab má následující podobu: %definice konstant L = 18 %hodnota nejnizsi H = 94 %hodnota nejvyssi %výpocet odchylek C = (L + H)/2; D = (H - L)/2; T= [-75-60 -50-40 -20 0 20]; Y= [18 28 36 55 85 93 94]; a=-50; b=0; konsa=a; %Ttr konsb=b; %delta t for j = 1:700 b=b + 0.1; a=-50; for i = 1:700 a = a + 0.1; for k = 1:7 Kv(k) = C +D*tanh(2*(T(k)-a)/b); odch(i,j) = ((Y(1) - Kv(1))^2 +(Y(2) - Kv(2))^2 +(Y(3) - Kv(3))^2 +(Y(6) - Kv(6))^2 +(Y(7) - Kv(7))^2); +(Y(4) - Kv(4))^2 +(Y(5) - Kv(5))^2 %hledání min minim1 = min(odch); minim2 = min(minim1) %hledání pořadnic minima for j = 1:700 for i = 1:700 if odch(i,j)==minim2 poza=i; pozb=j; ; %výpočet koeficientů b = pozb*0.1+konsb a = poza*0.1+konsa
65 %kresleni grafu tep = -80:1:20; vyst =C +D*tanh(2*(tep-a)/b); plot(tep,vyst) axis([-90 30 10 100]) hold on plot(t,y,'r+') Program je vytvořen podle vývojového diagramu z obr. 1. Hledání minim v matici M je provedeno dvojnásobným použitím funkce MIN, která nejprve najde minimum každého řádku matice a druhou aplikací funkce vybere globální minimum a vypíše ho na obrazovku. Na obrazovce je nutné zkontrolovat zda se nejedná o vícenásobné minimum. Dále je vložena procedura která hledá maticové pořadnice nalezeného minima. Ve dvou vnořených smyčkách jsou porovnávány všechny prvky matice M s globálním minimem. V případě shody jsou uloženy aktuální pořadnice do proměnných poza a pozb. Nevýhodou této procedury je, že v případě existence více minim vyhledá jen to, které má největší pořadnice. Program lze jednoduše upravit zavedením vektoru pořadnic. U většiny funkcí je to však zbytečné. Další část programu se týká výpočtu skutečných hodnot nalezených parametrů A,B. Pro oba parametry platí obdobný vztah: A = poza. KD + poca (3) kde A je N-tý koeficient, poza je maticová pořadnice globálního minima, KD je konstanta dělení intervalu N-tého parametru a poca je počáteční hodnota intervalu N-tého parametru. Na závěr algoritmu se vykreslí graf znázorňující nejlepší nalezenou aproximaci. 3 Výsledky a diskuze Nejtěžším momentem při numerickém výpočtu regresních koeficientů je správné určení iteračních intervalů. V modelovém příkladu regrese dat z materiálových zkoušek byl zvolen postup hrubého odhadu počátečního intervalu a následné experimentální zužování iteračního intervalu. Výchozí iterační interval byl stanoven (-10 6,10 6 ) a po dvou výpočtech byl zúžen na (0,700) s dělení 0,1. Každý výpočet trval na PIII 600MHz cca 110 sekund. Výsledek regrese je na obr. 2.
66 Y(mm) Obr. 2 Nejlepší nalezená aproximace naměřených dat 4 Závěr Regresní analýza je velmi používaným nástrojem pro interpretaci naměřených dat. U složitějších aproximačních funkcí může být výpočet dosti problémový. V textu bylo ukázáno jedno z možných východisek pro řešení složitějších regresních úloh v podobě numerického výpočtu. Výpočty využívají iteračních algoritmů a metody nejmenších čtverců. Řešení algoritmů bylo realizováno v prostředí Matlab pro dvouparametrovou aproximační funkci. Regresní algoritmus byl odzkoušen na datech z materiálových zkoušek. Literatura: Slavík, V., Hrubá, J.: Matematika - Diferenciální počet. Skriptum ČZU. H&H, Jinočany, 1999. The Math Work, Inc. Matlab Using Matlab. Natick : The Math Work, Inc., 2002. Bartko, R., Miller, M.: MATLAB I. - algoritmizácia a riešenie úloh. Digital Graphic, Trenčín, 2004. Kozák, Š.-Kajan,S.: Matlab-Simulink 1. Bratislava, STU 1999. Adresa autora: Ing. Vladislav Bezouška Katedra elektrotechniky a automatizace ČZU TF Kamýcká 129 16000 Praha 6 Bezouska@tf.czu.cz