Statistikk og Simulering

Prosjekt 5

Veke 17. Dataanalyse

9.3. Veke 17. Dataanalyse

  9.3.1 Eit eksterne datasett
  9.3.2 Data i Matlab
  9.3.3 Regresjon

9.3.1. Eit eksterne datasett

Machine Learning Repository ved UCI er ei god kjelde for datasett til testing og øving i dataanalyse.

Oppgåve 9.25 Last ned datasettet for sykkedeling. Du finn sjølve datasettet som PKzip-fil under «Data Folder».

Dette datasettet illustrerer samanhengen mellom sykkelutleige og vêrdata. Me skal bruka lineær regresjon for å studera denne samanhengen. Datasettet har tre variablar som me kan prøva å predikera (y-verdiar), totalt utleigedal, utleige til medlemmer og utleige til andre (casual). Der er òg fleire ulike forklarignsvariablar (x-verdiar), som er forklart i datasettbeskrivinga (i Readme-filen eller på vevsida), inklusive temperatur og vind. Der er to datasett; me bruker det for daglege data, fordi det er enklast.

Oppgåve 9.26 Opna day.csv (t.d. i eit rekneark) og les gjennom datasettbeskrivinga. Kva inneheld dei ulike søylene? Spør dersom du er usikker på noko.

9.3.2. Data i Matlab

I denne øvinga skal me alltid sjå på to søyler åt gongen, ein x-verdi og ein y-verdi. Du kan velja kva for ei vêrdatasøyle og kva for ein utleigesøyle du vil bruka, og det er lurt å prøva med litt ulike kombinasjonar.

Oppgåve 9.27 Last fila i Matlab:

1  tbl = readtable(’day.csv’) For å henta ut to søyler kan du bruka t.d. 1  x = tbl.temp 
2  y = tbl.cnt

Merknad 8 Der er fleire måtar å lasta datasett på i Matlab. Den som er føreslått over er den same som vart presentert i avsnitt 5.4.3.

Oppgåve 9.28 Det hender at der er rot og manglar i datasett som vert importert. Det bør det ikkje vera her, men det er verd å sjekka:

1  size(x) 
2  size(y)
Dette gjev storleiken på vektorane. Er dei like store?

For å sjekka for manglande verdiar, kan du prøva

1  any(ismissing(y)) Dersom minst éin verdi manglar i y, vil any() returnera sann. Manglar der noko? Test x-vektoren òg.

Oppgåve 9.29 Plott x- og y-verdiane mot kvarandre (plot-funksjonen i Matlab).

1   plot(x,y,’.’)

Kva ser du? Er der samanheng mellom variablane. Dersom du ikkje ser nokon samanheng, prøv ein annan kombinasjon av søyler.

Merknad 9 Dersom du vil sjå både på tilfeldige og registrerte brukarar, kan du bruka to fargar i plottet:

1   plot(x,tbl.casual,’r.’,x,tbl.registered,’k.’)

9.3.3. Regresjon

No har me sett på samanhengen mellom x og y i datasettet visuelt. Matematisk kan me modellera samanhengen som en linær funksjon

y = b + ax + ϵ(x)

der ϵ er eit lite støyledd som me kan sjå bortifrå. Regresjon handlar om å estimera a og b slik at ϵ vert minst mogleg.

Metoden er forklart i kapittel 12.2 i læreboka.

Oppgåve 9.30 Implementer matlab-funksjonar som reknar ut b og a i tråd med likning (12.9) i læreboka.

Merknad 10 Der finst kanskje matlab-funksjonar som gjer heile jobben, men eg fann ikkje dokumentasjon som forklarer nøyaktig kva som skjer med same terminologi som læreboka. Dersom du finn ein funksjon som du trur gjer jobben, må du dermed samanlikna resultata med utrekning etter boka.

Oppgåve 9.31 Plott regresjonslina saman med rådata. Dette kan du t.d. gjera slik:

1   plot(x,y,’r.’) 
2   y2 = a*x + b 
3   plot(x,y2,’k’)

Oppgåve 9.32 Tolk resultata. Kva kan me slutta om korleis potentielle syklistar oppfører seg med varierande vêr.