Notat 3 - ST februar 2005

Like dokumenter
Programmering i R - del 2

Inferens. STK Repetisjon av relevant stoff fra STK1100. Eksempler. Punktestimering - "Fornuftig verdi"

Bootstrapping og simulering Tilleggslitteratur for STK1100

TMA4245 Statistikk. Innlevering 3. Norges teknisk-naturvitenskapelige universitet Institutt for matematiske fag

Notat 6 - ST februar 2005

Punktestimator. STK Bootstrapping og simulering - Kap 7 og eget notat. Bootstrapping - eksempel Hovedide: Siden λ er ukjent, bruk ˆλ:

Løsningsforslag øving 8, ST1301

Bootstrapping og simulering

TMA4240 Statistikk H2010

Utfordring. TMA4240 Statistikk H2010. Mette Langaas. Foreleses uke 40, 2010

TMA4245 Statistikk Eksamen desember 2016

ST0202 Statistikk for samfunnsvitere

Ferdig før tiden 4 7 Ferdig til avtalt tid 12 7 Forsinket 1 måned 2 6 Forsinket 2 måneder 4 4 Forsinket 3 måneder 6 2 Forsinket 4 måneder 0 2

ST0202 Statistikk for samfunnsvitere

Statistisk inferens (kap. 8) Hovedtyper av statistisk inferens. ST0202 Statistikk for samfunnsvitere

Statistisk inferens (kap. 8) Hovedtyper av statistisk inferens. ST0202 Statistikk for samfunnsvitere

Eksamensoppgave i TMA4240 Statistikk

Eksamensoppgave i TMA4240 Statistikk

ST0103 Brukerkurs i statistikk Forelesning 26, 18. november 2016 Kapittel 8: Sammenligning av grupper

Eksamensoppgave i ST0103 Brukerkurs i statistikk

Kapittel 8: Tilfeldige utvalg, databeskrivelse og fordeling til observatorar, Kapittel 9: Estimering

Forelesning 6: Punktestimering, usikkerhet i estimering. Jo Thori Lind

STK Oppsummering

Bootstrapping og stokatisk simulering Tilleggslitteratur for STK1100

Bioberegninger - notat 4: Mer om sannsynlighetsmaksimering

Fasit for tilleggsoppgaver

Dekkes av kap , 9.10, 9.12 og forelesingsnotatene.

i x i

Første sett med obligatoriske oppgaver i STK1110 høsten 2015

Bioberegninger, ST1301 Onsdag 1. juni 2005 Løsningsforslag

TMA4240 Statistikk Høst 2016

STK Oppsummering

TMA4240 Statistikk Høst 2016

ST0202 Statistikk for samfunnsvitere

TMA4240 Statistikk Eksamen desember 2015

Oppgaven består av 10 delspørsmål som anbefales å veie like mye. Kommentarer og tallsvar er skrevet inn mellom <<. >>. Oppgave 1

Oppgaven består av 9 delspørsmål som anbefales å veie like mye. Kommentarer og tallsvar er skrevet inn mellom << >>. Oppgave 1

TMA4240 Statistikk H2010

TMA4240 Statistikk Høst 2018

Øving 12, ST1301 A: B:

HØGSKOLEN I STAVANGER

6.2 Signifikanstester

Eksamensoppgåve i ST0103 Brukarkurs i statistikk

TMA4240 Statistikk H2010

Verdens statistikk-dag.

UNIVERSITETET I OSLO

Notat 4 - ST februar 2005

Statistisk inferens: 9.14: Sannsynlighetsmaksimeringsestimatoren 8.5: Fordeling til gjennomsnittet 9.4: Konfidensintervall for µ (σ kjent)

Statistikk og dataanalyse

TMA4240 Statistikk 2014

ST0202 Statistikk for samfunnsvitere

ÅMA110 Sannsynlighetsregning med statistikk, våren

TMA4240 Statistikk Høst 2007

TMA4240 Statistikk Høst 2015

TMA4240 Statistikk Høst 2015

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

ST0202 Statistikk for samfunnsvitere Kapittel 9: Inferens om én populasjon

Denne uken: kap : Introduksjon til statistisk inferens. - Konfidensintervall - Hypotesetesting - P-verdier - Statistisk signifikans

TMA4245 Statistikk Eksamen august 2014

Hypotesetesting. Hvorfor og hvordan? Gardermoen 21. april 2016 Ørnulf Borgan. H. Aschehoug & Co Sehesteds gate 3, 0102 Oslo Tlf:

