Sono interessato a scoprire un metodo per generare dati correlati, non normali. Quindi idealmente una sorta di distribuzione che accetta una matrice di covarianza (o correlazione) come parametro e genera dati che lo approssimano. Ma ecco il trucco: il metodo che sto cercando di trovare dovrebbe avere la flessibilità di controllare anche la sua inclinazione multivariata e / o curtosi.
Conosco il metodo Fleishman e l'uso del metodo del potere dei variati normali, ma credo che la maggior parte di quelle estensioni consenta all'utente solo alcune combinazioni di asimmetria marginale e curtosi, lasciando l'asimmetria multivariata / curtosi appena fuori. Quello che mi chiedevo è se esiste un metodo che aiuta a specificare l'asimmetria multivariata e / o la curtosi, insieme ad alcune strutture di correlazione / covarianza.
Circa un anno fa ho partecipato a un seminario sulle distribuzioni di copula e ricordo che il professore ha menzionato casualmente che attraverso l'uso di copule di vite, si potevano generare dati che, per esempio, sono simmetrici in ciascuno dei suoi margini 1-D ma congiuntamente inclinati e vice -versa. O, ancora di più, che qualsiasi margine di dimensione inferiore potrebbe presentare asimmetria o curtosi mantenendo simmetriche (o meno) le dimensioni più alte. Sono rimasto meravigliato dall'idea che potesse esistere una tale flessibilità, ho cercato di trovare una sorta di articolo o documento di conferenza che descrivesse tale metodo ma non ho avuto successo :(. Non deve essere attraverso l'uso di copule, Sono aperto a tutto ciò che funziona.
Modifica: ho aggiunto del codice R per provare a mostrare cosa intendo. Finora conosco bene solo la definizione di Mardia di inclinazione multivariata e curtosi. Quando ho affrontato per la prima volta il mio problema, ho ingenuamente pensato che se avessi usato una copula simmetrica (gaussiana in questo caso) con marginali obliqui (beta, in questo esempio), i test univariati sui marginali avrebbero avuto significato, ma il test di Mardia per l'asimmetria / kurtosi multivarite sarebbe essere non significativo. L'ho provato e non è uscito come mi aspettavo:
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
Dopo aver ispezionato i contorni per "cop1" VS "cop2", nonché i diagrammi empirici di densità bivariata, posso anche vedere che nessuno di loro sembra affatto simmetrico. Fu allora che mi resi conto che probabilmente è un po 'più complicato di quanto pensassi.
So che quella di Mardia non è l'unica definizione di inclinazione / curtosi multivariata, quindi non mi sto limitando a trovare un metodo che soddisfi solo le definizioni di Mardia.
grazie!