Husk å følge instruksjonene nøye. All kode skal kommenteres, og figurer skal ha tydelig merkede akser. Oppgaven leveres ved å være merket “Mappe 2” og ligge i et repositorie kalt “SOK-1003-H23” som er delt med faglærer og studentassistent som beskrevet her
Det er lov å bruke ChatGPT og annen kunstid intelligens, men dialogen med KI må legges ved. Husk at god og veldokumentert bruk av KI belønnes karatkermessig. Det er lov å starte en ny chat for å få en mer oversiktlig logg, dersom det er mye unødvendig og irrelelevant i den orginale chatten.
Ved å legge ved chatten, dokumenterer dere også eventuelle feil som KI gjør, og slipper å hefte ved det. KI kan gjøre feil helt uten grunn, men kanskje oftere fordi spørsmålet ikke er formulert bra nok.
Bruk av KI uten å dokumentere det er langt mer risikabelt. For det første er det juks, med de konsekvenser det kan medføre om det blir oppdaget. For det andre vil dere hefte ved alle feil som KI gjør.
Denne mappen vil inngå i den endelige karaktervurderingen, men dere får kun godkjent/ikke godkjent på denne innleveringen. Dere vil få mulighet til å forbedre svarene på både Mappe1 og Mappe2 før endelig innlevering.
Husk å forklare hva du gjør hele tiden i markedown in jupyterboken.
Last ned modulen download.py, og legg den i arbeidsmappen din (samme mappe som der jupyter arbeidsboken du jobber i er).
I denne modulen finnes funksjonen ssb
. Den laster tabeller fra Statistikkbanken til Statistisk Sentrabyrås (SSB) inn i en pandas DataFrame.
import download
json = """
<lim inn JSON-spørringen her>
"""
url = <lim inn url'en her>
df = download.ssb(url, json)
df
df = df.set_index(<tidsvariabel>)
df = df.pivot(columns=<navnet på kolonnen med verdiene du ønsker som kolonnenavn>, values=<navnet på kolonnen der dataverdiene ligger>)
Du skal nå ha en DataFrame med minst de to kollonene som du tror det kan være sammenheng mellom.
Husk å forklare hvilke data du har valgt og hvorfor.
import numpy as np
cov = np.cov(x, y)
b = cov[0,1]/cov[0,0]
a = np.mean(y) - b*np.mean(x)
Kovariansmatrisen forteller noe om i hvilken grad det er sammenheng mellom variabler. Elementene cov[0,0]
og cov[1,1]
forteller hvor mye den første og den andre variablene varierer. cov[1,0]
og cov[0,1]
er identiske, og forteller hvor mye sammenheng det er mellom variablene.
f(x, a, b)
, som returnerer a + b * x
def sumsq_errs(x, y, f, a, b):
return np.var((y-f(x, a, b)))
Denne funksjonen returnerer et mål på hvor stor forskjelle det er mellom elementene i variabel y og elementene fra funksjonen f(x, a, b)
calc_errs(x, y, f, a, b, its)
som regner ut dette avviket for ulike verdier av b. De nye verdiene for b skal være i intervallet b-0.5 til b + 0.5. Antall verdier i intervallet som det skal regnes på, er gitt ved its
.sp.diff(cov[1,1]- 2*cov[0,1]*b + b**2*cov[0,0])
cov[1,1]- 2*cov[0,1]*b + b**2*cov[0,0]
inn i plottet i plot_and_print