from scipy import stats
import numpy as np
class your_distribution(stats.rv_continuous):
def _pdf(self, x):
p0 = 10.9949
p1 = 0.394447
p2 = 12818.4
p3 = 2.38898
return ((p1*p3)/(p3*p0+p2*p1))*((p0*np.exp(-1.0*p1*x))+(p2*np.exp(-1.0*p3*x)))
distribution = your_distribution(a=0.15, b=10.1)
sample = distribution.rvs(size=50000)
The code above generates 50000 samples from a normalized pdf in the range 0.15 to 10.1. However, there is a disproportionately large number of samples generated at the upper bound b=10.1
. This does not make sense, as seen when the pdf is plotted.
How would I fix this issue?
Aucun commentaire:
Enregistrer un commentaire