Dist_sum¶
-
class
stats.
Dist_sum
(dists)¶ Bases:
stats.Dist_qilum
Distribution for a sum of distributions.
- Parameters
dists (array like) – array of scipy stats distributions or Dist_qilum
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]);
Methods Summary
F_tot
()Cumulative of the function f() on the whole valid range x
cdf
(x)Cumulative distribution function.
f
(x)function f(x)
name
()Name of the class
pdf
(x)Probability density function
ppf
(q)Percent point function (inverse of cdf) at q
rvs
(size)random numbers in ndarray of lenght size
rvs_xy
(size)random numbers rans in ndarray of lenght size and function(rans)
Methods Documentation
-
F_tot
()¶ Cumulative of the function f() on the whole valid range x
- Returns
dist.F_tot()*scale_y*|scale_x|; if dist.F_tot() not define set to 1
- Return type
int
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> print(dist.F_tot()) 5
-
cdf
(x)¶ Cumulative distribution function.
- Parameters
x (array_like of type(values)) –
- Returns
Cumulative distribution function evaluated at x
- Return type
ndarray
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> x = [-3,1,2,3] >>> print('cdf(x)=',dist.cdf(x)) cdf(x)= [0.05413411 0.4 0.4 0.77927234]
-
f
(x)¶ function f(x)
- Parameters
x (array_like of type(values)) –
- Returns
f(x)
- Return type
ndarray
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> x = [-3,1,2,3] >>> print('f(x)=',dist.f(x)) f(x)= [0.27067057 0. 3. 1.10363832]
-
name
()¶ Name of the class
- Returns
‘Dist_sum’
- Return type
string
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> dist.name() 'Dist_sum'
-
pdf
(x)¶ Probability density function
- Parameters
x (array_like of type(values)) –
- Returns
f(x)/F_tot()
- Return type
ndarray
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> x = [-3,1,2,3] >>> print('pdf(x)=',dist.pdf(x)) pdf(x)= [0.05413411 0. 0.6 0.22072766]
-
ppf
(q)¶ Percent point function (inverse of cdf) at q
- Parameters
q (array_like of double) – lower tail probability
- Returns
quantile corresponding to the lower tail probability q
- Return type
ndarray
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> q = [0, 0.3,0.5,0.7,1] >>> print('ppf(q)=',dist.ppf(q)) NotImplementedError: Sum::ppf: not implemented
-
rvs
(size)¶ random numbers in ndarray of lenght size
- Parameters
size (int) – number of random number
- Returns
random numbers
- Return type
ndarray
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> print('rans=',dist.rvs(4)) rans= [-1.69435547 -1.25739917 -1.01561614 4.38379953]
-
rvs_xy
(size)¶ random numbers rans in ndarray of lenght size and function(rans)
- Parameters
size (int) – number of random number
- Returns
ndarray – random numbers
ndarray – f(random numbers)
Examples
>>> import qilum.stats as qs >>> import scipy.stats >>> # exponential distributions left and right types >>> exp_left = qs.Dist_scale(scipy.stats.expon(),loc_x=-1, scale_x=-1, scale_y=2, name='Exp+') >>> exp_right = qs.Dist_scale(scipy.stats.expon(),loc_x= 2, scale_x= 1, scale_y=3, name='Exp-') >>> dist = qs.Dist_sum([exp_left, exp_right]); >>> print('rans=',dist.rvs_xy(2)) rans= (array([-1.90014397, -3.38554518]), array([0.81302226, 0.18407758]))