অবিচ্ছিন্নভাবে বিতরণ করা ও পরস্পর সম্পর্কযুক্ত জোড়া জোড়া এলোমেলো পরিমাণ তৈরি করুন


14

আমি নির্দিষ্ট সম্পর্কের সাথে এলোমেলো সংখ্যার জোড়া তৈরি করতে চাই। তবে দুটি সাধারণ ভেরিয়েবলের রৈখিক সংমিশ্রণটি ব্যবহার করার স্বাভাবিক পদ্ধতির বিষয়টি এখানে বৈধ নয়, কারণ ইউনিফর্ম ভেরিয়েবলগুলির একটি রৈখিক সংমিশ্রণ আর অভিন্ন বিতরণযোগ্য চলক নয়। ইউনিফর্ম হওয়ার জন্য আমার দুটি ভেরিয়েবল দরকার।

প্রদত্ত পারস্পরিক সম্পর্কের সাথে একত্রে বৈকল্পিকের জোড়া কীভাবে তৈরি করা যায় তার কোনও ধারণা?


6
ঘনিষ্ঠভাবে সম্পর্কিত: stats.stackexchange.com/questions/30526 । আপনি কপুলার ট্যাগটিও দেখতে চান - এখানে লিঙ্কটিতে ক্লিক করুন। একটি দ্রুত এবং নোংরা কৌশলটি হ'ল X একরকম হতে দিন [0,1] এবং Y=X যখন Xα এবং Y=1+αX অন্যথায় এক্স । পারস্পরিক সম্পর্ক ρ=2(α1)3+1 , কোথা থেকে α=1((1ρ)/2)1/3 কৌতুক আছে। তবে কপুলাস আপনাকে আরও নিয়ন্ত্রণ দেবে ...।
whuber

মন্তব্যের জন্য ধন্যবাদ, তবে হ্যাঁ, আমি মনে করি এই পদ্ধতিটি সত্যই "নোংরা"
অ্যান্টুরেএনও

1
আমার আশা ছিল যে এই পদ্ধতিটি দেখে আপনি স্বীকৃতি পাবেন যে আপনি এলোমেলো সংখ্যার জোড়া যুক্ত করার বৈশিষ্ট্য সম্পর্কে অতিরিক্ত মানদণ্ড সরবরাহ করতে পারেন (এবং হওয়া উচিত)। এটি যদি "নোংরা" হয় তবে অবশ্যই সমাধানে কী ভুল? আমাদের বলুন যাতে আমরা আপনার পরিস্থিতির জন্য আরও উপযুক্ত উত্তর সরবরাহ করতে পারি।
হোবার

এই প্রশ্নটি ঘটনাক্রমে একটি ঘনিষ্ঠভাবে সম্পর্কিত প্রশ্নের জবাবে জবাব দেওয়া হয়েছিল: লিনিয়ার রিগ্রেশন সম্পর্কের সাথে কীভাবে জোড়া আরভি তৈরি করা যায়। যেহেতু লিনিয়ার রিগ্রেশনটির opeাল স্বচ্ছতার সাথে গুণগত সংখ্যার সাথে সহজেই গণনা করা যায়, এবং সমস্ত সম্ভাব্য opালু উত্পাদিত হতে পারে, এটি আপনাকে যা চান ঠিক তা তৈরি করার একটি উপায় দেয়। Stats.stackexchange.com / জিজ্ঞাসা / 257779/ … দেখুন ।
হোবার

1
অনুগ্রহ করে stats.stackexchange.com/questions/31771 দেখুন , যা সাধারণীকরণকে তিনটি এলোমেলো ইউনিফর্মের জবাব দেয়।
হোবার

উত্তর:


16

কোনও প্রদত্ত প্রান্তিক বিতরণ সহ পারস্পরিক সম্পর্কযুক্ত র্যান্ডম ভেরিয়েবল উত্পন্ন করার জন্য আমি সর্বজনীন পদ্ধতি সম্পর্কে অবগত নই। সুতরাং, আমি একটি প্রদত্ত (পিয়ারসন) পারস্পরিক সম্পর্কের সাথে একত্রে বিতরণ এলোমেলো ভেরিয়েবলগুলির জোড়া উত্পন্ন করার জন্য একটি অ্যাডহক পদ্ধতির প্রস্তাব করব। সাধারণতার ক্ষতি ছাড়াই, আমি ধরে নিই যে পছন্দসই প্রান্তিক বিতরণটি স্ট্যান্ডার্ড ইউনিফর্ম (অর্থাত্ সমর্থনটি [0,1] )।

প্রস্তাবিত পদ্ধতির নিম্নলিখিত উপর নির্ভর:
ক) মান অভিন্ন র্যান্ডম ভেরিয়েবল জন্য এবং ইউ 2 নিজ নিজ বন্টন ফাংশন সঙ্গে এফ 1এফ 2 , আমরা এফ আমি ( ইউ আমি ) = ইউ আমি , জন্য আমি = 1 , 2 । সুতরাং, সংজ্ঞা অনুসারে স্পিয়ারম্যানের rho হ'ল ρ S ( U 1 , U 2 ) = c o r r ( FU1U2F1F2Fi(Ui)=Uii=1,2 সুতরাং, স্পিয়ারম্যান এর rho এবং পিয়ারসন এর পারস্পরিক সম্পর্ক সহগ সমান (নমুনা সংস্করণ তবে পৃথক হতে পারে)।

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

