Eksponentialfunksjonen som modell. Regresjon
Antall ørret i et vann har økt kraftig etter at det i 1998 ble satt i gang med kalking av vannet. Tabellen viser antall ørret i vannet noen år etter 1998.
Årstall | 1998 | 2000 | 2002 | 2004 |
---|---|---|---|---|
Antall år etter 1998, | 0 | 2 | 4 | 6 |
Antall ørret i tusen, | 4,0 | 6,7 | 10,9 | 17,4 |
Tabellen viser at ørretbestanden øker mer og mer. Vi vil finne en modell for utviklingen av ørretbestanden.
Vi legger dataene fra tabellen inn i regnearket i GeoGebra. Så merker vi cellene og klikker på knappen for regresjonsanalyse.
Punktene viser at vi må finne en funksjon som vokser raskere og raskere ettersom -verdiene øker, noe vi også ser direkte av tabellen. Derfor kan en eksponentiell modell passe godt med de observerte verdiene.
Ved å velge "Eksponentiell 2" som regresjonsmodell får vi tallet som grunntall i potensen.
Vi får funksjonen gitt ved
som modell for utviklingen av ørretbestanden.
For å få grafen og punktene over i det vanlige grafikkfeltet kopierer vi den over ved å trykke på knappen til høyre for innstillingshjulet, og vi velger "Kopier til grafikkfeltet".
Av grafene kan vi for eksempel se at ut fra denne modellen vil ørretbestanden ha passert 46 000 individer i 2008 og 76 000 individer i 2010.
Regresjon med Python kan gjøres på flere måter. Her har vi valgt å bruke metoden curve_fit
fra scipy.optimize
selv om den gir oss mer data enn vi skal bruke her.
Metoden er basert på at vi angir i koden hva slags type funksjon som skal brukes i den matematiske modellen. Dette gjøres ved å definere modellen som en egendefinert pythonfunksjon i koden. I vårt tilfelle ønsker vi å tilpasse målingene til en eksponentialfunksjon av typen
Parametrene til pythonfunksjonen modell
er først den frie variabelen x
, deretter konstantene som skal brukes i modellfunksjonen, modell
brukes av metoden curve_fit
sammen med ei liste med curve_fit
gir tilbake to lister. Den ene inneholder de to konstantene a
og b
(i vårt tilfelle) som gjør at den matematiske funksjonen vi definerte i pythonfunksjonen modell
, passer mest mulig med måledataene. Den andre lista inneholder de såkalte kovariansene, som vi ikke skal bruke her.
Koden kan videre se slik ut:
Kjøring av koden gir følgende utskrift:
"Funksjonen blir f(x) = 4.126e^(0.240x)."
Vi får nesten den samme modellfunksjonen som med GeoGebra. Årsaken til at det ikke blir likt, kan være at ulike programmer kan bruke litt ulike måter å regne seg fram til resultatet på.
Etter modellen vil ørretbestanden fortsette å vokse raskere og raskere. Er det slik det vil utvikle seg videre?
Registreringen av ørretbestanden fortsatte hvert andre år etter 2004. Resultatene ser du i tabellen nedenfor.
Årstall | 1998 | 2000 | 2002 | 2004 | 2006 | 2008 | 2010 |
---|---|---|---|---|---|---|---|
Antall år etter 1998, | 0 | 2 | 4 | 6 | 8 | 10 | 12 |
Antall ørret i tusen, | 4,0 | 6,7 | 10,9 | 17,4 | 21,5 | 24,5 | 26,0 |
I koordinatsystemet nedenfor ser du grafen til
Det viser seg altså at modellen ikke var egnet til å si noe om utviklingen i perioden etter 2004.
Eksponentialfunksjoner passer ofte godt til å beskrive hvordan populasjoner endrer seg i et begrenset tidsrom mens det er rik tilgang på mat og lite eller ingenting som begrenser veksten.
Etter hvert blir utviklingen annerledes. Når populasjonen blir stor nok, bremses veksten fordi det for eksempel blir for lite mat.
På teorisiden "Logistisk vekst" ser vi på en matematisk modell som passer bedre til utviklingen i ørretbestanden.