top of page
Gambar penulisCornellius Yudha Wijaya

3 Python Package Terbaik untuk Belajar Statistik bagi Data Scientist

Diperbarui: 2 Feb


Data Scientists dikenal memiliki keterampilan pemrograman yang lebih baik daripada seorang statistician dan pengetahuan statistik yang lebih baik daripada seorang programmer. Meskipun mempelajari keterampilan pemrograman bukanlah tugas yang mudah, terkadang orang yang baru belajar data lupa tentang keterampilan statistik.


Saya tahu statistik sulit dipelajari, terutama bagi orang yang tidak secara resmi mengambil pendidikan di bidang statistik. Namun, mempelajari statistik dari dasar tetap memungkinkan — dengan bantuan teknologi modern. Belajar statistik menjadi lebih mudah dengan semua statistic packages yang dikembangkan dalam bahasa pemrograman.


Saya tahu banyak yang akan berpendapat bahwa jika ingin mempelajari statistik, sebaiknya menggunakan bahasa pemrograman R daripada Python. Tetapi, saya ingin menawarkan alternatif dengan menggunakan Python package karena banyak orang memulai belajar Data Science dengan mempelajari bahasa Python.


Dalam artikel ini, saya ingin menunjukkan 3 Python package terbaik untuk mempelajari statistik dan contoh penggunaan package tersebut — ingat, ini untuk pembelajaran. Mari kita masuk ke bagian intinya!

1. Scipy.Stats

SciPy (dibaca “Sigh Pie”) adalah open-source package untuk melakukan metode ilmiah dalam lingkungan Python. SciPy sendiri juga banyak digunakan dalam penelitian matematika, engineering, dan data.


Salah satu API yang tersedia dalam SciPy adalah API statistik yang disebut Stats. Menurut beranda Scipy homepage, SciPy.Stats adalah modul yang berisi sejumlah besar probability distributions dan library fungsi statistik yang terus dikembangkan, khususnya untuk studi fungsi probabilitas.


Pada modul Scipy.Stats, ada banyak statistical function API yang dapat dijadikan rujukan untuk pembelajaran lebih lanjut, diantaranya:

Untuk memahami fungsi statistik dengan lebih baik, SciPy.Stats juga menyediakan tutorial yang dapat Anda coba. Tutorial tersebut cukup komprehensif sehingga banyak pemula dapat mengikutinya; Anda hanya perlu memiliki sedikit pemahaman tentang istilah statistik. Mari mencoba mempelajari beberapa statistik dengan Scipy.Stats.


Jika Anda menggunakan Python dari distribusi Anaconda, paket SciPy sudah terinstal. Jika Anda memilih untuk menginstal SciPy secara independen, Anda perlu menginstal paket dependennya. Anda dapat melakukannya melalui pip dengan mengeksekusi baris kode berikut.


python -m pip install --user numpy scipy matplotlib ipython jupyter pandas sympy nose

Mari mencoba mempelajari konsep paling sederhana tentang Probability Distribution, yaitu Normal distribution. Pertama, kita mengimpor paket yang diperlukan.


#Import statistical package from Scipy
from scipy import stats

#Import the normal distribution class
from scipy.stats import norm

Kelas norm yang kita impor akan menjadi fungsi probabilitas untuk menghasilkan random variabel yang mengikuti normal distribution. Untuk mendapatkan informasi lebih lanjut tentang kelas tersebut, kita bisa melihat dokumentasinya.

print(stats.norm.__doc__)

Dokumentasinya akan memberi semua informasi dasar yang diperlukan untuk memahami objek, metode yang tersedia, dan contoh penerapan kelasnya (norm).


Kelas norm digunakan untuk random variabel yang mengikuti normal distribution. Package ini memberikan semua penjelasan yang Anda butuhkan untuk mempelajarinya, dan hanya perlu mengeksekusi beberapa baris kode untuk menghasilkan contoh konsep. Mari gunakan contoh untuk menghasilkan plot distribusi normal.

import matplotlib.pyplot as plt

#Produce 1000 Random Variable following normal distribution
r = norm.rvs(size=1000)

#Plotting the distribution
fig, ax = plt.subplots(1, 1)
ax.hist(r, density=True, histtype='stepfilled', alpha=0.2)
ax.legend(loc='best', frameon=False)
plt.show()

Masih banyak lagi yang dapat Anda eksplorasi dari package ini. Saya sarankan Anda meluangkan waktu untuk menjelajahi statistical tutorial untuk memahami package dan juga memahami teoremanya.

2. Pingouin


Pingouin adalah open-source statistical package yang digunakan terutama untuk statistik. Paket ini memberi banyak kelas dan fungsi untuk mempelajari statistik dasar dan pengujian hipotesis. Menurut pengembangnya, Pingouin dirancang untuk pengguna yang menginginkan fungsi statistik yang sederhana namun menyeluruh.


Pingouin sederhana namun menyeluruh karena package ini memberikan lebih banyak penjelasan tentang data. PadaScipy.Stats, hanya mengembalikan T-value dan p-value, ada kalanya kita ingin penjelasan lebih lanjut tentang data.


