SciPy - Statistik

Semua fungsi statistik terletak di sub-paket scipy.stats dan daftar yang cukup lengkap dari fungsi-fungsi ini dapat diperoleh dengan menggunakan info(stats)fungsi. Daftar variabel acak yang tersedia juga dapat diperoleh daridocstringuntuk sub-paket statistik. Modul ini berisi sejumlah besar distribusi probabilitas serta pustaka fungsi statistik yang terus berkembang.

Setiap distribusi univariat memiliki subkelasnya sendiri seperti yang dijelaskan dalam tabel berikut -

No Sr Kelas & Deskripsi
1

rv_continuous

Kelas variabel acak kontinu generik yang dimaksudkan untuk subclass

2

rv_discrete

Kelas variabel acak diskrit generik yang dimaksudkan untuk subclassing

3

rv_histogram

Menghasilkan distribusi yang diberikan oleh histogram

Variabel Acak Kontinu Normal

Distribusi probabilitas di mana variabel acak X dapat mengambil nilai apa pun adalah variabel acak kontinu. Kata kunci lokasi (loc) menentukan mean. Kata kunci skala (skala) menentukan deviasi standar.

Sebagai contoh dari rv_continuous kelas, norm objek mewarisi kumpulan metode umum dan melengkapinya dengan detail khusus untuk distribusi khusus ini.

Untuk menghitung CDF di sejumlah titik, kita dapat mengirimkan daftar atau array NumPy. Mari kita perhatikan contoh berikut.

from scipy.stats import norm
import numpy as np
print norm.cdf(np.array([1,-1., 0, 1, 3, 4, -2, 6]))

Program di atas akan menghasilkan keluaran sebagai berikut.

array([ 0.84134475, 0.15865525, 0.5 , 0.84134475, 0.9986501 ,
0.99996833, 0.02275013, 1. ])

Untuk mencari median suatu distribusi, kita dapat menggunakan Percent Point Function (PPF), yang merupakan kebalikan dari CDF. Mari kita pahami dengan menggunakan contoh berikut.

from scipy.stats import norm
print norm.ppf(0.5)

Program di atas akan menghasilkan keluaran sebagai berikut.

0.0

Untuk menghasilkan urutan variasi acak, kita harus menggunakan argumen kata kunci size, yang ditunjukkan pada contoh berikut.

from scipy.stats import norm
print norm.rvs(size = 5)

Program di atas akan menghasilkan keluaran sebagai berikut.

array([ 0.20929928, -1.91049255, 0.41264672, -0.7135557 , -0.03833048])

Output di atas tidak dapat diproduksi ulang. Untuk menghasilkan nomor acak yang sama, gunakan fungsi benih.

Distribusi Seragam

Distribusi seragam dapat dihasilkan menggunakan fungsi seragam. Mari kita perhatikan contoh berikut.

from scipy.stats import uniform
print uniform.cdf([0, 1, 2, 3, 4, 5], loc = 1, scale = 4)

Program di atas akan menghasilkan keluaran sebagai berikut.

array([ 0. , 0. , 0.25, 0.5 , 0.75, 1. ])

Bangun Distribusi Diskrit

Mari kita buat sampel acak dan bandingkan frekuensi yang diamati dengan probabilitasnya.

Distribusi Binomial

Sebagai contoh dari rv_discrete class, itu binom objectmewarisi darinya kumpulan metode umum dan melengkapinya dengan detail khusus untuk distribusi khusus ini. Mari kita perhatikan contoh berikut.

from scipy.stats import uniform
print uniform.cdf([0, 1, 2, 3, 4, 5], loc = 1, scale = 4)

Program di atas akan menghasilkan keluaran sebagai berikut.

array([ 0. , 0. , 0.25, 0.5 , 0.75, 1. ])

Statistik deskriptif

Statistik dasar seperti Min, Max, Mean dan Variance menggunakan array NumPy sebagai input dan mengembalikan hasil masing-masing. Beberapa fungsi statistik dasar tersedia discipy.stats package dijelaskan dalam tabel berikut.

No Sr Deskripsi fungsi
1

describe()

Menghitung beberapa statistik deskriptif dari larik yang dilewati

2

gmean()

Menghitung rata-rata geometris sepanjang sumbu yang ditentukan

3

hmean()

Menghitung rata-rata harmonik sepanjang sumbu yang ditentukan

4

kurtosis()

Menghitung kurtosis

5

mode()

Mengembalikan nilai modal

6

skew()

Menguji kemiringan data

7

f_oneway()

Melakukan ANOVA 1 arah

8

iqr()

Menghitung rentang interkuartil dari data sepanjang sumbu yang ditentukan

9

zscore()

Menghitung skor z dari setiap nilai dalam sampel, relatif terhadap rata-rata sampel dan deviasi standar

10

sem()

Menghitung kesalahan standar dari mean (atau kesalahan standar pengukuran) dari nilai-nilai dalam larik input

Beberapa dari fungsi ini memiliki versi serupa di scipy.stats.mstats, yang berfungsi untuk larik bertopeng. Mari kita pahami ini dengan contoh yang diberikan di bawah ini.

from scipy import stats
import numpy as np
x = np.array([1,2,3,4,5,6,7,8,9])
print x.max(),x.min(),x.mean(),x.var()

Program di atas akan menghasilkan keluaran sebagai berikut.

(9, 1, 5.0, 6.666666666666667)

Uji-t

Mari kita pahami bagaimana T-test berguna di SciPy.

ttest_1samp

Menghitung uji-T untuk mean dari SATU kelompok skor. Ini adalah uji dua sisi untuk hipotesis nol bahwa nilai yang diharapkan (mean) dari sampel pengamatan independen 'a' sama dengan mean populasi yang diberikan,popmean. Mari kita perhatikan contoh berikut.

from scipy import stats
rvs = stats.norm.rvs(loc = 5, scale = 10, size = (50,2))
print stats.ttest_1samp(rvs,5.0)

Program di atas akan menghasilkan keluaran sebagai berikut.

Ttest_1sampResult(statistic = array([-1.40184894, 2.70158009]),
pvalue = array([ 0.16726344, 0.00945234]))

Membandingkan dua sampel

Dalam contoh berikut, ada dua sampel, yang dapat berasal dari distribusi yang sama atau berbeda, dan kami ingin menguji apakah sampel ini memiliki properti statistik yang sama.

ttest_ind- Menghitung T-test untuk rata-rata dua sampel skor independen. Ini adalah pengujian dua sisi untuk hipotesis nol bahwa dua sampel independen memiliki nilai rata-rata (yang diharapkan) yang identik. Tes ini mengasumsikan bahwa populasi memiliki varian identik secara default.

Kami dapat menggunakan tes ini, jika kami mengamati dua sampel independen dari populasi yang sama atau berbeda. Mari kita perhatikan contoh berikut.

from scipy import stats
rvs1 = stats.norm.rvs(loc = 5,scale = 10,size = 500)
rvs2 = stats.norm.rvs(loc = 5,scale = 10,size = 500)
print stats.ttest_ind(rvs1,rvs2)

Program di atas akan menghasilkan keluaran sebagai berikut.

Ttest_indResult(statistic = -0.67406312233650278, pvalue = 0.50042727502272966)

Anda dapat menguji hal yang sama dengan array baru dengan panjang yang sama, tetapi dengan mean yang bervariasi. Gunakan nilai yang berbeda diloc dan uji yang sama.