Metoda generowania skorelowanych nienormalnych danych

14

Chciałbym znaleźć metodę generowania skorelowanych, nienormalnych danych. Idealnie więc jakiś rodzaj rozkładu, który przyjmuje parametr kowariancji (lub korelacji) jako parametr i generuje dane, które ją przybliżają. Ale tutaj jest haczyk: metoda, którą próbuję znaleźć, powinna mieć elastyczność, aby kontrolować również jej wielowymiarową skośność i / lub kurtozę.

Znam metodę Fleishmana i użycie metody mocy normalnych zmiennych, ale wierzę, że większość z tych rozszerzeń pozwala użytkownikowi tylko na pewne kombinacje marginalnej skośności i kurtozy, pozostawiając wielowymiarową skośność / kurtozę. Zastanawiałem się, czy istnieje metoda, która pomaga określić skośność i / lub kurtozę wielowymiarową wraz z pewną strukturą korelacji / kowariancji.

Około rok temu wziąłem seminarium na temat rozkładów kopuł i pamiętam, jak profesor od niechcenia wspominał, że dzięki zastosowaniu kopuł winorośli można wygenerować dane, które, powiedzmy, symetryczne dla każdego z marginesów 1-D, ale razem wypaczone i odwrotnie -versa. Albo jeszcze bardziej, że wszelkie marginesy niższych wymiarów mogą wykazywać pewną skośność lub kurtozę przy zachowaniu najwyższych wymiarów symetrycznych (lub nie). Byłem zdumiony pomysłem, że taka elastyczność może istnieć. Próbowałem znaleźć jakiś artykuł lub artykuł konferencyjny, który opisuje tę metodę, ale mi się nie udało :(. Nie musi to wynikać z zastosowania kopuł, Jestem otwarty na wszystko, co działa.

Edycja: Dodałem trochę kodu R, aby spróbować pokazać, co mam na myśli. Do tej pory jestem tylko dobrze zaznajomiony z definicją Mardii dotyczącą wielowymiarowej skośności i kurtozy. Kiedy po raz pierwszy podszedłem do mojego problemu, naiwnie pomyślałem, że jeśli użyję symetrycznej kopuły (w tym przypadku Gaussa) ze skośnymi marginesami (beta, w tym przykładzie), testy jednowymiarowe na marginesach przyniosłyby znaczenie, ale test Mardii na skośność / kurtozę wielowariantową dałby być nieistotne. Próbowałem tego i nie wyszło tak, jak się spodziewałem:

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

Po sprawdzeniu konturów dla „cop1” VS „cop2”, jak również empirycznych wykresów dwuwymiarowej gęstości, widzę również, że żaden z nich wcale nie wygląda symetrycznie. Wtedy zdałem sobie sprawę, że jest to prawdopodobnie trochę bardziej skomplikowane niż myślałem.

Wiem, że Mardia nie jest jedyną definicją wielowymiarowej skośności / kurtozy, więc nie ograniczam się do znalezienia metody, która tylko spełnia definicje Mardii.

Dziękuję Ci!

S. Punky
źródło
+1 Najciekawsze pytanie. Czy mógłbyś bardziej szczegółowo określić, co w tym kontekście oznacza „wspólnie wypaczony” (szczególnie dwuwymiarowy)? Chociaż potrafię sobie wyobrazić formy rozkładu połączeń, które są w pewnym sensie „różne” w czterech ćwiartkach (powiedzmy o osiach umieszczonych na środku), nie wiem, co konkretnie może odnosić się do „skośnego skosu”.
Glen_b
expXX
Witaj. dziękuję bardzo za zainteresowanie moim pytaniem. po raz pierwszy tu piszę, więc mam nadzieję, że robię wszystko poprawnie. opiszę więcej w sekcji komentarzy, ponieważ limit znaków uniemożliwia mi użycie kodu R do próby przekazania tego, co robię
S. Punky,
tak, właśnie zdałem sobie z tego sprawę i dodałem więcej szczegółów. Doceniam, że poświęciłeś czas, aby poprowadzić mnie do tego, jak korzystać z tej deski. dzięki!
S. Punky,
nie ograniczając się do znalezienia metody, która spełnia tylko definicje Mardii ” - co robić?
Glen_b

Odpowiedzi:

3

Po długich poszukiwaniach, skacząc wokół forów internetowych, konsultacji z profesorami i robi dużo przeglądu literatury, doszedłem do wniosku, że prawdopodobnie jedynym sposobem rozwiązania tego problemu jest dzięki zastosowaniu copulas winorośli rzeczywiście. Daje to pewną kontrolę nad parowaniem skośności i kurtozą (lub dowolnymi wyższymi momentami) - dla losowego wektora p-zmiennego i swobodą określania pary kopul p-1 oraz pozostałego p * (p-1) / 2 - ( p-1) wymiary mogą być określone w pewnego rodzaju kopule warunkowej.

Z zadowoleniem przyjmuję inne metody, z którymi mogliby się spotkać ludzie, ale przynajmniej zostawię ten wskaźnik w kierunku odpowiedzi, ponieważ nie mogę przez całe życie znaleźć innych sposobów rozwiązania tego problemu.

S. Punky
źródło
2
Co to jest kopuła winorośli?
Sextus Empiricus
1

Być może będziesz w stanie rozwiązać ten problem, modyfikując algorytm Ruscio i Kaczetowa (2008). Ich praca zawiera algorytm iteracyjny (z kodem R), który minimalizuje różnicę między faktycznymi a zamierzonymi kształtami brzeżnymi. Być może będziesz w stanie go zmodyfikować, aby był ukierunkowany na momenty wielowymiarowe (a nie marginalne).

Ruscio, J., i Kaczetow, W. (2008). Symulowanie wielowymiarowych nienormalnych danych przy użyciu iteracyjnego algorytmu. Multivariate Behavioural Research, 43 (3), 355–381. doi: 10.1080 / 00273170802285693

Anthony
źródło
O MÓJ BOŻE! DZIĘKUJĘ CI! Przez chwilę myślałem, że to pytanie zostanie pochłonięte przez zapomnienie
S. Punky
1
no cóż ... przejrzałem artykuł Ruscio i Kaczetów (2008). niestety to tylko kolejna (jeszcze bardziej elastyczna) implementacja rodziny algorytmów NORTA (NORmal To Anything), o której wiadomo, że nie działa dobrze z wielowymiarowymi 3. i 4. momentem. chyba wracam do kwadratu na tym.
S. Punky
0

Możesz sprawdzić Uogólniony rozkład eliptyczny , który pozwala na uzyskanie „klasycznej” matrycy kształtu z elastycznością dla innych funkcji.

Kwarc
źródło
Dziękuję Ci! Sprawdzę ten link. Czyż eliptyczne rozkłady nie są symetryczne? Więc można kontrolować kurtozę, ale skośność musi pozostać na poziomie 0?
S. Punky
Jasne, ale GE nie oznacza eliptycznego. Niektóre skośne warianty eliptyczne sprawdź również tutaj: stat.tamu.edu/~genton/STAT689/TAMU2009SE.pdf
Kwarc
0

Wymyśliłem prostą metodę na zrobienie tego, która nie wymaga coplas i innych złożonych projektów. Obawiam się, że nie mam formalnego odniesienia, chociaż metoda wydaje się bardzo skuteczna.

Pomysł jest prosty. 1. Narysuj dowolną liczbę zmiennych ze wspólnego rozkładu normalnego. 2. Zastosuj jednoczynnikowy normalny CDF zmiennych, aby uzyskać prawdopodobieństwo dla każdej zmiennej. 3. Na koniec zastosuj odwrotny CDF dowolnego rozkładu, aby zasymulować losowanie z tego rozkładu.

Wymyśliłem tę metodę w 2012 roku i zademonstrowałem przy użyciu Staty . Napisałem również ostatnich post pokazujący tę samą metodę przy użyciu R .

Francis Smart
źródło
(1) Co to jest „rozkład normalny Spearmana”? (2) Jakie wprowadzasz rozróżnienie między CDF a „normalnym CDF”? (3) Czy możesz wyjaśnić, w jaki sposób ta metoda wprowadza jakąkolwiek korelację? Obawiam się, że ogólne użycie „zmiennej” i „dystrybucji” sprawia, że ​​opis jest raczej niejasny, więc trudno jest powiedzieć, co tak naprawdę robi. Czy możesz przeredagować swoją odpowiedź, aby była bardziej precyzyjna?
whuber
dziękuję za twój post! podążając za linkami można zobaczyć więcej informacji o metodzie. nie do końca robi to, co chciałem osiągnąć (tj. kontrolę nad momentami rozkładu wyższego rzędu i wymiarów), ale nadal jest bardzo cennym podejściem.
S. Punky
1
Nic dziwnego, że nie wpadłem na nową metodę, patrz: Cario, Marne C. i Barry L. Nelson. Modelowanie i generowanie wektorów losowych o dowolnych rozkładach brzeżnych i macierzy korelacji. Raport techniczny, Wydział Inżynierii Przemysłowej i Nauk o Zarządzaniu, Northwestern University, Evanston, Illinois, 1997. Yahav, Inbal i Galit Shmueli. „O generowaniu wielowymiarowych danych poissona w aplikacjach nauk o zarządzaniu”. Robert H. Smith School Research Paper nr RHS (2009): 06-085.
Francis Smart
nawet jeśli nie jest to „nowa metoda”, wciąż chciałbym podziękować za poświęcenie czasu na przejrzenie mojego pytania i dodanie czegoś wnikliwego :)
S. Punky
0

Wierzę, że metoda przedstawiona w poniższych artykułach pozwala na generowanie losowych wielowymiarowych z dowolną (wykonalną) kombinacją średniej, wariancji, skośności i kurtozy.

  1. Stanfield, PM, Wilson, JR i Mirka, GA 1996. Wielowymiarowe modelowanie danych wejściowych za pomocą Johnson Distribution, Materiały z konferencji Winter Simulation Conference 1996 , red. Charnes, JM, Morrice, DJ, Brunner, DT, i Swain, JJ, 1457-1464.
  2. Stanfield, PM, Wilson, JR i King, RE 2004. Elastyczne modelowanie skorelowanych czasów pracy z zastosowaniem w zakładach ponownego wykorzystania produktów, International Journal of Production Research , tom 42, nr 11, 2179–2196.

Zastrzeżenie: Jestem nie jeden z autorów.

SecretAgentMan
źródło