Cara menghitung skor z dengan python


Dalam statistik, skor-z memberi tahu kita berapa banyak standar deviasi suatu nilai dari mean . Kami menggunakan rumus berikut untuk menghitung skor-z:

z = (X – μ) / σ

Emas:

  • X adalah nilai data mentah tunggal
  • μ adalah rata-rata populasi
  • σ adalah simpangan baku populasi

Tutorial ini menjelaskan cara menghitung skor-z untuk nilai data mentah dengan Python.

Cara Menghitung Skor Z dengan Python

Kita dapat menghitung skor-z dengan Python menggunakan scipy.stats.zscore , yang menggunakan sintaks berikut:

scipy.stats.zscore(a, sumbu=0, ddof=0, nan_policy=’sebarkan’)

Emas:

  • a : objek tipe array yang berisi data
  • axis : sumbu yang digunakan untuk menghitung skor-z. Nilai defaultnya adalah 0.
  • ddof : koreksi derajat kebebasan dalam perhitungan simpangan baku. Nilai defaultnya adalah 0.
  • nan_policy : cara menangani bila input berisi nan. Standarnya adalah propagate, yang mengembalikan nan. ‘raise’ menimbulkan kesalahan dan ‘omit’ melakukan perhitungan dengan mengabaikan nilai nan.

Contoh berikut mengilustrasikan cara menggunakan fungsi ini untuk menghitung skor-z untuk array numpy satu dimensi, array numpy multi-dimensi, dan Pandas DataFrames.

Array satu dimensi yang numpy

Langkah 1: Impor modul.

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

Langkah 2: Buat tabel nilai.

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

Langkah 3: Hitung skor-z untuk setiap nilai dalam tabel.

 stats.zscore(data)

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

Setiap skor-z memberi tahu kita berapa banyak deviasi standar suatu nilai individu dari mean. Misalnya:

  • Nilai pertama “6” pada tabel adalah 1,394 standar deviasi di bawah rata-rata.
  • Nilai kelima “13” pada tabel adalah 0 standar deviasi dari mean, yaitu sama dengan mean.
  • Nilai terakhir “22” pada tabel adalah 1,793 standar deviasi di atas mean.

Array multidimensi numpy

Jika kita memiliki array multidimensi, kita dapat menggunakan parameter sumbu untuk menentukan bahwa kita ingin menghitung setiap skor-z relatif terhadap arraynya sendiri. Misalnya, kita mempunyai array multidimensi berikut:

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

Kita dapat menggunakan sintaks berikut untuk menghitung skor-z untuk setiap tabel:

 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]]

Skor-z untuk setiap nilai individual ditampilkan relatif terhadap tabel tempat nilai-nilai tersebut ditemukan. Misalnya:

  • Nilai pertama “5” pada tabel pertama adalah 1,159 standar deviasi di bawah rata-rata tabelnya.
  • Nilai pertama “8” pada tabel kedua adalah 0,816 standar deviasi di bawah rata-rata tabelnya.
  • Nilai pertama “2” pada tabel ketiga adalah 1,167 standar deviasi di bawah rata-rata tabelnya.

Bingkai Data Panda

Mari kita asumsikan kita memiliki Pandas DataFrame sebagai gantinya:

 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

Kita dapat menggunakan fungsi apply untuk menghitung skor-z dari nilai individual per kolom:

 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

Skor-z untuk setiap nilai individual ditampilkan relatif terhadap kolom tempatnya berada. Misalnya:

  • Nilai pertama “8” pada kolom pertama adalah 0,659 standar deviasi di atas nilai rata-rata kolomnya.
  • Nilai “0” pertama pada kolom kedua adalah 0,803 standar deviasi lebih rendah dari nilai rata-rata pada kolomnya.
  • Nilai pertama “9” pada kolom ketiga adalah 0,836 standar deviasi di atas nilai rata-rata kolomnya.

Sumber daya tambahan:

Cara Menghitung Z Score di Excel
Cara Menghitung Z Score di SPSS
Cara Menghitung Z Score pada Kalkulator TI-84

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *