Hoe z-scores in python te berekenen


In de statistiek vertelt een z-score ons hoeveel standaarddeviaties een waarde afwijkt van het gemiddelde . We gebruiken de volgende formule om een z-score te berekenen:

z = (X – μ) / σ

Goud:

  • X is een enkele onbewerkte gegevenswaarde
  • μ is het populatiegemiddelde
  • σ is de standaarddeviatie van de populatie

In deze tutorial wordt uitgelegd hoe u z-scores voor onbewerkte gegevenswaarden in Python kunt berekenen.

Hoe Z-scores in Python te berekenen

We kunnen z-scores berekenen in Python met behulp van scipy.stats.zscore , die de volgende syntaxis gebruikt:

scipy.stats.zscore(a, axis=0, ddof=0, nan_policy=’propagate‘)

Goud:

  • a : een array-type object dat gegevens bevat
  • as : de as waarlangs de z-scores worden berekend. De standaardwaarde is 0.
  • ddof : correctie van de vrijheidsgraden bij de berekening van de standaarddeviatie. De standaardwaarde is 0.
  • nan_policy : hoe om te gaan als invoer nan bevat. De standaardwaarde is propagate, wat nan retourneert. ‚raise‘ levert een fout op en ‚omit‘ voert berekeningen uit waarbij nan-waarden worden genegeerd.

De volgende voorbeelden illustreren hoe u deze functie kunt gebruiken om z-scores te berekenen voor eendimensionale numpy-arrays, multidimensionale numpy-arrays en Pandas DataFrames.

Numpy eendimensionale arrays

Stap 1: Importeer de modules.

 import pandas as pd
import numpy as np
import scipy.stats as stats

Stap 2: Maak een waardentabel.

 data = np.array([6, 7, 7, 12, 13, 13, 15, 16, 19, 22])

Stap 3: Bereken z-scores voor elke waarde in de tabel.

 stats.zscore(data)

[-1.394, -1.195, -1.195, -0.199, 0, 0, 0.398, 0.598, 1.195, 1.793]

Elke z-score vertelt ons hoeveel standaarddeviaties een individuele waarde afwijkt van het gemiddelde. Bijvoorbeeld:

  • De eerste waarde van „6“ in de tabel ligt 1,394 standaarddeviaties onder het gemiddelde.
  • De vijfde waarde van „13“ in de tabel is 0 standaardafwijking van het gemiddelde, dat wil zeggen gelijk aan het gemiddelde.
  • De laatste waarde van „22“ in de tabel is 1,793 standaardafwijkingen boven het gemiddelde.

Numpy multidimensionale arrays

Als we een multidimensionale array hebben, kunnen we de parameter axis gebruiken om te specificeren dat we elke z-score willen berekenen ten opzichte van zijn eigen array. Stel dat we bijvoorbeeld de volgende multidimensionale array hebben:

 data = np.array([[5, 6, 7, 7, 8],
                 [8, 8, 8, 9, 9],
                 [2, 2, 4, 4, 5]])

We kunnen de volgende syntaxis gebruiken om z-scores voor elke tabel te berekenen:

 stats.zscore(data, axis=1)

[[-1.569 -0.588 0.392 0.392 1.373]
[-0.816 -0.816 -0.816 1.225 1.225]
[-1.167 -1.167 0.5 0.5 1.333]]

De z-scores voor elke individuele waarde worden weergegeven ten opzichte van de tabel waarin ze voorkomen. Bijvoorbeeld:

  • De eerste waarde van „5“ in de eerste tabel is 1,159 standaarddeviaties onder het gemiddelde van de tabel.
  • De eerste waarde van „8“ in de tweede tabel ligt 0,816 standaardafwijkingen onder het gemiddelde van de tabel.
  • De eerste waarde van „2“ in de derde tabel ligt 1,167 standaarddeviaties onder het gemiddelde van de tabel.

Panda’s-dataframes

Laten we aannemen dat we in plaats daarvan een Pandas DataFrame hebben:

 data = pd.DataFrame(np.random.randint(0, 10, size=(5, 3)), columns=['A', 'B', 'C'])
data

ABC
0 8 0 9
1 4 0 7
2 9 6 8
3 1 8 1
4 8 0 8

We kunnen de functie Apply gebruiken om de z-score van individuele waarden per kolom te berekenen:

 data.apply(stats.zscore)

          ABC
0 0.659380 -0.802955 0.836080
1 -0.659380 -0.802955 0.139347
2 0.989071 0.917663 0.487713
3 -1.648451 1.491202 -1.950852
4 0.659380 -0.802955 0.487713

De z-scores voor elke individuele waarde worden weergegeven ten opzichte van de kolom waarin ze zich bevinden. Bijvoorbeeld:

  • De eerste waarde van „8“ in de eerste kolom is 0,659 standaardafwijkingen boven de gemiddelde waarde van de kolom.
  • De eerste „0“-waarde in de tweede kolom is 0,803 standaarddeviaties lager dan de gemiddelde waarde in de kolom.
  • De eerste waarde van „9“ in de derde kolom is 0,836 standaardafwijkingen boven de gemiddelde waarde van de kolom.

Aanvullende bronnen:

Hoe Z-scores in Excel te berekenen
Hoe Z-scores te berekenen in SPSS
Hoe Z-scores te berekenen op een TI-84-rekenmachine

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert