Njuike sisdollui
Bargobihttá

Varians og standardavvik

Vi jobber med oppgaver om varians og standardavvik.

4.1.21

La X være antall hummere en hummerfisker får i en tilfeldig hummerteine. Sannsynlighetsfordelingen for X er gitt i tabellen:

Sannsynlighetsfordeling
x01234
P(X=x)0,550,300,100,040,01

Regn ut forventningsverdien, variansen og standardavviket.

Løsning

μ = 0·0,55+1·0,30+2·0,10+3·0,04+4·0,01= 0,30+0,20+0,12+0,04= 0,66

Var(X)=(0-0,66)2·0,55+(1-0,66)2·0,30+(2-0,66)2·0,10                        +(3-0,66)2·0,04+(4-0,66)2·0,01 =0,24+0,03+0,18+0,22+0,11=0,78

σ=VarX=0,78=0,8830,88

4.1.22

Overflaten til et tetraeder består av fire likesidede trekanter. De ulike sidene er markert med henholdsvis 1, 2, 3 og 4 øyne.

Vi kaster to slike "terninger". La X være produktet av antall øyne på de to sidene som vender ned mot bordet.

a) Lag en oversikt over utfallsrommet til X.

Løsning

Vi lager en tabell for å skaffe oversikt:

utfallsrom
1234
11234
22468
336912
4481216

Dette gir følgende utfallsrom:

UX=1,2,3,4,6,8,9,12,16

b) Sett opp sannsynlighetsfordelingen til X.

Løsning

Vi leser av tabellen i a) og oppgir alle sannsynlighetene i sekstendeler:

sannsynligheten i sekstendeler
x12346891216
P(X=x)116216216316216216116216116

c) Regn ut forventningsverdien, variansen og standardavviket til X.

Løsning

EX=1·116+2·216+3·216+4·316+6·216+8·216                   +9·116+12·216+16·116=116+416+616+1216+1216+1616+916+2416+1616=10016=254=6,25

VarX=1-6,252·116+2-6,252·216+3-6,252·216   +4-6,252·316+6-6,252·216   +8-6,252·216+9-6,252·116   +12-6,252·216+16-6,252·116=27,616+36,116+21,116+15,216+0,516+6,116+7,616+66,116+9516=275,316=17,2017,2

σ=VarX=17,2=4,144,1

d) Lag et program som simulerer kast med to slike tetraedre og få programmet til å regne ut gjennomsnittet, variansen og standardavviket. Sammenlikn med svarene du regnet ut i c).

Løsning

Her er to ulike måter å skrive programmet på. Kanskje har du et tredje alternativ som virker minst like godt?

python
1import numpy as np
2
3rng = np.random.default_rng() 
4
5N = 100000
6X = np.zeros(N) #en array for resultatene av kast
7V = np.zeros(N) #en array for kvadratavvikene
8
9tetra_1 = (rng.integers(1, 5, size = N)) #kaster den ene terningen tilfeldig
10tetra_2 = (rng.integers(1, 5, size = N)) #kaster den andre terningen tilfeldig
11
12for i in range(N):     #finner produktene av de to terningene i hvert kast
13    X[i] = tetra_1[i]*tetra_2[i]
14
15snitt = sum(X)/N       #finner gjennomsnittsverdien
16
17for i in range(N):     #regner ut kvadratavviket i hvert tilfelle
18    V[i] = (snitt-X[i])**2
19    
20varians = sum(V)/N    #finner variansen
21avvik = np.sqrt(varians)  #regner ut kvadratavviket
22
23print(f"Gjennomsnittet er {snitt:.2f}, variansen er {varians:.1f}. og standardavviket er {avvik:.1f}.")
python
1import numpy as np
2
3N = 100000
4U = [1,2,2,3,3,4,4,4,6,6,8,8,9,12,12,16]     #lister opp alle de mulige utfallene i rett antall
5X = np.zeros(N) #en array for resultatene av kast
6V = np.zeros(N) #en array for kvadratavvikene
7
8for i in range(N):
9    X[i] = np.random.choice(U) #velger tilfeldig et utfall fra utfallsrommet og legger det i arrayen
10
11snitt = sum(X)/N   #finner gjennomsnittet
12    
13for i in range(N):     #regner ut kvadratavviket i hvert tilfelle
14    V[i] = (snitt-X[i])**2
15    
16varians = sum(V)/N    #finner variansen
17avvik = np.sqrt(varians)  #regner ut kvadratavviket
18
19print(f"Gjennomsnittet er {snitt:.2f}, variansen er {varians:.1f}, og standardavviket er {avvik:.1f}.")

