• No results found

I den här datorövningen ser vi hur R kan utnyttjas för att kontrollera modellantaganden och beräkna konfidensintervall.

N/A
N/A
Protected

Academic year: 2022

Share "I den här datorövningen ser vi hur R kan utnyttjas för att kontrollera modellantaganden och beräkna konfidensintervall."

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

UPPSALA UNIVERSITET Matematiska institutionen M˚ans Thulin

Statistik f¨or ingenj¨orer 1MS008 VT 2011

DATOR ¨ OVNING 2: SKATTNINGAR OCH KONFIDENSINTERVALL

1 Inledning

I den h¨ar dator¨ovningen ser vi hur R kan utnyttjas f¨or att kontrollera modellantaganden och ber¨akna konfidensintervall.

2 Att kontrollera modellantaganden

F¨or att kunna genomf¨ora djupare statistisk analys av data s˚a m˚aste vi g¨ora modellan- taganden. Vi ska h¨ar titta p˚a metoder f¨or att grafiskt unders¨oka antagandet att data kommer fr˚an en normalf¨ordelad slumpvariabel.

Vi s˚ag p˚a f¨orel¨asningen att histogram och sannolikhetspapper kan anv¨ands f¨or att unders¨oka normalf¨ordelningsantagandet. F¨or data fr˚an en normalf¨ordelning b¨or histo- grammet likna normalf¨ordelningens klockformade t¨athetsfunktion och p˚a sannolikhets- pappret s˚a b¨or punkterna ligga l¨angs linjen – framf¨orallt vid linjens mitt.

Vi b¨orjar med att titta p˚a histogram och sannolikhetspapper f¨or simulerade data fr˚an normalf¨ordelningen:

par(mfrow=c(1,2)) # G¨or att man f˚ar tv˚a figurer i samma grafikf¨onster y<-rnorm(50,0,1) # Generar 50 N(0,1)-f¨ordelade observationer

hist(y,freq=FALSE) # Ritar histogram

curve(dnorm(x,mean(y),sd(y)),col=2,add=TRUE) # L¨agger till t¨athetsfunktion qqnorm(y);qqline(y) # Ritar sannolikhetspapper

Ovning. Prova att k¨¨ ora koden ovan n˚agra g˚anger f¨or att se hur figurerna varierar.

J¨amf¨or sedan med motsvarande figurer f¨or simulerade data fr˚an exponentialf¨ordelningen:

par(mfrow=c(1,2)) # G¨or att man f˚ar tv˚a figurer i samma grafikf¨onster y<-rexp(50,1) # Generar 50 Exp(1)-f¨ordelade observationer

hist(y,freq=FALSE) # Ritar histogram

curve(dnorm(x,mean(y),sd(y)),col=2,add=TRUE) # L¨agger till t¨athetsfunktion qqnorm(y);qqline(y) # Ritar sannolikhetspapper

Alternativt kan l˚adagram anv¨andas f¨or att unders¨oka f¨ordelningsantagandet. F¨or nor- malf¨ordelningen s˚a b¨or l˚adagrammet vara symmetriskt, medan det f¨or exponentialf¨ordelningen b¨or ha l¨angre morrh˚ar upp˚at ¨an ned˚at:

(2)

# L˚adagram f¨or simulerade N(1,1) och Exp(1)-data:

boxplot(rnorm(50,1,1),rexp(50,1),names=c("N(1,1)","Exp(1)")) 2.1 Centrala gr¨ansv¨ardessatsen

Centrala gr¨ansv¨ardessatsen s¨ager att summan av n stycken slumpvariabler ¨ar approxi- mativt normalf¨ordelad om n ¨ar tillr¨ackligt stort. Vi ska nu anv¨anda v˚ara verktyg f¨or att se om data ¨ar normalf¨ordelade f¨or att unders¨oka om satsen st¨ammer genom att titta p˚a summor av exponentialf¨ordelade slumpvariabler. Nedanst˚aende kod ritar histogram f¨or 1000 observationer av olika summor av exponentialf¨ordelade simulerade slumpvariabler.

K¨or koden och ¨oppna sedan grafikf¨onstret i fullsk¨arm.

expsum<-function(n,B) {

summa<-0 for(i in 1:n) {

summa<-summa+rexp(B) }

return((summa-n)/sqrt(n)) }

par(mfrow=c(3,4)) for(i in seq(1,60,5)) {

y<-expsum(i,1000)

hist(y,freq=FALSE,main=paste("Summan av",i,"Exp(1)-variabler")) curve(dnorm(x,0,1),col=2,add=TRUE)

}

P˚aminner histogrammet mer om normalf¨ordelningens t¨athetsfunktion f¨or summor av fler slumpvariabler?

Vi kan ¨aven rita sannolikhetspapper f¨or summor av exponentialf¨ordelade slumpva- riabler:

