Ich bin daran interessiert, eine Methode zur Erzeugung korrelierter, nicht normaler Daten zu finden. Im Idealfall also eine Art Verteilung, die eine Kovarianz- (oder Korrelations-) Matrix als Parameter verwendet und Daten generiert, die sich dieser annähern. Aber hier ist der Haken: Die Methode, die ich zu finden versuche, sollte die Flexibilität haben, auch ihre multivariate Schiefe und / oder Kurtosis zu kontrollieren.
Ich bin mit Fleishmans Methode und der Anwendung der Potenzmethode normaler Variablen vertraut, aber ich glaube, dass die meisten dieser Erweiterungen dem Benutzer nur bestimmte Kombinationen von Randversatz und Kurtosis erlauben , so dass die multivariate Versatz / Kurtosis einfach da draußen bleibt. Was ich mich gefragt habe, ist, ob es eine Methode gibt, die dabei hilft, die multivariate Schiefe und / oder Kurtosis zusammen mit einer gewissen Korrelations- / Kovarianzstruktur zu spezifizieren.
Vor ungefähr einem Jahr nahm ich an einem Seminar über Copula-Verteilungen teil, und ich erinnere mich, dass der Professor beiläufig erwähnte, dass man durch die Verwendung von Reben-Copulas Daten erzeugen könnte, die beispielsweise in jedem seiner 1-D-Ränder symmetrisch, aber gemeinsam schief und umgekehrt sind -versa. Oder, noch weiter, dass alle Ränder mit niedrigeren Dimensionen eine gewisse Schiefe oder Kurtosis aufweisen könnten, während die höchsten Dimensionen symmetrisch bleiben (oder nicht). Ich war erstaunt über die Idee, dass es eine solche Flexibilität geben könnte. Ich habe versucht, einen Artikel oder ein Konferenzpapier zu finden, in dem diese Methode beschrieben wird. Ich bin offen für alles, was funktioniert.
Bearbeiten: Ich habe einen R-Code hinzugefügt, um zu zeigen, was ich meine. Bisher bin ich nur mit Mardias Definition von multivariater Schiefe und Kurtosis vertraut. Als ich mich zum ersten Mal meinem Problem näherte, dachte ich naiv, wenn ich eine symmetrische Kopula (in diesem Fall Gauß) mit verzerrten Rändern (in diesem Beispiel Beta) verwenden würde, würden univariate Tests der Ränder eine Signifikanz ergeben, aber Mardias Test für multivarite Schiefe / Kurtosis nicht signifikant sein. Ich habe es versucht und es kam nicht so heraus, wie ich es erwartet hatte:
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
Wenn ich die Konturen für 'cop1' und 'cop2' sowie die empirischen Diagramme der bivariaten Dichte betrachte, sehe ich auch, dass keines überhaupt symmetrisch aussieht. In diesem Moment wurde mir klar, dass dies wahrscheinlich etwas komplizierter ist, als ich dachte.
Ich weiß, dass Mardia nicht die einzige Definition für multivariate Skewness / Kurtosis ist, daher beschränke ich mich nicht darauf, eine Methode zu finden, die nur die Definitionen von Mardia erfüllt.
Danke!