Weibull Distribution¶
Table of contents
Density Function¶
The density function of the Weibull distribution:
Methods for scalar input, as well as for vector/matrix input, are listed below.
Scalar Input¶
-
template<typename T1, typename T2, typename T3>
constexpr common_return_t<T1, T2, T3> dweibull(const T1 x, const T2 shape_par, const T3 scale_par, const bool log_form = false) noexcept¶ Density function of the Weibull distribution.
Example:
stats::dweibull(1.0,2.0,3.0,false);
- Parameters
x – a real-valued input.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-density or the true form.
- Returns
the density function evaluated at
x.
Vector/Matrix Input¶
STL Containers¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>>
inline std::vector<rT> dweibull(const std::vector<eT> &x, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Density function of the Weibull distribution.
Example:
std::vector<double> x = {1.8, 0.7, 4.2}; stats::dweibull(x,3.0,2.0,false);
- Parameters
x – a standard vector.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-density or the true form.
- Returns
a vector of density function values corresponding to the elements of
x.
Armadillo¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>>
inline ArmaMat<rT> dweibull(const ArmaMat<eT> &X, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Density function of the Weibull distribution.
Example:
arma::mat X = { {1.8, 0.7, 4.2}, {0.3, 5.3, 3.7} }; stats::dweibull(X,3.0,2.0,false);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-density or the true form.
- Returns
a matrix of density function values corresponding to the elements of
X.
Blaze¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>, bool To = blaze::columnMajor>
inline BlazeMat<rT, To> dweibull(const BlazeMat<eT, To> &X, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Density function of the Weibull distribution.
Example:
stats::dweibull(X,3.0,2.0,false);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-density or the true form.
- Returns
a matrix of density function values corresponding to the elements of
X.
Eigen¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>, int iTr = Eigen::Dynamic, int iTc = Eigen::Dynamic>
inline EigenMat<rT, iTr, iTc> dweibull(const EigenMat<eT, iTr, iTc> &X, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Density function of the Weibull distribution.
Example:
stats::dweibull(X,3.0,2.0,false);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-density or the true form.
- Returns
a matrix of density function values corresponding to the elements of
X.
Cumulative Distribution Function¶
The cumulative distribution function of the Weibull distribution:
Methods for scalar input, as well as for vector/matrix input, are listed below.
Scalar Input¶
-
template<typename T1, typename T2, typename T3>
constexpr common_return_t<T1, T2, T3> pweibull(const T1 x, const T2 shape_par, const T3 scale_par, const bool log_form = false) noexcept¶ Distribution function of the Weibull distribution.
Example:
stats::pweibull(1.0,2.0,3.0,false);
- Parameters
x – a real-valued input.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-probability or the true form.
- Returns
the cumulative distribution function evaluated at
x.
Vector/Matrix Input¶
STL Containers¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>>
inline std::vector<rT> pweibull(const std::vector<eT> &x, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Distribution function of the Weibull distribution.
Example:
std::vector<double> x = {1.8, 0.7, 4.2}; stats::pweibull(x,3.0,2.0,false);
- Parameters
x – a standard vector.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-probability or the true form.
- Returns
a vector of CDF values corresponding to the elements of
x.
Armadillo¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>>
inline ArmaMat<rT> pweibull(const ArmaMat<eT> &X, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Distribution function of the Weibull distribution.
Example:
arma::mat X = { {1.8, 0.7, 4.2}, {0.3, 5.3, 3.7} }; stats::pweibull(X,3.0,2.0,false);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-probability or the true form.
- Returns
a matrix of CDF values corresponding to the elements of
X.
Blaze¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>, bool To = blaze::columnMajor>
inline BlazeMat<rT, To> pweibull(const BlazeMat<eT, To> &X, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Distribution function of the Weibull distribution.
Example:
stats::pweibull(X,3.0,2.0,false);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-probability or the true form.
- Returns
a matrix of CDF values corresponding to the elements of
X.
Eigen¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>, int iTr = Eigen::Dynamic, int iTc = Eigen::Dynamic>
inline EigenMat<rT, iTr, iTc> pweibull(const EigenMat<eT, iTr, iTc> &X, const T1 shape_par, const T2 scale_par, const bool log_form = false)¶ Distribution function of the Weibull distribution.
Example:
stats::pweibull(X,3.0,2.0,false);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
log_form – return the log-probability or the true form.
- Returns
a matrix of CDF values corresponding to the elements of
X.
Quantile Function¶
The quantile function of the Weibull distribution:
Methods for scalar input, as well as for vector/matrix input, are listed below.
Scalar Input¶
-
template<typename T1, typename T2, typename T3>
constexpr common_return_t<T1, T2, T3> qweibull(const T1 p, const T2 shape_par, const T3 scale_par) noexcept¶ Quantile function of the Weibull distribution.
Example:
stats::qweibull(0.5,2.0,3.0);
- Parameters
p – a real-valued input.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
- Returns
the quantile function evaluated at
p.
Vector/Matrix Input¶
STL Containers¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>>
inline std::vector<rT> qweibull(const std::vector<eT> &x, const T1 shape_par, const T2 scale_par)¶ Quantile function of the Weibull distribution.
Example:
std::vector<double> x = {0.3, 0.5, 0.9}; stats::qweibull(x,3.0,2.0);
- Parameters
x – a standard vector.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
- Returns
a vector of quantile values corresponding to the elements of
x.
Armadillo¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>>
inline ArmaMat<rT> qweibull(const ArmaMat<eT> &X, const T1 shape_par, const T2 scale_par)¶ Quantile function of the Weibull distribution.
Example:
arma::mat X = { {0.2, 0.7, 0.1}, {0.9, 0.3, 0.87} }; stats::qweibull(X,3.0,2.0);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
- Returns
a matrix of quantile values corresponding to the elements of
X.
Blaze¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>, bool To = blaze::columnMajor>
inline BlazeMat<rT, To> qweibull(const BlazeMat<eT, To> &X, const T1 shape_par, const T2 scale_par)¶ Quantile function of the Weibull distribution.
Example:
stats::qweibull(X,3.0,2.0);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
- Returns
a matrix of quantile values corresponding to the elements of
X.
Eigen¶
-
template<typename eT, typename T1, typename T2, typename rT = common_return_t<eT, T1, T2>, int iTr = Eigen::Dynamic, int iTc = Eigen::Dynamic>
inline EigenMat<rT, iTr, iTc> qweibull(const EigenMat<eT, iTr, iTc> &X, const T1 shape_par, const T2 scale_par)¶ Quantile function of the Weibull distribution.
Example:
stats::qweibull(X,3.0,2.0);
- Parameters
X – a matrix of input values.
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
- Returns
a matrix of quantile values corresponding to the elements of
X.
Random Sampling¶
Random sampling for the Weibull distribution is achieved via the inverse probability integral transform.
Scalar Output¶
Random number engines
-
template<typename T1, typename T2>
inline common_return_t<T1, T2> rweibull(const T1 shape_par, const T2 scale_par, rand_engine_t &engine)¶ Random sampling function for the Weibull distribution.
Example:
stats::rand_engine_t engine(1776); stats::rweibull(3.0,2.0,engine);
- Parameters
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
engine – a random engine, passed by reference.
- Returns
a pseudo-random draw from the Weibull distribution.
Seed values
-
template<typename T1, typename T2>
inline common_return_t<T1, T2> rweibull(const T1 shape_par, const T2 scale_par, const ullint_t seed_val = std::random_device{}())¶ Random sampling function for the Weibull distribution.
Example:
stats::rweibull(3.0,2.0,1776);
- Parameters
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
seed_val – initialize the random engine with a non-negative integral-valued seed.
- Returns
a pseudo-random draw from the Weibull distribution.
Vector/Matrix Output¶
Random number engines
-
template<typename mT, typename T1, typename T2>
inline mT rweibull(const ullint_t n, const ullint_t k, const T1 shape_par, const T2 scale_par, rand_engine_t &engine)¶ Random matrix sampling function for the Weibull distribution.
Example:
stats::rand_engine_t engine(1776); // std::vector stats::rweibull<std::vector<double>>(5,4,3.0,2.0,engine); // Armadillo matrix stats::rweibull<arma::mat>(5,4,3.0,2.0,engine); // Blaze dynamic matrix stats::rweibull<blaze::DynamicMatrix<double,blaze::columnMajor>>(5,4,3.0,2.0,engine); // Eigen dynamic matrix stats::rweibull<Eigen::MatrixXd>(5,4,3.0,2.0,engine);
Note
This function requires template instantiation; acceptable output types include:
std::vector, with element typefloat,double, etc., as well as Armadillo, Blaze, and Eigen dense matrices.- Parameters
n – the number of output rows
k – the number of output columns
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
engine – a random engine, passed by reference.
- Returns
a matrix of pseudo-random draws from the Weibull distribution.
Seed values
-
template<typename mT, typename T1, typename T2>
inline mT rweibull(const ullint_t n, const ullint_t k, const T1 shape_par, const T2 scale_par, const ullint_t seed_val = std::random_device{}())¶ Random matrix sampling function for the Weibull distribution.
Example:
// std::vector stats::rweibull<std::vector<double>>(5,4,3.0,2.0); // Armadillo matrix stats::rweibull<arma::mat>(5,4,3.0,2.0); // Blaze dynamic matrix stats::rweibull<blaze::DynamicMatrix<double,blaze::columnMajor>>(5,4,3.0,2.0); // Eigen dynamic matrix stats::rweibull<Eigen::MatrixXd>(5,4,3.0,2.0);
Note
This function requires template instantiation; acceptable output types include:
std::vector, with element typefloat,double, etc., as well as Armadillo, Blaze, and Eigen dense matrices.- Parameters
n – the number of output rows
k – the number of output columns
shape_par – the shape parameter, a real-valued input.
scale_par – the scale parameter, a real-valued input.
seed_val – initialize the random engine with a non-negative integral-valued seed.
- Returns
a matrix of pseudo-random draws from the Weibull distribution.