par(mfrow=c(3,4)) for(i in seq(1,60,5)) {

y<-expsum(i,100)

qqnorm(y,main=paste("Summan av",i,"Exp(1)-variabler")) qqline(y)

}

Ligger punkterna mer l¨angs linjen ju fler slumpvariabler man summerar?

3 Konfidensintervall

3.1 Ett stickprov (passningstider)

Vi ska h¨ar anknyta till exempel 7.1 i l¨aroboken d¨ar 8 observerade passningstider f¨or mobiltelefoner analyserades. Mata in data f¨or hand och lagra i en vektor kallad x:

(3)

x <- c(210,214,195,190,218,202,207,197)

Samma f¨oruts¨attningar om normalf¨ordelning etc. g¨ors som i boken.

Ovning. Anv¨¨ and verktygen fr˚an avsnittet ovan f¨or att unders¨oka om det verkar rimligt att data kommer fr˚an en normalf¨ordelning (men kom ih˚ag att det antagandet alltid ¨ar sv˚art att unders¨oka f¨or sm˚a stickprovsstorlekar).

Vi ska nu med hj¨alp av n˚agra f˚a kommandon i R skapa ett 95% konfidensintervall f¨or den genomsnittliga vikten. Vi har ingen kunskap om f¨ordelningens standardavvikelse och r¨aknar d¨arf¨or med ok¨and standardavvikelse. Fr˚an teorin (s. 67-68 i boken) vet vi att intervallet d˚a ges av

h

¯

x ± tα/2(n − 1) s

√n i Det finns tv˚a s¨att att angripa detta p˚a numeriskt:

1. Skriv in intervallet ovan manuellt

2. Anv¨and en f¨ardig rutin (vid namn t.test) F¨or den f¨orsta metoden, skriv

mv <- mean(x) stad <- sd(x) n <- 8

tkvantil <- qt(0.975,n-1)

mv - tkvantil*stad/sqrt(n) # Nedre intervallgr¨ans mv + tkvantil*stad/sqrt(n) # ¨Ovre intervallgr¨ans (J¨amf¨or med svaret i exempel 7.2!)

Som du s¨akert insett ger funktionen qt med l¨ampliga inargument kvantiler till t- f¨ordelningen. Observera att 1 − α/2 = 0.975 d˚a α = 0.05; R anv¨ander allts˚a 1 − α/2 ist¨allet f¨or α/2 som inparameter i kvantilfunktionen.

P˚a liknande s¨att kan kvantiler f¨or andra vanliga f¨ordelningar erh˚allas. F¨or nor- malf¨ordelningens kvantiler anv¨ands funktionen qnorm.

Ovning. Skriv t.ex. in f¨¨ oljande och j¨amf¨or de v¨arden du f˚ar med den vanliga tabellen p˚a sidan 82:

qnorm(0.975) qnorm(0.95)

F¨or den andra metoden anropas helt enkelt rutinen t.test och man f˚ar d˚a ut, bok- stavligen i ett enda slag, f¨orutom sj¨alva konfidensintervallet en m¨angd ytterligare in- formation. Kommando:

t.test(x)

Ar man en van anv¨¨ andare av R och kan sin statistik anv¨ands med f¨ordel metod 2. ¨Ar man nyb¨orjare och ”vill veta vad man g¨or” kan metod 1 vara s¨akrare. Du noterade v¨al att de gav samma svar?

Konfidensgraden 0.95 ¨ar f¨orinst¨alld vid anropet av t.test, men kan ¨andras. Se hj¨alptexten ?t.test f¨or detaljer, speciellt parametern conf.level.

(4)

3.2 Tv˚a stickprov

Rutinen t.test kan anv¨andas ¨aven f¨or att ber¨akna konfidensintervall f¨or skillnader i v¨antev¨arden mellan tv˚a stickprov. H¨ar finns, som vi sett i teorin, tv˚a angreppss¨att: tv˚a oberoende stickprov respektive stickprov i par.

3.2.1 Tv˚a oberoende stickprov

Tryckh˚allfastheten f¨or tv˚a olika betongblandningar, av typen M20 respektive M25 ska j¨amf¨oras. Vi l¨aser in data i R:

M20<-c(35.50, 27.80, 35.80, 30.10, 27.60, 32.45, 30.20, 26.85, 31.10, 19.20, 25.86, 31.20, 25.60, 31.15, 35.80, 27.50, 28.73, 23.20, 18.95, 24.50, 22.45, 29.80, 35.65, 30.80, 24.01, 25.25, 27.55, 30.15, 24.50, 22.60)

M25<-c(31.20, 35.86, 31.00, 39.01, 35.60, 38.00, 29.68, 27.26, 30.88, 35.50, 28.88, 38.50, 27.60, 26.00, 37.10, 30.80, 34.45, 38.00, 33.51, 35.80, 31.20, 36.52, 29.82, 37.80, 35.01, 36.60, 32.25, 31.50, 28.65, 27.55)

