Reputation: 183
I need the python equivalent code for the below MATLAB code:
[f,xi] = ksdensity(data,'Support','positive','Function','cdf');
I find the below python code, but I don't know how I can provide its cdf
. I appreciate it if you could guide me.
from scipy import stats
kde = stats.gaussian_kde(data)
Upvotes: 0
Views: 486
Reputation: 421
Try this, link.
def insert_size(insert_size_distribution):
"""Calculate cumulative distribution function from the raw insert size
distributin. Uses 1D kernel density estimation.
Args:
insert_size_distribution (list): list of insert sizes from aligned
read pairs
Returns:
1darray: a cumulative density function
"""
kde = stats.gaussian_kde(
insert_size_distribution,
bw_method=0.2 / np.std(insert_size_distribution, ddof=1))
x_grid = np.linspace(
min(insert_size_distribution),
max(insert_size_distribution), 1000)
kde = kde.evaluate(x_grid)
cdf = np.cumsum(kde)
cdf = cdf / cdf[-1]
return cdf
Upvotes: 1
Reputation: 183
The following code works for me:
import scipy
kde = scipy.stats.gaussian_kde(data)
my_cdf = scipy.stats.norm.cdf(kde)
Upvotes: 0