Løsning eksamen desember 2016

TMA4240 Statistikk Høst 2015

Oppgave 1. . Vi baserer oss på at p 47 1 og p 2 er tilnærmet normalfordelte (brukbar tilnærming). Vi har tilnærmet at (n 1 = n 2 = 47)

Eksamensoppgave i ST1201/ST6201 Statistiske metoder

ECON2130 Kommentarer til oblig

Introduksjon til inferens

Kort overblikk over kurset sålangt

for x 0 F X (x) = 0 ellers Figur 1: Parallellsystem med to komponenter Figur 2: Seriesystem med n komponenter

UNIVERSITETET I OSLO ØKONOMISK INSTITUTT

TMA4240 Statistikk H2010

Eksamensoppgave i ST1201/ST6201 Statistiske metoder

TMA4245 Statistikk Eksamen desember 2016

Foreleses onsdag 13.oktober, 2010

UNIVERSITETET I OSLO

Om eksamen. Never, never, never give up!

STK1100 våren 2019 Mere om konfidensintevaller

TMA4240 Statistikk 2014

TMA4240 Statistikk H2010 (20)

Siden vi her har brukt første momentet i fordelingen (EX = EX 1 ) til å konstruere estimatoren kalles denne metoden for momentmetoden.

TMA4240 Statistikk Høst 2009

Oppgave 1. X 1 B(n 1, p 1 ) X 2. Vi er interessert i forskjellen i andeler p 1 p 2, som vi estimerer med. p 1 p 2 = X 1. n 1 n 2.

Notat 2, ST Sammensatte uttrykk. 27. januar 2006

Notat 2, ST januar 2005

Eksamensoppgave i Løsningsskisse TMA4240 Statistikk

Observatorar og utvalsfordeling. Torstein Fjeldstad Institutt for matematiske fag, NTNU

Løsningsforslag Eksamen i Statistikk SIF5060 Aug 2002

Løsningsforslag øving 12, ST1301

Høgskolen i Telemark. Institutt for økonomi og informatikk FORMELSAMLING Statistikk I. Til bruk ved eksamen. Per Chr. Hagen

Formelsamling i medisinsk statistikk

OPPGAVEHEFTE I STK1000 TIL KAPITTEL Regneoppgaver til kapittel 7. X 1,i, X 2 = 1 n 2. D = X 1 X 2. På onsdagsforelesningen påstod jeg at da må

Merk at vi for enkelthets skyld antar at alle som befinner seg i Roma sentrum enten er italienere eller utenlandske turister.

Eksamensoppgave i ST0103 Brukerkurs i statistikk

ÅMA110 Sannsynlighetsregning med statistikk, våren 2006 Kp. 6, del 4

Forelesning 7: Store talls lov, sentralgrenseteoremet. Jo Thori Lind

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE. «Tabeller og formler i statistikk» av Kvaløy og Tjelmeland. To A4-ark/ 4 sider med egne notater. Godkjent kalkulator.

Om eksamen. Never, never, never give up!

EKSAMENSOPPGAVE Georg Elvebakk NB! Det er ikke tillatt å levere inn kladd sammen med besvarelsen

Kap. 10: Inferens om to populasjoner. Eksempel. ST0202 Statistikk for samfunnsvitere

Transkript:

Notat 3 - ST1301 1. februar 2005 1 Simulering fra modell Når vi skal analysere et gitt konkret innsamlet datasett vil vi gjøre dette med utgangspunkt i en statistisk modell. Vi kan si at en slik statistisk modell representerer hva vi på forhånd tror om den prosessen som har generert dataene vi studerer. Modellen består av et sett antakelser vi velger å tro på som spesifiserer hvordan dataene er fordelt gitt verdien av visse ukjente størrelser som inngår i modellformuleringen modellens parametere. Vi ønsker å trekke slutninger om disse parameterne. I mange tilfeller kan vi finne egenskaper ved interessante størrelser slik som estimatorer, testobservatorer og andre funksjoner av dataene analytisk. Dersom vi for eksempel antar at vi har uavhengig identisk normalfordelte data, vil størrelsen ( X µ)/(s/ n) være t-fordelt. I en lineær regresjonsmodell antas det at responsvariabelen Y i for den i te observasjonen normalfordelt med forventning a + bx i og varians σ 2. I denne modellen har estimatorene for de ulike parameterne kjente fordelinger. I mange tilfeller kan vi finne interessante egenskaper som forventningsverdi og varians til eksempelvis ulike estimatorer analytisk. Avhengig av hvilke antakelser vi finner det rimelig å bygge inn i en modell vil det imidlertid ikke alltid være slik at vi kan finne egenskaper til interessante størrelser analytisk. Det er i slike tilfeller at stokastisk simulering vil være et nyttig hjelpemiddel. 1.1 Generell algoritme Anta at vi har en modell som spesifiserer fordelingen til et sett observasjoner X 1, X 2,..., X n. I mange tilfeller vil vi være interessert i å se på egenskapene til en eller annen funksjon av observasjonene, la oss si, W = W (X 1, X 2,..., X n ). (1) 1