খ) যদি অবিচ্ছিন্ন মার্জিন এবং গাউসিয়ান কপুলার সাথে (পিয়ারসন) পারস্পরিক সম্পর্ক সহগ ρ সহ র্যান্ডম ভেরিয়েবল হয় তবে স্পিয়ারম্যানের rho ho S ( এক্স 1 , এক্স 2 ) = 6X1,X2ρ এটি স্পিয়ারম্যানের rho এর একটি পছন্দসই মান রয়েছে এমন এলোমেলো পরিবর্তনগুলি উত্পন্ন করা সহজ করে তোলে।

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

পদ্ধতিটি হ'ল গাউসিয়ান কপুলা থেকে একটি উপযুক্ত পারস্পরিক সহগ সহ ডেটা উত্পন্ন করা যেমন স্পিয়ারম্যানের আরএইচ অভিন্ন র্যান্ডম ভেরিয়েবলের জন্য কাঙ্ক্ষিত পারস্পরিক সম্পর্ক।ρ

সিমুলেশন অ্যালগরিদম
আসুন পারস্পরিক সম্পর্কের সন্তুষ্টির পর্যায়ে বোঝাতে, এবং এন জোড়া সংখ্যা উত্পন্ন করা হবে। অ্যালগরিদমটি হ'ল:rn

  1. গণনা ρ=2sin(rπ/6)
  2. গাউসিয়ান কপুলা থেকে এক জোড়া এলোমেলো ভেরিয়েবল তৈরি করুন (উদাহরণস্বরূপ, এই পদ্ধতির সাথে )
  3. পদক্ষেপটি 2 বার পুনরাবৃত্তি করুন ।n

উদাহরণ
নীচের কোডটি একটি টার্গেট রিলেশনশিপ এবং 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এখানে চিত্র বর্ণনা লিখুন

Constuction দ্বারা, র্যান্ডম ভেরিয়েবল অভিন্ন মার্জিন এবং পারস্পরিক সম্পর্কের সহগের (পাসে) থাকতে । স্যাম্পলিংয়ের প্রভাবের কারণে, সিমুলেটেড তথ্যের পারস্পরিক সম্পর্ক সহগ আর এর সমান নয় ।rr

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

নোট করুন যে gen.gauss.copফাংশনটি কেবল বৃহত্তর পারস্পরিক সম্পর্কের ম্যাট্রিক্স নির্দিষ্ট করে দুটিরও বেশি ভেরিয়েবলের সাথে কাজ করা উচিত।

সিমুলেশন অধ্যয়ন
নীচের সিমুলেশন অধ্যয়নটি টার্গেট রিলেশনের জন্য পুনরাবৃত্তি পরামর্শ দেয় যে পারস্পরিক সম্পর্কের সহগের বন্টন নমুনার আকার n বাড়ার সাথে সাথে কাঙ্ক্ষিত সম্পর্কের দিকে রূপান্তরিত হয় ।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

@ হুবুহু, কপুলার ব্যবহার এলোমেলো ভেরিয়েবলের মধ্যে নির্ভরতা কাঠামো নির্দিষ্ট করতে দেয়। সমস্যাটি হ'ল (ব্যক্তি) পারস্পরিক সম্পর্ক নির্ভরতা কাঠামো এবং মার্জিন উভয় দ্বারা প্রভাবিত হয়। সুতরাং, মার্জিনগুলির প্রতিটি পছন্দের জন্য কপুলা প্যারামিটারগুলির সাথে সম্পর্কিত একটি পছন্দ প্রয়োজন হবে, উল্লেখ করা উচিত নয় যে নির্দিষ্ট কিছু স্তরগুলি নির্দিষ্ট মার্জিনের জন্য সহজভাবে অর্জন করা যায় না (যেমন, এখানে দেখুন )। আপনি যদি এমন কোনও পদ্ধতি সম্পর্কে অবগত হন যা মার্জিনের যে কোনও পছন্দের জন্য সম্পর্কের স্তরটিকে 'নিয়ন্ত্রণ' করতে দেয় তবে আমি এটি সম্পর্কে জানতে আগ্রহী।
কোয়ান্টেবেেক্স

ধন্যবাদ @ কোয়ান্ট আইবেেক্স তবে আমি কেন পাই না "ক)
স্পিয়ারম্যানের আরএও

2
[1,1]

1
@ কোয়ান্টিবেক্স আমি একটি বাক্য যুক্ত করার স্বাধীনতা নিয়েছি যা আপনার gen.gauss.copফাংশনটিকে নির্দেশ করে যে একটি (তুচ্ছ) টুইটের সাহায্যে দুটিরও বেশি ভেরিয়েবলের জন্য কাজ করবে। আপনি যদি সংযোজনটি পছন্দ করেন না বা এটি অন্যভাবে রাখতে চান তবে দয়া করে প্রত্যাবর্তন করুন বা প্রয়োজন অনুযায়ী পরিবর্তন করুন।
গ্লেন_বি -রিনস্টেট মনিকা

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, and (1I)2=(1I) because I is always either 0 or 1. Note also that I is independent of the w's, which are also independent of each other. So:

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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.