dataset besar nilai integer dan bertujuan untuk mengira nilai-p, kebarangkalian menemui nilai yang lebih tinggi. Untuk menentukan kebarangkalian ini, anda mencari taburan teori yang menghampiri taburan data anda. Artikel ini meneroka cara untuk mencapai ini menggunakan pakej Scipy Python.
Modul scipy.stats Scipy menyediakan koleksi berterusan dan diskret taburan kebarangkalian. Setiap pengedaran mempunyai parameter tersendiri yang mencirikan bentuk dan tingkah lakunya. Matlamatnya ialah untuk mencari taburan yang paling sesuai dengan data empirikal anda berdasarkan ujian kesesuaian.
Satu pendekatan adalah untuk menggunakan Jumlah Ralat Kuasa Dua (SSE) sebagai ukuran kebaikan. SSE mengira perbezaan kuasa dua antara fungsi ketumpatan kebarangkalian empirikal dan teori. Taburan dengan SSE minimum dianggap paling sesuai.
Kod Python berikut menunjukkan cara untuk menyesuaikan data anda dengan pengedaran teori menggunakan SSE:
data = pd.read_csv('data.csv') # Gantikan dengan anda fail data
plt.hist(data, bins=50)
plt.show()
dist_names = ['norma', 'expon', 'gamma', 'beta']
best_distribution = Tiada
min_sse = np.inf
untuk dist dalam dist_names:
dist = getattr(st, dist) params = dist.fit(data) # Calculate SSE sse = np.mean((dist.pdf(data, *params) - np.histogram(data, bins=50, density=True)[0]) ** 2) # Update the best distribution if necessary if sse < min_sse: min_sse = sse best_distribution = dist, params
print(edaran_terbaik[0].nama, pengedaran_terbaik[1])
Kod ini memberikan nama pengedaran yang paling sesuai bersama dengannya parameter anggaran. Anda boleh menggunakan parameter ini untuk mengira nilai-p dan menilai kebaikan kesesuaian taburan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Data Empirikal kepada Taburan Teori Menggunakan Scipy dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!