Hvis vi for eksempel jobber med data fra exponentiell fordeling vil vi kunne være interessert i å studere egenskapene til estimatoren ˆλ = n/ X i. Denne er en slik funksjon av dataene. Generelt vil funksjonen W kunne være en estimator, en testobservator, eller en annen stokastisk variabel som vi ønsker å finne egenskapene til. I estimeringssammenheng trenger vi å bestemme standardfeil og eventuell forventningsfeil til estimatoren gitt ved E(W ) og Var(W ). I forbindelse med hypotese testing vil vi kunne være interessert i sannsynligheter for eksempel av typen P (W a). Når vi skal undersøke reellt konfidensnivå til konfidensintervaller trenger vi å se på to funksjoner av dataene, nedre og øvre intervallgrense, gitt ved funksjonene θ(x 1, X 2,..., X n ) og θ(x 1, X 2,..., X n ). Vi er så interessert i sannsynligheten for at intervallgrensene ligger rundt den ukjente parameteren θ, altså P (θ θ θ). Også utenfor området statistisk inferens vil stokastisk simulering være et nyttig verktøy. Senere i kurset og i videregående kurs vil vi lage stokastiske modeller som spesifiserer fordelingen til frekvensen av for eksempel en ny mutasjon i fremtidige generasjoner, la oss si, p 1, p 2,..., p n, gitt frekvensen i generasjon t = 0. Spørsmål som vil kunne være av interesse er sannsynligheten for at en mutasjonen er tilstede i generasjon n, P (p n > 0). Alt dette er tallstørrelser som vi finne med den nøyaktighet vi måtte ønske ved hjelp av simuleringer. En generell algoritme for å gjennomføre dette er som følger: 1. Gjenta følgende for i = 1, 2,..., m. Antall simuleringer velges gjerne lik m = 1000. (a) Simuler et utvalg X1, X2,..., Xn fra modellen. Utvalget kalles gjerne et bootstrap-sample. (b) Beregn Wi = W (X1, X2,..., Xn) og eventuelt andre variable av som er av interesse. Dette vil utgjøre i te bootstrap-replikat av variabelen W. 2. Nå kan ulike størrelser estimeres fra bootstrap- replikatene på følgende måte: 2

(a) E(W ) kan estimeres ved hjelp av estimatoren W = 1 n m i=1 W i. (2) (b) Var(W ) kan estimeres ved vanlig estimator for varians, S 2 W = 1 m 1 m i=1 (W i W ) 2. (3) (c) Sannsynligheter av typen P (W a) kan estimeres ved m A /m hvor m A er antall bootstrap-replikater W i a. I praksis utføres en slik algoritme lettest ved hjelp av datamaskin ved å lage et program i et passende programmeringsspråk. 1 1.2 Eksempel - forventningsverdi til estimator Det kan vises at ˆλ = n Xi (4) er sannsynslighetsmaksimeringsestimatoren (SME) til parameteren λ i ekponentiell modell. La oss anta at vi ønsker å undersøke om denne er forventnignsrett, altså at E(ˆλ) = λ, ved hjelp av simuleringer. Det er alltid hensiktsmessig å programmere den funksjonen vi vil se på som en egen funksjon i R. Estimatoren gitt (4) kan programmeres i R på følgende måte: Kontrakt: lambdahat: vektor -> flyttall Hensikt: Beregne SME for lambda i eksponentiell modell fra et observert tilfeldig utvalg x_1, x_2,..., x_n Eksempel: lambdahat(c(1,2,1,2)) skal returner 2/3=0.67 1 Algoritmen over kalles gjerne parametrisk bootstrapping. I kursene anvendt statistikk og moderne statistiske metoder vil såkalt ikke-parametrisk bootstrapping bli behandlet. Dette er metoder hvor vi simulerer bootstrap-sample (trinn 1a i algoritmen) på en annen måte uten å gjøre antakelser om hvilken fordeling dataene har. 3

