Class: Rubystats::LognormalDistribution
- Inherits:
-
ProbabilityDistribution
- Object
- ProbabilityDistribution
- Rubystats::LognormalDistribution
- Includes:
- SpecialMath
- Defined in:
- lib/rubystats/lognormal_distribution.rb
Constant Summary
Constants included from NumericalConstants
NumericalConstants::EPS, NumericalConstants::GAMMA, NumericalConstants::GAMMA_X_MAX_VALUE, NumericalConstants::GOLDEN_RATIO, NumericalConstants::LOG_GAMMA_X_MAX_VALUE, NumericalConstants::MAX_FLOAT, NumericalConstants::MAX_ITERATIONS, NumericalConstants::MAX_VALUE, NumericalConstants::PRECISION, NumericalConstants::SQRT2, NumericalConstants::SQRT2PI, NumericalConstants::TWO_PI, NumericalConstants::XMININ
Instance Attribute Summary
Attributes included from SpecialMath
#log_beta_cache_p, #log_beta_cache_q, #log_beta_cache_res, #log_gamma_cache_res, #log_gamma_cache_x
Instance Method Summary collapse
-
#get_mean ⇒ Object
Returns the mean of the distribution.
-
#get_standard_deviation ⇒ Object
Returns the standard deviation of the distribution.
-
#get_variance ⇒ Object
Returns the variance of the distribution.
-
#initialize(meanlog = 0.0, sdlog = 1.0) ⇒ LognormalDistribution
constructor
Constructs a lognormal distribution.
Methods included from SpecialMath
#beta, #beta_fraction, #complementary_error, #error, #gamma, #gamma_fraction, #gamma_series_expansion, #incomplete_beta, #incomplete_gamma, #log_beta, #log_gamma, #orig_gamma
Methods inherited from ProbabilityDistribution
#cdf, #check_range, #find_root, #get_factorial, #icdf, #mean, #pdf, #rng, #variance
Methods included from ExtraMath
Constructor Details
#initialize(meanlog = 0.0, sdlog = 1.0) ⇒ LognormalDistribution
Constructs a lognormal distribution.
9 10 11 12 13 14 |
# File 'lib/rubystats/lognormal_distribution.rb', line 9 def initialize(meanlog=0.0, sdlog=1.0) raise "Argument Error: standard deviation for log-normal distribution must be positive." if sdlog < 0.0 @meanlog = meanlog.to_f @sdlog = sdlog.to_f @norm = Rubystats::NormalDistribution.new(@meanlog, @sdlog) end |
Instance Method Details
#get_mean ⇒ Object
Returns the mean of the distribution
17 18 19 |
# File 'lib/rubystats/lognormal_distribution.rb', line 17 def get_mean return Math.exp(@meanlog + @sdlog**2 / 2.0) end |
#get_standard_deviation ⇒ Object
Returns the standard deviation of the distribution
22 23 24 |
# File 'lib/rubystats/lognormal_distribution.rb', line 22 def get_standard_deviation return Math.sqrt(get_variance) end |
#get_variance ⇒ Object
Returns the variance of the distribution
27 28 29 |
# File 'lib/rubystats/lognormal_distribution.rb', line 27 def get_variance return (Math.exp(@sdlog**2) - 1) * Math.exp(2.0 * @meanlog + @sdlog**2) end |