Når vi kjører disse programmene mange ganger, ser vi at svarene varierer veldig lite. Vi kan få dem til å variere enda mindre ved å kjøre simuleringen flere ganger, det vil si ved å gjøre N større.

4.1.23

Sannsynlighetsfordelingen til en stokastisk variabel X er gitt ved

Sannsynlighetsfordeling
x1234
P(X=x)0,40a0,200,10

a) Bestem a.

Løsning

Vi har at summen i en sannsynlighetsfordeling alltid skal være lik 1:

0,40+a+0,20+0,1 = 1a = 1-0,70a = 0,30

b) Finn standardavviket til X.

Løsning

Vi må først finne forventningsverdien:

μ=1·0,4+2·0,3+3·0,2+4·0,1=2,0

Så kan vi regne ut variansen og standardavviket:

VarX = (1-2)2·0,4+(2-2)2·0,3+(3-2)2·0,2+(4-2)2·0,1= 0,4+0+0,2+0,4= 1σ = 1=1

4.1.24

To maskiner, A og B, pakker lakrispastiller i esker. Antall pastiller i eska varierer noe. La X være antall pastiller i eskene til pakkemaskin A og Y være antall pastiller i eskene til pakkemaskin B.

Sannsynlighetsfordelingene til X og Y er gitt nedenfor.

Maskin A:

maskin a
x2829303132
PX=x1101412110120

Maskin B:

maskin b
y2829303132
PY=y22532035320150

a) Finn forventningsverdi, varians og standardavvik til X og Y.

Løsning

EX = 28·110+29·14+30·12+31·110+32·120= 28·220+29·520+30·1020+31·220+32·120= 2·28+5·29+10·30+2·31+1·3220= 59520=29,75

VarX=(28-29,75)2·110+(29-29,75)2·14+(30-29,75)2·12           +(31-29,75)2·110+(32-29,75)2·120=3,06·220+0,56·520+0,06·1020+1,56·220+5.06·1200,89

SDX=0,890,94

EY = 28·225+29·320+30·35+31·320+32·150= 28·8100+29·15100+30·60100+31·15100+32·2100= 8·28+15·29+60·30+15·31+2·32100= 2988100=29,88

VarY=(28-29,88)2·225+(29-29,88)2·320+(30-29,88)2·35           +(31-29,88)2·320+(32-29,88)2·150=3,53·220+0,77·520+0,01·1020+1,25·220+4,49·1200,69

SDY=0,690,83

b) Hvilken maskin produserer esker med minst spredning i antall pastiller?

Løsning

Standardavviket til Y er mindre enn standardavviket til X. Det betyr at maskin B produserer pastillesker med minst spredning i antall pastiller.

c) Lag et program som lar brukeren oppgi sannsynlighetsfordeling, og som så regner ut forventningsverdi, varians og standardavvik. Test programmet ved å kjøre det på maskin A og B.

Løsning

Forslag til program:

python
1import numpy as np
2
3X = input("Oppgi de mulige verdiene X kan ha. Skill mellom verdiene med komma.")
4p_x = input("Oppgi de tilhørende sannsynlighetene. Skill med komma.")
5
6X = X.split(",")
7for i in range(len(X)):
8    X[i] = float(X[i])
9X = np.array(X)
10
11p_x = p_x.split(",")
12for i in range(len(p_x)):
13    p_x[i] = float(p_x[i])
14p_x = np.array(p_x)
15
16e = sum(X*p_x)
17v = sum((X-e)**2*p_x)
18
19print(f"Forventningsverdien blir {e:.2f}.")
20print(f"Variansen blir {v:.2f}.")
21print(f"Standardavviket blir {np.sqrt(v):.2f}.")

I linjene 3 og 4 henter vi dataene fra brukeren.

Linjene 6 og 11: Vi splitter opp informasjonen fra brukeren og legger tallene i ei liste.

Linjene 7–8 og 12–13: Vi gjør om elementene til tall.

Linjene 9 og 14: Vi transformerer til array slik at vi får mulighet til å regne med elementene.

Linje 16: Vi finner forventningsverdien.

Linje 17: Vi finner variansen.

Linjene 19–21: Vi skriver ut de tre verdiene.

Legg merke til at du må oppgi sannsynlighetene som desimaltall (med punktum som desimalskilletegn), og ikke som brøk.