समान रूप से वितरित और सहसंबद्ध यादृच्छिक संख्या के जोड़े उत्पन्न करें


14

मैं कुछ सहसंबंध के साथ यादृच्छिक संख्याओं के जोड़े उत्पन्न करना चाहूंगा। हालांकि, दो सामान्य चर के एक रैखिक संयोजन का उपयोग करने का सामान्य दृष्टिकोण यहां मान्य नहीं है, क्योंकि वर्दी चर का एक रैखिक संयोजन कोई समान रूप से वितरित चर नहीं है। मुझे एकरूप होने के लिए दो चरों की आवश्यकता है।

किसी दिए गए सहसंबंध के साथ समान चर के जोड़े कैसे उत्पन्न करें इस पर कोई विचार?


6
बारीकी से संबंधित: आंकड़े.स्टैकएक्सचेंज . com / questions / 30526 । आप कोपला टैग भी देखना चाहते हैं - बस यहां दिए गए लिंक पर क्लिक करें। एक त्वरित और गंदे तकनीक बताने के लिए है हो वर्दी [ 0 , 1 ] और वाई = एक्स जब एक्स अल्फा और वाई = 1 + अल्फा - एक्स अन्यथा। सहसंबंध ρ = 2 ( α - 1 ) 3 + 1 , जहां α = 1 है -X[0,1]Y=XXαY=1+αXρ=2(α1)3+1 काम कर देता है। लेकिन कॉप्लस आपको अधिक नियंत्रण देगा ...। α=1((1ρ)/2)1/3
whuber

टिप्पणी के लिए धन्यवाद, लेकिन हां, मुझे लगता है कि यह तरीका वास्तव में "गंदा" है
ओंटुरेनिओ

1
मेरी आशा थी कि इस दृष्टिकोण को देखकर आप पहचानेंगे कि आप (और चाहिए) यादृच्छिक संख्या के अपने जोड़े के गुणों के विषय में अतिरिक्त मानदंड प्रदान कर सकते हैं। यदि यह "गंदा" है, तो समाधान के साथ क्या गलत है? हमें बताएं ताकि हम आपकी स्थिति के लिए अधिक उपयुक्त उत्तर प्रदान कर सकें।
whuber

यह सवाल संयोग से एक बारीकी से संबंधित प्रश्न के जवाब में किया गया था: आरवी के जोड़े को एक रेखीय प्रतिगमन संबंध के साथ कैसे उत्पन्न किया जाए। क्योंकि रैखिक प्रतिगमन का ढलान सहसंबंध गुणांक के लिए आसानी से गणना किए गए तरीके से संबंधित है, और सभी संभावित ढलानों का उत्पादन किया जा सकता है, यह वास्तव में आप क्या चाहते हैं उत्पादन का एक तरीका देता है। आँकड़े देखें ।stackexchange.com/questions/257779/…
whuber

1
कृपया आँकड़े.स्टैकएक्सचेंज.com / questions / 31771 भी देखें , जो तीन यादृच्छिक वर्दी के सामान्यीकरण का जवाब देता है।
whuber

जवाबों:


16

मैं किसी भी सीमांत वितरण के साथ सहसंबद्ध यादृच्छिक चर उत्पन्न करने के लिए एक सार्वभौमिक विधि के बारे में नहीं जानता। इसलिए, मैं एक दिए गए (पियर्सन) सहसंबंध के साथ समान रूप से वितरित यादृच्छिक चर के जोड़े उत्पन्न करने के लिए एक तदर्थ विधि का प्रस्ताव दूँगा। सामान्यता के नुकसान के बिना, मैं मानता हूं कि वांछित सीमांत वितरण मानक वर्दी है (यानी, समर्थन ) है।[0,1]