Pada Pingouin package, perhitungannya diambil beberapa langkah lebih tinggi. Sebagai contoh, alih-alih hanya mengembalikan T-value dan p-value, t-test dari Pingouin juga mengembalikan degrees of freedom, effect size (Cohen’s d), 95% confidence intervals dari perbedaan rata-rata, statistical power, dan Bayes Factor (BF10) dari uji test tersebut.


Saat ini, Pingouin package menyediakan fungsi API yang dapat Anda gunakan untuk pengujian statistik, diantaranya:

Dokumentasi API Pingouin sangat lengkap sebagai bahan belajar. Saya telah menjelajahi file tersebut dan menurut saya materinya sangat mendalam. Misalnya, mari kita jelajahi fungsi ANOVA. Pertama, Anda perlu menginstal Pingouin package.

pip install pingouin

Instalasi hanya memakan waktu beberapa detik saja. Setelah itu, kita akan menggunakan contoh dataset mpg untuk melakukan pengujian hipotesis statistik ANOVA dengan Pingouin.

#Import necessary package
import seaborn as sns
import pingouin as pg

mpg = sns.load_dataset('mpg')
pg.anova(data = mpg, dv = 'mpg', between = 'origin')

Contoh pengujian statistik diatas memberikan semua nilai yang Anda harapkan dari uji tersebut. Untuk interpretasi lebih lanjut dari hasilnya, Anda harus membaca dokumentasi API di sini.


Pingouin guideline juga memberikan Anda guideline pembelajaran untuk menggunakan testing package functions. Salah satunya adalah One-way ANOVA testing.

Guidelines for ANOVA testing (Source: https://pingouin-stats.org/guidelines.html#anova)

3. Statsmodels


Statsmodels adalah statistical model python package yang menyediakan banyak kelas dan fungsi untuk membuat estimasi statistik. Statsmodels sebelumnya merupakan bagian dari modul SciPy, tetapi saat ini, Statsmodels dikembangkan secara terpisah.


Apa bedanya antara Scipy.Stats dan statsmodels? Modul Scipy.Stats berfokus pada teorema statistik seperti fungsi probabilitas dan distribusi, sedangkan statsmodels berfokus pada estimasi statistik berdasarkan data. Statsmodels menyediakan API yang sering digunakan dalam pemodelan statistik.


Statsmodels membagi API menjadi 3 model utama:

  • statsmodels.api yang menyediakan banyak model dan metode Cross-sectional, termasuk Regresi dan GLM.

  • statsmodels.tsa.api yang menyediakan model dan metode time-series.

  • statsmodels.formula.api yang menyediakan interface untuk menentukan model menggunakan rumus string dan DataFrames — dengan kata lain, Anda dapat membuat model sendiri.


Statsmodels adalah paket awal yang bagus bagi siapa saja yang ingin memahami pemodelan statistik dengan lebih mendalam. User guide memberikan penjelasan mendalam tentang konsep yang Anda butuhkan untuk memahami estimasi statistik.


Sebagai contoh, istilah endogenous and exogenous yang diambil dari user guide Statsmodels dijelaskan dalam kutipan di bawah ini:


Beberapa definisi tidak resmi dari istilah tersebut adalah

  1. endogenous: disebabkan oleh faktor-faktor dalam sistem

  2. exogenous: disebabkan oleh faktor-faktor di luar sistem


Mari mencoba mempelajari pemodelan OLS (Ordinary Least Square) menggunakan paket Statsmodels. Jika Anda tidak menggunakan Python dari distribusi Anaconda atau belum menginstal paket Statsmodels, Anda dapat menggunakan baris kode berikut untuk melakukannya.

pip install statsmodels

Selanjutnya, mari mengembangkan model dengan mengimpor package dan dataset.

#Importing the necessary package
from sklearn.datasets import load_boston
import statsmodels.api as sm
from statsmodels.api import OLS

#import the data
boston = load_boston()
data = pd.DataFrame(data = boston['data'], columns = boston['feature_names'])
target = pd.Series(boston['target'])

#Develop the model
sm_lm = OLS(target, sm.add_constant(data))
result = sm_lm.fit()
result.summary()

Model OLS yang Anda kembangkan dengan package Statsmodels akan memberikan semua hasil yang diperlukan dari estimasi model. Untuk interpretasi lebih lanjut dari hasilnya, Anda dapat mengunjungi OLS example di website Statsmodels.


Kesimpulan

Sebagai Data Scientist, Anda diharapkan memiliki pengetahuan statistik yang memadai. Masalahnya adalah, banyak data enthusiasts hanya fokus pada pembelajaran bahasa pemrograman, terutama Python. Untuk membantu belajar statistik, saya ingin memperkenalkan 3 Python Package untuk mempelajari statistik. Diantaranya:

  1. Scipy.Stats

  2. Pingouin

  3. Statsmodels

Semoga membantu!

Artikel ditranslasi oleh: Ahmad Ilham Habibi

80 tampilan0 komentar

Postingan Terkait

Lihat Semua

Comments


bottom of page