Regresjon og modellering
Å gjøre en lineær regresjon betyr å gå fra observerte/oppgitte data til en lineær modell som kan brukes til å beskrive dataene. En slik modell kan vi også bruke til å si noe om omtrentlige verdier utenom de observerte dataene våre. I denne artikkelen skal vi ta utgangspunkt i to eksempler for å vise hvordan vi kan gjøre en regresjon. Vi gjør den ene regresjonen med GeoGebra og den andre med Python.
Folketallsutvikling i Norge – regresjon med GeoGebra
Tabellen under er hentet fra statistisk sentralbyrå (SSB) og viser folketallet i Norge for noen utvalgte år i perioden fra 1950 til 2000.
Årstall | 1950 | 1960 | 1970 | 1980 | 1990 | 2000 |
---|---|---|---|---|---|---|
Folketall | 3 249 954 | 3 567 707 | 3 863 221 | 4 078 900 | 4 233 116 | 4 478 497 |
Vi ønsker å undersøke om det er en sammenheng mellom årstall etter 1950 og folketallet.
Når vi skal lage modeller der vi ser på utvikling over tid, er det vanlig å bruke andre verdier enn årstallene på x-aksen. Det kan også være lurt å ikke ha for store eller små tall på aksene. Vi har derfor laget en ny tabell der x er antall år etter 1950 og er folketallet i antall millioner:
0 | 10 | 20 | 30 | 40 | 50 | |
---|---|---|---|---|---|---|
3,2 | 3,6 | 3,9 | 4,1 | 4,2 | 4,5 |
Vi plotter punktene i et koordinatsystem for å se om det er en sammenheng mellom antall år som har gått siden 1950, og hvor mange innbyggere det er i Norge.
Vi ser at punktene ligger tilnærmet på ei rett linje. Dette betyr at folketallet i Norge har hatt en tilnærmet lineær vekst i perioden fra 1950 til 2000.
Vi ønsker å finne likningen til den linja som best tilnærmer denne veksten.
Vi velger "Regneark" i GeoGebra og legger tallene fra tabellen inn i regnearket. Legg merke til at det lønner seg å legge x-verdiene og y-verdiene i hver sin kolonne. Merk så området der du har lagt tallene, velg "Regresjonsanalyse". Velg lineær modell i nedtrekksmenyen. Du får da opp dette bildet:
Vi har at funksjonen er en matematisk modell som tilnærmet beskriver utviklingen i Norge fra 1950 til 2000.
Stigningstallet er 0,024 3. Det betyr at etter denne modellen øker folketallet i Norge gjennomsnittlig med 24 300 personer per år, og folketallet vil være 4,87 millioner i år 2015. Se punktet (65, 4.87) på grafen nedenfor.
Tall fra SSB viser at folketallet i Norge var 4,6 millioner i 2005 og 4,9 millioner i 2010. Det passerte 5,2 millioner i 2015. Se punktene i diagrammet. Folketilvekst i 2014 var ifølge SSB på 56 749 personer.
🤔 Tenk over: Synes du modellen fra år 2000 var en god modell til å forutsi folketallsutviklingen i årene 2000 til 2015? Undersøk hva folketallet i Norge er i dag. Mener du at modellen fra år 2000 fortsatt kan brukes til å forutsi framtidig folketallsutvikling, eller bør det lages nye modeller?
Overføring av modellen til grafikkfeltet
Hvis du skal arbeide videre med modellen du har laget, kan du overføre modellen til grafikkfeltet ved hjelp av knappen ved siden av "punktdiagram" og velge "Kopier til grafikkfeltet".
Omkrets av en sirkel – regresjon med Python
Vi vil undersøke sammenhengen mellom radius til en sirkel og omkretsen av sirkelen.
Vi har valgt å bruke GeoGebra til å tegne fire sirkler med radius på henholdsvis 0,31 cm, 1,40 cm, 2,30 cm og 3,30 cm.
Deretter har vi brukt kommandoen "Omkrets()" i algebrafeltet for å finne omkretsen til sirklene, som vist på bildet.
For hver verdi av radius, som vi kan kalle x, får vi en verdi for omkretsen, som vi kan kalle
Vi setter resultatene opp i en tabell.
Radius x | 0,31 | 1,40 | 2,30 | 3,30 |
---|---|---|---|---|
Omkrets | 1,95 | 8,80 | 14,45 | 20,73 |
Vi gjør som i eksempelet over: Vi må først sjekke om punktene ser ut til å vise en sammenheng mellom radius og omkrets. Til det bruker vi funksjonen "scatter()". Programmet kan se slik ut:
Kjør koden, og du vil oppdage at punktene ser ut til å ligge på ei rett linje.
For å finne den rette linja i Python importerer vi "curve_fit" fra biblioteket "scipy.optimize". Programmet for å gjøre en lineær regresjon og tegne målepunktene og modellen kan se slik ut:
Når vi kjører denne koden, får vi modellen
🤔 Tenk over: Du har tidligere lært at omkretsen til en sirkel er
I kompetansemålene står det at du skal kunne vurdere hvor gyldig en modell er.
Formelen for sammenhengen mellom radius i en sirkel og omkretsen av sirkelen,
Modellen vi fant for å beskrive hvordan folketallet i Norge utvikler seg, er mer usikker. For det første ser vi at linja ikke treffer punktene fra tabellen helt nøyaktig. Den linja som framkommer ved lineær regresjon, er den som totalt sett har minst avvik fra punktene.
Den lineære modellen har stigningstall 0,024 3. Det betyr en vekst i folketallet på 0,024 3 millioner eller 24 300 per år. Er det realistisk at folketallet her i landet vil øke med cirka 25 000 per år i tida framover?
Hvor lenge vil denne utviklingen i så fall fortsette? Det er ikke lett å svare på dette. Her er det mange faktorer som kan virke inn. Vil politikerne begrense innvandringen til Norge, eller vil de åpne for fri innvandring? Hva med fødselspermisjoner og barnehagetilbud? Vil det bli lettere eller vanskeligere å være småbarnsforeldre?
Vi kan stille liknende spørsmål til andre matematiske modeller. Vi må alltid vurdere om en matematisk modell er gyldig, og spesielt må vi ta hensyn til forhold som kan påvirke situasjonen før vi bruker en modell til å si noe om hva som vil skje i framtida.
Nedenfor kan du teste kodene dine hvis du ikke har en egen editor tilgjengelig. NB: Editoren vil ikke være tilgjengelig under skriftlig eksamen.