Statistikk og Simulering

Prosjekt 1

Veke 4. Gjennomsnitt og varians i Matlab

5.4. Veke 4. Gjennomsnitt og varians i Matlab

I denne oppgåva skal me arbeida med gjennomsnitt over m terningkast (D6), og samanlikna standardavvika og histogramma når m varierer. Lat X vera den stokastiske variabelen som gjev gjennomsnittet av m terningkast.

5.4.1. Terningkast

Oppgåve 5.32 Eit vanleg triks for å simulera 1D6 er å ganga opp eit tilfeldig tal i intervallet (0, 1) og runda opp, slik:

1x = ceil(6*rand()) Lag ein funksjon diceavg(m) som kastar m terningar og returnerer gjennomsnittet.

Oppgåve 5.33 Bruk funksjonen over til å laga eit utval av n = 20 observasjonar av gjennomsnittet over m = 2 terningar. Utvalet bør vera ein vektor med lengd 20.

  • Rekna ut utvalsvariansen vha. var.
  • Rekna ut utvalsstandardavviket vha. std.
  • Plot histogrammet som viser den empiriske fordelinga.

Oppgåve 5.34 Vurder histogrammet i oppgåva over. Liknar det på den teoretiske fordelinga? Forsøk å auka utvalsstorleiken n. Kor stor må n vera før du ikkje ser forskjell på den empiriske og den teoretiske fordelinga? Denne verdien kallar me n2 og me skal bruka den som utvalsstorleik vidare.

Oppgåve 5.35 Gjenta øvinga over med n2 forsøk og ulike verdiar av m. Plott histogrammet for m = 2, 3, 5, 7, 10, 25, 100. Kva ser du?

Oppgåve 5.36 Rekna ut standardavviket s for kvart utval i forrige oppgåve (m = 2, 3, 5, 7, 10, 25, 100). Plott s som ein funksjon av m. Dvs. dersom S er ein vektor med standardavvika, kan du skriva

1M = [2,3,5,7,10,25,100] 
2plot(M,S)
Korleis vil du skildra samanhengen mellom m og s?

Oppgåve 5.37 Du hugsar kanskje frå førelesinga at σ2 = 2 + 11 12 for ein D6, og σ2 = 1 m(2 + 11 12) for snittet av m D6. Me kan finna sannsynsfordelinga for normalfordelinga med same standardavvik og forventing vha. fylgjande komando:

1m = 100 
2mu = 3.5 
3sigma2 = (2+11/12)/m 
4sigma = sqrt(sigma2) 
5fplot(@(x)pdf(’Normal’,x,mu,sigma),[1,6])
Samanlikna dette plottet med histogrammet (m = 100) frå tidlegare oppgåver. Kva ser du?

Det er vanleg å skriva μ = E(X) for populasjonsgjennomsnittet. Den greske bokstaven μ vert kalt mu på engelsk; difor mu i matlabkoden over.

5.4.2. Mynt og kron

Me kan gjera eit tilsvarande eksperiment med mynt og kron. Denne gongen får du mindre detaljert hjelp, men du kan fylgja same metode som med terningkastet over.

Oppgåve 5.38 Simuler eit kast med m myntar; gjenta forsøket n gongar, og plott eit histogram for fordelinga for m = 2, 5, 10, 25, 50. Vel n slik at histogrammet ser ut til å gje eit godt inntrykk av den teoretiske fordelinga. Samanlikn resultat med det du hadde for terningane. Kva likskap og skilnad ser du?

5.4.3. Eksterne datasett

I dei fylgjande oppgåvene skal du gjera deg kjend med nokre av Matlab sine funksjonar for å lasta og arbeida med eksterne datasett.

Oppgåve 5.39 Last ned datasettet http://jmaurit.github.io/data/oil_fields_cross.csv Datasettet inneheld ei liste over oljefelt. Opn fila i ein teksteditor og sjå på søyletitlane. Kva trur du søylene inneheld?

Oppgåve 5.40 Last fila i Matlab:

1tbl = readtable(’oil_fields_cross.csv’) Kor mange oljefelt har du data om? Du kan bruka size-funksjonen.

Oppgåve 5.41 Lat oss sjå nærmare på storleiken på felta, definert etter mengda utvinnbar olje:

1x = tbl.recoverable_oil Dette gjev deg ein matrise. Kva type har elementa i matrisa?

Oppgåve 5.42 Konverter dataa til flyttal:

1y = str2double(x) No har du ei numerisk matrise, men nokre felt har verdien NaN (not a number). Kvifor? Samanlikn med den opprinnelege filen.

Oppgåve 5.43 Prøv funksjonen

1ismissing(y) Kva er resultatet?

Oppgåve 5.44 For å få ein bolsk matrise med 1 for kvar rekkje der y manglar data, kan du bruka funksjonen:

1~ ismissing(y) Tilda tyder negasjon.

Denne bolske matrisa kan brukast som indeks:

1z = y(~ ismissing(y)) Samanlikn y og z. Kva ser du? Kor mange observasjonar har du i z? (Bruk size.)

Oppgåve 5.45 Rekn ut gjennomsnittet og standardavviket for storleiken på dei oljefelta du har data om.

5.4.4. Varians og andre spreidingsmål

Oppgåve 5.46 I denne oppgaven studerer skal vi samanlikna variansen med andre spreidingsmål som me kunne ha brukt.

1.
Lag eit utval med ti terningkast: 1n=10 
2x=ceil(6*rand(1,n)) 
3t=1:n 
4plot(t,x,’LineStyle’,’none’, ’Marker’,’diamond’)
No er x ein vektor med ti observerte terningkast. Plottet visualiserer dei ti kasta.
2.
Rekn ut utvalsmiddelverdien xbar = mean(x).
3.
Rekn ut avvika xdiff = x - xbar. Kva vil det seia å ta differansen mellom ein vektor og ein skalar?
4.
Rekn ut gjennomsnitleg avvik: 1 n i=1n(x i x̄). (16) 

Ta utgangspunkt i xdiff som du rekna ut over, og hugs mean-funksjonen.

5.
Rekn ut gjennomsnittet av absoluttverdien på avvika: 1 n i=1n|x i x̄|. (17) 

Du kan bruka abs-funksjonen i Matlab.

6.
Variansen er, som me hugsar s = 1 n 1 i=1n(x i x̄)2. (18) 

Dette kan reknast ut som

1s2 = sum( xdiff .^ 2 ) Punktumet i .^ tyder at operasjonen skal utførast elementvis på matrisa. Kva er variansen på terningkasta dine?
7.
Rekn ut standardavviket s òg.

Merknad 6 Det er kanskje ikkje openbert kvifor variansen er eit betre mål enn gjennomsnittleg absoluttavvik. Ein grunn er at variansen er kontinuerleg deriverbar, det er ikkje absoluttverdien.