Definisjon: lambdahat <- function(x) { n <- length(x) n/sum(x) eventuellt bare: lambdahat <- function(x) 1/mean(x) Tester: lambdahat(c(1,2,1,2)) Merk kallet til length som gjør at funksjonen lambdahat håndterer utvalg av vilkårlig størrelse (representert av vektoren x som er innargument.) Funksjonen svarer til funksjonen W gitt ved (1) i det generelle oppsettet. Vi programmerer så en funksjon som utfører algoritmen over. Det er hensiktsmessig å la antall simuleringer m være et argument med defaultverdi 1000 slik at vi eventuelt kan utføre et større antall simuleringer senere om vi måtte ønske dette uten å endre funksjonsdefinisjonen. Når vi skal simulere fra modellen vår må vi også anta en eller annen verdi for parameteren λ. Denne (samt utvalgsstørrelsen n) bør derfor også være argument i funksjonen som skal utføre simuleringsalgoritmen: Hensikt: simulere 1000 realisasjoner av SME for lambda i eksponentiell modell for utvalgsstørrelser på 10 lambdasim <- function(lambda,n=10,m=1000) { lambdaboot <- rep(na,m) for (i in 1:m) { x <- rexp(n=n,rate=lambda) lambdaboot[i] <- lambdahat(x) lambdaboot La oss gå gjennom de ulike delene av funksjonsdefinisjonen over. Hoveddelen av funksjonen består av en for-løkke hvor løkkevariabelen i tar verdiene 1, 2,..., 1000 ved de gjentatte utførelsene av løkke-kroppen (uttrykkene mellom krøllparantesene). I første linje av løkke-kroppen simuleres et tilfeldig utvalg (et bootstrapsample) fra modellen ved hjelp av et kall til funksjonen rexp. Resultatet 4

lagres i den lokale variabelen X. Dette svarer til trinn 1a) i den generelle algoritmen i avsnitt 1.1. I andre linje av løkke-kroppen beregnes det i te bootstrapreplikatet av variabelen vi ser på ved hjelp av et kall til vår egen funksjon lambdahat. Dette svarer til trinn 1b i algoritmen. Merk at det er det simulerte bootstrapsamplet som går inn som argument i kallet til lambdahat. Vi tar vare på resultatet i det i te elementet av den lokale variabelen (vektoren) lambdaboot. Det siste funksjonen gjør etter at for-løkken er gjennomløpt er at hele vektoren lambdaboot returneres som funksjonsverdi. Merk også at hele vektoren lambdaboot opprettes som en tom vektor av lengde m i første linje ved at verdien av uttrykket rep(na,m) tilordnes til lambdaboot. Dette er hensiktsmessig å gjøre dersom vi kjenner lengden til lambdaboot på forhånd slik som her vi unngår at R må allokere minneplass til stadige utvidelser av vektoren lambdaboot ved gjennomkjøring av løkken slik tilfelle ville vært om vi hadde initiert lambdaboot til å ha bare ett element i linje 1. Resultatet er at kall til lambdasim utføres på langt kortere tid. 2 Går vi tilbake til vårt opprinnelige problem kan vi nå finne forventningsverdien til estimatoren ˆλ ved å gjøre ett kall til lambdasim og så beregne gjennomsnittsverdien til de returnerte bootstrapreplikatene: > mean(lambdasim(lambda=1)) [1] 1.120907 > mean(lambdasim(lambda=2)) [1] 2.218094 > mean(lambdasim(lambda=3)) [1] 3.257609 > mean(lambdasim(lambda=1,n=5)) [1] 1.221541 > mean(lambdasim(lambda=2,n=5)) [1] 2.501225 > mean(lambdasim(lambda=3,n=5)) [1] 3.828398 Vi ser at forventningsverdien estimert ved (2) nå blir betydelig større enn de sanne parameterverdiene vi har brukt når vi har simulert. For n = 10 (default verdi) ser vi at ˆλ overestimeres med omlag 10%. I tillegg til å se på forventingsretthet (ved å bruke mean) kan det og være interessant å se på standardavviket til estimatoren samt og lage histogram over hele fordelingen til estimatoren, gitt ulike verdier av den ukjente parameteren λ. Dette kan vi gjøre ved å skrive 2 Ta eventuelt tiden ved å skrive f.eks. system.time(mean(lambdasim(lambda=1))). Endre så første linje til lambdaboot <- NA og ta tiden på nytt. 5

> sd(lambdasim(1)) [1] 0.3940102 > hist(lambdasim(1)) > 1.3 Eksempel - beregning av dekningsgrad til konfidensintervall Dersom X 1, X 2,..., X n er uavhengige normalfordelte data med ukjent forventning og varians µ og σ 2 er ( X t n 1,α/2 S/ n, X + t n 1,α/2 S/ n) (5) et (1 α) konfidensintervall for parameteren µ. Dette betyr at endepunktene i intervallet (som er funksjoner av dataene og dermed stokastiske variable) skal ligger rundt µ med sannsynlighet (1 α) (konfidensnivået). At dette faktiske er tilfelle kan kontrolleres ved hjelp av simuleringer. Vi følger den samme generelle oppskrift som i avsnitt 1.1. Først programmer vi en funksjon som beregner endepunktene i intervallet som funksjon av dataene. Dette svarer til to funksjoner på samme form som (1). Kvantilen i t-fordelingen, t n 1,α/2, finner vi ved et kall til qt. Merk at kvantiler i R alltid er definert på grunnlag av nedre hale i fordelingene i motsetning til i mange lærebøker hvor øvre hale ofte brukes som utgangspunkt. Kontrakt: konfintmu: vektor, flyttall -> vektor Hensikt: Beregne konfidensintervall for parameter mu fra et tilfeldig utvalg fra normalfordelingen konfintmu <- function(x,alpha=.05) { n <- length(x) t <- qt(df=n-1,p=alpha/2,lower.tail=false) xbar <- mean(x) s <- sd(x) c(xbar-t*s/sqrt(n),xbar+t*s/sqrt(n)) Uttrykket i siste linje (funksjonsverdien) angir en vektor av lengde 2 som inneholder endepunktene i konfindensintervallet som første og andre element. Tester vi intervallet på ett simulert datasett får vi: 6

> x <- rnorm(n=30,mean=10,sd=2) > konfintmu(x) [1] 9.753085 11.405471 For det ene simulerte utvalget ser vi at konfindensintervallet blir liggende rundt den sanne parameterverdien (µ = 10). Ut i fra måten intervallet er konstruert på vet vi at denne hendelsen skal inntreffe med sannsynlighet lik 0.95. La oss undersøke om dette virkelig er tilfelle. En funksjon som beregner dekningsgraden kan se slik ut: Hensikt: Beregne dekningsgrad til konfidensinterval. Eksempel: dekningsgrad(10,2,5) bør gi 0.95 som svar dekningsgrad <- function(mu,sigma2,n,alpha=.05,nsim=10000) { ntreff <- 0 for (i in 1:nsim) { X <- rnorm(n=n,mean=mu,sd=sqrt(sigma2)) ki <- konfintmu(x,alpha) if (ki[1]<=mu & mu<=ki[2]) { ntreff <- ntreff + 1 ntreff/nsim Denne funksjonen følger essensielt samme oppsett som den generelle algoritmen i avsnitt 1.1. I første linje i løkke-kroppen simuleres et tilfeldig utvalg (et bootstrap-sample) fra den antatte modellen, og i neste linje beregnes konfidensintervallet og vi tar vare på dette i listen ki. Vi søker sannsynligheten for at intervallgrensene ligger rundt µ. Derfor tester vi dette med en if-setning; hvis det logiske uttrykket er oppfylt økes tellevariabelen ntreff med 1 i neste linje. Når for-løkken er gjennomløpt vil uttrykket ntreff/nsim gi oss et estimat av sannsynligheten vi er ute etter intervallets reelle dekningsgrad. Vi må huske å initiere tellevariabelen i første linje før vi har begynt å telle skal denne ha verdi 0. Vi ser at dekningsgraden i dette tilfelle blir lik det nominelle nivået uansett hvilke verdier modellparameterne har. Dette er forventet i og med at intervallet bygger ikke på noen tilnærminger i motsetning til intervallet for p i øving 4 og 5: 7

> dekningsgrad(mu=10,sigma2=2^2,n=10,alpha=.05) [1] 0.9495 > dekningsgrad(mu=10,sigma2=2^2,n=10,alpha=.1) [1] 0.8979 > dekningsgrad(mu=10,sigma2=2^2,n=2,alpha=.05) [1] 0.9506 > dekningsgrad(mu=10,sigma2=2^2,n=100,alpha=.05) [1] 0.9496 8