Marine Regis
2017-Aug-04 16:05 UTC
[R] Latin hypercube sampling from a non-uniform distribution
Hello,
I am performing a sensitivity analysis using a Latin Hypercube sampling.
However, I have difficulty to draw a Hypercube sample for one variable. I?ve
generated this variable from a Poisson distribution as follows:
set.seed(5)
mortality_probability <- round(ppois(seq(0, 7, by = 1), lambda = 0.9), 2)
barplot(mortality_probability, names.arg = seq(0, 7, by = 1), xlab = "Age
class", ylab = "Probability")
How can I draw a Hypercube sample for the variable ?mortality_probability? so
that this variable exhibits the same pattern as the observed distribution?
Here is a reproducible code to draw Hypercube samples (my sensitivity analysis
includes several parameters and the variables ?var1? and ?var2? follow a uniform
distribution):
library(lhs)
set.seed(1)
parm <- c("var1", "var2",
"mortality_probability")
X <- randomLHS(100, length(parm))
Any suggestions would be much welcome.
Thanks for your time
Marine
[[alternative HTML version deleted]]
S Ellison
2017-Aug-07 12:36 UTC
[R] Latin hypercube sampling from a non-uniform distribution
> How can I draw a Hypercube sample for the variable mortality_probability so > that this variable exhibits the same pattern as the observed distribution?One simple way is to use the uniform random output of randomLHS as input to the quantile function for your desired distribution(s). For example: q <- randomLHS(1000, 3) colnames(q) <- c("A", "B", "mort") q[, "mort"] <- qpois(q[,"mort"], 1.5) S Ellison ******************************************************************* This email and any attachments are confidential. Any use, copying or disclosure other than by the intended recipient is unauthorised. If you have received this message in error, please notify the sender immediately via +44(0)20 8943 7000 or notify postmaster at lgcgroup.com and delete this message and any copies from your computer and network. LGC Limited. Registered in England 2991879. Registered office: Queens Road, Teddington, Middlesex, TW11 0LY, UK
Marine Regis
2017-Aug-07 21:51 UTC
[R] Latin hypercube sampling from a non-uniform distribution
Thanks for your answer.
However, my variable is simulated from the cumulative distribution function of
the Poisson distribution. So, the pattern obtained from the function
"qpois" is not the same as the observed pattern (i.e., obtained from
the function "ppois")
set.seed(5)
mortality_probability <- round(ppois(seq(0, 7, by = 1), lambda = 0.9), 2)
barplot(mortality_probability, names.arg = seq(0, 7, by = 1), xlab = "Age
class", ylab = "Probability")
library(lhs)
set.seed(1)
parm <- c("var1", "var2",
"mortality_probability")
X <- randomLHS(100, length(parm))
colnames(X) <- c("var1", "var2",
"mortality_probability")
X[, "mortality_probability"] <- qpois(X[,
"mortality_probability"], 0.9)
hist(X[, "mortality_probability"])
Thanks for your time
Marine
________________________________
De : S Ellison <S.Ellison at LGCGroup.com>
Envoy? : lundi 7 ao?t 2017 14:36
? : Marine Regis; r-help at r-project.org
Objet : RE: Latin hypercube sampling from a non-uniform distribution
> How can I draw a Hypercube sample for the variable mortality_probability
so
> that this variable exhibits the same pattern as the observed distribution?
One simple way is to use the uniform random output of randomLHS as input to the
quantile function for your desired distribution(s).
For example:
q <- randomLHS(1000, 3)
colnames(q) <- c("A", "B", "mort")
q[, "mort"] <- qpois(q[,"mort"], 1.5)
S Ellison
*******************************************************************
This email and any attachments are confidential. Any use...{{dropped:11}}
Possibly Parallel Threads
- Latin hypercube sampling from a non-uniform distribution
- Latin hypercube sampling from a non-uniform distribution
- Latin hypercube sampling from a non-uniform distribution
- Latin hypercube sampling from a non-uniform distribution
- Latin Hypercube Sampling with a condition