Maison >développement back-end >Tutoriel Python >Comment puis-je adapter une distribution empirique à une distribution théorique en utilisant SciPy en Python ?

Comment puis-je adapter une distribution empirique à une distribution théorique en utilisant SciPy en Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-24 09:58:11316parcourir

How Can I Fit an Empirical Distribution to a Theoretical One Using SciPy in Python?

Ajustement d'une distribution empirique à une distribution théorique à l'aide de Scipy (Python)

En statistiques, il est souvent nécessaire d'ajuster une distribution empirique, obtenue à partir de données observées, à une distribution théorique qui décrit le mieux les données. Cela permet le calcul de probabilités et d'autres inférences statistiques.

Implémentation en Python (Scipy)

Scipy fournit de nombreuses fonctions de distribution qui peuvent être adaptées aux données. . Pour trouver la distribution la plus adaptée, la méthode des moindres carrés est souvent utilisée pour minimiser la somme des erreurs quadratiques (SSE) entre l'histogramme des données et l'histogramme de la distribution ajustée.

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>Exemple

Dans l'exemple ci-dessus, la distribution empirique des données est ajustée à trois distributions théoriques différentes (normal, bêta et gamma). La distribution gamma présente le SSE le plus bas et constitue donc le meilleur ajustement. La valeur p pour la valeur 5 est ensuite calculée comme la fonction de distribution cumulée de la distribution gamma évaluée à 5.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn