1 Nelneární regrese Program pro IBM PC a kompatblní XREGA Verze.4 pro operaèní systém MS DOS Autor: R.Žtný ÈVUT Fakulta strojní K18 Verze: 1990/9
Obsah manuálu 1. Instalace.... Pops úlohy... 3. Ovládání programu... 4 4. Testovací pøíklad... 9 Pøíloha A1 Matcový edtor... 1 Pøíloha A MTOOLs... 15 Pøíloha A3 Prncp Marquardtovy metody... 17 1. Instalace Na aktvní adresáø umístìte tyto soubory: XREGA.EXE XREGA.MAT XREG1.HLP MEDRTD.HLP TMSRB.FON MREMAR.MES SETUP.PAR data (bnární soubor) soubory s nápovìdným texty fonty pro pops obrázku vysvìtlující texty V tomto pøípadì by mìly být první dva øádky textového souboru SETUP.PAR prázdné (tam se totž uvádìjí jména adresáøù kde jsou soubory typu HLP a soubory typu MES /1. øádek/, pøèemž prázdný øádek znamená, ze soubory jsou na aktuálním adresáø; význam druhého øádku je pro program XREGA nevýznamný).. Pops úlohy Øešenou úlohu mùžeme formulovat takto: Máme soubor bodù pozorován x(,1),...,x(,p) /nezávsle promìnné -tého bodu/, y() /odpovídající závsle promìnná/ a w() /váha -tého bodu pozorování/. Tyto hodnoty budou soustøedìny do jedné matce, jejíž -ty øádek bude obsahovat všechny hodnoty popsující -tý bod pozorování. Souvslost mez nezávsle promìnným x a závsle promìnnou y budeme modelovat regresní funkcí y = f(x 1,x,...,x p, b 1, b,..., b M ) a vektor parametru b 1,...,b M stanovíme tak, aby souèet vážených kvadrátù rezdu
3 N s = [ y f ( x,... x, b,..., b )] w = 1 1 p 1 M byl mnmální. Poznamenejme, ze vhodnou volbou váhových koefcentù w lze potlaèt vlv nepøesných nebo slnì odchýlených bodù (robustní regrese). Program XREGA nabízí sedm typù regresních funkcí f(x,b): 1) Interakènì defnovaná regresní funkce, kterou píšeme jako text výrazu s promìnným X() a B(). Omezen spoèívá v tom, že funkèní pøedps mùže být jen jedný výraz; ten se dále nterpretuje, což vede ke zpomalení výpoètu (ve srovnání s pevnì defnovaným modely až 6) ) Lneární regrese algebrackým polynomy f=b(1)+b().x+... 3) Vícenásobná lneární regrese f=b(1)+b().x(1)+b(3).x()+... 4) Exponencální regresní funkce f=b(1)+b().exp(b(3).x(1)) 5) Dvì exp. f=b(1).exp(b(4).x(1))+b().exp(b(5).x(1))+b(3) 6) Raconální funkce f=(b(1)+b().x(1))/(1+b(3).x(1)) 7) Èebyševovy polynomy f=b(1).t(0,x)+...+b(n).t(n-1,x) Algortmus øešení je založen na Marquardtovì metodì (vz pøíloha A3): V každém teraèním kroku je na základì "starých" hodnot b(1),... b(m) stanoven smìr velkost pøírùstku vektoru b(). Tato pøedpovìï by byla správná za pøedpokladu, ze regresní funkce f je vzhledem ke hledaným parametrùm b() lneární. Obvykle je však tøeba teoretcký pøírùstek modfkovat (zkrátt) a zde se používají dvì stratege, "optmstcká" a "opatrná": - ponechat vypoètený pøírùstek a to tehdy, když vede k nepøílš výraznému zvýšen souètu ètvercù rezdu. Je to stratege dlouhých kroku, snažící se co nejrychlej vzdált z té oblast prostoru parametru b(), kde lnearzace regresní funkce nedává dobré výsledky (v programu oznaèováno jako Kvìtoòova varanta) - ponechat vypoètený smìr a jednorozmìrnou optmalzací stanovt takový pøírùstek, kterému odpovídá nejmenší hodnota souètu ètvercù. Této "opatrné" strateg zpravdla odpovídají velm malé kroky a pomalá konvergence. Pro zlepšení se používá technka extrapolace: Operátor programu zadává poèet kroku (N-terací), jejchž výsledky (vektory b()) se ukládají a je z nch možné vyhodnott dlouhodobìjší trendy zmìn. N- body se v prostoru parametrù prokládá kvadratcká køvka a podél této køvky se jednorozmìrnou optmalzací hledá mnmum souètu ètvercù resduí (v programu oznaèováno jako Žtného varanta). Pokud zadáme N<3, nelze kvadratckou extrapolaèní køvku vyhodnott, takže se extrapolaèní kroky vynechají.
4 Spoleèným rysem obou varant Marquardtovy metody je to, že parametry regresní funkce b() se klasfkuj na lneární a nelneární; dervace regresní funkce f dle lneárního parametru mùže závset pouze na parametrech nelneárních. V programu XREGA je zavedena úmluva, že lneární parametry se uvádìjí jako první, tj. b(1),...,b(mlin) jsou lneární a b(mlin+1),...,b(m) jsou nelneární parametry. Tak napø. exponencální regresní funkce èíslo 4 (vz výše) má celkem 3 parametry a dva z nch jsou lneární; funkce èíslo 5 (dvojce exponencal) má 5 parametru z nchž 3 jsou lneární; raconální funkce èíslo 6 má 3 parametry a první dva jsou lneární. Algortmus respektuje dìlení na lneární a nelneární parametry takto: Na zaèátku výpoètu se stanoví hodnoty lneárních parametru b() metodou lneární regrese (nelneární parametry se považují za konstanty) a tato operace se za jstých okolností uplatní pøed každou terací nebo pø náhodném hledání. Hodnoty lneárních parametrù b() tedy není nutné pøedem odhadovat (a pro odhad nelneárních parametrù nabízí XREGA specální postup, vz dále). Další úprava Marquardtovy metody spoèívá v tom, že se zadává nterval pøípustných hodnot parametru b(). Tyto ntervaly (Bmn,Bmax) vymezují oblast, v níž se generátorem náhodných èísel hledají lepší hodnoty parametru b() v pøípadì, že selhává základní Marquardtùv algortmus øešení. Výsledkem výpoètu jsou zpøesnìné hodnoty b() a odhad jejch chyb - konfdenèní nterval. Dále je k dspozc smìrodatná odchylka (odmocnna ze souètu ètvercù, dìlená poètem stupòù volnost) a ke každému bodu pozorování hodnota regresní funkce - predkce modelu. 3. Ovládání programu Odstartování programu: C:>XREGA +------------------------------------------------------------------------------+ No. of teratons: 40 random trals: 10 extrapolatons: 15 Correl.ndex: 1.0000000 Standard devaton of data: 4.99563E-05 No.of regresson parameters M= 5 lnear parameters MLIN= 3 +------------------------------------------------------------------------------+ B[1].exp(B[4].x)+B[].exp(B[5].x)+B[3] \double exponental model +----------------------------------++-Man menu:-------------------------------+ Read data from fle XREGA.MAT Model parameters: Wrte data nto fle XREGA.MAT Edt matrx > B1-4.83809E+01 Prnt matrx > B 4.83835E+01 TOOLs (Load/Save/Colors [F10]) B3-3.0746E-03 Calculator B4 -.10435E-01 _Select regresson functon B5-1.89743E-01 User defned regresson functon Method of soluton Number of teraton, accuracy,... Intal estmate of parameters Analyss (Regresson + predcton) XREG Verson.3/94 Graph parameters (axs, fuctons) @Ztny CVUT Prague Vew graph Qut +----------------------------------++------------------------------------------+ Na dsplej se objeví základní údaje, odpovídající datùm v souboru XREGA.MAT (to je jakýs mplctn datový soubor) a menu základních operací. Jednotlvé položky menu
5 (vybírané buï stskem písmene, kterým zaèíná text té které položky, nebo klávesam pro posun kurzoru a potvrzením Enter) nyní popíšeme. Implctnì se nejprve nabízí položka S) Select regresson functon (Volba regresní funkce) Potvrdíme-l tuto varantu klávesou Enter, objeví se menu se 7-m øádky, odpovídající sedm zmínìným modelùm. Aktvní regresní funkce se vybírá klávesam a volba se potvrdí klávesou [Enter]. U) User defned regresson functon (Interaktvní defnce regresního modelu) - modfkace textu regresní funkce v prvním øádku menu volby regresních modelù. Funkc f(x,b) zapsujeme jako výraz, v nìmž lze použít standardní funkce (vz. dodatek A1), jednoduché promìnné a vektory. Seznam tìchto promìnných je v datech programu, lze jej mìnt a rozšøovat; mplctnì jsou defnovány vektory X() (nezávsle promìnné), B() (parametry modelu) a jednoduché promìnné B1, B,...,B6, T, které jsou totožné s prvním prvky vektoru B a X. Je lhostejné, zda pø psaní výrazu požjeme velká, è malá písmena a stejnì tak nezáleží na mezerách. Konstanty zapsujeme dle bìžných konvencí (napø. 0.01,.01, 1e-4,.1e-1). Když napíšeme výraz chybnì, dozvíme se to až pø výpoètu; lokalzace chyby je usnadnìna tím, že to, co bylo ve výrazu ještì správnì, je pøevedeno na velká písmena a od místa chyby, kde už pøeklad výrazu neprobìhl, jsou písmena malá, napø. B1 + T*EXP(B*T)+T***rex(b3*t). M) Method of soluton (Metoda øešen) Další mplctnì nabízenou položkou je volba jedné ze dvou varant Marquardtovy metody øešen (vz výše). N) Number of teratons, accuracy,... (poèet terací, pøesnost etc.) Zadávají se vyplòováním èíselných položek v tabulce; kurzorem se lze pohybovat po celém panelu a po stsknut Enter se kurzor pøesouvá k následující položce. Zadávání parametrù se ukonèí buï po vyplnìní poslední položky nebo stsknutím Esc è lbovolné funkèní klávesy. Význam vìtšny parametrù je jasný (poèet terací /zpravdla 10-100/, poèet náhodných pokusù pø dvergenc terací /øádovì 100/), zvláštní vysvìtlení s zaslouží jenom dvì položky: Index matce bodù pozorování X s mplctní hodnotou 6. Oznaèuje èíslo matce (všechna pole jsou v programu XREGA èíslována), kterou bude regresní algortmus považovat za body pozorování. Takových matc ovšem mùžeme defnovat vícero (s postupem se seznámíme pozdìj) a vybírat tu, která má byt aktvní (není tedy tøeba èíst pro nové body pozorování nový soubor dat). Protože novì defnované matce mohou byt strukturní, vznklé spojením nìkolka submatc, je možné regres aplkovat na skupny bodù pozorování. Trasování (mplctní hodnota 0). Zadáme-l èíslo vìtší než 0 bude prùbìh øešení komentován na dsplej; po každém dílèím kroku se výpoèet zastaví a je možné zjš ovat mezvýsledky. Tento režm má smysl tehdy, když se objeví napø. problémy s konvergencí nebo když chcete nahlédnout do tajù použtého algortmu. Výpoèet se zastavuje v dùležtých kontrolních bodech, kdy máme k dspozc celý edtaèní aparát (matcový
6 edtor MTOOLS) sloužící k prohlížení nebo modfkac dat. K dalšímu kontrolnímu bodu se pøesouváme po stsknutí víceménì lbovolné klávesy; zvláštní význam má F7 (aktuální kontrolní bod bude pøíštì potlaèen) a F9 (ukonèen trasovacího režmu - výpoèet dobíhá normálním zpùsobem). A) Analyss (Regrese, výpoèet B predkce Y) V tomto okamžku se jž nabízí fnální krok - Regrese. Tento krok lze akceptovat tehdy, když ještì nemáme pøpravena data (body pozorování a odhady parametru modelu). Pø prvním zpracování nebo po zmìnì aktvního modelu totž program automatcky pøechází do režmu pøípravy nebo modfkace tìchto dat matcovým edtorem. Pøed vlastním vytváøením matce bodù pozorování je tøeba vyplnt údaje v tabulce, které defnuj významy jednotlvých sloupcù. Zadávají se ndexy sloupcù, v nchž se nachází závsle promìnná Y, nezávsle promìnné X1,..., váhové koefcenty jednotlvých bodù pozorování W a koneènì ndex sloupce, do kterého budou umístìny hodnoty Y pred, vypoètené z regresní funkce (predkce modelu). Bude-l nìkterý ndex nulový, znamená to, že se pøíslušná velèna neuplatní (napø. W=0 pøedpokládá jednotkové váhy bodù pozorování). +-Set column ndces ( [Enter] [F9] )------------------------------------------+ dependent vars., weghts 4 ( =0 unt weghts), predcton Yfun(x) 3 ndependant varables: X1 1 X 0 X3 0 X4 0 X5 0 +------------------------------------------------------------------------------+ Podobnì u matce parametru regresní funkce se nejprve zadávají dva údaje: Poèet lneárních parametru B() a celkový poèet parametru B(). +-Set number of parameters ( [Enter] [F9] )------------------------------------+ Total number of regresson parameters: 5 (number of rows) Number of lnear parameters n rows 1 to 3 (<= 5, total no. of param.) +------------------------------------------------------------------------------+ Teprve po vyplnìní vstupních formuláøù lze pøstoupt k pøípravì dat (zadání bodù pozorování, a odhady parametrù modelu) matcovým edtorem, který je podobný tabulkovým procesorùm. Pops matcového edtoru uvádíme v dodatku A1 a možná ještì praktètìjší je kontextová nápovìda aktvovaná funkèní klávesou F1. Vìtšnou však vystaèíme jen se dvìma až tøem pøíkazy: K m,n zmìna rozmìru matce (m-poèet øádkù, n-sloupcù) A[n] aktvace zadávání dat (n-poèet sloupcù) C=výraz výpoèet prvkù -tého sloupce (napø. C4=0 vynuluje celý ètvrtý sloupec) Funkèní klávesa F10 vyvolá v režmu edtace pomocné menu, které nabízí mmo jné ètení dat ze znakového souboru a užteèná je možnost aktvace zápsníku (Journal), kam se prùbìžnì ukládají výsledky. Výsledkem regrese jsou pøedevším zpøesnìné hodnoty parametrù regresní funkce B(1),...,B(M) (1.sloupec matce parametrù), jejch nterval spolehlvost (4.sloupec matce parametrù), smìrodatná odchylka s mez daty a predkcí (uvedená v hlavèce základního panelu stejnì jako aktuální hodnoty parametrù modelu B()), korelaèní ndex r a koneènì vektor predkovaných hodnot Y pred, který lze porovnat s daty Y. Smìrodatná odchylka s a korelaèní ndex r jsou defnovány následujícím vztahy
7 s = [ y f ( x, b)] N M [ y f x b (, )] r = 1 [ y y] Ke zpracování nebo prohlížení èíselných výsledkù jsou k dspozc další položky menu: E) Edt matrx (Edtace zvoleného pole) Pole, které chceme edtovat matckým edtorem (nebo jen prohlížet) vybíráme z nabídky menu. Kromì bodù pozorování a parametrù modelu je možné edtovat strukturní pole složené právì z tìchto matc (v levé èást dspleje jsou potom body pozorování, predkce ap. a v pravé èást parametry B()). Dále jsou k dspozc texty regresních funkc a seznam jmen dentfkátoru, které se smí použít pø jejch defnc. P) Prnt matrx (Zobrazení nebo tsk polí) Pole, které nás zajímá formát zobrazení vybíráme opìt z posloupnost menu. Pole lze vytsknout nebo prostì jen zapsat ve znakovém tvaru do souboru. C) Calculator (Kalkulaèka, transformace parametrù) Po aktvac této položky menu se na dsplej objeví okénko, do nìhož lze napsat výraz nebo pøøazovací pøíkaz (dle stejných pravdel jako pø defnc nového modelu). Napíšemel tedy napø. B5 [Enter] zobrazí se aktuální hodnota parametru B(5). Mùžeme ovšem psát napø. B5=LOG(B5) [Enter] a hodnotu B(5) logartmovat; operace tohoto typu jsou nezbytné napø. pø prác s transformovaným daty a modely. T) TOOLs Load-Save (operace s celou databází matc M-TOOLs) Prostøedek pro prác s úplnì všem pol, která program XREGA používá, pro ètení nebo ukládání celé databáze dat ( do souborù s jným jménem než mplctní XREGA.MAT), dynamcké vytváøení nových polí, nastavování barev (F10) apod. Na dsplej se zobrazuje menu exstujících matc, v nìmž se lze pohybovat pomocí kurzoru a HOME, END. Vybranou matc mùžeme napø. edtovat matcovým edtorem po stsknutí [Enter], popøípadì zmìnt její maxmální rozmìry [F4]. Funkèní klávesy mají význam popsaný v dodatku A. I) Intal estmate of parameters (odhady parametrù regresní funkce) Volba I v základním menu umožòuje "ruèní" nastavování maxmálnì tøí nelneárních parametrù regresní funkce. Pro každý z nch se ve vstupním panelu specfkuje pøedpokládaný rozsah jeho hodnot (mplctní meze se odvozují z aktuálních hodnot parametrù a z jejch ntervalu spolehlvost) a poèet bodù, na nìž bude tento nterval rozdìlen. V každém bodì jsou potom lneární regresí dopoèteny lneární parametry modelu a kvalta predkce, vyjádøená smìrodatnou odchylkou od zadávaných dat. V pøípadì, že je nelneární
8 parametr jen jeden, zobrazí se graf závslost této smìrodatné odchylky na nelneárním parametru. Jsou-l nelneární parametry dva, zobrazí se vrstevnce odpovídající hodnotám smìrodatné odchylky, pøèemž na horzontální ose je první a na vertkální druhý nelneární parametr. Když jsou nelneární parametry tø, zobrazí se šest vrstevncových grafù, odpovídajících šest hodnotám tøetího nelneárního parametru. Po provedení tìchto pokusných výpoètù je vybrán a oznaèen nejlepší výsledek; grafckým kurzorem lze mìnt polohu aktuálního vektoru nelneárních parametrù a souèasnì pozorovat, jaký má vlv na predkc modelu (F4 totž zobrazuje graf predkované funkce spolu s body pozorování /v levé polovnì obrazovky se znázoròuje prostor parametrù tøeba jako vrstevnce a v pravé polovnì funkèní prùbìhy odpovídající pozc grafckého kurzoru/). G) Graph parameters (nastavení parametrù pro grafy a kreslení) Po této volbì se vyplní údaje ve vstupním panelu, potøebné pro grafku: +-[Enter] [F9] --------------------------------------------+ Axs 3 [ 0-log/log 1-log/a -a/log 3-a/a ] [ 4 5 6 7 ] tcks Background color 0 Horzontal axs label: X [-] Vertcal axs label: Y [-] Ponts Column X Column Y Mark C 1 C C 7 C 1 C 0 C 0 Negatve value of mark------+ s nterpreted as column ndex. Model: Prmary varable X( 1) lne color 7 +----------------------------------------------------------+ Typ os: 0=log/log, 1=log/artm, =artm/log, 3=artm/artm, 4=log/log (ale bez vykreslení møížky jako u varanty 0), 5,... Pops os (text). Urèení sloupcù matce bodù pozorování, které mají reprezentovat nezávsle promìnnou X na horzontální ose a závsle promìnné Y (mplctnì se vychází z nastavení, které bylo použto pø regresní analýze). Tyto hodnoty se pak v grafu znázoròují rùzným typy znaèek (pro každý sloupec je možné specfkovat jnou znaèku jako celé èíslo). Záporné èíslo znaèky se nterpretuje jako ndex sloupce v matc bodù pozorování, který obsahuje èísla
9 znaèek - to potom znamená, že každý bod jednoho prùbìhu mùže být vykreslen jnou znaèkou a typ znaèky mùže být výsledek výpoètu (napø. výsledek sloupcové operace /vz matcový edtor/, která sloupc znaèek pøøadí hodnoty 0,1, dle velkost váhových koefcentù). Dále je možné zadat ndex nezávsle promìnné X která bude použta jako argument modelové funkce, jejíž prùbìh bude vykreslován spojtou èarou. V pøípadì, že se jedná o vícenásobnou regres (tj. když je více než jen jedna nezávsle promìnná), mùže se vykreslovat parametrzovaná sí funkèních prùbìhù ("Prmary X" je nezávsle promìnná odpovídající horzontální ose a "Secondary X" je jná nezávsle promìnná, jejíž dskrétní hodnoty se zadávají v panelu). Po zadání parametrù je graf vykreslen. V) Vew graph (zobrazení grafu) Pokud jž byly defnovány parametry, vykreslí se graf, když ne, pøejde se automatcky na funkc G. R) Read data from fle XREGA.MAT (Ètení dat ze souboru) W) Wrte data nto fle XREGA.MAT (Uložení dat do souboru) Soubor XREG.MAT je bnární a tvoøí souèást nstalace programu XREGA. Jsou v nìm obsazeny nejen všechny nformace o právì zpracovávané úloze, ale systémové promìnné, jména a atrbuty "nterakèních promìnných", texty regresních modelù, atd. Pokud chceme pracovat s jným soubory dat mùžeme použt služeb MTOOLs (vz výše). Operac W (záps dat, vytvoøení "bodu opakování") doporuèujeme provést ještì pøed vlastním výpoètem, protože vždy hrozí nebezpeèí chyby (dvergence, nevhodný model,...), která zpùsobí náslné ukonèení výpoètu a ztrátu dat. Q) Qut - konec zpracování Ukonèení úlohy a návrat do operaèního systému.
10 4. Testovací pøíklad Body pozorování nech odpovídají funkc y= t.exp(-0.t) s hodnotam nezávsle promìnné t=1,,3,... Matc bodù pozorování vytvoøíme matcovým edtorem napø. pro 15 bodù pozorování (K 15,5) pøíkazy (nezávsle promìnná t v prvním sloupc, y ve druhém): c1= c=c1*exp(-0.*c1) Jako regresní funkc použjeme model èíslo 5 - dvojc exponencál s pìt parametry. Poèáteèní hodnoty parametrù a jejch povolený rozsah odhadneme takto (edtace matce parametru regresní funkce) b1 = 1 (-1000, 1000) b = 1 (-1000, 1000) b3 = 1 (-1000, 1000) b4 = -.1 (-10,10) b5 = -.01 (-10,10) V panelu systémových parametru nastavme 40 terací, 10 náhodných pokusù. U varanty metody øešen èíslo nastavme poèet terací použtých k extrapolac na 15 (extrapolace pak bìhem 40 terací probìhne dvakrát). Po nìkolkerém opakování výpoètu (Analyss), když se jž nemìní smìrodatná odchylka, zaznamenáme tyto výsledné hodnoty parametrù b1=-54.4 b=-54.4 b3=-0.0039 b4=-0.093 b5=-0.1909 Odhadnutá chyba vypoètených parametrù, uvádìná ve ètvrtém (posledním) sloupc matce marametrù b() je cca 9 pro první dva parametry, 0.0008 pro tøetí parametr a 0.0015 pro koefcenty exponentù. Tyto hodnoty se poèítají dost komplkovaným zpùsobem, násobením dagonálních prvkù korelaèní matce parametrù modelu druhou mocnnou smìrodatné odchylky dat a modelové predkce s. Tento postup je založen na øadì pøedpokladù týkajících se nejenom dat, tj. bodù pozorování (normální rozložení chyb), nýbrž prùbìhu výpoètu, který pø pomalé konvergenc mùže vést ke zkreslení odhadu korelaèní matce parametrù. V uvedeném pøípadì vyšel odchad chyby parametrù realstcky, ale když napø. zkreslíme výchozí data generátorem náhodných èísel s negaussovským (nenormálním) rozložením chyb, budou výsledné odhady velce "pesmstcké" (vz dodatek A3):
11 b 1 =-131. ±310. 5 b =131.6 b 3 =-0.34 ±8. b 4 =-0.1795 ±8 Dvouexponencální model není pro tato data pøílš vhodný, b 5 =-0.175 odeèítají se dva témìø stejné exponencální prùbìhy a to je zdrojem znaèné nespolehlvost vypoètených parametrù. Poznámka: kdybychom jako užvatelský model použl funkc B1+B*T*EXP(B3*T) se dvìma lneárním parametry B1,B a jedním nelneárním parametrem B3, mìl bychom dostat jako výsledek regrese pøesné øešení B1=0, B=1, B3=-0.
1 Dodatek A1 MED (Matcový edtor) Dsplej je rozdìlen na následující pole: Observaton ponts RCÞ 1 X1 Þ Y Þ 3 Yfun Þ 4 Wght Þ 5 Þ 6 Þ 1: 1.000E+00 8.187E-01 8.187E-01 1.000E+00 :.000E+00 1.341E+00 1.341E+00 1.000E+00 3: 3.000E+00 1.646E+00 1.646E+00 1.000E+00 4: 4.000E+00 1.797E+00 1.797E+00 1.000E+00 5: 5.000E+00 1.839E+00 1.839E+00 1.000E+00 6: 6.000E+00 1.807E+00 1.807E+00 1.000E+00 7: 7.000E+00 1.76E+00 1.76E+00 1.000E+00 8: 8.000E+00 1.615E+00 1.615E+00 1.000E+00 9: 9.000E+00 1.488E+00 1.488E+00 1.000E+00 10: 1.000E+01 1.353E+00 1.353E+00 1.000E+00 11: 1.100E+01 1.19E+00 1.19E+00 1.000E+00 1: 1.00E+01 1.089E+00 1.089E+00 1.000E+00 13: 1.300E+01 9.656E-01 9.656E-01 1.000E+00 14: 1.400E+01 8.513E-01 8.513E-01 1.000E+00 15: 1.500E+01 7.468E-01 7.467E-01 1.000E+00 +-MATRIX----------ROWS----COLS-----LOC------TYP----MAP-----SYM-----DIM-----LEN-+ 6 15 4 539 REAL 3 0 100 000 CR: \ Fx HELP-F1 SET-F RF3 CF4 INS-F5 DEL-F6 INSR-F7 DELR-F8 EXIT-F9 MENU-F10 1. øádek - název edtovaného pole. øádek - èísla sloupcù a oznaèení jejch významu 3. až 0. øádek - èísla øádku a prvky pole (datová oblast).øádek - základní charakterstky pole (pøedevším poèet øádku ROWS a sloupcù COLS) 3.øádek - pøíkazový. Pro kurzor je uvolnìno datové pole, pole charakterstk pøíkazový øádek; všechny údaje tam uvedené lze pøepsovat. Zmìny matce se provádí až po stsknut Enter nebo funkèní klávesy. Pohyb kurzoru se øídí klávesam: posun o 1 znak nebo øádek [Ctrl],. posun o jedno slovo [Home] [End] pøesun kurzoru na zaèátek / konec øádku [Ctrl] [Home] pøesun kurzoru na zaèátek prvního datového øádku [Ctrl] [End] pøesun kurzoru do pøíkazového øádku. Dùležtou operac je zmìna pracovního poètu øádku nebo sloupcù matce (urèují napø. poèet bodù pozorování nebo poèet parametru regresní funkce). V tomto pøípadì staèí pøepsat èíselné údaje ROWS, COLS. Text pøíkazu (zpravdla písmeno /klíèový znak/ a èíselné parametry) se píše do pøíkazového øádku a potvrzuje stskem pøíslušné funkèní klávesy nebo klávesou Enter (až na výjmky, pokud by mohlo dojt k nejednoznaènost, napø. u operace INSERT a INSERT/REDIM). Edtor s pamatuje 3 netrvální pøedchozí pøíkazy, které lze vyvolat stsknutím kláves Ctrl L. F1 - nápovìda vázaná na text v CR øádku; napø. CR: MAP (F1) - v pol HELP se objeví pops všech použtelných mapovacích funkc (význam parametru MAP). Textem
13 nápovìdy lze lstovat klávesam pro posun kurzoru, stsknutí jakékolv jné klávesy funkc HELP ukonèí. F - v pøíkazovém øádku mohou být uvedeny tyto pokyny odesílané klávesou [Enter] (dále uvádìné lomené závorky nejsou souèástí pøíkazù, vyznaèují jen parametry, které jsou nepovnné): nc vymazání pøíkazového øádku a pøesun kurzoru na jeho zaèátek [,j] nastavení ndexu prvku matce, který bude zobrazen vlevo nahoøe (vymezen zobrazované èást matce) L[,j] nastavení kurzoru na prvek v -tém øádku, j-tém (mplctnì prvním) sloupc matce K[,j] nastavení rozmìru matce (-poèet øádkù, j-poèet sloupcù) S[j] sloupec dspleje, na který se bude vracet kurzor po Enter (nastavení levého okraje pro edtac /týká se režmu celoobrazovkové edtace/) Iw nastavení formátu zobrazení pro typ Integer Ew,d nastavení formátu pro typ Real nebo Double precíson A[w] aktvace režmu zadávání èíselných dat z pøíkazového øádku do aktvního prvku matce, jehož poloha se automatcky nkrementuje pø odeslání hodnoty, ale je možné j mìnt klávesam pro posun kurzoru a PgUp, PgDn. Parametr w-poèet sloupcù, jejchž ndexy se po odeslání pøíkazu Aw specfkují (není-l parametr w uveden, platí pøedchozí nastavení). Režm vkládání dat je ukonèen napø. odesláním nenumercké položky. B,j vymezení bloku øádku s ndexy až j (bude zvýraznìn) R[] uplatní se jen tehdy, když edtujeme strukturovanou matc. =1,,...6 znamená pøechod na edtac jedné z 6-t referencovaných submatc. R bez ndexu znamená návrat k matc pùvodní. Následující pøíkazy (bez parametru) jsou pøepínaèe tam a zpátky a jejch nastavení je ndkováno symboly Trn Map Free/Fx Comp v pøíkazovém øádku T transpozce M místo prvku matce se budou zobrazovat jejch ndexy v zónì COMMON// F pevný nebo volný formát edtace (Fx formát pro opravy a Free formát pro poøzování nových dat) C v režmu Comp lze místo èíselných konstant psát do datového pole výrazy (1/3..) F3 - øádkové operace: pøøazení hodnot algebrackého výrazu celému øádku, napø. R=ABS(R3-R4). Detaly uvedeme pozdìj. F4 - sloupcové operace: analoge F3 (napø. C=ABS(C3-C4) ). Funkc F4 mùžeme použt nejen pro vytváøen modelových dat, ale pro výpoèet hodnot rezdu, souètu ètvercù odchylek ap. F5 - I[,n] operace Insert- vkládání n-volných øádku pøed øádek. Deklaraèní rozmìry matce se však nezmìní, takže posledních n-øádku bude zrušeno. F6 - D[,j] operace Delete - zrušení øádku až j; rozmìry matce zùstávají a posledních j-+1 øádku se vynuluje.
14 F7 - I[,n] operace Insert shodná s F5, ale provede se zmìna katalogových údajù (matce se rozšíøí o n øádek). F8 - D[,j] operace Delete shodná s F6, ale se zmenšením poètu øádkù matce F9 - ukonèení ènnost procedury F10- rozšíøení základních funkc edtoru; zde použto pro vyvolání menu (nastavení významu sloupcù, transformace dat, mport dat ze souboru, aktvace edtoru žurnálu). Øádkové nebo sloupcové operace probíhají takto (napø. pro sloupce): V cyklu pøes øádky matce 1 až (vymezené jako blok pøíkazem B 1 [F]) se provede pøøazovac pøíkaz v nìmž lze použít následující promìnné: Ck - vektor všech prvku zpracovávaného øádku matce (Ck-prvek v k-tém sloupc matce, napø. C1=C je pokyn pro kopírování sloupcù) I - ndex zpracovávaného øádku (napø. C=0.01*I ) S - pomocná promìnná, která se pøed zaèátkem cyklu nuluje; používá se pro souètové operace (napø. S=S+C1 souèet prvku 1.sloupce) Na levé stranì pøíkazu mùže být buï prvek vektoru C nebo promìnná S. Na pravé stranì výraz s promìnným C, S nebo I a s operátory + - * / ** < > <= >= <> 7 9 0. K dspozc jsou funkèní procedury: SIN(x), COS(x), ATN(x), EXP(x), LOG(x), LGT(x), SQR(x) /druha odmocnna/, ABS(x), MIN(x1,x,...), MAX(x1,x,...), ERF(x) /funkce chyb/, GAM(x) /Gamma funkce/, L(n,x), T(n,x), P(n,x) /Laguerrovy, Cebysevovy, Legendreovy ortogonální polynomy stupnì n/, J(n,x), Y(n,x) /Besselovy funkce stupnì n/, RND(x) /generátor pseudonahodných èísel v ntervalu <0,1>/ a A(a,,j) /hodnota prvku matce s ndexem a, který je v -tem øádku, j-tem sloupc/. Funkce A má promìnný poèet parametrù; mùžeme psát napø. jenom A(,j) a znamená to, že -a- je právì edtovaná matce. Uveïme pøíklad: Chceme umístt do druhého sloupce matce každý druhý prvek prvního sloupce. Dejme tomu, že pùvodní matce má 0 øádku; nejprve zmenšíme její rozmìr na polovnu (tj. ROWS=10) nebo defnujeme blok aktvních øádku B 1 10 [F]. A napíšeme pøíkaz C=A(*I-1,1), který se po odeslání ([Enter] nebo [F4]) bude provádìt pro všechny aktvní øádky, tj. I=1,,...,10.
15 Dodatek A MTOOLS +---IMI 3686---IMA 0000-----------------------------------------------MTOOLS-+ Drectory of matrces 1 MAP= MAP= 3 MAP= 4 MAP=1 5 MAP=3 1» 88 89» 308 309» 318 319» 478 479» 538 -IIIIIIIIIII----TTTTTTTTTTT 1RRRRRRRRRR 1-TTTTTTTTTTT----RRRR-----------+ IIIIIIIIIII 15 10 TTTTTTTTTTT RRRR IIIIIIIIIII TTTTTTTTTTT RRRR 5 IIIIIIIIIII 9 TTTTTTTTTTT 8RRRR IIIIIIIIIII TTTTTTTTTTT RRRR IIIIIIIIIII TTTTTTTTTTT 4 IIIIIIIIIII TTTTTTTTTTT 13 19 10 MAP=0 9 MAP= 8 MAP= 7 MAP= 6 MAP=3 6 5 599» 698 579» 598 539» 578 539» 538 -RRRRRRRR-------IIIIIIIIIII 1RRRRRRRRRRR 1IIIIIIIIIII----RRRR-----------+ RRRRRRRR 100 0 IIIIIIIIIII RRRR RRRRRRRR 15 RRRR RRRRRRRR 15 RRRR 15 RRRRRRRR RRRR RRRR RRRR RRRR RRRR 8 4 +------------------------------------------------------------------------------+ F1-SED F-Save F3-Load F4-Dm F5-Copy F6-Del F7-New F8-Zero F9-Ext F0-Ext + F1 - SED zobrazení a možnost zmìny vybraných systémových promìnných. F - SAVE uložení všech systémových promìnných a matc do souboru se zvoleným jménem. F3 - LOAD ètení syst.promìnných a matc z dsku. V názvu souboru lze použít globální symboly *? (pak se vybírá z menu jmen souborù, které vyhovují specfkac) F4 - DIM zmìna katalogových parametru ( rozmìrù, typu matce atd.). Tato funkce umožòuje zmìnt všechny katalogové parametry aktvního pole, tedy maxmální délku pole (parametr LEN). K tìmto modfkacím jsme nucen sáhnout napø. tehdy, když máme tak velký poèet bodù pozorování, že stávající alokaèní délka LEN nestaèí. Je tøeba s však uvìdomt, že rozšíøení pole znamená posun všech následujících polí a že tyto zmìny je tøeba promítnout do matce atrbutu promìnných a vektorù, používaných pø nterakèní defnc modelu. F5 - COPY kopírování obsahu matc ( ale beze zmìny jejch rozmìru ). F6 - DEL zrušení vybrané matce a všech matc následujících F7 - NEW vytvoøení nové matce (bude poslední v poøadí). Mapovací funkce a typ prvku se volí z nabízeného menu a potom se specfkuj poèty øádku, sloupcù, maxmální délka celé matce ap. U strukturních matc se zadávají ndexy jž exstujících matc (které ovšem mohou byt také strukturní) z nchž je výsledná matce složena. F8 - ZERO vynulování vybrané matce. Do prvku typu TEXT se dosadí mezery. F9 - QUIT ukonèení ènnost procedury
F10 - EXTERNAL nastavení barev (znakových atrbutù) pro všechny motvy používané programem XREGA. 16
17 Dodatek A3 Prncpy Marquardtovy metody Postup odvození je zcela stejný jako u lneární regrese, to jest napíše se vztah pro souèet ètvercù odchylek namìøených dat a predkcí regresního modelu f(x, p,..., p ) 1 M : r N r s (b) = ( y -f(x,b) ) w, (A1) =1 r a hledá se takový vektor parametrù modelu b, který mnmalzuje s. Podmínkou jsou nulové dervace vzhledem k hledaným parametrùm b k N s b =- (y -f( x,b)) f( r r x,b) w 0. k =1 bk (A) Tato soustava rovnc je obecnì nelneární a musí se proto øešt teraènì. Nejprve nahradíme regresní r funkc f její první dervac Taylorovým rozvojem vzhledem k nelneárním parametrùm b = ( b,..., b M ) (ponecháme jen lneární èleny). Vektor b r budeme považovat za výchozí 1 aproxmac øešení a r r r b = b - b 0 je odchylka aproxmace od pøesného øešení r r r M f( x f( x,b) f( x,b )+,b 0 ) = 0 b m, m=1 bm r r f( x,b) f( x,b ) M r 0 f( x +,b 0 ) (A3) = b m. bk bk m=1 bk bm Dosazením této aproxmace do soustavy (A) obdržíme soustavu kvadratckých rovnc pro vektor pøírùstkù modelových parametrù b r : N M M f( x 0 0 0 y -f(x,b 0 )-,b ) f( x,b ) f( x bm +,b ) r r r r bm w =0. =1 m=1 bm bk m=1 bk bm (A4) V tìchto rovncích nyní vynecháme kvadratcké èleny (tj. souèny pøírùstkù b m ), protože jsou to velèny druhého øádu (a tedy dostateènì malé, pokud ovšem poèáteèní aproxmace b r nebyla 0 pøílš špatná). Výsledkem bude následující soustava lneárních rovnc (termnus techncus: soustava normálních rovnc) pro pøírùstky regresních parametrù b r : M N r f( x 0 0 0 ( [-(y -f(x,b 0 )),b ) + f( r r r x,b ) f( x,b ) ]w + λδ km ) b m = m=1 =1 bb k m bk bm N 0 = (y -f(x,b 0 )) f( r r x,b ) w (A5) =1 bk M C b = p, k =1,,..., M. m=1 km m k První èlen na levé stranì (s druhou dervací regresní funkce) je zpravdla malý a obvykle se zanedbává (všmnìte s, že je malý napø. tehdy, jsou-l malé odchylky regresního modelu od expermentálních dat). Pokud je ponechán, pøedstavuje (A5) víceménì klasckou metodu øešení soustavy nelneárních algebrackých rovnc Newtonovu Raphsonovu. Tato formulace se pøílš èasto nepoužívá, protože u složtìjších regresních modelù je výpoèet druhých dervací pracný a matce soustavy mùže být nepøíznvì ovlvnìna mìøeným hodnotam y (špatná podmínìnost).
18 Ponecháme-l v soustavì (A5) pouze druhý èlen (s prvním dervacem regresní funkce) jde o Gaussovu metodu øešení nelneární regrese. V tomto pøípadì jž matce soustavy C nezávsí na zmìøených hodnotách závsle promìnné y. Poslední èlen levé strany ( λ δ km ) je zavedený umìle a slouží ke stablzac øešení (aby tehdy, když by byl determnant matce soustavy velm malý nebo dokonce nulový, se alespoò nìjaké øešení najít dalo). Pokud je tento èlen velký (tj. je-l velký koefcent λ ) bude mít vypoètený pøírùstek vektoru regresních parametrù b r smìr gradentu mnmalzované funkce s (povšmnìte s toho, že vektor pravé strany soustavy rovnc (A5) je zápornì vzatý dvojnásobek gradentu s ). To tedy znamená, že volbou λ mùžeme dost podstatnì ovlvnt chování teraèního algortmu; pro malé hodnoty λ bude øešení odpovídat Gaussovì metodì (rychlé, ale vyžadující dobrou poèáteèní aproxmac regresních parametrù), zatímco pro velká λ pùjde o metodu gradentní (která je pomalá, ale spolehlvá). Použtí stablzaèního èlenu (zvìtšení dagonálních prvkù matce soustavy) navrhl Levenberg a Marquardt upøesnl efektvní algortmus dynamckého mìnìní souèntele λ v prùbìhu terací; proto se tato varanta (rozhodnì nejpoužívanìjší ze všech regresních algortmù) nazývá Levenbergova Marquardtova metoda. Matce soustavy normálních rovnc (A5) se dá využít pro orentaèní odhad nepøesnost vypoètených parametrù b r. Interval spolehlvost (nebo jná analogcká statstka, napø. smìrodatná odchylka) tìchto parametrù je dán nepøesností expermentálních dat y a dokonalostí, s níž je regresní model schopen expermentální prùbìh aproxmovat (je jasné, že kdyby všechny namìøené body byly pøesné a shodovaly se s predkcí regresního modelu, byly by vypoètené parametry b r naprosto pøesné). Vhodnou statstkou, která tyto odchylky posthuje je smìrodatná odchylka expermentálních bodù od modelové predkce: σ = s N-M σ(y ). Poznámka: N-M ve jmenovatel je poèet stupòù volnost; nestranný odhad smìrodatné odchylky tedy není jednoduše druhá odmocnna z artmetckého prùmìru ètvercù odchylek jednotlvých bodù, ale hodnota o nìco vìtší (kdyby byl poèet dat shodný s poètem parametrù modelu, byl by dokonce nestranný odhad smìrodatné odchylky neurètelný /což je rozumné, protože v tom pøípadì jde o nterpolac, kdy s =0/). Poznámka termnologcká: σ je smìrodatná odchylka a její druhá mocnna σ se nazývá varance. Je-l urèena matce soustavy C (A5) a smìrodatná odchylka dat (A6), lze odhadnout varance jednotlvých vypoètených parametrù p k takto: (b )= C, k =1,,..., M, (A6) -1 σ k σ kk (A7) kde C -1 oznaèuje nverzní matc soustavy normálních rovnc (má hlubší význam a své jméno - kovaranèní matce parametrù, C kj -1 jsou totž kovarance dvojc parametrù b k a b j 1); varance parametrù regresního modelu je tedy pøímo úmìrná varanc dat y a pøíslušnému dagonálnímu prvku kovaranèní matce. Tento vztah používá vìtšna komerèních programù (m.j. program 1 Kovaranèní matce slouží m.j. k posouzení nadbyteènost nìkterých regresních parametrù (projevující se vysokým hodnotam vzájemných kovarancí).
19 XREGA, kde hodnoty σ ( b k ) jsou uloženy ve ètvrtém sloupc matce parametrù modelu) a je uvádìn v øadì monografí, napø. Press 1986. Nyní ukážeme na jakých prncpech je vztah (A7) založen a kdy je jeho použtí oprávnìné. Formulujme problém pøesnìj: Máme stanovt varanc parametrù regresního modelu b k, které závsí na mìøených hodnotách y, jejchž varanc známe (A6). Je-l rozložení chyb mìøených dat normální (tj. odpovídá-l Gaussovské dstrbuèní køvce), platí, že varance závslé velèny je vážených souètem varancí jednotlvých expermentálních bodù: N N bk k (b k )= (y )( =1 y ) ( b σ σ σ =1 y ) (A8) Poslední rovnost platí v pøípadì, že všechny expermentální body mají shodnou varanc (chybu mìøení). Poznámka: Vztah (A8) není žádnou magí; vyplývá pøímo z defnce dferencálu funkce více promìnných což povýšeno na druhou dává N bk d b ( y,y,...,y )= y dy, k 1 N =1 N b d b = ( y ) dy + N N k b k =1 =1 j=1,j y k b y k j dy dy. j (A9) (A10) Pøedstavme s nyní, že dferencály db k jsou odchylky parametrù b k a dferencály dy odchylky namìøených dat o nchž pøedpokládáme, že jsou nekorelované a že jejch støední hodnota je nulová. To ale znamená, že støední hodnota souènù dy dy j je pro všechny dvojce bodù j rovna nule, a z pøedchozí rovnce plyne (A8). Poznámka v poznámce: Nekorelovanost chyb znamená, že napø. z hodnoty dy nelze vùbec usuzovat na hodnotu dy +1. Parcální dervac k-tého parametru modelu b k dle -té mìøené hodnoty y mùžeme vypoèítat z øešení soustavy (A5) b = k M m= 1-1 Ckm p m (A11) a zvláš jednoduchý je tento výsledek v pøípadì Marquardtovy (nebo Gaussovy metody), kdy matce C nezávsí na hodnotách y a ze vztahu (A11) plyne M M bk -1 m -1 km km y = p C m=1 y = C f( r x,b ) w. m=1 bm (A1) Dosazením parcálních dervací parametrù modelu (A1) do vztahu (A8) získáme pøedps M M N -1-1 (b k )= CkmCkj w f( x,b ) f( x,b ) σ σ r r (A13) m=1 j=1 =1 b b m j
0 který jak vdno neodpovídá pøesnì vztahu (A7); ten je totž jen specálním pøípadem pro w =1 a λ =0, kdy platí, N f( x,p) f( x,p) C mj = r r =1 p p m j (A14) vz. (A5) a teprve tehdy se vztah (A13) se zjednoduší na formulku (A7). M M M -1-1 -1-1 σ (b k )= σ Ckj CkmC mj = σ C kjδ kj = σ C kk. (A15) j=1 m=1 j=1 Shrnutí: Odhad chyby (A7) není použtelný u Newtonovy metody øešení nebo tehdy, pøøazujeme-l jednotlvým expermentálním bodùm rùzné váhy (pak lze ovšem použít obecnìjší vztah (A13)). Chybné odhady dostaneme tehdy, když je hodnota Marquardtova parametru λ pøílš vysoká (ke konc teraèního procesu Marquardtovy metody by se správnì mìla blížt k nule). Poznámka 1: Odhad chyby (A7) vychází z pøedpokladu Gaussovského rozložení chyb, což praktcky vyluèuje exstenc pøílš odlehlých bodù; ve skuteènost však tyto body nebývají výjmkou, což se projeví pøílš pesmstckým odhadem chyb parametrù. Mùžete proto zkust jný a mnohem jednodušší postup založený na opakované regres s mírnì modfkovaným vzorky dat (využtím generátoru náhodných èísel). Pro každý vzorek "vymyšlených" dat dostanete ponìkud odlšné hodnoty parametrù modelu a jejch porovnáním (nebo vyèíslením jejch smìrodatné odchylky) získáte as vìrohodnìjší obrázek o spolehlvost vypoètených regresních parametrù. Poznámka : Pø porovnávání "kvalty" dvou rùzných modelù je rozhodující hodnota smìrodatné odchylky dat od regresního modelu (A6). Nìkdy se pro vyjádøení téhož používá výše uvedený korelaèní ndex, který nabývá hodnotu 1 když je souèet ètvercù odchylek nulový (dokonalé proložení dat) a hodnotu 0, když regresní model dává stejnou odchylku jako pø nahrazení prùbìhu y(x) konstantou - støední hodnotou (nejhorší možný regresní model).