Penentuan Distribusi Data dengan Python

Exsight ADS

Saat melakukan analisis data, kira-kira apa yang ada di benak Sobat Exsight terkait distribusi data?
Distribusi data merupakan suatu aspek penting yang dapat mempengaruhi hasil analisis data. Namun bagaimana cara kita memastikan bahwa distribusi data yang kita gunakan telah tepat atau belum?

Nah pada artikel ini, kita akan membahas lebih lanjut terkait Penentuan Jenis Distribusi Data, adapun aplikasi yang digunakan pada tutorial kali ini yaitu Python. Yuk simak artikel ini dengan seksama yaa!

Distribusi Data

Secara definisi distribusi data adalah suatu cara yang menggambarkan frekuensi munculnya nilai-nilai tertentu dalam kumpulan data serta menggambarkan sebaran nilai-nilai dalam kumpulan data. Visualisasi distribusi data dapat dilakukan dengan berbagai grafik seperti histogram, boxplot, atau density plot.

Pemahaman terkait jenis distribusi data sangatlah penting, dikarenakan pemilihan yang tepat akan mempengaruhi hasil analisis yang diperoleh. Misalnya, jika data diambil dari distribusi normal, maka hasil analisis yang menggunakan distribusi normal akan lebih akurat dan dapat diandalkan. Sebaliknya, jika distribusi data yang digunakan salah, hasil analisis dapat menjadi tidak akurat atau bahkan menyesatkan.

Tutorial Python

Studi Kasus

Data yang akan kita gunakan pada tutorial kali ini yaitu data Fastfood Nutrition , yang didapatkan dari situs Kaggle
* Data terdiri atas 17 variabel dan 516 observasi.

Distribusi Data

Berdasarkan 17 variabel yang tersedia, selanjutnya dilakukan data cleaning dengan hanya mengambil 6 variabel saja yang menjadi fokus dalam penentuan jenis distribusi yaitu:
Variabel calories, total_fat, cholestrol, sodium, total_carb, dan sugar

Load Library Python

Tahapan paling awal sebelum running syntax di Python yaitu melakukan load library. Apabila kamu masih belum memiliki library untuk penentuan jenis distribusi, maka dapat menginstall terlebih dahulu dengan cara

pip install (nama library nya)

Adapun beberapa library yang digunakan terdiri atas:

import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy import stats
from scipy.stats import kstest
from fitter import Fitter, get_common_distributions, get_distributions

Load Data

Tahapan selanjutnya yaitu melakukan load data di Python. Data yang diinput diberi nama sebagai data yang berasal dari file Fastfood Nutrition. Perlu diperhatikan untuk jenis file data yang diinput dalam format CSV, hal ini dengan tujuan untuk mempermudah pengguna. Syntax yang digunakan adalah sebagai berikut

#Import Data
dataset =pd.read_csv("Fastfood Nutrition.csv")
dataset
Distribusi Data

Visualisasi Histogram

Penentuan jenis distribusi data dapat dilakukan secara visual berdasarkan grafik Histogram sebaagai berikut.

dataset.hist(bins=30, figsize=(12,12), density=True)
plt.show()
Distribusi Data

Berdasarkan visualisasi histogram terlihat bahwa untuk seluruh variabel histogram tidak berbentuk seperti lonceng, sehingga secara visual dapat dikatakan data tidak berdistribusi Normal.

Uji Kolmogorov-Smirnov

Pengidentifikasian distribusi data secara visual, seringkali terdapat subjektifitas antara satu peneliti dengan peneliti lainnya. Sehingga untuk lebih memastikan lagi, maka diperlukan pengujian, dalam hal ini pengujian yang digunakan adalah uji Kolmogorov-Smirnov. Hipotesis yang digunakan untuk pengujian ini adalah sebagai berikut.

H0 : Data Berdistribusi Normal
H1 : Data Tidak Berdistribusi Normal

Apabila dari pengujian Kolmogorov-Smirnov, p-value bernilai lebih dari 0,5 maka diambil keputusan Terima H0 artinya data berdistribusi normal.

