@@ -921,53 +921,53 @@ def kde(data, h, kernel='normal', *, cumulative=False):
921921 sqrt2pi = sqrt (2 * pi )
922922 sqrt2 = sqrt (2 )
923923 K = lambda t : exp (- 1 / 2 * t * t ) / sqrt2pi
924- I = lambda t : 1 / 2 * (1.0 + erf (t / sqrt2 ))
924+ W = lambda t : 1 / 2 * (1.0 + erf (t / sqrt2 ))
925925 support = None
926926
927927 case 'logistic' :
928928 # 1.0 / (exp(t) + 2.0 + exp(-t))
929929 K = lambda t : 1 / 2 / (1.0 + cosh (t ))
930- I = lambda t : 1.0 - 1.0 / (exp (t ) + 1.0 )
930+ W = lambda t : 1.0 - 1.0 / (exp (t ) + 1.0 )
931931 support = None
932932
933933 case 'sigmoid' :
934934 # (2/pi) / (exp(t) + exp(-t))
935935 c1 = 1 / pi
936936 c2 = 2 / pi
937937 K = lambda t : c1 / cosh (t )
938- I = lambda t : c2 * atan (exp (t ))
938+ W = lambda t : c2 * atan (exp (t ))
939939 support = None
940940
941941 case 'rectangular' | 'uniform' :
942942 K = lambda t : 1 / 2
943- I = lambda t : 1 / 2 * t + 1 / 2
943+ W = lambda t : 1 / 2 * t + 1 / 2
944944 support = 1.0
945945
946946 case 'triangular' :
947947 K = lambda t : 1.0 - abs (t )
948- I = lambda t : t * t * (1 / 2 if t < 0.0 else - 1 / 2 ) + t + 1 / 2
948+ W = lambda t : t * t * (1 / 2 if t < 0.0 else - 1 / 2 ) + t + 1 / 2
949949 support = 1.0
950950
951951 case 'parabolic' | 'epanechnikov' :
952952 K = lambda t : 3 / 4 * (1.0 - t * t )
953- I = lambda t : - 1 / 4 * t ** 3 + 3 / 4 * t + 1 / 2
953+ W = lambda t : - 1 / 4 * t ** 3 + 3 / 4 * t + 1 / 2
954954 support = 1.0
955955
956956 case 'quartic' | 'biweight' :
957957 K = lambda t : 15 / 16 * (1.0 - t * t ) ** 2
958- I = lambda t : 3 / 16 * t ** 5 - 5 / 8 * t ** 3 + 15 / 16 * t + 1 / 2
958+ W = lambda t : 3 / 16 * t ** 5 - 5 / 8 * t ** 3 + 15 / 16 * t + 1 / 2
959959 support = 1.0
960960
961961 case 'triweight' :
962962 K = lambda t : 35 / 32 * (1.0 - t * t ) ** 3
963- I = lambda t : 35 / 32 * (- 1 / 7 * t ** 7 + 3 / 5 * t ** 5 - t ** 3 + t ) + 1 / 2
963+ W = lambda t : 35 / 32 * (- 1 / 7 * t ** 7 + 3 / 5 * t ** 5 - t ** 3 + t ) + 1 / 2
964964 support = 1.0
965965
966966 case 'cosine' :
967967 c1 = pi / 4
968968 c2 = pi / 2
969969 K = lambda t : c1 * cos (c2 * t )
970- I = lambda t : 1 / 2 * sin (c2 * t ) + 1 / 2
970+ W = lambda t : 1 / 2 * sin (c2 * t ) + 1 / 2
971971 support = 1.0
972972
973973 case _:
@@ -981,7 +981,7 @@ def pdf(x):
981981
982982 def cdf (x ):
983983 n = len (data )
984- return sum (I ((x - x_i ) / h ) for x_i in data ) / n
984+ return sum (W ((x - x_i ) / h ) for x_i in data ) / n
985985
986986 else :
987987
@@ -1006,7 +1006,7 @@ def cdf(x):
10061006 i = bisect_left (sample , x - bandwidth )
10071007 j = bisect_right (sample , x + bandwidth )
10081008 supported = sample [i : j ]
1009- return sum ((I ((x - x_i ) / h ) for x_i in supported ), i ) / n
1009+ return sum ((W ((x - x_i ) / h ) for x_i in supported ), i ) / n
10101010
10111011 if cumulative :
10121012 cdf .__doc__ = f'CDF estimate with { h = !r} and { kernel = !r} '
0 commit comments