ECDF en python sin función de paso?

He estado usando ECDF (función de distribución acumulativa empírica) de statsmodels.distributions para trazar un CDF de algunos datos. Sin embargo, ECDF utiliza una función escalonada y, como consecuencia, tengo gráficos de aspecto irregular.

introduzca la descripción de la imagen aquí

Así que mi pregunta es: ¿tienen Scipy o statsmodels un ECDF horneado sin una función de paso?

Por cierto, sé que puedo hacer esto:

hist, bin_edges = histogram(b_oz, normed=True) plot(np.cumsum(hist)) 

Pero no consigo las escalas adecuadas.

¡Gracias!

Si solo desea cambiar el gráfico, puede dejar que matplotlib se interpole entre los valores observados.

 >>> xx = np.random.randn(nobs) >>> ecdf = sm.distributions.ECDF(xx) >>> plt.plot(ecdf.x, ecdf.y) [] >>> plt.show() 

o ordenar los datos originales y la ttwig

 >>> xx.sort() >>> plt.plot(xx, ecdf(xx)) [] >>> plt.show() 

que es lo mismo que trazarlo directamente

 >>> a=0; plt.plot(xx, np.arange(1.,nobs+1)/(nobs+a)) [] >>> plt.show() 

Nota: dependiendo de cómo desea que se comporte la ecdf en los límites y cómo se centrará, hay diferentes normalizaciones para las “posiciones de trazado” que son de uso común, como el parámetro a que agregué como ejemplo a = 1 es un elección común

Como alternativa al uso de la cdf empírica, también puede usar un ecdf o histogtwig interpolado o suavizado, o una estimación de la densidad del kernel.