Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah Saya Boleh Menyesuaikan Taburan Empirikal kepada Taburan Teori Menggunakan SciPy dalam Python?
Dalam perangkaan, selalunya perlu untuk memuatkan taburan empirikal, diperoleh daripada data yang diperhatikan, kepada taburan teori yang paling menggambarkan data. Ini membolehkan pengiraan kebarangkalian dan inferens statistik lain.
Scipy menyediakan pelbagai fungsi pengedaran yang boleh dipasang pada data . Untuk mencari taburan yang paling sesuai, kaedah kuasa dua terkecil selalunya digunakan untuk meminimumkan jumlah ralat kuasa dua (SSE) antara histogram data dan histogram taburan terpasang.
import numpy as np import scipy.stats as st # Data points data = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] # Candidate theoretical distributions distributions = ['norm', 'beta', 'gamma'] # Iterate over distributions and find best fit best_dist = None lowest_sse = float('inf') for dist_name in distributions: dist = getattr(st, dist_name) # Fit distribution to data params = dist.fit(data) # Evaluate SSE sse = np.sum((np.histogram(data, bins=10, density=True)[0] - dist.pdf(np.linspace(0, 10, 100), *params))**2) # Update best distribution if lower SSE found if sse < lowest_sse: lowest_sse = sse best_dist = dist # Calculate p-value for a given value value = 5 p_value = best_dist.cdf(value)
< h2>Contoh
Dalam contoh di atas, taburan empirikal data dipasang pada tiga berbeza taburan teori (normal, beta, dan gamma). Taburan gamma didapati mempunyai SSE terendah dan oleh itu paling sesuai. Nilai-p untuk nilai 5 kemudiannya dikira sebagai fungsi taburan kumulatif taburan gamma yang dinilai pada 5.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyesuaikan Taburan Empirikal kepada Taburan Teori Menggunakan SciPy dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!