@@ -6,21 +6,46 @@ function fit(::Type{Exponential}, m::AbstractMoments)
66 return Exponential (mean (m))
77end
88
9- function fit (:: Type{Exponential} , lower:: QuantilePoint , upper:: QuantilePoint )
9+ function fit (:: Type{Exponential} , lower:: QuantilePoint , upper:: Missing )
10+ θ_lower = - lower. q/ log (1 - lower. p)
11+ Exponential (θ_lower)
12+ end
13+
14+ function fit (:: Type{Exponential} , lower:: Missing , upper:: QuantilePoint )
15+ θ_upper = - upper. q/ log (1 - upper. p)
16+ Exponential (θ_upper)
17+ end
18+
19+ function fit (dt:: Type{Exponential} , lower:: QuantilePoint , upper:: QuantilePoint )
1020 # return average for the two quantiles
21+ ismissing (lower. q) && return (fit (dt, missing , upper))
22+ ismissing (upper. q) && return (fit (dt, lower, missing ))
1123 θ_lower = - lower. q/ log (1 - lower. p)
1224 θ_upper = - upper. q/ log (1 - upper. p)
25+ θ_lower ≈ θ_upper || @warn (" Averaging scale for lower and upper quantile " *
26+ " for fitting expoenential distribution." )
1327 θ = (θ_lower + θ_upper)/ 2
1428 Exponential (θ)
1529end
1630
17- function fit_mean_quantile (:: Type{Exponential} , mean:: Real , qp:: QuantilePoint )
31+ function fit_mean_quantile (dt :: Type{Exponential} , mean:: Real , qp:: QuantilePoint )
1832 # only fit to mean
33+ warning (" ignoring upper quantile when fitting Exponential to mean." )
34+ fit_mean_quantile (dt, mean, missing )
35+ end
36+
37+ function fit_mean_quantile (:: Type{Exponential} , mean:: Real , qp:: Missing )
1938 fit (Type{Exponential}, AbstractMoments (mean))
2039end
2140
22- function fit_mode_quantile (:: Type{Exponential} , mode:: Real , qp:: QuantilePoint )
41+ function fit_mode_quantile (dt :: Type{Exponential} , mode:: Real , qp:: QuantilePoint )
2342 # ignore mode (its always at 0)
43+ mode != zero (mode) && @warn (" ignoring mode when fitting Exponential." )
44+ fit_mode_quantile (dt, missing , qp)
45+ end
46+
47+
48+ function fit_mode_quantile (:: Type{Exponential} , mode:: Missing , qp:: QuantilePoint )
2449 θ = - qp. q/ log (1 - qp. p)
2550 Exponential (θ)
2651end
0 commit comments