Eşit dağılmış üç rasgele değişken üret


15

Varsayalım

X 2unif ( n , 0 , 1 ) ,

X1~UNIF(n,0,1),
X2~UNIF(n,0,1),

burada n boyutunda tek tip rastgele bir örnektir veUNIF(n,0,1)

Y=X1,

Z=0.4X1+10.4X2.

Sonra arasındaki korelasyon ve olan .Z 0.4YZ0.4

Bunu üç değişkene nasıl genişletebilirim: X1 , X2 , X3 ?


Okumayı kolaylaştırmak için sorunuzu düzenledim. Lütfen, her şeyin yolunda olduğunu kontrol edin. Sorunuzla ilgili olarak, prosedürünüzü ne anlamda genişletirdiniz? Korelasyon iki rastgele değişken için tanımlanmıştır, bu yüzden ne demek istediğinizi elde etmek benim için açık değildir.
ocram

3
X 1 a X 1 + b X 2 + c X 3Z tekdüze değildir, bu nedenle bu sonucu genelleştirmeye çalışıyorsanız, üç ilişkili tekdüze RV oluşturmaya çalıştığınız görülmemektedir. ve arasındaki korelasyonun nasıl hesaplanacağını merak ediyor ? X1aX1+bX2+cX3
MånsT

Diyelim ki , , ve , . O zaman ve nedir? X1X2X3  unif(n,0,1)Y=f(X2,X3)Z=f(X1,X2,X3)YZ
user9292

6
{Distributions of correlated uniforms}{Copulas}
kardinal

4
Neden tartışmaya katılıyor? X1 ve X2 tek değişkenli rasgele değişkenler ise, [0,1] üzerinde tekdüze değiller mi?
Michael R. Chernick

Yanıtlar:


12

Soru, yorumlarda belirtildiği gibi birkaç hata içerir - soruda tanımlandığı gibi, Z ne tekdüzedir ne de belirtilen korelasyona sahiptir.

kardinal kopulalardan bahseder ve bu konuda en genel yol budur. Bununla birlikte, ilişkili üniformaları elde etmenin birkaç kolay yolu vardır (bu, farklı kopula türlerine sadece kısayollar olarak görülebilir).

Öyleyse bir çift ilişkili üniforma almanın bazı yollarıyla başlayalım .

1) İki üniforma eklerseniz sonuç üniform değil, üçgen olur. Ancak, sonucu bir formata geri almak için, sonuçtaki değişkenin cdf'sini bir dönüşüm olarak kullanabilirsiniz. Sonuç elbette artık doğrusal olarak ilişkili değil.

İşte (0,2) üzerindeki simetrik bir üçgeni standart forma dönüştürmek için bir R işlevi

t2u = function(x) ifelse(x<1, x^2, 2-(2-x)^2)/2

Üniforma verdiğini kontrol edelim

u1 = runif(30000)
u2 = runif(30000)
v1 = t2u(u1+u2)

resim açıklamasını buraya girin

Ve u1 ve u2 ile ilişkilidir:

> cor(cbind(u1,u2,v1))
            u1          u2        v1
u1 1.000000000 0.006311667 0.7035149
u2 0.006311667 1.000000000 0.7008528
v1 0.703514895 0.700852805 1.0000000

ancak tekdüzeliğe monotonik dönüşüm nedeniyle doğrusal olarak değil

resim açıklamasını buraya girin

Bu bir araç olarak, üç eşdüzeyli üniforma elde etmek için bazı ek değişkenler üretebiliriz:

u3 = runif(30000)
v2 = t2u(u1+u3)
v3 = t2u(u2+u3)

cor(cbind(v1,v2,v3))
          v1        v2        v3
v1 1.0000000 0.4967572 0.4896972
v2 0.4967572 1.0000000 0.4934746
v3 0.4896972 0.4934746 1.0000000

V değişkenleri arasındaki ilişkinin tümü şöyle görünür:

resim açıklamasını buraya girin

-

İkinci bir alternatif, bir karışım alınarak üretilmesidir . Üniformaları toplamak yerine, sabit olasılıklarla alın.

Örneğin

z = ifelse(rbinom(30000,1,.7),u1,u2)

cor(cbind(u1,z))
          u1         z
u1 1.0000000 0.7081533
z  0.7081533 1.0000000

resim açıklamasını buraya girin

Hangi tekrar birden çok ilişkili üniforma oluşturmak için kullanılabilir.

-

Üçüncü basit yaklaşım, ilişkili normaller üretmek ve tekdüzeliğe dönüştürmektir.

n1=rnorm(30000)
n2=rnorm(30000)
n3=rnorm(30000)
x=.6*n1+.8*n2
y=.6*n2+.8*n3
z=.6*n3+.8*n1
cor(cbind(x,y,z))

          x         y         z
x 1.0000000 0.4763703 0.4792897
y 0.4763703 1.0000000 0.4769403
z 0.4792897 0.4769403 1.0000000

Şimdi üniformaya dönüştürüyoruz:

w1 = pnorm(x)
w2 = pnorm(y)
w3 = pnorm(z)
cor(cbind(w1,w2,w3))
          w1        w2        w3
w1 1.0000000 0.4606723 0.4623311
w2 0.4606723 1.0000000 0.4620257
w3 0.4623311 0.4620257 1.0000000

resim açıklamasını buraya girin

Yöntem 2 ve 3 ile ilgili güzel bir şey, birbiriyle ilişkili şeylerin nasıl olabileceğine dair seçiminizde bol miktarda çeşitlilik elde etmenizdir (ve buradaki örnekler gibi denkleştirilmeleri gerekmez).

Elbette çok çeşitli başka yaklaşımlar da var, ancak bunların hepsi hızlı ve kolaydır.

Zor kısmı tam olarak istenen nüfus korelasyonunu elde ediyor; sadece ilişkili Gauss'ları istediğiniz kadar basit değil. Quantibex'in tekdüze bir şekilde dağıtılmış ve ilişkilendirilmiş rasgele sayı çiftleri üretme yanıtı, burada üçüncü yöntemimi değiştirerek istenen nüfus korelasyonunu vermesi gereken bir yaklaşım sağlar.


Glen_b. Teşekkür ederim, çok güzel ve ilginç bir cevap!
user9292

Üçüncü yaklaşımınızdaki 0.6 ve 0.8'in nereden geldiğini anlamıyorum.
manuel

ρρN-ben+1-ρ2N-jNiNjρNi1ρ2NjXYZ

2

X1,X2ZX1 0.40.4YY=0.4X1+1(0.4)2X2

ρcos23cos0

Bu, bir diziyi bileşenlerine ayrıştırırken aynı şekilde bir vektörü dikey bileşenlerine ayırdığınız şekilde başlatmalıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.