Documentație
Ne concentrăm acum pe cîteva calcule statistice simple, pe care le vom face cu ajutorul fișierelor CSV, iar data viitoare le vom vizualiza grafic.
Funcțiile statistice pe care le calculăm vor putea fi implementat fie manual, fie folosind o bibliotecă Python.
Calcule elementare
Să presupunem că avem un set de date de forma (X, Y)
sau, mai general, un n-tuplu de forma (X1, X2, X3, ..., Xn)
. Vom calcula:
media sau media aritmetică (eng. "mean" sau "average");
media ponderată (eng. "weighted average");
mediana (eng. "median");
abaterea standard (eng. "standard deviation");
modul (eng. "mode").
Mai jos, definițiile:
media aritmetică se calculează prin raportul între suma valorilor și numărul lor. Astfel, în pseudocod, dacă avem o listă de forma
l = [x1, x2, ..., xn]
, atunci:
media ponderată, cu ponderi
p1, p2, p3, ... pn
se calculează cu formula:
mediana este valoarea care apare în mijlocul setului de date. Dacă avem un număr impar de date, atunci este chiar valoarea din mijloc. Dacă avem un număr par, atunci se ia media aritmetică a celor două valori din mijloc. De exemplu, pentru setul
[1, 2, 3, 4, 5]
, mediana este3
, fiind valoarea din mijloc. Dar pentru setul[1, 2, 3, 4, 5, 6]
, mediana este(3 + 4) / 2 = 3.5
;modul este valoarea care apare cel mai frecvent. Dacă există o singură astfel de valoare, setul se numește unimodal. Dacă există mai multe cu același număr maxim de apariții, setul se numește multimodal:
modul setului
[1, 2, 3, 3, 4, 5]
este3
, setul fiind unimodal;modurile setului
[1, 2, 3, 3, 4, 4, 5]
sînt3
și4
, setul fiind multimodal (bimodal, mai precis);
abaterea standard sau abaterea medie pătratică, notată de obicei cu
sigma
se calculează folosind media aritmetică. Dacă avem un set de date[x1, x2, ..., xn]
, care are media egală cumedia
, atuncisigma
este:
Exemplu
Fie setul [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
:
media este 5.5;
dacă avem, de exemplu, ponderile
1, 2, 0, 0, 0, 0, 1, 2, 0, 0
, atunci media ponderată este 4.67;mediana este 5.5;
modul nu există (sau fiecare valoare este un mod);
abaterea standard este 2.8722.
Verificare Excel
Valorile pot fi verificate folosind Excel (sau Google Sheets sau LibreOffice) și formulele:
AVERAGE
este formula pentru medie (e.g.AVERAGE(A1:A10)
);media ponderată se calculează cu o combinație de
SUMPRODUCT
șiSUM
. Dacă avem, de exemplu, valorile stocate în celuleleA1:A10
și ponderile în celuleleB1:B10
, atunci:SUMPRODUCT(A1:A10, B1:B10)
calculează suma produselor între valori și ponderi;SUM(B1:B10)
calculează suma ponderilor;SUMPRODUCT(A1:A10, B1:B10) / SUM(B1:B10)
calculează media ponderată;
MEDIAN
returnează mediana (e.g.MEDIAN(A1:A10)
);MODE.MULT
returnează modul, dacă există, sauN/A
dacă nu există (e.g.MODE.MULT(A1:A10)
);STDEV.P
returnează abaterea standard (e.g.STDEV.P(A1:A10)
).
Calcule directe folosind funcții Python
Avem nevoie de bibliotecile statistics
și numpy
. Apoi, funcțiile sînt cele de mai jos. Putem redenumi o bibliotecă atunci cînd o importăm, pentru a o folosi mai scurt. În exemplul următor, biblioteca statistics
o redenumim simplu stat
, iar numpy
, np
.
Un exemplu mai sofisticat, care să folosească și datele dintr-un fișier CSV, aici.
Exerciții
Creați un set de date aleatoriu, pe care să calculați toate funcțiile statistice, în 2 moduri: manual și cu funcții Python. Prevedeți și cazurile cînd avem un număr par de date, și cel în care avem un număr impar de date. Lista de ponderi o puteți genera aleatoriu, de exemplu cu valori între 0 și 1 (folosind
random.random()
).Folosiți datele dintr-un fișier CSV, creat manual sau descărcat de pe Internet și repetați exercițiul de mai sus, pentru datele numerice din una sau mai multe coloane. Opțional, verificați calculele folosind fișierul CSV în Excel, Google Sheets sau o alternativă.
Last updated