<<< A40. Vier vernieuwde programma's
KKLCABC.83P ; KKFUNA.83P ; KKFUNAB.83P; RGREXTRA.83P
Op 6 dec 2003 zijn deze programma's gereviseerd (m.n. sneller gemaakt) en is een samenvattend totaalprogramma RGREXTRA geconcipeerd (zonder intro). Voor dit laatste programma moeten vooraf de data in L1 en L2 geplaatst worden (x in L1, y in L2) en de betrokken functie(s) in Y1 en Y2.

De methode DER KLEINSTE KWADRATEN
voor het bepalen van het "beste" functievoorschrift.


Stel we hebben een aantal meetpunten (xk, yk) (k=1,2,3...n) waarbij we een passend functievoorschrift willen vinden. Neem bijvoorbeeld een dobbelsteen en gooi daar 10 keer mee. Zet randInt(1,6,10) in L2, hiernaast is dat geïllustreerd. We zoeken nu een constante functie y = a die zo goed mogelijk past bij deze uitkomsten. Neem aan dat de n uitkomsten normaal verdeeld zijn rond y = a, volgens een Gauss-waarschijnlijkheid die evenredig is met exp[-(yk-a)2] .
De grootst mogelijke totale kans op een kleine gemiddelde afwijking is dus evenredig met het product
exp[-(y1-a)2].exp[-(y2-a)2].exp[-(y3-a)2].... dus evenredig met exp[-S(yk-a)2]
Conclusie: voor de beste aanpassing moet K(a) = S[(yk-a)2] minimaal zijn. Met andere woorden, de som van de kwadraten der afwijkingen moet minimaal zijn. Dit heet het principe Der Kleinste Kwadraten.
Laten we eens beginnen met de simpelste aanpassing in het voorgaande geval: de horizontale lijn. Schuif een horizontale lijn door de meetpunten en reken uit op welke hoogte de kwadratensom minimaal is. De analytische uitwerking gaat via het inzicht dat voor een minimum uitkomst de (partiële) afgeleide van K naar a nul moet zijn en dat daarbij de kettingregel gebruikt moet worden (het zogenaamde impliciete differentiëren):
d/da = 0 geeft S[2.(y - a ).1] = 0 geeft S (y - a) = 0 dus Sa = Sy oftewel a.n = Sy (n = aantal punten) dus a = Sy/n; hier a = 41/10 = 4.1; de best passende constante functie is dus het gemiddelde (4.1) van de uitkomsten!

Uitproberen levert in het gekozen voorbeeld voor a = 3.9 t/m 4.3 resp K = 37.3, 37.0, 36.9, 37.0 en 37.3;
het gemiddelde 4.1 heeft inderdaad de laagste kwadratensom.
Met
Y1 = sum((L2-X)2) krijg je de grafiek van K tegen a.
Waarna
CALC 3:minimum het antwoord 4.1 oplevert. Zie het plaatje.

De methode der kleinste kwadraten resulteert in de regressielijn voor aanpassing aan de lineaire functie y = ax + b. Minimaliseer daarvoor S (y - (ax+b) )2. Er moeten nu twee afgeleiden nul gesteld worden:
d/da = 0 geeft S (y-ax-b).-x = 0 en
d/db = 0 geeft S (y-ax-b).-1 = 0
leidend tot twee vergelijkingen in a en b:

a.Sx2 + b.Sx = Sxy en
a.Sx + b.n = Sy; hier:

205.a + 55.b = 203 en
55.a + 10.b = 41
met oplossingen a = 0,23 en b = 2,83

In ons voorbeeld is de best passende (niet-horizontale) lijn dus de lijn y = 0,23x + 2,83 (al is dat hier een tamelijk zinloos resultaat).

Als een niet-lineaire functie in a (zoals bij y = (x - a)2 of y = xa ) gezocht wordt, is linearisatie van a de aangewezen weg:
Maak een eerste (zo nauwkeurig mogelijke) schatting van a (die noemen we even a0) en neem in plaats van f (a) de eerste twee termen (het lineaire deel) van de Taylorreeks:
f (a) = f (a0) + (a-a0).f '(a0) waarbij f '(a0) op de TI83 gehaald wordt uit nDeriv(Y1,A,A).
Gebruik vervolgens de uitkomst van a als start voor een nieuwe, betere schatting. De herhaling van dit door Newton bedachte proces heet iteratie.

REGRESSIEPROGRAMMA'S

Een regressieprogramma zoekt het best passende functievoorschrift bij een aantal meetpunten (x,y).
Op de Ti83 zijn tien regressiemodules (onder STAT CALC) beschikbaar:
LinReg (2x), QuadReg, CubicReg, QuartReg, LnReg, ExpReg, PwerReg, LogisticReg en SinReg.
Toch is niet ieder functietype bereikbaar.
Neem bijvoorbeeld functies als f (x) =
a.x, a.x2 + bx, (x - a)2, 1 + a.bx, a.xb + c/x
De methode die de kwadratensom S(f - y)2 minimaliseert door de partiële afgeleide(n) nul te stellen kan gebruikt worden om het bedoelde soort functies te behandelen.

(1) Het gemakkelijkste type samengestelde functie is de lineaire combinatie van parameters:
y = a.f (x) + b.g(x) + c. Daarbij hoeft slechts een stelsel van drie lineaire vergelijkingen opgelost te worden. Zie programma KKLCABC.83P.

(2) Lastiger (tijdrovender) zijn de functies waarin de parameters niet in lineair verband voorkomen. Het werken met de partiële afgeleide(n) bleek teveel tijd te kosten, maar gelukkig kan het ook direct, nl. met MATH 6: fMin(kwadraatsom,A) en daarna iteratie.
Zie de programmaregel met fMin(sum(L3-L2)2),A,L,R)®A
Het programma KKFUNA.83P is er voor functies als f (x) = a.x (de eenvoudigste) en f (x) = a ^ x (die als éénterm natuurlijk ook met PwerReg behandeld zou kunnen worden) maar ook bijvoorbeeld: f (x) = (x - a)2.

Bij de hiernaast getekende punten (x, y) geeft LinReg L1,L2 als regressielijn
y = 3,29x - 0,57

Als we de regressielijn per se door (0,0) willen, gebruiken we
KKFUNA
en komt er y = 3,15x


(3) Zodra een tweede parameter gebruikt wordt (zoals in f (x) = a.x2 + bx), moeten we het nodige geduld betrachten met de tweede methode. Belangrijk is een goede eerste schatting voor a en b, want "de" oplossing is al gauw niet eenduidig meer!
Het programma KKFUNAB.83P doet een poging. (Het lukt overigens ook met KKLCABC doordat er hier een lineaire combinatie van a en b staat).

Dan nu drie voorbeelden van regressiegevallen.

KKLCABC.83P: y = ax + b/(x+1)
 

KKFUNA.83P: y = Ö(x+a)

KKFUNAB.83P:
Stel dat je een aantal meetpunten hebt over de temperatuur van afkoelend water.
De daarbij horende functie is y = 20(1 + a.bx)


We testen het programma KKFUNAB met de ordinaire rechte lijn: y = 2x + 3 en een slechte eerste schatting voor a en b:
a=10 en b=10: