Anvendt Statistikk (MET 2010)
Høsten 2022
NTNU Handelshøyskolen
Johannes Mauritzen
Kontakt
Beste måten å ta kontakt med meg er via mail:
johannes.mauritzen@ntnu.no
Jeg prøver å svare på mail innen en arbeidsdag (24 timer)
For teknisk eller faglig hjelp, så er det best å komme til klassetimene (se under.)
Om kurset
Dette kurset handler om hvordan å gjennomføre en fullstendig data-analyse med moderne verktøy og metoder. Statistiske modeller, metoder og tester er viktige komponenter i dette kurset, men kurset gir også en innføring i data-håndtering, visualisering og deskriptiv-analyse.
Dette er et gjøre-kurs . Filosofien er at den beste måten å lære data-analyse på er å egentlig gjøre data-analyse. Fra første uke kommer du til å jobbe med data og data-håndtering. Vurderingen i dette kurset er også basert på innlevering av en prosjektoppgave.
Python og co.
I dette kurset bruker vi Python sammen med pakker for dataanalyse. Det er flere grunner for dette:
- Python (sammen med R) er verktøyene som er mest brukt i næringslivet, særlig når det gjelder maskinlæring.
- Mange andre kurs i maskinlæring, business analytics og statistikk ved NTNU og andre universiteter tar i bruk Python.
- Python og data-analyse pakkene er open-source, transperant, og har et stort nettverk med utviklere og brukere.
- Det er lett å finne hjelp når man har problemer.
- Som NTNU bachelorstudent, har du allerede eksponering til programmering i Python.
Kurset er vanskelig og verdiful
Kurset er vanskelig og du kommer til å oppleve frustrasjon og forvirring. Det er vanlig.
Men hvis du gjør en innsats, kommer du til å få mye ut av dette kurset. Du kommer ikke til å lære alt om statistikk og data-analyse i dette kurset. Men du kommer til å få verktøyene du trenger til å lære selv nesten hvilken som helst metode eller teknikk.
Opplegget
Labber
Kurset er bygget opp rundt 14 "labber". Du burde jobbe gjennom labbene - det vil si prøve å replikkere arbeidet i labbene -- i grupper. Det er øvelser i slutten av hver labb og du burde prøve å gjøre alle øvelsene. Labbene er skrevet på engelsk. Jeg jobber gjennom semesteret med å ferdiggjøre labbene, men du kan gå ut i fra at labbene er ferdig til den uken som er indikert i kursplanen (under).
Hjelpesesjoner
Det vil ikke være tradisjonelle forelesninger i dette kurset. Det meste av informasjonen du trenger er i labbene og pensum.
Vi bruker heller klassetiden som hjelpesesjoner. Her skal jeg være tilgjengelig for å svare på spørsmål og hjelpe med utfordringer. Det kan være lurt å lese pensum og begynne å jobbe gjennom labbene hjemme, mens man bruker klassetiden til å jobbe med øvelser.
Innleveringer
Det er fire obligatoriske innleveringer som du må bestå for å kunne levere inn prosjektoppgaven. Du kan jobbe i grupper med opptil 3. Disse består av oppgaver fra labbene (se under for detaljer).
Vurdering
Vurdering i kurset er basert på en individuell prosjektoppgave. Se detaljer under.
Feedback
- Vanderplas. Python Data Science Handbook (2016). [PDS]
- Gelman, Hill and Vehtari. Regression and Other Stories [ROS]
- Hyndman and Athanasopoulos. Forecasting: Principles and Practice (3rd ed.) [FPP3]
- Valgfritt: Downey. Think Stats
- Anbefalt: Spiegelhalter. The Art of Statistics.
Pensum:
Det er deler av tre bøker som er pensum for dette kurset. Bøkene er tilgjengelig gratis digitalt for personlig bruk. Det er mulig å også kjøpe papir utgave (amazon, etc.) Jeg anbefaler også to andre bøker.
-
Sted: A31 GL-EG "Rustbygget"
Kursplan
Uke | Thema | Lab | Sol. Sketch | Pensum | Hjelpesesjon |
---|---|---|---|---|---|
Uke 34 | Introduksjon, Python og Numpy | Prelab Lab 1 | Sketch, lab 1 | PDS Ch 1, 2 | 22.08, 1115-1300 |
Uke 35 | Datahåndtering med Pandas | Lab 2 | Sketch, lab 2 | PDS Ch 3 | 29.08, 1115-1300 |
Uke 36 | Håndtering av større data: Split-Apply-Combine og Merge | Lab 3 | Sketch, lab 3 | PDS Ch 3 | 05.09, 1115-1300 |
Uke 37 | Visualisering og transformasjon | Lab 4 | Sketch, lab 4 | ROS Ch 2, PDS Ch 4 | 12.09, 1115-1300 |
Uke 38 | Sansynlighet og simulasjon | Lab 5 | Sketch, lab 5 | ROS Ch 3, Ch 4 | 19.09, 1115-1300 |
Uke 39 | Inferens og simulasjon | Lab 6 | Sketch, lab 6 | ROS ch 5 | 26.09, 1115-1300 |
Uke 40 | Enkelregresjon | Lab 7 | Sketch, lab 7 | ROS 6-8 | 03.10, 1115-1300 |
Uke 41 | Multippelregresjon | Lab 8 | Sketch, Lab 8 | ROS 10, ROS 12.1-12.4 | 10.10, 1115-1300 |
Uke 42 | Modell evaluering og diagnostikk | Lab 9 | Sketch, Lab 9 | ROS 11 | 17.10, 1115-1300 |
Uke 43 | GLM og logistisk regresjon | Lab 10 | Sketch, lab 10 | ROS 13-14 | 24.10, 1115-1300 |
Uke 44 | Bayesiansk teori og estimering | Lab 11 | Sketch, lab 11 | ROS 9 | 31.10, 1115-1300 |
Uke 45 | Identifikasjon og kausal modellering | Lab 12 | Sketch, lab 12 | ROS 19-21 | 07.11.2022, 1115-1300 |
Uke 46 | Tidsrekke statistikk og prognose | Lab 13 | Sketch, lab 13 | FPP3 Ch. 9 | 14.11, 1115-1300 |
Uke 47 | Tidsrekke statistikk og prognose | Lab 14 | Sketch, lab 14 | FPP3 Ch. 9 | 21.11, 1115-1300 |
Uke 49 | Frist: Valgfritt prosjektoppgave-innlevering for tilbakemelding | innlevering via blackboard | 5.12, kl. 12 |
How-to notes
Her er noen kortere notebooks som går gjennom noen vanlige oppgaver.
Obligatoriske innleveringer
- Innlevering via Blackboard.
- I form av en Jupyter notebook
- Levert som en jupyter notebook fil (.ipynb) eller pdf
- Vis alt arbeid/kode
- Kommentere resultatene.
- Første innlevering
- Frist: Mandag 19. September
- Oppgaver ("Assignments") 2 og 3 fra lab 1
- Oppgaver 2 og 3 fra lab 2
- Oppgave 3 fra lab 3
- Oppgave 3 fra lab 4
- Andre innlevering
- Frist: Mandag 17. Oktober
- Oppgave 4 fra lab 5
- Oppgave 4 fra lab 6
- Oppgave 5 fra lab 7
- Oppgave 2 fra lab 8
- Tredje innlevering
- Frist: Mandag 14. November
- Oppgave 4 fra lab 9
- Oppgave 2 fra lab 10
- Oppgave 3 fra lab 11
- Oppgave 3 fra lab 12
- Fjerde innlevering
- Frist: Mandag 28. November
- Oppgave 2 fra lab 14
Jeg vil først og fremst se at man har gjort en reell innsats på innleveringene. Hvis man har gjort det, så er det lite sannsynlig at man ikke får det godkjent. Men hvis man ikke skulle få det godkjent, så vil det også være mulig å levere inn igjen.
Prosjektoppgave
Frist: 22. desember, 1200
Leveres som PDF av en Jupyter Notebook i inspira
(I Jupyter Notebook kan du velge *Download As* og deretter velge *PDF via Latex*. Hvis det ikke fungerer prøv heller å laste ned som *HTML*,åpne med en nettleser, og deretter print til PDF.)
Kurset avsluttes med en prosjektoppgave.
- I oppgaven har du total frihet i å velge tema og data selv (du kan se listen over datakilder under hvis du trenger inspirasjon).
- Du kan skrive oppgaven på et skandinavisk språk eller på engelsk.
- Oppgaven skal være selvstendig, men du kan spørre andre studenter etter råd og hjelp.
- Oppgaven leveres i form av en PDF av en Jupyter Notebook.
- Du kan og burde begynne med oppgaven så tidlig som mulig (Hint: flere av oppgavene i labbene er "åpne", hvor du kan velge egen data.)
- En god plass å begynne er datakildene som jeg har listet under (ikke alle linker er oppdatert). Du er ikke begrenset til en datasett, men man burde prøve å holde seg til en tema, bredt definert.
- Det er ingen streng lengdekrav, men oppgaven burde vanligvis være mellom 2.000-4.000 ord (ikke inkludert kode).
- Oppgaven skal være en miks av en tradisjonell oppgave og en labb-rapport:
- Du skal ha en velskrevet introduksjon som motiverer tema, gir litt bakgrunn og beskriver dataen.
- Du burde inkludere kode (or forklaring av kode når det er aktuelt) for behandling av data, visualisering, modellering, modell evaluering og diagnostikk, osv.
- Du trenger ikke seksjoner for metode og teori, men du burde diskutere metode og teori.
- Du burde beskrive og tolke dine resultater.
- Du burde ha en konkluderene seksjon der du diskuterer dine resultater, implikasjoner,
- Alle oppgaver burde ha følgende elementer:
- Datahåndtering og transformasjon (lab 1-4)
- En utforskende og beskrivende analyse i form av visualisering og eventuelt tabeller. (lab 4 og videre)
- Enkel regresjon og tilsvarende visualisering/simulasjon av usikkerhet. (lab 7)
- Multippelregresjon (kan gjøres i form av punkt 8 under) (lab 8)
- "Fake" data simulasjon (lab 6-9)
- Diagnostikk og modellevaluering (lab 9)
- Diskusjon om identifikasjon og kausalitet (lab 12). Eventuelt (valgfritt) bruk av metode for identifikasjon:
- Regression discontinuity
- Matching
- Difference-in-difference
- Instrumental variables
- I tillegg, må du anvende minst en av de følgende metodene
- GLM/Logistisk-regresjon (lab 10)
- Bayesiansk-analyse/Decision analysis (lab 11)
- Tidsrekke-regresjon (lab 13-14)
- Du står også fritt å ta i bruk metoder som ikke er i labbene.
- Hvis du vil ha en ide om hvordan en oppgave burde se ut som, er labbene kanskje beste kilde.
- Kravene til prosjektoppgaven er ikke det samme som i en vanlig oppgave - bacheloroppgave, for eksempel. Elementer som en veldefinert problemstilling og teori er ikke så viktig. Man skal heller tenke på prosjektoppgaven som komplimentær til en vanlig oppgave. Den skal vise mye av analysen som ikke kommer i en endelig bachelor- eller masteroppgave: en deskriptiv analyse og ulike test-regresjoner som man sammenligner.
- Alle har anledning til å levere inn en utkast for tilbakemelding (se kursplan for frist.) Utkasten, i form av en jupyter notebook (.ipynb) leveres gjennom blackboard. Tilbakemeldingen blir hovedsakelig av struktur og modellvalg. Tilbakemeldingen er ikke en antydning av karakter, verken implisitt eller eksplisitt.
- Bortsett fra skriftlig tilbakemelding på utkast, så er perioden mellom siste uken av forelesning og oppgaveinnleveringen eksamensperioden. Spørsmål til meg via mail og på campus burde begrenses til uklarheter om oppgaven.
Om vurderingen
Det er mye mer læring i å gjøre en prosjektoppgave sammenlignet med å sitte for eksamen. Det er derfor vi har prosjektoppgave i dette kurset. Vurderingen blir derimot noe diffus. I dette kurset bruker jeg en velkvalifisert ekstern-sensur som vil vurdere oppgavene på en rimelig og fornuftig måte. Men det er vanskelig å si noe om akkurat hvor karaktergrensene ligger i forkant. Mitt beste råd: Skriv en oppgave som du selv synes er interessante og som du er stolt av. Dette vil vanligvis føre til en grei karakter.
Jeg kan generelt sett ikke si noe i forkant om hva man må gjøre for å oppnå en viss karakter. Men for å sette riktige forventninger, i følge NTNUs retningslinjer er en A-karakter reservert for eksepsjonelle oppgaver. Du kan ha en veldig bra oppgave uten at noe nødvendigvis er feil og fortsatt ikke få en A.
Datakilder
- Her er en side med datakilder som jeg har samlet over tid. Jeg gir ingen garanti at linkene er oppdatert. Dette kan være en god plass å starte.
- Du har tilgang til flere store databaser via biblioteket. For finansielle data, kan man søke i Eikon, for eksempel. Ta kontakt med biblioteket for mer info.
- Jeg oppfordrer deg også å prøve å finne dine egne datakilder og datasett - det finnes uendelige mange kilder på nett.
Kilder for å lære mer Python og R
- Her har jeg samlet en liste over kilder til å lære mer om programmering i Python.
- Her har jeg samlet en liste over kilder til å lære mer om programmering i r
- MIT Open: Introduction to computer science and programming in python.
- MIT Open: Intro to programming and data science with python
Kilder til å lære mer statistikk og sanynslighetsteori
- Her har jeg samlet en liste over kilder til å lære mer om Bayesiansk statistikk.
- Her har jeg samlet en liste over kilder til å lære mer om Statistikk.
- Richard McElreath course in Bayesian Analysis
- Aki Vehtari course in Bayesian Analysis