Cara melakukan tes shapiro-wilk dengan python


Uji Shapiro-Wilk merupakan uji normalitas. Ini digunakan untuk menentukan apakah suatu sampel berasal dari distribusi normal atau tidak.

Untuk melakukan tes Shapiro-Wilk dengan Python kita dapat menggunakan fungsi scipy.stats.shapiro() , yang menggunakan sintaks berikut:

scipy.stats.shapiro(x)

Emas:

  • x: tabel data sampel.

Fungsi ini mengembalikan statistik uji dan nilai p yang sesuai.

Jika nilai p berada di bawah tingkat signifikansi tertentu, maka kita mempunyai cukup bukti untuk mengatakan bahwa data sampel tidak berasal dari distribusi normal.

Tutorial ini menunjukkan beberapa contoh cara menggunakan fitur ini dalam praktik.

Contoh 1: Uji Shapiro-Wilk pada data berdistribusi normal

Misalkan kita memiliki contoh data berikut:

 from numpy.random import seed
from numpy.random import randn

#set seed (eg make this example reproducible)
seed(0)

#generate dataset of 100 random values that follow a standard normal distribution
data = randn(100)

Kode berikut menunjukkan cara melakukan tes Shapiro-Wilk pada sampel 100 nilai data ini untuk menentukan apakah nilai tersebut berasal dari distribusi normal:

 from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9926937818527222, pvalue=0.8689165711402893)

Dari hasilnya, kita dapat melihat bahwa statistik uji adalah 0,9927 dan nilai p yang sesuai adalah 0,8689 .

Karena nilai p tidak kurang dari 0,05, kita gagal menolak hipotesis nol. Kami tidak memiliki cukup bukti untuk mengatakan bahwa data sampel tidak berasal dari distribusi normal.

Hasil ini seharusnya tidak mengejutkan karena kami membuat data sampel menggunakan fungsi randn() , yang menghasilkan nilai acak yang mengikuti distribusi normal standar.

Contoh 2: Uji Shapiro-Wilk pada data yang berdistribusi tidak normal

Sekarang anggaplah kita memiliki contoh data berikut:

 from numpy.random import seed
from numpy.random import fish

#set seed (eg make this example reproducible)
seed(0)

#generate dataset of 100 values that follows a Poisson distribution with mean=5
data = fish(5, 100)

Kode berikut menunjukkan cara melakukan tes Shapiro-Wilk pada sampel 100 nilai data ini untuk menentukan apakah nilai tersebut berasal dari distribusi normal:

 from scipy.stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9581913948059082, pvalue=0.002994443289935589)

Dari hasilnya, kita dapat melihat bahwa statistik uji adalah 0,9582 dan nilai p yang sesuai adalah 0,00299 .

Karena nilai p kurang dari 0,05, kami menolak hipotesis nol. Kami memiliki cukup bukti untuk mengatakan bahwa data sampel tidak berasal dari distribusi normal.

Hasil ini juga tidak mengherankan karena kami membuat data sampel menggunakan fungsi Poisson() , yang menghasilkan nilai acak yang mengikuti distribusi Poisson .

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan uji normalitas lainnya di berbagai software statistik:

Cara melakukan tes Shapiro-Wilk di R
Cara Melakukan Tes Anderson-Darling dengan Python
Cara melakukan tes Kolmogorov-Smirnov dengan Python

Tambahkan komentar

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