प्रस्तावित दृष्टिकोण निम्न पर निर्भर करता है:
ए) संबंधित वितरण कार्यों एफ 1 और एफ 2 के साथ मानक वर्दी यादृच्छिक चर और यू 2 के लिए , हमारे पास आई = 1 , 2 के लिए एफ आई ( यू आई ) = यू आई है । इस प्रकार, परिभाषा के द्वारा स्पीयरमैन की रो है ρ एस ( यू 1 , यू 2 ) = सी आर आर ( एफU1U2F1F2Fi(Ui)=Uii=1,2 तो, स्पीयरमैन के आरएचओ और पीयरसन के सहसंबंध गुणांक समान हैं (नमूना संस्करण हालांकि भिन्न हो सकते हैं)।

ρS(U1,U2)=corr(F1(U1),F2(U2))=corr(U1,U2).

ख) यदि निरंतर मार्जिन और साथ यादृच्छिक परिवर्तनीय हैं गाऊसी योजक के साथ (पियर्सन) सहसंबंध गुणांक ρ , तो स्पीयरमैन की रो है ρ एस ( एक्स 1 , एक्स 2 ) = 6X1,X2ρ इससे यादृच्छिक चर उत्पन्न करना आसान हो जाता है जिसमें स्पीयरमैन के आरएचओ का वांछित मूल्य होता है।

ρS(X1,X2)=6πarcsin(ρ2).

दृष्टिकोण एक उचित सहसंबंध गुणांक के साथ गाऊसी योजक से डेटा उत्पन्न करने के लिए है ऐसी है कि स्पीयरमैन की वर्दी यादृच्छिक चर के लिए वांछित सह-संबंध के लिए रो मेल खाती है।ρ

सिमुलेशन एल्गोरिथ्म
Let सहसंबंध के वांछित स्तर निरूपित, और n जोड़े की संख्या उत्पन्न किया जा करने के लिए। एल्गोरिथ्म है:rn

  1. गणना ρ=2sin(rπ/6)
  2. गाऊसी कोपला से यादृच्छिक चर की एक जोड़ी उत्पन्न करें (जैसे, इस दृष्टिकोण के साथ )
  3. दोहराएँ चरण 2 बार।n

उदाहरण
निम्नलिखित कोड एक लक्ष्य सहसंबंध और एन = 500 जोड़े के साथ आर का उपयोग करके इस एल्गोरिथ्म के कार्यान्वयन का एक उदाहरण है ।r=0.6n=500

## Initialization and parameters 
set.seed(123)
r <- 0.6                            # Target (Spearman) correlation
n <- 500                            # Number of samples

## Functions
gen.gauss.cop <- function(r, n){
    rho <- 2 * sin(r * pi/6)        # Pearson correlation
    P <- toeplitz(c(1, rho))        # Correlation matrix
    d <- nrow(P)                    # Dimension
    ## Generate sample
    U <- pnorm(matrix(rnorm(n*d), ncol = d) %*% chol(P))
    return(U)
}

## Data generation and visualization
U <- gen.gauss.cop(r = r, n = n)
pairs(U, diag.panel = function(x){
          h <- hist(x, plot = FALSE)
          rect(head(h$breaks, -1), 0, tail(h$breaks, -1), h$counts/max(h$counts))})

नीचे दिए गए चित्र में, विकर्ण भूखंडों को और यू 2 के हिस्टोग्राम दिखाए जाते हैं , और ऑफ-विकर्ण भूखंड यू 1 और यू 2 के तितर बितर भूखंड दिखाते हैं । U1U2U1U2यहाँ छवि विवरण दर्ज करें

कब्ज द्वारा, यादृच्छिक चर में एक समान मार्जिन और एक सहसंबंध गुणांक होता है (करीब) । लेकिन नमूने के प्रभाव के कारण, सिम्युलेटेड डेटा का सहसंबंध गुणांक आर के बराबर नहीं है।rr

cor(U)[1, 2]
# [1] 0.5337697

ध्यान दें कि gen.gauss.copफ़ंक्शन को एक बड़े सहसंबंध मैट्रिक्स को निर्दिष्ट करके केवल दो से अधिक चर के साथ काम करना चाहिए।

