정수 값으로 구성된 대규모 데이터 세트를 사용하여 p-값, 즉 확률을 계산하는 것을 목표로 합니다. 더 높은 가치를 만나다. 이러한 확률을 결정하려면 데이터 분포에 근접한 이론적 분포를 구해야 합니다. 이 기사에서는 Python의 Scipy 패키지를 사용하여 이를 달성하는 방법을 살펴봅니다.
Scipy의 scipy.stats 모듈은 연속 및 이산 분포의 광범위한 컬렉션을 제공합니다. 확률 분포. 각 분포에는 모양과 동작을 특징짓는 고유한 매개변수가 있습니다. 목표는 적합도 검정을 기반으로 경험적 데이터에 가장 잘 맞는 분포를 찾는 것입니다.
One 접근 방식은 적합도 척도로 SSE(Sum of Squared Error)를 활용하는 것입니다. SSE는 경험적 확률 밀도 함수와 이론적 확률 밀도 함수 간의 제곱 차이를 계산합니다. SSE가 최소인 분포가 가장 적합한 것으로 간주됩니다.
다음 Python 코드는 데이터를 이론적 분포에 맞추는 방법을 보여줍니다. SSE 사용:
data = pd.read_csv('data.csv') # 데이터 파일로 교체
plt.hist(data, bins=50)
plt.show()
dist_names = ['norm', 'expon', 'gamma', 'beta']
best_distribution = 없음
min_sse = np.inf
dist_names의 dist에 대해:
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
인쇄 (최고_배포[0].이름, best_distribution[1])
이 코드는 추정 매개변수와 함께 가장 적합한 분포의 이름을 제공합니다. 이러한 매개변수를 사용하여 p-값을 계산하고 분포의 적합도를 평가할 수 있습니다.
위 내용은 Python에서 Scipy를 사용하여 경험적 데이터를 이론적 분포에 어떻게 맞출 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!