# Uji Kolmogorov-Smirnov (kstest)
ks_calories = kstest(dataset['calories'], 'norm')
ks_total_fat = kstest(dataset['total_fat'], 'norm')
ks_cholesterol = kstest(dataset['cholesterol'], 'norm') 
ks_sodium = kstest(dataset['sodium'], 'norm')
ks_total_carb= kstest(dataset['total_carb'], 'norm')
ks_sugar = kstest(dataset['sugar'], 'norm')

print(ks_calories)
print(ks_total_fat)
print(ks_cholesterol)
print(ks_sodium)
print(ks_total_carb)
print(ks_sugar)
Distribusi Data

Berdasarkan hasil pengujian Kolmogorov-Smirnov, p-value untuk variabel calories, total_fat, cholesterol, sodium, total_carb, dan sugar bernilai kurang dari 0.05 maka diambil keputusan TOLAK H0 artinya data TIDAK BERDISTRIBUSI NORMAL

Jenis-Jenis Distribusi

Tahapan selanjutnya, dikarenakan variabel-variabel tidak ada yang berdistribusi Normal, maka dilanjutkan pengidentifikasian dengan jenis-jenis distribusi lainnya. Adapun jenis distribusi yang akan menjadi acuan adalah sebagai berikut.

#Beberapa Distribusi yang umum Digunakan
get_common_distributions()

Identifikasi Distribusi

Berdasarkan jenis-jenis distribusi yang telah dipaparkan sebelumnya, selanjutnya dilakukan pengidentifikasi jenis distribusi masing-masing variabel.

Variabel Calories

#Visualisasi Data Untuk Setiap Distribusi (Ditampilkan 5 Terbaik)
fage = Fitter(dataset['calories'],
           distributions=get_common_distributions())
fage.fit()
fage.summary()

Secara Visualisasi terlihat bahwa kurva dari distribusi Rayleight paling pas dalam menyesuaikan bentuk data dari variabel Calories. Namun hal tersebut masih perlu dipastikan lagi berdasarkan perhitungan nilai Sum Square Error.

#Menentukan Distribusi Terbaik berdasarkan Sum square Error Terkecil
fcalories.get_best(method = 'sumsquare_error')

Berdasarkan nilai Sum Square Error terkecil, didapatkan hasil bahwa untuk variabel Calories paling sesuai berdistribusi Rayleight, dengan nilai parameter lokasi yaitu 38,498 dan parameter skala yaitu 401,302. Selanjutnya dapat ditampilkan visualisasi untuk variabel Calories dengan kurva distribusi Rayleight yaitu sebagai berikut.

#Visualisasi Variabel Calories dengan Distribusi Rayleigh
fcalories_rayleigh= Fitter(dataset['calories'],
           distributions='rayleigh')
fcalories_rayleigh.fit()
fcalories_rayleigh.summary()
Distribusi Data

Variabel-Variabel Lainnya

Selanjutnya dengan menggunakan cara yang sama seperti sebelumnya, maka dapat ditentukan distribusi dari variabel-variabel lainnya adalah sebagai berikut.

Referensi

https://medium.com/the-researchers-guide/finding-the-best-distribution-that-fits-your-data-using-pythons-fitter-library-319a5a0972e9

https://www.datainsightonline.com/post/how-to-find-the-distribution-that-fits-your-data-best

Sekian penjelasan terkait Penentuan Jenis Distribusi Data dengan Python. Jika masih terdapat hal-hal yang dibingungkan bisa langsung saja ramaikan kolom komentar atau hubungi admin melalui tombol bantuan di kanan bawah. Stay tuned di website https://exsight.id/blog/ agar tidak ketinggalan artikel-artikel menarik lainnya.

Sstt...
Mau Kiriman Artikel Terbaru Exsight
Tanpa Biaya Langganan? ????

Nama Kamu

Email Kamu

Dapatkan Akses Informasi Terupdate Seputar Dunia Data dan Statistika 🙂

Exsight ADS

1 thought on “Penentuan Distribusi Data dengan Python”

  1. Pingback: Distribusi Normal Pada Data #1 - Exsight

Leave a Comment

Klik Daftar Isi Disini