Ovning. R¨¨ akna ut medelv¨arde f¨or respektive datamaterial och rita l˚adagram med boxplot f¨or att unders¨oka om det verkar finnas n˚agon skillnad mellan v¨antev¨ardet (µM 20 respektive µM 25) f¨or tryckh˚allfastheten f¨or de tv˚a blandningarna.

Ett 99 % konfidensintervall f¨or differensen µM 25− µM 20 ges av t.test(M25,M20,conf.level=0.99)

3.2.2 Stickprov i par

Som illustration anv¨ander vi R f¨or exempel 7.6 (dragstyrka hos metallst¨anger). H¨ar

¨

ar det fr˚aga om modellen stickprov i par, vilket m˚aste anges f¨or R med inparametern paired=TRUE:

xfore <- c(370,360,380,395,375); xefter <- c(400,396,412,420,410);

t.test(xefter,xfore,paired=TRUE) J¨amf¨or med ber¨akningarna i boken.

3.3 *Konfidensintervall f¨or p i Bin(n, p)

I avsnitt 7.3 i boken beskrivs hur man genom normalapproximation kan konstruera konfidensintervall f¨or parametern p i Bin(n, p)-f¨ordelningen. Konfidensintervallet

h ˆ p − λα/2

r1

np(1 − ˆˆ p), p + λˆ α/2 r1

np(1 − ˆˆ p) i

har approximativt konfidensgrad 1 − α.

Konfidensgraden s¨ager oss hur stor andelen f¨ors¨ok som resulterar i konfidensintervall som inneh˚aller det sanna v¨ardet p˚a p ¨ar om vi genomf¨or ett stort antal f¨ors¨ok. Om approximationen ¨ar bra s˚a borde andelen ligga n¨ara 1 − α.

(5)

Vi ska h¨ar studera den faktiska konfidensgraden f¨or konfidensintervall f¨or p genom simulering. Koden nedan g¨or att funktionen binKonf(x,n) ger konfidensintervallet f¨or en binomialf¨ordelad observation x och antalet f¨ors¨ok n.

binKonf<-function(x,n) {

p.hatt<-x/n

konf.int<-c(p.hatt-1.96*sqrt(1/n*p.hatt*(1-p.hatt)), p.hatt+1.96*sqrt(1/n*p.hatt*(1-p.hatt))) return(konf.int)

}

Ovning. F¨¨ or att testa funktionen j¨amf¨or vi med exempel 7.4 p˚a s. 69 i boken. D¨ar ¨ar x = 12 och n = 200. Prova att skriva binKonf(12,200) och kontrollera att det ger samma konfidensintervall som i boken.

Du kan sedan provk¨ora funktionen f¨or simulerade data genom att k¨ora koden nedan n˚agra g˚anger. Prova g¨arna att ¨andra v¨ardet p˚a n och p och se hur m˚anga g˚anger som v¨ardet p˚a p ligger i konfidensintervallet.

n<-10; p<-0.5

x<-rbinom(1,n,p) # Ger en Bin(n,p)-f¨ordelad observation.

binKonf(x,n)

Slutligen kan du k¨ora nedanst˚aende kod n˚agra g˚anger f¨or att kolla hur stor andel av de 10000 simulerade konfidensintervallen som inneh˚aller det korrekta v¨ardet p˚a p:

n<-10; p<-0.5

antal<-0 # Variabel f¨or simuleringen for(i in 1:10000)

{

x<-rbinom(1,n,p) # Ger en Bin(n,p)-f¨ordelad observation.

konf<-binKonf(x,n)

# Kolla om p ligger i konfidensintervallet:

if(konf[1]<=p && konf[2]>=p){antal<-antal+1}

}

# Skriv resultatet p˚a sk¨armen:

cat(paste("Andel konfidensintervall som inneh˚aller p:",antal/10000,"\n")) F¨or vilka v¨arden p˚a n och p ligger andelen n¨ara 0.95?

Ovning. Anv¨¨ and koden f¨or att unders¨oka tumregeln ”approximationen ¨ar bra om n · p · (1 − p) ≥ 5”!

4 *Skattningar ¨ ar slumpvariabler

Att en skattning ¨ar en slumpvariabel inneb¨ar att vi kan studera den precis som andra slumpvariabler och ber¨akna exempelvis dess v¨antev¨arde och standardavvikelse. P˚a s˚a vis kan vi teoretiskt j¨amf¨ora olika skattningar f¨or att avg¨ora vilken som ¨ar b¨ast. F¨or det mesta vill vi att skattningen ska vara v¨antev¨ardesriktig (s˚a att den ”i genomsnitt” ger

(6)

det r¨atta v¨ardet) och att dess standardavvikelse skall vara s˚a liten som m¨ojligt (s˚a att skattningen f¨orhoppningsvis inte avviker s˚a mycket fr˚an det sanna parameterv¨ardet).

