Je souhaite découvrir une méthode pour générer des données corrélées et non normales. Donc, idéalement, une sorte de distribution qui prend une matrice de covariance (ou corrélation) comme paramètre et génère des données qui l'approchent. Mais voici le hic: la méthode que j'essaie de trouver devrait avoir la flexibilité de contrôler également son asymétrie multivariée et / ou son kurtosis.
Je connais la méthode de Fleishman et l'utilisation de la méthode de puissance des variables normales, mais je pense que la plupart de ces extensions n'autorisent l'utilisateur que pour certaines combinaisons d' asymétrie marginale et de kurtosis, laissant le skewness / kurtosis multivarié juste là. Ce que je me demandais, c'est s'il existe une méthode qui aide à spécifier l'asymétrie multivariée et / ou le kurtosis, ainsi qu'une certaine structure de corrélation / covariance.
Il y a environ un an, j'ai suivi un séminaire sur la distribution des copules et je me souviens que le professeur avait mentionné nonchalamment qu'en utilisant des copules de vigne, on pouvait générer des données qui sont, disons, symétriques dans chacun de ses marginaux 1-D mais conjointement asymétriques et vice-versa. -versa. Ou, encore plus loin, que toutes les marges de dimension inférieure pourraient avoir une asymétrie ou un kurtosis tout en gardant les dimensions les plus élevées symétriques (ou non). J'ai été émerveillé par l'idée qu'une telle flexibilité puisse exister.J'ai essayé de trouver une sorte d'article ou de document de conférence décrivant ladite méthode, mais j'ai échoué :(. Cela ne doit pas nécessairement passer par l'utilisation de copules, Je suis ouvert à tout ce qui fonctionne.
Edit: J'ai ajouté du code R pour essayer de montrer ce que je veux dire. Jusqu'à présent, je ne connais que bien la définition de Mardia de l'asymétrie multivariée et du kurtosis. Lorsque j'ai abordé mon problème pour la première fois, j'ai naïvement pensé que si j'utilisais une copule symétrique (gaussienne dans ce cas) avec des marginaux asymétriques (bêta, dans cet exemple), des tests univariés sur les marginaux donneraient de l'importance, mais le test de Mardia pour l'asymétrie / kurtosis multivarite le ferait être non significatif. J'ai essayé et ça ne s'est pas déroulé comme je m'y attendais:
library(copula)
library(psych)
set.seed(101)
cop1 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"),
c("beta", "beta"),list(list(shape1=0.5, shape2=5),
list(shape1=0.5, shape2=5)))}
Q1 <- rmvdc(cop1, 1000)
x1 <- Q1[,1]
y1 <- Q1[,2]
cop2 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"),
c("norm", "norm"),list(list(mean=0, sd=1),
list(mean = 0, sd=1)))}
Q2 <- rmvdc(cop2, 1000)
x2 <- Q2[,1]
y2 <- Q2[,2]
mardia(Q1)
Call: mardia(x = Q1)
Mardia tests of multivariate skew and kurtosis
Use describe(x) the to get univariate tests
n.obs = 1000 num.vars = 2
b1p = 10.33 skew = 1720.98 with probability = 0
small sample skew = 1729.6 with probability = 0
b2p = 22.59 kurtosis = 57.68 with probability = 0
mardia(Q2)
Call: mardia(x = Q2)
Mardia tests of multivariate skew and kurtosis
Use describe(x) the to get univariate tests
n.obs = 1000 num.vars = 2
b1p = 0.01 skew = 0.92 with probability = 0.92
small sample skew = 0.92 with probability = 0.92
b2p = 7.8 kurtosis = -0.79 with probability = 0.43
En inspectant les contours de «cop1» VS «cop2» ainsi que les graphiques empiriques de densité bivariée, je peux également voir qu'aucun d'eux ne semble symétrique du tout. C'est alors que j'ai réalisé que c'était probablement un peu plus compliqué que je ne le pensais.
Je sais que Mardia n'est pas la seule définition de l'asymétrie / kurtosis multivariée, donc je ne me limite pas à trouver une méthode qui ne satisfait que les définitions de Mardia.
Merci!
Réponses:
Après beaucoup de recherches, de sauts sur les forums en ligne, de consultation avec des professeurs et de faire BEAUCOUP de revue de la littérature, je suis parvenu à la conclusion que probablement LA seule façon de résoudre ce problème est d'utiliser des copules de vigne. Il vous donne un certain contrôle sur l'asymétrie et le kurtosis par paire (ou tout moment supérieur) - pour un vecteur aléatoire à p variée et la liberté de spécifier p-1 paire de copules et les p * (p-1) / 2 - (- p-1) les dimensions peuvent être spécifiées dans une sorte de copule conditionnelle.
J'accueille favorablement d'autres méthodes que les gens pourraient avoir rencontrées, mais au moins je vais laisser ce pointeur vers une réponse parce que je ne peux pas, pour la vie de moi, trouver d'autres moyens de résoudre ce problème.
la source
Vous pourrez peut-être résoudre ce problème en modifiant l'algorithme de Ruscio et Kaczetow (2008). Leur article fournit un algorithme itératif (avec code R) qui minimise la différence entre les formes marginales réelles et prévues. Vous pourrez peut-être le modifier afin qu'il cible les moments multivariés (plutôt que marginaux).
Ruscio, J. et Kaczetow, W. (2008). Simulation de données non normales multivariées à l'aide d'un algorithme itératif. Recherche comportementale multivariée, 43 (3), 355‐381. doi: 10.1080 / 00273170802285693
la source
Vous voudrez peut-être vérifier la distribution elliptique généralisée , qui permet une matrice de forme "classique" avec une flexibilité pour d'autres fonctionnalités.
la source
J'ai trouvé une méthode simple pour ce faire qui n'implique pas de coplas et d'autres conceptions complexes. Je crains de ne pas avoir de référence formelle, bien que la méthode semble très efficace.
L'idée est simple. 1. Dessinez n'importe quel nombre de variables à partir d'une distribution normale conjointe. 2. Appliquer le CDF normal univarié des variables pour dériver les probabilités de chaque variable. 3. Enfin, appliquez le CDF inverse de toute distribution pour simuler les tirages de cette distribution.
J'ai proposé cette méthode en 2012 et j'ai fait la démonstration de l'utilisation de Stata . J'ai aussi écrit un récent montrant la même méthode en utilisant R .
la source
Je crois que la méthode présentée dans les articles suivants permet de générer des variables multiples aléatoires avec n'importe quelle combinaison (faisable) de moyenne, variance, asymétrie et kurtosis.
Avertissement: je ne suis pas l' un des auteurs.
la source