Nelly Reduan
2017-May-26 15:55 UTC
[R] Latin Hypercube Sampling when parameters are defined according to specific probability distributions
Hello,
I would like to perform a sensitivity analysis using a Latin Hypercube Sampling
(LHS).
Among the input parameters in the model, I have a parameter ?dispersal distance?
which is defined according to an exponential probability distribution.
In the model, the user thus sets a default probability value for each distance
class.
For example, for distances ([0 ? 2]; ]2 ? 4]; ]4 ? 6]; ]6 ? 8]; ]8 ? 10];??; ]48
? 50],
respective probabilities are 0.055; 0.090; 0.065; 0.035; 0.045;???; 0.005.
Here is the code to represent an exponential probability distribution for the
parameter ?dispersal distance?:
set.seed(0)
foo <- rexp(100, rate = 1/10)
hist(foo, prob=TRUE, breaks=20, ylim=c(0,0.1), xlab ="Distance (km)")
lines(dexp(seq(1, 100, by = 1), rate = 1/mean(foo)),col="red")
1/mean(foo)
When a parameter is defined according to a specific probability distribution,
how can I perform a LHS ?
For example, should I sample N values from a uniform distribution for each
distance class (i.e., [0 ? 2]; ]2 ? 4]; ]4 ? 6]; ]6 ? 8]; ]8 ? 10];??; ]48 ?
50])
or sample N values from exponential distributions with different rates ?
Here is the code used to perform a LHS when the parameter ?dispersal distance?
is defined by one default value in the model:
library(pse)
factors <- c("distance")
q <- c("qexp")
q.arg <- list( list(rate=1/30) )
uncoupledLHS <- LHS(model=NULL, factors, 50, q, q.arg)
head(uncoupledLHS)
Thanks a lot for your time.
Have a nice day
Nell
[[alternative HTML version deleted]]