Øvelse 3 – Oppgave 5
Standardavvik
I Test-deg-selv uke 36, oppgave 1.2, fikk du i oppgave å skrive deler av en formel i python-kode. Dette var formelen for standardavvik. Standarddavvik er gjennomsnittlig avvik fra gjennomsnittet. Det som manglet i den forrige versjonen av formelen var beregningen av summen av alle avvikene, siden x bare var ett tall.
Hele formelen er:
stddev = math.sqrt((sum(x-y)**2))/n-1
I denne oppgaven skal du beregne standardavviket for lista «data» gitt under, og pseudokoden gitt over.
data = 31, 31, 34, 6, 32, 25, 14, 25, 21, 42, 33, 32, 44, 20, 48, 31, 23, 23, 8, 3, 36, 10, 48, 43, 26, 8, 35, 40, 27, 4, 24, 5, 29, 15, 10, 29, 11, 15, 47, 29, 26, 23, 34, 38, 9, 42, 27, 13, 15, 9
Pseudokoden for hele beregningen er som følger:
- Legg listen «data» i en variabel
- Beregn gjennomsnittet av tallene i listen («y» i formelen)
- Finn antall elementer i listen («n» i formelen)
- Initier en tom liste (som senere skal holde avvikene)
- For hvert element (x) i listen, beregn avvik fra gjennomsnittet: a = (x-y)**2
- Legg hvert resulterende avvik til i den tomme listen.
- Beregn summen av alle avvikene
- Del summen av avvikene på n-1
- Beregn kvadratroten av summen av avvikene – dette er standardavviket
- Print ut standardavviket til slutt.
Løsningsforslag:
### Oppgave 5 svar
import math
import numpy as np
liste = [31, 31, 34, 6, 32, 25, 14, 25, 21, 42, 33, 32, 44, 20, 48, 31, 23, 23, 8, 3, 36, 10, 48, 43,
26, 8, 35, 40, 27, 4, 24, 5, 29, 15, 10, 29, 11, 15, 47, 29, 26, 23, 34, 38, 9, 42, 27, 13, 15, 9]
y = np.mean(liste)
n = len(liste)
avvik = []
for x in liste:
a = ((x-y)**2)
avvik.append(a)
total = np.sum(avvik)
totalOverN = total/(n-1)
stddev = math.sqrt(totalOverN)
print('standardavviket er: ', format(stddev, '.3f'))
