總和不正常的兩個 correlated 正態變量的示例
我知道一些很好的相關隨機變量對的例子,它們是邊緣正常但不是共同正常的。請參閱Dilip Sarwate的這個答案,以及Cardinal的這個答案。
我也知道兩個正常隨機變量的總和不正常的例子。請參閱Macro的這個答案。但是在這個例子中,兩個隨機變量是不相關的。
是否有兩個具有非零協方差且總和不正常的正態隨機變量的示例?或者是否有可能證明任何兩個相關正態隨機變量的總和,即使它們不是二元正態,也一定是正態的?
[背景:我有一個作業問題,要求分配在哪裡和是具有相關性的標準法線. 我認為這個問題旨在說明它們是二元正態的。但我想知道如果沒有這個額外的假設,是否可以說什麼非零。]
謝謝!
幾乎任何雙變量 copula 都會產生一對具有一些非零相關性的正態隨機變量(有些會給出零,但它們是特殊情況)。他們中的大多數(幾乎所有)都會產生非正常的總和。
在某些 copula 族中,可以產生任何所需的(總體) *Spearman相關;*困難僅在於找到正常邊距的 Pearson 相關性;原則上是可行的,但一般來說代數可能相當複雜。[但是,如果您有總體 Spearman 相關性,則 Pearson 相關性 - 至少對於像高斯這樣的輕尾邊距 - 在許多情況下可能不會太遠。]
除了紅衣主教情節中的前兩個例子外,所有例子都應該給出非正態總和。
一些例子——前兩個與紅衣主教的例子二元分佈的第五個來自同一個係詞家族,第三個是退化的。
示例 1:
克萊頓係詞 ()
在這裡,總和非常明顯地達到峰值並且相當強烈的右偏
示例 2:
克萊頓係詞 ()
這裡的總和有輕微的左偏。以防萬一這對每個人來說都不是很明顯,在這裡我翻轉了分佈(即我們有一個直方圖淡紫色)並將其疊加,以便我們可以更清楚地看到不對稱性:
我們可以很容易地互換總和的偏度方向,使得負相關與左偏相關,而與右偏正相關(例如,通過取和在上述每種情況下 - 新變量的相關性將與以前相同,但總和的分佈將翻轉為 0 左右,扭轉偏度)。
另一方面,如果我們只是否定其中一個,我們將改變偏度強度與相關符號之間的關聯(但不是它的方向)。
還值得嘗試一些不同的 copula,以了解二元分佈和正態邊距會發生什麼。
可以對帶有 t-copula 的高斯邊距進行實驗,而不必過多擔心 copula 的細節(從相關二元 t 生成,這很容易,然後通過概率積分變換轉換為均勻邊距,然後通過逆正常 cdf)。它將有一個非正態但對稱的和。所以即使你沒有很好的 copula 包,你仍然可以相當容易地做一些事情(例如,如果我試圖在 Excel 中快速顯示一個示例,我可能會從 t-copula 開始)。
–
示例 3:(這更像是我最初應該開始的)
考慮基於標準制服的 copula, 並讓為了和為了. 結果具有統一的邊距和,但二元分佈是退化的。將兩個邊距轉換為正常, 我們得到一個分佈看起來像這樣:
在這種情況下,它們之間的相關性約為 0.66。
再說一次,和是與(在這種情況下,明顯地)非正態總和相關的正態 - 因為它們不是雙變量正態。
[人們可以通過翻轉中心來生成一系列相關性(在, 為了在),獲得. 這些將在 0 處有一個尖峰,然後在其兩側有一個間隙,帶有正常的尾巴。]
一些代碼:
library("copula") par(mfrow=c(2,2)) # Example 1 U <- rCopula(100000, claytonCopula(-.7)) x <- qnorm(U[,1]) y <- qnorm(U[,2]) cor(x,y) hist(x,n=100) hist(y,n=100) xysum <- rowSums(qnorm(U)) hist(xysum,n=100,main="Histogram of x+y") plot(x,y,cex=.6, col=rgb(0,100,0,70,maxColorValue=255), main="Bivariate distribution") text(-3,-1.2,"cor = -0.68") text(-2.5,-2.8,expression(paste("Clayton: ",theta," = -0.7")))
第二個例子:
#-- # Example 2: U <- rCopula(100000, claytonCopula(2)) x <- qnorm(U[,1]) y <- qnorm(U[,2]) cor(x,y) hist(x,n=100) hist(y,n=100) xysum <- rowSums(qnorm(U)) hist(xysum,n=100,main="Histogram of x+y") plot(x,y,cex=.6, col=rgb(0,100,0,70,maxColorValue=255), main="Bivariate distribution") text(3,-2.5,"cor = 0.68") text(2.5,-3.6,expression(paste("Clayton: ",theta," = 2"))) # par(mfrow=c(1,1))
第三個例子的代碼:
#-- # Example 3: u <- runif(10000) v <- ifelse(u<.5,u,1.5-u) x <- qnorm(u) y <- qnorm(v) hist(x+y,n=100)