Kernel Density Estimation
In [1]:
1 2 3 4 5 | <span class = "kn" > import < / span> <span class = "nn" >numpy< / span> <span class = "kn" >as< / span> <span class = "nn" >np< / span> <span class = "kn" > from < / span> <span class = "nn" >scipy< / span> <span class = "kn" > import < / span> <span class = "n" >stats< / span> <span class = "kn" > import < / span> <span class = "nn" >statsmodels.api< / span> <span class = "kn" >as< / span> <span class = "nn" >sm< / span> <span class = "kn" > import < / span> <span class = "nn" >matplotlib.pyplot< / span> <span class = "kn" >as< / span> <span class = "nn" >plt< / span> <span class = "kn" > from < / span> <span class = "nn" >statsmodels.distributions.mixture_rvs< / span> <span class = "kn" > import < / span> <span class = "n" >mixture_rvs< / span> |
A univariate example.
In [2]:
1 | <span class = "n" >np< / span><span class = "o" >.< / span><span class = "n" >random< / span><span class = "o" >.< / span><span class = "n" >seed< / span><span class = "p" >(< / span><span class = "mi" > 12345 < / span><span class = "p" >)< / span> |
In [3]:
1 2 | <span class = "n" >obs_dist1< / span> <span class = "o" > = < / span> <span class = "n" >mixture_rvs< / span><span class = "p" >([< / span><span class = "o" >.< / span><span class = "mi" > 25 < / span><span class = "p" >,< / span><span class = "o" >.< / span><span class = "mi" > 75 < / span><span class = "p" >],< / span> <span class = "n" >size< / span><span class = "o" > = < / span><span class = "mi" > 10000 < / span><span class = "p" >,< / span> <span class = "n" >dist< / span><span class = "o" > = < / span><span class = "p" >[< / span><span class = "n" >stats< / span><span class = "o" >.< / span><span class = "n" >norm< / span><span class = "p" >,< / span> <span class = "n" >stats< / span><span class = "o" >.< / span><span class = "n" >norm< / span><span class = "p" >],< / span> <span class = "n" >kwargs< / span> <span class = "o" > = < / span> <span class = "p" >(< / span><span class = "nb" > dict < / span><span class = "p" >(< / span><span class = "n" >loc< / span><span class = "o" > = - < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >scale< / span><span class = "o" > = .< / span><span class = "mi" > 5 < / span><span class = "p" >),< / span><span class = "nb" > dict < / span><span class = "p" >(< / span><span class = "n" >loc< / span><span class = "o" > = < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >scale< / span><span class = "o" > = .< / span><span class = "mi" > 5 < / span><span class = "p" >)))< / span> |
In [4]:
1 2 | <span class = "n" >kde< / span> <span class = "o" > = < / span> <span class = "n" >sm< / span><span class = "o" >.< / span><span class = "n" >nonparametric< / span><span class = "o" >.< / span><span class = "n" >KDEUnivariate< / span><span class = "p" >(< / span><span class = "n" >obs_dist1< / span><span class = "p" >)< / span> <span class = "n" >kde< / span><span class = "o" >.< / span><span class = "n" >fit< / span><span class = "p" >()< / span> |
In [5]:
1 2 3 4 | <span class = "n" >fig< / span> <span class = "o" > = < / span> <span class = "n" >plt< / span><span class = "o" >.< / span><span class = "n" >figure< / span><span class = "p" >(< / span><span class = "n" >figsize< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 12 < / span><span class = "p" >,< / span><span class = "mi" > 8 < / span><span class = "p" >))< / span> <span class = "n" >ax< / span> <span class = "o" > = < / span> <span class = "n" >fig< / span><span class = "o" >.< / span><span class = "n" >add_subplot< / span><span class = "p" >(< / span><span class = "mi" > 111 < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >hist< / span><span class = "p" >(< / span><span class = "n" >obs_dist1< / span><span class = "p" >,< / span> <span class = "n" >bins< / span><span class = "o" > = < / span><span class = "mi" > 50 < / span><span class = "p" >,< / span> <span class = "n" >normed< / span><span class = "o" > = < / span><span class = "bp" > True < / span><span class = "p" >,< / span> <span class = "n" >color< / span><span class = "o" > = < / span><span class = "s" > 'red' < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >plot< / span><span class = "p" >(< / span><span class = "n" >kde< / span><span class = "o" >.< / span><span class = "n" >support< / span><span class = "p" >,< / span> <span class = "n" >kde< / span><span class = "o" >.< / span><span class = "n" >density< / span><span class = "p" >,< / span> <span class = "n" >lw< / span><span class = "o" > = < / span><span class = "mi" > 2 < / span><span class = "p" >,< / span> <span class = "n" >color< / span><span class = "o" > = < / span><span class = "s" > 'black' < / span><span class = "p" >);< / span> |
In [6]:
1 2 3 4 5 | <span class = "n" >obs_dist2< / span> <span class = "o" > = < / span> <span class = "n" >mixture_rvs< / span><span class = "p" >([< / span><span class = "o" >.< / span><span class = "mi" > 25 < / span><span class = "p" >,< / span><span class = "o" >.< / span><span class = "mi" > 75 < / span><span class = "p" >],< / span> <span class = "n" >size< / span><span class = "o" > = < / span><span class = "mi" > 10000 < / span><span class = "p" >,< / span> <span class = "n" >dist< / span><span class = "o" > = < / span><span class = "p" >[< / span><span class = "n" >stats< / span><span class = "o" >.< / span><span class = "n" >norm< / span><span class = "p" >,< / span> <span class = "n" >stats< / span><span class = "o" >.< / span><span class = "n" >beta< / span><span class = "p" >],< / span> <span class = "n" >kwargs< / span> <span class = "o" > = < / span> <span class = "p" >(< / span><span class = "nb" > dict < / span><span class = "p" >(< / span><span class = "n" >loc< / span><span class = "o" > = - < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >scale< / span><span class = "o" > = .< / span><span class = "mi" > 5 < / span><span class = "p" >),< / span><span class = "nb" > dict < / span><span class = "p" >(< / span><span class = "n" >loc< / span><span class = "o" > = < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >scale< / span><span class = "o" > = < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >args< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "o" >.< / span><span class = "mi" > 5 < / span><span class = "p" >))))< / span> <span class = "n" >kde2< / span> <span class = "o" > = < / span> <span class = "n" >sm< / span><span class = "o" >.< / span><span class = "n" >nonparametric< / span><span class = "o" >.< / span><span class = "n" >KDEUnivariate< / span><span class = "p" >(< / span><span class = "n" >obs_dist2< / span><span class = "p" >)< / span> <span class = "n" >kde2< / span><span class = "o" >.< / span><span class = "n" >fit< / span><span class = "p" >()< / span> |
In [7]:
1 2 3 4 | <span class = "n" >fig< / span> <span class = "o" > = < / span> <span class = "n" >plt< / span><span class = "o" >.< / span><span class = "n" >figure< / span><span class = "p" >(< / span><span class = "n" >figsize< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 12 < / span><span class = "p" >,< / span><span class = "mi" > 8 < / span><span class = "p" >))< / span> <span class = "n" >ax< / span> <span class = "o" > = < / span> <span class = "n" >fig< / span><span class = "o" >.< / span><span class = "n" >add_subplot< / span><span class = "p" >(< / span><span class = "mi" > 111 < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >hist< / span><span class = "p" >(< / span><span class = "n" >obs_dist2< / span><span class = "p" >,< / span> <span class = "n" >bins< / span><span class = "o" > = < / span><span class = "mi" > 50 < / span><span class = "p" >,< / span> <span class = "n" >normed< / span><span class = "o" > = < / span><span class = "bp" > True < / span><span class = "p" >,< / span> <span class = "n" >color< / span><span class = "o" > = < / span><span class = "s" > 'red' < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >plot< / span><span class = "p" >(< / span><span class = "n" >kde2< / span><span class = "o" >.< / span><span class = "n" >support< / span><span class = "p" >,< / span> <span class = "n" >kde2< / span><span class = "o" >.< / span><span class = "n" >density< / span><span class = "p" >,< / span> <span class = "n" >lw< / span><span class = "o" > = < / span><span class = "mi" > 2 < / span><span class = "p" >,< / span> <span class = "n" >color< / span><span class = "o" > = < / span><span class = "s" > 'black' < / span><span class = "p" >);< / span> |
The fitted KDE object is a full non-parametric distribution.
In [8]:
1 2 3 4 | <span class = "n" >obs_dist3< / span> <span class = "o" > = < / span> <span class = "n" >mixture_rvs< / span><span class = "p" >([< / span><span class = "o" >.< / span><span class = "mi" > 25 < / span><span class = "p" >,< / span><span class = "o" >.< / span><span class = "mi" > 75 < / span><span class = "p" >],< / span> <span class = "n" >size< / span><span class = "o" > = < / span><span class = "mi" > 1000 < / span><span class = "p" >,< / span> <span class = "n" >dist< / span><span class = "o" > = < / span><span class = "p" >[< / span><span class = "n" >stats< / span><span class = "o" >.< / span><span class = "n" >norm< / span><span class = "p" >,< / span> <span class = "n" >stats< / span><span class = "o" >.< / span><span class = "n" >norm< / span><span class = "p" >],< / span> <span class = "n" >kwargs< / span> <span class = "o" > = < / span> <span class = "p" >(< / span><span class = "nb" > dict < / span><span class = "p" >(< / span><span class = "n" >loc< / span><span class = "o" > = - < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >scale< / span><span class = "o" > = .< / span><span class = "mi" > 5 < / span><span class = "p" >),< / span><span class = "nb" > dict < / span><span class = "p" >(< / span><span class = "n" >loc< / span><span class = "o" > = < / span><span class = "mi" > 1 < / span><span class = "p" >,< / span><span class = "n" >scale< / span><span class = "o" > = .< / span><span class = "mi" > 5 < / span><span class = "p" >)))< / span> <span class = "n" >kde3< / span> <span class = "o" > = < / span> <span class = "n" >sm< / span><span class = "o" >.< / span><span class = "n" >nonparametric< / span><span class = "o" >.< / span><span class = "n" >KDEUnivariate< / span><span class = "p" >(< / span><span class = "n" >obs_dist3< / span><span class = "p" >)< / span> <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >fit< / span><span class = "p" >()< / span> |
In [9]:
1 | <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >entropy< / span> |
Out[9]:
In [10]:
1 | <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >evaluate< / span><span class = "p" >(< / span><span class = "o" > - < / span><span class = "mi" > 1 < / span><span class = "p" >)< / span> |
Out[10]:
CDF
In [11]:
1 2 3 | <span class = "n" >fig< / span> <span class = "o" > = < / span> <span class = "n" >plt< / span><span class = "o" >.< / span><span class = "n" >figure< / span><span class = "p" >(< / span><span class = "n" >figsize< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 12 < / span><span class = "p" >,< / span><span class = "mi" > 8 < / span><span class = "p" >))< / span> <span class = "n" >ax< / span> <span class = "o" > = < / span> <span class = "n" >fig< / span><span class = "o" >.< / span><span class = "n" >add_subplot< / span><span class = "p" >(< / span><span class = "mi" > 111 < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >plot< / span><span class = "p" >(< / span><span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >support< / span><span class = "p" >,< / span> <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >cdf< / span><span class = "p" >);< / span> |
Cumulative Hazard Function
In [12]:
1 2 3 | <span class = "n" >fig< / span> <span class = "o" > = < / span> <span class = "n" >plt< / span><span class = "o" >.< / span><span class = "n" >figure< / span><span class = "p" >(< / span><span class = "n" >figsize< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 12 < / span><span class = "p" >,< / span><span class = "mi" > 8 < / span><span class = "p" >))< / span> <span class = "n" >ax< / span> <span class = "o" > = < / span> <span class = "n" >fig< / span><span class = "o" >.< / span><span class = "n" >add_subplot< / span><span class = "p" >(< / span><span class = "mi" > 111 < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >plot< / span><span class = "p" >(< / span><span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >support< / span><span class = "p" >,< / span> <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >cumhazard< / span><span class = "p" >);< / span> |
Inverse CDF
In [13]:
1 2 3 | <span class = "n" >fig< / span> <span class = "o" > = < / span> <span class = "n" >plt< / span><span class = "o" >.< / span><span class = "n" >figure< / span><span class = "p" >(< / span><span class = "n" >figsize< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 12 < / span><span class = "p" >,< / span><span class = "mi" > 8 < / span><span class = "p" >))< / span> <span class = "n" >ax< / span> <span class = "o" > = < / span> <span class = "n" >fig< / span><span class = "o" >.< / span><span class = "n" >add_subplot< / span><span class = "p" >(< / span><span class = "mi" > 111 < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >plot< / span><span class = "p" >(< / span><span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >support< / span><span class = "p" >,< / span> <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >icdf< / span><span class = "p" >);< / span> |
Survival Function
In [14]:
1 2 3 | <span class = "n" >fig< / span> <span class = "o" > = < / span> <span class = "n" >plt< / span><span class = "o" >.< / span><span class = "n" >figure< / span><span class = "p" >(< / span><span class = "n" >figsize< / span><span class = "o" > = < / span><span class = "p" >(< / span><span class = "mi" > 12 < / span><span class = "p" >,< / span><span class = "mi" > 8 < / span><span class = "p" >))< / span> <span class = "n" >ax< / span> <span class = "o" > = < / span> <span class = "n" >fig< / span><span class = "o" >.< / span><span class = "n" >add_subplot< / span><span class = "p" >(< / span><span class = "mi" > 111 < / span><span class = "p" >)< / span> <span class = "n" >ax< / span><span class = "o" >.< / span><span class = "n" >plot< / span><span class = "p" >(< / span><span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >support< / span><span class = "p" >,< / span> <span class = "n" >kde3< / span><span class = "o" >.< / span><span class = "n" >sf< / span><span class = "p" >);< / span> |
Please login to continue.