Ich möchte Zufallszahlenpaare mit einer bestimmten Korrelation erzeugen. Der übliche Ansatz, eine Linearkombination zweier Normalvariablen zu verwenden, ist hier jedoch nicht gültig, da eine Linearkombination gleichförmiger Variablen keine gleichmäßig verteilte Variable mehr ist. Ich brauche die beiden Variablen, um einheitlich zu sein.
Irgendeine Idee, wie Paare von einheitlichen Variablen mit einer gegebenen Korrelation erzeugt werden können?
correlation
random-generation
uniform
Onturenio
quelle
quelle
Antworten:
Mir ist keine universelle Methode bekannt, um korrelierte Zufallsvariablen mit einer gegebenen Randverteilung zu erzeugen. Ich werde daher eine Ad-hoc-Methode vorschlagen, um Paare gleichmäßig verteilter Zufallsvariablen mit einer gegebenen (Pearson-) Korrelation zu generieren. Ohne Einschränkung der Allgemeinheit gehe ich davon aus, dass die gewünschte Randverteilung einheitlich ist (dh der Träger ist ).[0,1]
Der vorgeschlagene Ansatz beruht auf Folgendem:U1 U2 F1 F2 Fi(Ui)=Ui i=1,2
a) Für standardmäßige einheitliche Zufallsvariablen und mit den jeweiligen Verteilungsfunktionen und gilt , für . Somit kann durch Definition Spearman-rho ist Daher sind Spearmans Rho und Pearsons Korrelationskoeffizient gleich (Beispielversionen können sich jedoch unterscheiden).
b) Wenn Zufallsvariablen mit stetigen Rändern und Gaußsche Kopula mit (Pearson) -Korrelationskoeffizient , dann ist Spearmans rho Dies macht es einfach, Zufallsvariablen zu generieren, die einen gewünschten Wert von Spearmans Rho haben.X1,X2 ρ
Der Ansatz besteht darin, Daten aus der Gaußschen Kopula mit einem geeigneten Korrelationskoeffizienten zu generieren, so dass das Spearman-Rho der gewünschten Korrelation für die einheitlichen Zufallsvariablen entspricht.ρ
Simulationsalgorithmusr n
Es sei der gewünschte Korrelationsgrad und die Anzahl der zu erzeugenden Paare. Der Algorithmus ist:
Beispielr=0.6 n=500
Der folgende Code ist ein Beispiel für die Implementierung dieses Algorithmus unter Verwendung von R mit einer Zielkorrelation von und Paaren.
In der folgenden Abbildung zeigen die Diagonaldiagramme Histogramme der Variablen und und die nicht diagonalen Diagramme Streudiagramme von und .U1 U2 U1 U2
Konstruktiv haben die Zufallsvariablen einheitliche Ränder und einen Korrelationskoeffizienten (nahe) . Aufgrund der Auswirkung der Abtastung ist der Korrelationskoeffizient der simulierten Daten jedoch nicht genau gleich .r r
Beachten Sie, dass die
gen.gauss.cop
Funktion mit mehr als zwei Variablen arbeiten sollte, indem Sie einfach eine größere Korrelationsmatrix angeben.Simulationsstudier=−0.5,0.1,0.6 n
Die folgende Simulationsstudie, die für die Zielkorrelation wiederholt legt nahe, dass die Verteilung des Korrelationskoeffizienten mit zunehmender Stichprobengröße gegen die gewünschte Korrelation konvergiert .
quelle
gen.gauss.cop
Funktion für mehr als zwei Variablen mit einem (trivialen) Tweak funktioniert. Wenn Sie den Zusatz nicht mögen oder ihn anders ausdrücken möchten, setzen Sie ihn bitte zurück oder ändern Sie ihn nach Bedarf.Intuitiv ist U ( 0 , 1 ) , da u 1 equals w 1 [welche U ( 0 , 1 ) ] , wenn I = 1 , und u 1 equals w 2 [welche U ( 0 , 1 ) ] , wenn I = 0 , so u 1 ist U ( 0 , 1 )u1 U(0,1) u1 w1 U(0,1) I=1 u1 w2 U(0,1) I=0 u1 U(0,1) in beiden Fällen. Das selbe für . Zur Korrelation:u2
quelle
quelle