[R] multivariate F distribution

Dimitris Rizopoulos dimitris.rizopoulos at med.kuleuven.be
Thu Aug 4 10:43:15 CEST 2005


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:

> 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

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.

-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 
35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 
35327907

______________________________________________
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




More information about the R-help mailing list