Statistikk og Simulering

Prosjekt 5

Veke ?. Bootstrap

9.3. Veke ?. Bootstrap

  9.3.1 Probabilistisk sampling
  9.3.2 Forundersøking
  9.3.3 Bootstrap
  9.3.4 Kontroll
  9.3.5 Rekneøving

Les 14 Frå Frisvold og Moe: Kapittel 14.

Sett at me studerer fordelinga åt vekta til ein bestemt fiskeart. Vekta til ein tilfeldig fisk er ein stokastisk variabel X med ei viss sannsynsfordeling. Sett at me har fiska n = 20 fisk, og målt fylgjande vekter:

15,6; 12,6; 13,7; 13,8; 17,0; 12,9; 11,5; 6,9; 7,8; 3,7; 13,0; 14,4; 6,6; 11,7; 11,1; 1,8; 14,9; 16,5; 12,3; 10,5

Dette er eit utval utval, med n observasjonar x1,x2,,xn av X.

Me veit korleis me kan rekna ut utvalsgjennomsnittet x̄ = 11,4 og utvalsstandardavviket s = 4,02 for dette utvalet.

Utvalsgjennomsnittet x̄ vert brukt for å estimera populasjonsgjennomsnittet μ. Sidan x̄ er rekna ut frå observasjonane xi, er ogso x̄ ein observasjon av ein stokastisk variabel som me noterer X̄. Dvs. utvalsgjennomsnittet har ein sannsynsfordeling, og kvar gong me finn gjennomsnittet i eit nytt utval får me ein ny observasjon og som regel eit nytt tal. Me vil (nesten) aldri treffa populasjonsgjennomsnittet μ akkurat, men som regel vil me treffa nær.

Kor nær me treff avheng av standardavviket åt X̄. Standardavviket åt ein estimator vert òg kalt standardfeilen. Me veit at standardfeilen her er gjeve som

σX̄ = σ n, (25) 

der σ er standardavviket åt X. Me kan estimera standardfeilen som

σ̂X̄ = σ̂ n = s n. (26) 

Dette gjev eit mål for kor presis X̄ er som estimator for μ.

Sett no at me ynskjer å studera standardavviket σ like djupt som me kan studera μ. Me har utvalsstandardavviket S som estimator, men korleis kan me estimera standardfeilen åt S?

Med mindre me kjenner den underliggjande sannsynsfordelinga åt X finst der inga analytisk løysing på dette. I mange tilfelle må me rett og slett observera S mange gongar, slik at me har eit utval å rekna med. Me kan gjenta forsøket m gongar, og kvar gong observera eit utval på n = 20 fisk. For kvart utval kan me rekna ut eit utvalsstandardavvik, slik at me til slutt har m observasjonar s1,,sm av S. Då kan me rekna ut gjennomsnittet s̄ og utvalsstandardavviket sS.

Problemet med dette er at det er kostbart å samla data. Me treng m gongar so mykje data for å estimera standardfeilen for det opprinnelege forsøket. Bootstrap er ei vanleg løysing som går ut på å simulera m gjentakne utval basert på det eine opprinnelege utvalet.

For å laga eit bootstrap-utval, trekk me 20 tilfeldige fisk frå det fyrste utvalet med tilbakelegging; dvs. same måling kan verta utvald fleire gongar. Dersom det opprinnelege utvalet er representativt for populasjonen, so har bootstrap-utvalet òg ei rimeleg sannsynsfordeling.

13,0; 12,6; 10,513,7; 12,9; 14,4; 10,53,7; 10,512,6; 13,7; 13,7; 11,7; 14,9; 12,6; 11,7; 14,4; 13,0; 13,7; 14,9;

I dette bootstrap-utvalet finn me x̄ = 12,4 og s = 2,4. Gjentek med dette eksperimentet m gongar, kan me få eit utval med m observasjonar s av S, og rekna ut utvalsstandardavviket ss for utvalsstandardavviket S, og bruka det som estimat for standardfeilen ved estimering av σ.

Bootstrap er mykje rekning og vert sjelden gjort for hand. Det er ei typisk simuleringsøving, og enkelt å gjera på maskin.

9.3.1. Probabilistisk sampling

Oppgåve 9.5 Eksamen hausten 2016, oppgåve 9.

Eit standardproblem i simulering, er å generera tilfeldige tal frå ein bestemt fordeling. Ein standard slumptalsgenerator vil normalt gje uniformt fordelte tal frå [0, 1). Numeriske bibliotek (som Matlab) har gjerne ein ferdig funksjon for å sampla normalfordelingfordeling òg, men for dei fleste fordelingar må ein finna på noko sjølv.

Del a) og b) av oppgåva har de gjort i Matlab som del av dei fyrste prosjekta i starten av semesteret. Bla gjerne tilbake i koden dykkar. Oppgåve c) krev derimot noko nytt.

Lat P vera den stokastiske variabelen returnert frå slumptalsgeneratoren, og X ein stokastisk variable frå ei fordeling utfallsrom x 0 og tettheitsfunksjon

f(x) = 3e3x.

Merk at me ikkje treng vita noko om eksponentialfordelinga. Fordelingsfunksjonen er gjeve ved eksponentialfunksjonen i oppgåva og det er alt me treng vita. Teknikken som me skal visa kan brukast på alle kontinuerlege fordelingsfunksjonar.

