[R] Latin hypercube sampling from a non-uniform distribution

Marine Regis marine.regis at hotmail.fr
Mon Aug 7 23:51:32 CEST 2017


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}}



More information about the R-help mailing list