Cara melakukan tes anderson-darling dengan python


Tes Anderson-Darling adalah tes kesesuaian yang mengukur seberapa cocok data Anda dengan distribusi tertentu.

Tes ini paling sering digunakan untuk menentukan apakah data Anda mengikuti distribusi normal atau tidak.

Jenis uji ini berguna untuk menguji normalitas, yang merupakan asumsi yang umum digunakan dalam banyak uji statistik, termasuk regresi , ANOVA , uji-t, dan banyak lainnya.

Contoh: Tes Anderson-Darling dengan Python

Untuk melakukan tes Anderson-Darling dengan Python, kita dapat menggunakan fungsi anderson() dari perpustakaan scipy.stats, yang menggunakan sintaks berikut:

Anderson(x, dist=’norma’)

Emas:

  • x : tabel data sampel
  • dist : jenis distribusi yang akan diuji. Standarnya adalah “standar”, tetapi Anda juga dapat menentukan “expon” atau “logistik”.

Misalnya, berikut cara melakukan uji Anderson-Darling pada sampel 50 variabel acak yang berdistribusi normal:

 import numpy as np

#create data
np.random.seed(0)
data = np.random.normal(size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult( statistic =0.15006999533388665,
               critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]),
               significance_level =array([15. , 10. , 5. , 2.5, 1. ]))

Statistik pengujiannya adalah 0,150 . Kita dapat membandingkan nilai ini dengan setiap nilai kritis yang sesuai dengan setiap tingkat signifikansi untuk melihat apakah hasil pengujiannya signifikan. Misalnya:

  • Nilai kritis α = 0,01 adalah 1,021 . Karena statistik uji (0,150) tidak lebih besar dari nilai kritis ini, maka hasilnya tidak signifikan pada tingkat signifikansi 0,01.
  • Nilai kritis α = 0,025 adalah 0,858 . Karena statistik uji (0,150) tidak lebih besar dari nilai kritis ini, maka hasilnya tidak signifikan pada tingkat signifikansi 0,025.

Dan seterusnya.

Kita dapat melihat bahwa hasil pengujian tidak signifikan pada tingkat signifikansi apa pun, yang berarti kita tidak akan menolak hipotesis nol dari pengujian tersebut. Oleh karena itu, kami tidak memiliki cukup bukti untuk menyatakan bahwa data sampel tidak terdistribusi secara normal.

Hasil ini seharusnya tidak mengejutkan mengingat kami menggunakan fungsi np.rand.normal() untuk menghasilkan sampel sebanyak 50 nilai yang terdistribusi normal.

Sebagai gantinya, pertimbangkan jika kita melakukan uji Anderson-Darling pada sampel 50 bilangan bulat acak antara 0 dan 10:

 import numpy as np

#create data
np.random.seed(0)
data = np.random.randint(0, 10, size=50)

#perform Anderson-Darling Test 
from scipy.stats import anderson
anderson(data)

AndersonResult( statistic =1.1926463985076836,
               critical_values =array([0.538, 0.613, 0.736, 0.858, 1.021]),
               significance_level =array([15. , 10. , 5. , 2.5, 1. ]))

Statistik pengujiannya adalah 1,1926 . Kita dapat membandingkan nilai ini dengan setiap nilai kritis yang sesuai dengan setiap tingkat signifikansi untuk melihat apakah hasil pengujiannya signifikan. Misalnya:

  • Nilai kritis α = 0,01 adalah 1,021 . Karena statistik uji (1,1926) lebih besar dari nilai kritis ini, maka hasilnya signifikan pada tingkat signifikansi 0,01.
  • Nilai kritis α = 0,025 adalah 0,858 . Karena statistik uji (1,1926) lebih besar dari nilai kritis ini, maka hasilnya signifikan pada tingkat signifikansi 0,025.

Dan seterusnya.

Kita dapat melihat bahwa hasil pengujian tersebut signifikan pada setiap tingkat signifikansi, yang berarti bahwa kita akan menolak hipotesis nol dari pengujian tersebut, apa pun tingkat signifikansi yang kita pilih untuk digunakan. Dengan demikian, kami mempunyai cukup bukti untuk mengatakan bahwa data sampel tidak berdistribusi normal.

Hasil ini juga tidak mengherankan mengingat kami menggunakan fungsi np.rand.randint() untuk menghasilkan sampel 50 bilangan bulat acak antara 0 dan 10, yang kemungkinan besar tidak mengikuti distribusi normal.

Anda dapat menemukan lebih banyak tutorial Python di sini .

Tambahkan komentar

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