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

Mary-Kate Olsen
Libérer: 2024-11-24 09:58:11
original
237 Les gens l'ont consulté

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)
Copier après la connexion

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

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal