[R] Help on probability distribution question

(Ted Harding) Ted.Harding at wlandres.net
Thu Oct 11 20:44:28 CEST 2012


(I made a slip with the mulstivariate case below: see at [***])

On 11-Oct-2012 17:51:51 Ted Harding wrote:
> On 11-Oct-2012 17:22:44 Andras Farkas wrote:
>> Dear All,
>> I have a questions I would like to ask about and wonder if you
>> have any thoughts to make it work in R.
>> 
>> 1. I work in the field of medicine where physiologic variables
>> are often simulated, and they can not have negative values.
>> Most often the assumption is made to simulate this parameters
>> with a normal distribution but in the "log-domain" to avoid from
>> negative values to be generated. Since the expected mean and SD
>> is usually known from the normal domain, using the methods described
>> in the wikipedia article "Arithmetric moments" I generate μand σ
>> and simulate with rlnorm(). At times though the following issue
>> comes up: I have the mean and SD for the parameters available
>> from the normal domain, and the covariance matrix from the normal
>> domain. Then I would like to simulate the values, but to avoid
>> from negative values being generated I have to fall back on rlnorm
>> in {compositions}. My issue is though that my covariance matrix is
>> representing the covariance of the parameters in the normal domain,
>> as opposed to in the lognormal domain. Any thoughts on how  to work
>> around this?
>> 
>> apreciate the help,
>> Andras
> 
If I understand your question correctly, if Y is the variable being
simulated then you know the mean (M, say) and the variance (V, say)
of log(Y). So you can simulate X from a normal distribution with
mean M and variance V = S^2 (S = SD of X), and then Y = exp(X):

  Y <- exp(rnorm(n,M,S))

where n is the number of sampled values you want.

When Y is multivariate, with M the vector of means and V the
covariance matrix of log(Y), then use a similar approach with
the function mvrnorm() from the MASS package:
[***]
##  library(MASS)
##  Y <- mvrnorm(n,M,V)
  library(MASS)
  Y <- exp(mvrnorm(n,M,V))

Does this help?
Ted.

> -------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding at wlandres.net>
> Date: 11-Oct-2012  Time: 18:51:47
> This message was sent by XFMail
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

-------------------------------------------------
E-Mail: (Ted Harding) <Ted.Harding at wlandres.net>
Date: 11-Oct-2012  Time: 19:44:02
This message was sent by XFMail




More information about the R-help mailing list