Skip to content

multivariate F distribution

3 messages · Anna Oganyan, Peter Dalgaard, Dimitris Rizopoulos

#
Dear List,

Is there any function in R to generate multivariate F distribution with 
given correlation/covariance matrix?

Actually, I just want to generate some 2-dimentional non-normal data 
sets (skewed) for low (may be around 0.3 cor coeff.) negatively and also 
positively correlated variables ?

Thanks in advance.

Anna
#
Anna Oganyan <aoganyan at niss.org> writes:
Er, what is "multivariate F"? I have a guess (solve(A,B) where A and B
have independent Wishart distributions with the same covariance matrix
-- the matrix that gets summarized into Wilk's Lambda, Pillai's trace,
etc.) but Googling also pops up something about "inverted Dirichlet"
which may or may not be equivalent.

Wishart variates can be generate from (multivariate) normals in a
brute-force way using crossprod(). Some may have thought up a more
efficient way.
#
Well, there is a way for constructing a "multivariate F" (i.e., a 
multivariate distribution with F marginals), using copulas, thanks to 
Jun Yan's copula package. For instance, in for the bivariate case

library(copula)
x <- mvdc(claytonCopula(2), c("f", "f"),
          list(list(df1 = 8, df2 = 9), list(df1 = 8, df2 = 9)))
x
contour(x, dmvdc, xis = seq(1e-04, 2, len = 51), yis = seq(1e-04, 2, 
len = 51))

x.samp <- rmvdc(x, 1000)
hist(x.samp[, 1])
hist(x.samp[, 2])


Regarding the "correlation", the Clayton copula for theta = 2 gives 
Kendall's tau = 0.5, e.g.,

cor(x.samp, method = "kendall")


Best,
Dimitris

----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.be/biostat/
     http://www.student.kuleuven.be/~m0390867/dimitris.htm


----- Original Message ----- 
From: "Peter Dalgaard" <p.dalgaard at biostat.ku.dk>
To: "Anna Oganyan" <aoganyan at niss.org>
Cc: <r-help at stat.math.ethz.ch>
Sent: Thursday, August 04, 2005 10:05 AM
Subject: Re: [R] multivariate F distribution


Anna Oganyan <aoganyan at niss.org> writes:
Er, what is "multivariate F"? I have a guess (solve(A,B) where A and B
have independent Wishart distributions with the same covariance matrix
-- the matrix that gets summarized into Wilk's Lambda, Pillai's trace,
etc.) but Googling also pops up something about "inverted Dirichlet"
which may or may not be equivalent.

Wishart variates can be generate from (multivariate) normals in a
brute-force way using crossprod(). Some may have thought up a more
efficient way.