58
задан 5 June 2012 в 11:56

1 ответ

По-моему, ни один из предыдущих методов не делает полное (и строгий) задание графического изображения эмпирического CDF, который был исходным вопросом автора вопроса. Я отправляю свое предложение для любых потерянных и сочувствующих душ.

Мое предложение имеет следующее: 1) это считает эмпирический CDF определенным как в первом выражении здесь , т.е. как в A. W. Van der Waart Асимптотическая статистика (1998), 2) это явно показывает поведение шага функции, 3) это явно показывает, что эмпирический CDF непрерывен справа путем показа меток для разрешения разрывов, 4) это расширяет нуль, и каждый оценивает в экстремальные значения до пользовательских полей. Я надеюсь, что это помогает кому-то:

def plot_cdf( data, xaxis = None, figsize = (20,10), line_style = 'b-',
ball_style = 'bo', xlabel = r"Random variable $X$", ylabel = "$N$-samples
empirical CDF $F_{X,N}(x)$" ):
     # Contribution of each data point to the empirical distribution
     weights = 1/data.size * np.ones_like( data )
     # CDF estimation
     cdf = np.cumsum( weights )
     # Plot central part of the CDF
     plt.figure( figsize = (20,10) )
     plt.step( np.sort( a ), cdf, line_style, where = 'post' )
     # Plot valid points at discontinuities
     plt.plot( np.sort( a ), cdf, ball_style )
     # Extract plot axis and extend outside the data range
     if not xaxis == None:
         (xmin, xmax, ymin, ymax) = plt.axis( )
         xmin = xaxis[0]
         xmax = xaxis[1]
         plt.axis( [xmin, xmax, ymin, ymax] )
     else:
         (xmin,xmax,_,_) = plt.axis()
         plt.plot( [xmin, a.min(), a.min()], np.zeros( 3 ), line_style )
     plt.plot( [a.max(), xmax], np.ones( 2 ), line_style )
     plt.xlabel( xlabel )
     plt.ylabel( ylabel )
0
ответ дан 1 November 2019 в 13:04

Другие вопросы по тегам:

Похожие вопросы: