Description Usage Arguments Value Note Author(s) See Also Examples

This function takes a parameter object, such as that returned by `lmom2par`

, and computes the support (the lower and upper bounds, *\{L, U\}*) of the distribution given by the parameters. The computation is based on two calls to `par2qua`

for the parameters in argument `para`

(*Θ*) and nonexceedance probabilities *F \in \{0, 1\}*:

1 2 |

The quality of *\{L, U\}* is dependent of the handling of *F \in \{0,1\}* internal to each quantile function. Across the suite of distributions supported by lmomco, potential applications, and parameter combinations, it difficult to ensure numerical results for the respective *\{L, U\}* are either very small, are large, or are (or should be) infinite. The distinction is sometimes difficult depending how fast the tail(s) of a distribution is (are) either approaching a limit as *F* respectively approaches *0^{+}* or *1^{-}*.

The intent of this function is to provide a unified portal for *\{L, U\}* estimation. Most of the time **R** (and lmomco) do the right thing anyway and the further overhead within the parameter estimation suite of functions in lmomco is not implemented.

The support returned by this function might be useful in extended application development involving probability density functions `pdfCCC`

(*f(x,Θ)*, see `dlmomco`

) and cumulative distribution functions `cdfCCC`

(*F(x,Θ)*, see `plmomco`

) functions—both of these functions use as their primary argument a value *x* that exists along the real number line.

1 |

`para` |
The parameters of the distribution. |

`trapNaN` |
A logical influencing how |

`delexp` |
The magnitude of the decrementing of the exponent to search down and up from. A very long-tailed but highly peaked distribution might require this to be smaller than default. |

`paracheck` |
A logical controlling whether the parameters are checked for validity. |

`...` |
Additional arguments to pass. |

An **R** `list`

is returned.

`type` |
Three character (minimum) distribution type (for example, |

`support` |
The support (or range) of the fitted distribution; |

`nonexceeds` |
The nonexceedance probabilities at the computed support. |

`fexpons` |
A vector indicating how the respective lower and upper boundaries were arrived at (see Note); and |

`finite` |
A logical on each entry of the |

`source` |
An attribute identifying the computational source of the distribution support: “supdist”. |

Concerning `fexpons`

, for the returned vectors of length 2, index 1 is for *\{L\}* and index 2 is for *\{U\}*. If an entry in `fexpons`

is `NA`

, then *F = 0* or *F = 1* for the respective bound was possible. And even if `trapNaN`

is `TRUE`

, no further refinement on the bounds was attempted.

On the otherhand, if `trapNaN`

is `TRUE`

and if the bounds *\{L\}* and (or) *\{U\}* is not `NA`

, then an attempt was made to move away from *F \in \{0,1\}* in incremental integer exponent from *0^{+}* or *1^{-}* until a `NaN`

was not encountered. The integer exponents are *i \in [-(φ), -(φ - 1), …, -4]*, where *φ* `= .Machine$sizeof.longdouble`

and *-4* is a hardwired limit (1 part in 10,000). In the last example in the Examples section, the *\{U\}* for *F=1* quantile is `NaN`

but *1 - 10^i* for which *i = -16*, which also is the `.Machine$sizeof.longdouble`

on the author's development platform.

At first release, it seems there was justification in triggering this to `TRUE`

if a quantile function returns a `NA`

when asked for *F = 0* or *F = 1*—some quantile functions partially trapped `NaN`

s themselves. So even if `trapNaN == FALSE`

, it is triggered to `TRUE`

if a `NA`

is discovered as described. *Users are encouraged to discuss adaptions or changes to the implementation of supdist with the author.*

Thus it should be considered a feature of `supdist`

that should a quantile function already trap errors at either *F = 0* or *F = 1* and return `NA`

, then `trapNaN`

is internally set to `TRUE`

regardless of being originally `FALSE`

and the preliminary limit is reset to `NaN`

. The Rice distribution `quarice`

is one such example that internally already traps an *F = 1* by returning *x(F{=}1) = *`NA`

.

W.H. Asquith

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | ```
lmr <- lmoms(c(33, 37, 41, 54, 78, 91, 100, 120, 124))
supdist(lmom2par(lmr, type="gov" )) # Lower = 27.41782, Upper = 133.01470
supdist(lmom2par(lmr, type="gev" )) # Lower = -Inf, Upper = 264.4127
supdist(lmom2par(lmr, type="wak" )) # Lower = 16.43722, Upper = NaN
supdist(lmom2par(lmr, type="wak" ), trapNaN=TRUE) # Lower = 16.43722, Upper = 152.75126
#$support 16.43722 152.75126
#$fexpons NA -16
#$finite TRUE TRUE
## Not run:
para <- vec2par(c(0.69, 0.625), type="kmu") # very flat tails and narrow peak!
supdist(para, delexp=1 )$support # [1] 0 NaN
supdist(para, delexp=0.5 )$support # [1] 0.000000 3.030334
supdist(para, delexp=0.05)$support # [1] 0.000000 3.155655
# This distribution appears to have a limit at PI and the delexp=0.5
## End(Not run)
``` |

lmomco documentation built on May 19, 2017, 4:27 p.m.

Questions? Problems? Suggestions? Tweet to @rdrrHQ or email at ian@mutexlabs.com.

Please suggest features or report bugs in the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.