Ø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'))