6 votos

Prueba de Kolmogorov-Smirnov salida extraña

Estoy intentando ajustar mis datos a la de la PDF continua (sugiero que sea de distribución gamma o lognormal). Los datos consisten en unos 6000 flotantes positivos. Pero los resultados de la prueba de Kolmogorov-Smirnov refutan por completo mis expectativas, ya que los valores p son muy bajos.

Distribución empírica de los datos

enter image description here

Ajuste de la distribución enter image description here

Código Python:

import numpy
import sys
import json
import matplotlib.pyplot as plt
import scipy
from scipy.stats import *

dist_names = ['gamma', 'lognorm']
limit = 30

def distro():
    #input file
    with open(sys.argv[1]) as f:
        y = numpy.array(json.load(f))

    #output
    results = {}
    size = y.__len__()
    x = scipy.arange(size)
    h = plt.hist(y, bins=limit, color='w')
    for dist_name in dist_names:
        dist = getattr(scipy.stats, dist_name)
        param = dist.fit(y)
        goodness_of_fit = kstest(y, dist_name, param)
        results[dist_name] = goodness_of_fit
        pdf_fitted = dist.pdf(x, *param) * size
        plt.plot(pdf_fitted, label=dist_name)
        plt.xlim(0, limit-1)
        plt.legend(loc='upper right')
    for k, v in results.iteritems():
        print(k, v)
    plt.show()

Este es el resultado:

  • El valor p es casi 0 'lognorm', (0.1111486360863001, 1.1233698406822002e-66)
  • El valor p es 0 'gamma', (0.30531260123096859, 0.0)

¿Significa que mis datos no se ajustan a la distribución gamma?. Pero parecen tan similares...

9voto

Sean Hanley Puntos 2428

Sí. Ninguna de estas distribuciones se ajusta bien a tus datos según ese criterio. Hay algunas otras distribuciones que podrías probar, pero me parece (en última instancia) poco probable que los datos reales provengan de alguna de las distribuciones bien estudiadas, y tienes 6k datos, por lo que incluso una discrepancia trivial hará que la prueba sea "significativa". (Para más información sobre este tema, véase: ¿Son las pruebas de normalidad "esencialmente inútiles"? )

Por otro lado, en lugar de comprobar si sus datos divergen significativamente de estas distribuciones, podría ver cómo sus datos correlacionar con las distribuciones que le interesan, el ajuste puede ser "suficientemente bueno" para sus propósitos. (Para más información sobre este tema, consulte mi respuesta aquí: Comprobación de los datos generados aleatoriamente con respecto a su distribución prevista .)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X