सिमुलेशन अध्ययन
लक्ष्य सहसंबंध के लिए दोहराया निम्नलिखित सिमुलेशन अध्ययन से पता चलता है कि नमूने का आकार के रूप में वांछित सह-संबंध के लिए सहसंबंध गुणांक और converges के वितरण एन बढ़ जाती है।r=0.5,0.1,0.6n

## Simulation
set.seed(921)
r <- 0.6                                                # Target correlation
n <- c(10, 50, 100, 500, 1000, 5000); names(n) <- n     # Number of samples
S <- 1000                                               # Number of simulations

res <- sapply(n,
              function(n, r, S){
                   replicate(S, cor(gen.gauss.cop(r, n))[1, 2])
               }, 
               r = r, S = S)
boxplot(res, xlab = "Sample size", ylab = "Correlation")
abline(h = r, col = "red")

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें


3
दिए गए सीमान्त वितरण के साथ सहसंबद्ध बहुभिन्नरूपी वितरण उत्पन्न करने की सामान्य विधि को कोपुला कहा जाता है ।
whuber

@whuber, copula का उपयोग यादृच्छिक चर के बीच एक निर्भरता संरचना को निर्दिष्ट करने की अनुमति देता है। समस्या यह है कि (व्यक्ति) सहसंबंध निर्भरता संरचना और मार्जिन दोनों से प्रभावित होता है। इसलिए, मार्जिन के प्रत्येक विकल्प को कोप्युला मापदंडों की एक समान पसंद की आवश्यकता होगी, यह उल्लेख नहीं करने के लिए कि दिए गए मार्जिन के लिए सहसंबंध के कुछ स्तरों को प्राप्त नहीं किया जा सकता है (उदाहरण के लिए, यहां देखें )। यदि आप एक ऐसी विधि से अवगत हैं, जो मार्जिन के किसी भी विकल्प के लिए सहसंबंध के स्तर को 'नियंत्रित' करने की अनुमति देती है, तो मुझे इसके बारे में जानना अच्छा लगेगा।
क्वांटाइबेक्स

धन्यवाद @QuantIbex लेकिन मुझे नहीं लगता कि "ए) का तात्पर्य है कि स्पीयरमैन की आरएचओ और (पीयरसन की) मानक समान मार्जिन के साथ यादृच्छिक चर के लिए सहसंबंध गुणांक लगभग बड़े नमूने में समान हैं"
ओंटुरेनियो

2
[1,1]

1
@Quantibex मैंने एक वाक्य जोड़ने की स्वतंत्रता ली जो आपके gen.gauss.copफ़ंक्शन को इंगित करता है एक (तुच्छ) के साथ दो से अधिक चर के लिए काम करेगा। यदि आपको इसके अलावा पसंद नहीं है या इसे अलग तरह से रखने की इच्छा है, तो कृपया फिर से बदलें या आवश्यकतानुसार बदलें।
Glen_b -Reinstate मोनिका

0

u1U(0,1)u1w1U(0,1)I=1u1w2U(0,1)I=0u1U(0,1)u2

E(u1u2)=E[Iw1+(1I)w2][Iw1+(1I)w3]

I(I1)=0I2=I(1I)2=(1I)I01Iw

E(u1u2)=E(I)E(w12)+E(1I)E(w2)E(w3) =pE(w12)+(1p)/4

From the fact that V(w1)=1/12, we get E(w12)=1/3, so E(u1u2)=p/12+1/4, that is: cov(u1u2)=p/12. Since V(u1)=V(u2)=1/12, we get finally that cor(u1,u2)=p.


0

Here is one easy method for positive correlation: Let (u1,u2)=Iw1+(1I)(w2,w3), where w1,w2, and w3 are independent U(0,1) and I is Bernoulli(p). u1 and u2 will then have U(0,1) distributions with correlation p. This extends immediately to k-tuples of uniforms with compound symmetric variance matrix.

If you want pairs with negative correlation, use (u1,u2)=I(w1,1w1)+(1I)(w2,w3), and the correlation will be p.


Can you add a short proof of why this works?
The Laconic

if your want to be computationally efficient, u1=w1 also produces the same correlation (both positive and negative cases)
Anvit
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.