F¨or m˚anga skattningar kan man relativt ”enkelt” r¨akna ut v¨antev¨arde och standard- avvikelse. Exempelvis g¨aller det att om X1, . . . , Xn ¨ar oberoende N (µ, σ2)-f¨ordelade slumpvariabler s˚a ¨ar stickprovsmedelv¨ardet ¯X ∼ N (µ, σ2/n) - denna anv¨ands som bekant f¨or att skatta v¨antev¨ardet µ.

Stickprovsmedelv¨ardet ¨ar inte den enda t¨ankbara skattningen av µ. En normalf¨ordelad slumpvariabel med v¨antev¨arde µ har ¨aven median µ, s˚a en t¨ankbar estimator ¨ar stick- provsmedianen ˆX. F¨ordelningen f¨or ˜X ¨ar, liksom v¨antev¨arde och standardavvikelse, betydligt sv˚arare att r¨akna ut ¨an motsvarande egenskaper f¨or stickprovsmedelv¨ardet.

H¨ar kommer R till v˚ar unds¨attning!

Antag att vi har 10 observationer fr˚an N (µ, 1)-f¨ordelningen. Vi vill veta om den b¨asta skattningen ¨ar stickprovsmedelv¨ardet ¯X eller stickprovsmedianen ˜X. Vi vet fr˚an teo- retiska utr¨akningar att E( ¯X) = µ och att V ( ¯X) = 1/10. Genom att simulera ett antal observationer av ˜X kan vi skatta E( ¯X) och V ( ¯X).

Vi vet inte hur v¨antev¨ardet och variansen f¨or ˜X beror p˚a µ, men vi kan prova att stoppa in olika v¨arden p˚a µ f¨or att se om skattningen ¨ar v¨antev¨ardesriktig och om variansen ¨andras d˚a µ ¨andras. Vi provar att s¨atta µ lika med 0, 1 och 5 och att simulera 1000 stickprov f¨or varje v¨antev¨arde. Vi r¨aknar ut medianen i varje stickprov och g¨or d¨armed 1000 simuleringar vardera av ˜X f¨or de olika v¨ardena p˚a µ. Vi anv¨ander sedan dessa f¨or att skatta E( ˜X) och V ( ˜X) i de olika fallen.

med0<-med1<-med5<-NA # Variabler f¨or simuleringen for(i in 1:1000)

{

med0[i]<-median(rnorm(10,0,1)) med1[i]<-median(rnorm(10,1,1)) med5[i]<-median(rnorm(10,5,1)) }

# Skriv resultatet p˚a sk¨armen:

cat(paste(" my=0:\nE(medianen) =",mean(med0),"\nV(medianen) =",var(med0),"\n",

"my=1:\nE(medianen) =",mean(med1),"\nV(medianen) =",var(med1),"\n",

"my=5:\n--- E(medianen) =",mean(med5),"\nV(medianen) =",var(med5),"\n")) Ligger v¨antev¨ardet n¨ara µ? Beror variansen f¨or medianen p˚a v¨ardet p˚a µ? ¨Ar variansen

mindre ¨an V ( ¯X) = 1/10? Vilken av skattningarna tycker du att man ska anv¨anda?

References

Related documents

Vid genomf¨ orandet av laborationen fanns laborationsassistenter p˚ a plats f¨ or att besvara fr˚ agor, men inte f¨ or att st¨ alla fr˚ agor. Laborationen ¨ ar en utveckling av

Tyngdaccelerationen, g, m¨ats genom att tiden, t, det tar f¨or en kula att, fr˚an stillast˚aende, falla s = 1 m m¨ats.. Repetition Normalf¨ordelning CGS Ex 1 Stora talens lag Ex 2

Material i grupp II och III har ocks˚ a h¨ og kompressibilitet f¨ or att de har dels kovalent bindning, dels metallisk bindning, vilket leder till kovalenta kristaller som har ¨

Den f¨ orsta av dessa ¨ ar “n¨ astan fria elektroners teori”, med vilken man menar en modell d¨ ar man t¨ anker sig att gittret leder till bara en svag modulation av de

Resonemang, inf¨ orda beteck- ningar och utr¨ akningar f˚ ar inte vara s˚ a knapph¨ andigt presenterade att de blir sv˚ ara att f¨ olja.. ¨ Aven endast delvis l¨ osta problem kan

Eftersom planet g(x, y, z) = 3x+2y−z = 10 inte har n˚agra kantpunkter eller singul¨ara punkter (d¨ar gradienten ∇g ¨ar nollvektorn) s˚a antar f sina lokala extremv¨arden i

[r]

[r]