Me ynskjer å finna ein funksjon g, slik at når P er uniformt fordelt, so er X = g(P) fordelt etter f(x). Den uniforme fordelinga på intervallet [0, 1) har eigenskapen at P(P < p) = p for alle p [0, 1). Dermed får me òg

p = P(g(P) < g(p) = P(X < g(p)).

Samanhengen mellom tettheita og sannsynet er gjeve som

P(X < u) =0uf(x)dx =0u3e3xdx.

Oppgåva vår er, for kvar mogleg verdi av p [0, 1), å finna u = g(p) slik at p = P(X < u). Mao. må me løysa likninga

p =0u3e3xdx.

Då er me ferdig med den vanskelege biten. Resten er grunnleggjande kalkulus frå Matematikk 1.

Me løyser ut integralet for å få

p = e3x| 0u = e3u + 1.

Dernest må me ha eksponentialfunksjonen aleine på ei side,

1 p = e3u,

før me kan bruka logaritma for å løysa

ln(1 p) = 3u,

eller

u = ln(1 p) 3 .

Mao. algoritmen som me skal ha gjer to steg,

1.
Trekk p frå ein uniform fordeling på [0, 1).
2.
Returner
u = ln(1 p) 3 .

9.3.2. Forundersøking

Oppgåve 9.6 Last ned bootstrapgen.m, som du skal bruka til å laga syntetiske datasett.

Oppgåve 9.7 Test funksjonen

1   X = bootstrapgen(200) Dette dannar eit utval X med n = 200 observasjonar.

Oppgåve 9.8 Lag eit histogram over datasettet X. Bruk minst 20 søyler for å få eit godt inntrykk av fordelinga.

Oppgåve 9.9 Prøv å tippa på gjennomsnittet x̄ og utvalsstandardavviket s på augamål frå histogrammet. Kva verdiar vil du venta å finna når du startar å rekna?

Oppgåve 9.10 Bruk Matlab til å rekna ut gjennomsnittet x̄ og utvalsstandardavviket s for X.

9.3.3. Bootstrap

Me hugsar at utvalsgjennomsnittet x̄ er eit estimat for forventingsverdien μ, men x̄ er ein observasjon av estimatoren X̄, ein stokastisk variabel, og estimatet er dermed aldri eksakt. Standardfeilen er eit mål for uvisset, og me kan estimera standardfeilen som sn. der S er den stokastiske variabelen for utvalsgjennomsnittet.

Oppgåve 9.11 Estimer standardfeilen for gjennomsnittet X̄ i datasettet X over.

Lat oss no sjå på standardavviket σ for den underliggjande stokastiske variabelen X som me har observert. Me har allereie estimert σ ved hjelp av utvalsstandardavviket S, men kva er standardfeilen åt S?

Her skal me bruka bootstrap, sjå notatane frå førelesinga måndag.

Oppgåve 9.12 Lag ein matlabfunksjon som tek eit utval X som argument, og returnerer eit bootstrap-utval med same storleik. Test funksjonen på datasettet X som du har brukt over. Finn s og x̄ for bootstrap-utvalet. Ser tala fornuftige ut?

Oppgåve 9.13 Skriv ein funksjon som genererer m bootstrap-utval frå det same datasettet X og reknar ut utvalsstandardavviket s kvar gong. Returverdien skal vera ein matrise med m observasjonar av s.

Oppgåve 9.14 Test funksjonen frå forrige oppgåve på datasettet X, og lag eit datasett S med m observasjonar av s. Vel m sjølv. Plott S i eit histogram.

Oppgåve 9.15 Rekn ut gjennomsnitt og utvalsstandardavviket for datasettet S.

9.3.4. Kontroll

Får å validera bootstrap som metode, skal me no gjenta oppgåvene 9.139.15 med ein liten variasjon. I staden for å generera m bootstrap-utval skal me generera «ekte» utval ved hjelp av bootstrapgen.m.

Oppgåve 9.16 Skriv ein funksjon som genererer m utval vha. bootstrapgen.m, kvart med n = 200 observasjonar. Rekn ut utvalsstandardavviket s for kvart utval og returner ein matrise med m observasjonar av s.

Oppgåve 9.17 Test funksjonen frå forrige oppgåve og lag eit datasett S2 med m observasjonar av s. Bruk same m som i oppgåve 9.14. Plott S2 i eit histogram.

Oppgåve 9.18 Rekn ut gjennomsnitt og utvalsstandardavviket for datasettet S2.

9.3.5. Rekneøving

Oppgåve 9.19 Ta utgangspunkt i fylgjande datasett:

10, 11, 11, 13, 15.

Svar på fylgjande

1.
Estimer standardavviket for populasjonen. (Punktestimat er tilrekkeleg.)
2.
Vis korleis du bruker bootstrap for å estimera standardfeilen for estimatoren du brukte over.

Oppgåve 9.20 Eksamen våren 2015, oppgåve 1.

Oppgåve 9.21 Eksamen våren 2015, oppgåve 7 og 9.

Oppgåve 9.22 Eksamen våren 2015, oppgåve 5 og 6.