[R] simulating from Langevin distributions
Ravi Varadhan
rvaradhan at jhmi.edu
Tue Feb 13 20:44:08 CET 2007
Hi Ranjan,
I think that the following would work:
library(MASS)
rlangevin <- function(n, mu, K) {
q <- length(mu)
norm.sim <- mvrnorm(n, mu=mu, Sigma=diag(1/K, q))
cp <- apply(norm.sim, 1, function(x) sqrt(crossprod(x)))
sweep(norm.sim, 1, cp, FUN="/")
}
> mu <- runif(7)
> mu <- mu / sqrt(crossprod(mu))
> K <- 1.2
> ylang <- rlangevin(n=10, mu=mu, K=K)
> apply(ylang,1,crossprod)
[1] 1 1 1 1 1 1 1 1 1 1
>
I hope that this helps.
Ravi.
----------------------------------------------------------------------------
-------
Ravi Varadhan, Ph.D.
Assistant Professor, The Center on Aging and Health
Division of Geriatric Medicine and Gerontology
Johns Hopkins University
Ph: (410) 502-2619
Fax: (410) 614-9625
Email: rvaradhan at jhmi.edu
Webpage: http://www.jhsph.edu/agingandhealth/People/Faculty/Varadhan.html
----------------------------------------------------------------------------
--------
-----Original Message-----
From: r-help-bounces at stat.math.ethz.ch
[mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Ranjan Maitra
Sent: Tuesday, February 13, 2007 1:04 PM
To: r-help at stat.math.ethz.ch
Subject: [R] simulating from Langevin distributions
Dear all,
I have been looking for a while for ways to simulate from Langevin
distributions and I thought I would ask here. I am ok with finding an
algorithmic reference, though of course, a R package would be stupendous!
Btw, just to clarify, the Langevin distribution with (mu, K), where mu is a
vector and K>0 the concentration parameter is defined to be:
f(x) = exp(K*mu'x) / const where both mu and x are p-variate vectors with
norm 1.
For p=2, this corresponds to von-Mises (for which algorithms exist,
including in R/Splus) while for p=3, I believe it is called the Fisher
distribution. I am looking for general p.
Can anyone please help in this?
Many thanks and best wishes,
Ranjan
______________________________________________
R-help at stat.math.ethz.ch 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.
More information about the R-help
mailing list