Створіть три співвідносні однаково розподілені випадкові величини


15

Припустимо, у нас є

X1unif(n,0,1),
X2unif(n,0,1),

де unif(n,0,1) є рівномірною випадковою вибіркою розміру n та

Y=X1,

Z=0.4X1+10.4X2.

Тоді кореляція між і Z дорівнює 0,4 .YZ0.4

Як я можу поширити це на три змінні: , X 2 , X 3 ?X1X2X3


Я відредагував ваше запитання, щоб полегшити його читання. Перевірте, чи все гаразд. Що стосується вашого питання, в якому сенсі ви продовжите свою процедуру? Кореляція визначається для двох випадкових змінних, тому мені не зрозуміло, що я маю на увазі.
окрам

3
не є рівномірним, тому якщо ви намагаєтесь узагальнити цей результат, це не здається, що ви намагаєтеся генерувати три корельовані однакові RV. Ви ставитепро теяк обчислити кореляцію між X 1 і з X 1 + Ь Х 2 + гр X 3 ? ZX1aX1+bX2+cX3
MånsT

Припустимо, у нас , X 2 , X 3 u n i f ( n , 0 , 1 ) і Y = f ( X 2 , X 3 ) , Z = f ( X 1 , X 2 , X 3 ) . Тоді що таке Y і Z ? X1X2X3  унif(н,0,1)Y=f(Х2,Х3)Z=f(Х1,Х2,Х3)YZ
user9292

6
{Distributions of correlated uniforms}{Copulas}
Кардинал

4
Чому п не вступає в дискусію? Якщо X1 і X2 є уніваріантними випадковими змінними, чи не вони просто [0,1]?
Майкл Р. Черник

Відповіді:


12

Питання містить декілька помилок, як зазначено в коментарях - як визначено в запитанні, Z не є однорідним і не має вказаної кореляції.

кардинал згадує копули, і це найзагальніший шлях для цього. Однак існує декілька досить простих способів отримати відповідні уніформи (які можна розглядати як прості ярлики до різних видів копул).

Тож почнемо з кількох способів отримати пару співвіднесених уніформ.

1) Якщо додати дві форми, результат трикутний, а не рівномірний. Але ви можете використовувати cdf отриманої змінної як перетворення, щоб повернути результат до рівномірного. Результат, звичайно, більше не є лінійно корельованим.

Ось функція R для перетворення симетричного трикутника на (0,2) у стандартну рівномірність

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

Давайте перевіримо, чи це дає форму

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

введіть тут опис зображення

І це співвідноситься з u1 та u2:

> 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

але не лінійно, через монотонне перетворення в рівномірність

введіть тут опис зображення

За допомогою цього інструменту ми можемо створити кілька додаткових змінних, щоб отримати три однорідні уніформи:

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-змінними виглядає приблизно так:

введіть тут опис зображення

-

Друга альтернатива полягає в отриманні суміші . Замість того, щоб підсумовувати обмундирування, візьміть їх із фіксованою ймовірністю.

напр

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

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

введіть тут опис зображення

Що знову можна використати для створення декількох співвіднесених уніформ.

-

Третій простий підхід - це генерування співвідносних нормалей та перетворення їх на одноманітність.

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

Отже, тепер ми переходимо до уніформи:

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

введіть тут опис зображення

Одне приємне в методах 2 і 3 полягає в тому, що ви отримуєте велику різноманітність у виборі того, наскільки можуть бути співвіднесені речі (і вони не повинні бути однорідними, як приклади тут).

Звичайно, існує велика кількість інших підходів, але все це швидко і просто.

Хитра частина - отримання саме бажаного співвідношення населення; це не так просто, як коли ти просто хочеш співвіднести гауссів. Відповідь Квантебекса на “Згеневувати пари випадкових чисел, рівномірно розподілених та співвіднесених, дає підхід, який модифікує мій третій метод тут, який повинен дати бажану кореляцію сукупності.


Glen_b. Дякую, дуже красива та цікава відповідь!
user9292

Я не розумію, звідки беруться 0,6 і 0,8 у вашому третьому підході.
мануель

ρρNi+1ρ2NjNiNjρNi1ρ2NjXYZ є нормами, що співвідносяться між собою. (Це не найефективніший можливий спосіб зробити це, але це спосіб.)
Glen_b -Встановити Моніку

2

По-перше, чи вважаєте ви це? Х1,Х2незалежні? Якщо вони є, то коефіцієнт кореляції міжZ і Х1не є 0,4. Це було б0,4 якщо Y були визначені як Y=0,4Х1+1-(0,4)2Х2.

Простий погляд на визначення формули коефіцієнта кореляції та закону косинусів повинен переконати вас у цьому ρ це cos між 2серія, якщо серії розглядаються як вектори, кожна точка даних обробляється як розмірність вектора. Якщо у вас є3 парний незалежний ряд, це три вектори, всі вони ортогональні один одному (тому що cosКути між ними всі 0's.

Це повинно розпочати вас на шляху до декомпозиції серії на її компоненти так само, як ви розкладете вектор на його ортогональні компоненти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.