R kode som illustrerer konfidensintervall (avsnitt 8.1)

 

 

# INNLEDENDE EKSEMPEL

# Anta at en kjemiker gj?r 5 m?linger av konsentrasjonen av et stoff i en kjemisk blanding.

# Det gir konsentrasjonene 4.85, 4.88, 5.13, 4.97 og 5.12 (m?leenheten kan v?re mmol/l).

# Vi vil anta at konsentrasjonsm?lingene er normalfordelte med forventningsverdi m og standardavvik s.

# Her er m den faktiske konsentrasjonen (forutsatt at det ikke er noen systematiske m?lefeil), mens s angir presisjonen av m?lemetoden.

# Vi vil (noe urealistisk) anta at det er kjent at standardavviket er 0.10.

# Vi vil bestemme et 95% konfidensintervall for m.

 

# Vi leser inn konsentrasjonsm?lingene:

x=c(4.85, 4.88, 5.13, 4.97, 5.12)

 

# Vi betemmer nedre og ?vre grense for konfidensintervallet:

n=length(x)

s=0.10

l=mean(x)-1.96*s/sqrt(n)

u=mean(x)+1.96*s/sqrt(n)

c(l,u)

 

 

 

# SIMULERING AV KONFIDENSINTERVALL

 

# For ? illustrere fortolkningen av konfidensintervall (jf. sidene 378-9 i l?reboka), vil vi simulere 50 konfidensintervall og se hvor mange av dem som inneholder den sanne verdien av i m (som er kjent n?r vi simulerer, men ikke ellers)

 

# Vi simulerer situasjonen med den kjemiske analysen B=50 ganger og regner ut et konfidensintervall for hver av de 50 gangene. (Pr?v selv med andre verdier for B.)

B=50

s=0.10

m=5

low=up=rep(0,B)

for (i in 1:B)

{

?? x=rnorm(n,m,s)

?? low[i]=mean(x)-1.96*s/sqrt(n)

?? up[i]=mean(x)+1.96*s/sqrt(n)

}

 

 

# Vi skriver ut det 50 konfidensintervallene

cbind(low,up)

 

# Vi teller opp hvor mange av konfidensintervallene som inneholder den sanne verdien m=5

sum((low<5)&(up>5))

 

# Vi lager en figur som svarer til figuren p? side 379 i l?reboka (R koden nedenfor er mer "avansert" og det er ikke n?dvendig at detaljene i den er forst?tt):

plot(c(low[1],up[1]),c(1,1), xlim=c(4.7,5.3), ylim=c(0,B+1), type='l',xlab="konfidensintervall",ylab="interval nummer")

lines(c(5,5),c(0,B+1),lty=3)

for (i in 2:B+1)

lines(c(low[i],up[i]),c(i,i))