Correlation

總和不正常的兩個 correlated 正態變量的示例

  • October 21, 2014

我知道一些很好的相關隨機變量對的例子,它們是邊緣正常但不是共同正常的。請參閱Dilip Sarwate的這個答案,以及Cardinal的這個答案。

我也知道兩個正常隨機變量的總和不正常的例子。請參閱Macro這個答案。但是在這個例子中,兩個隨機變量是不相關的。

是否有兩個具有非零協方差且總和不正常的正態隨機變量的示例?或者是否有可能證明任何兩個相關正態隨機變量的總和,即使它們不是二元正態,也一定是正態的?

[背景:我有一個作業問題,要求分配在哪裡和是具有相關性的標準法線. 我認為這個問題旨在說明它們是二元正態的。但我想知道如果沒有這個額外的假設,是否可以說什麼非零。]

謝謝!

幾乎任何雙變量 copula 都會產生一對具有一些非零相關性的正態隨機變量(有些會給出零,但它們是特殊情況)。他們中的大多數(幾乎所有)都會產生非正常的總和。

在某些 copula 族中,可以產生任何所需的(總體) *Spearman相關;*困難僅在於找到正常邊距的 Pearson 相關性;原則上是可行的,但一般來說代數可能相當複雜。[但是,如果您有總體 Spearman 相關性,則 Pearson 相關性 - 至少對於像高斯這樣的輕尾邊距 - 在許多情況下可能不會太遠。]

除了紅衣主教情節中的前兩個例子外,所有例子都應該給出非正態總和。


一些例子——前兩個與紅衣主教的例子二元分佈的第五個來自同一個係詞家族,第三個是退化的。

示例 1:

克萊頓係詞 ()

正態邊距直方圖、非正態總和和雙變量分佈圖

在這裡,總和非常明顯地達到峰值並且相當強烈的右偏

示例 2:

克萊頓係詞 ()

正態邊距直方圖、非正態總和和雙變量分佈圖

這裡的總和有輕微的左偏。以防萬一這對每個人來說都不是很明顯,在這裡我翻轉了分佈(即我們有一個直方圖淡紫色)並將其疊加,以便我們可以更清楚地看到不對稱性:

x+y 和 -(x+y) 的疊加直方圖

我們可以很容易地互換總和的偏度方向,使得負相關與左偏相關,而與右偏正相關(例如,通過取和在上述每種情況下 - 新變量的相關性將與以前相同,但總和的分佈將翻轉為 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)

引用自:https://stats.stackexchange.com/questions/120861

comments powered by Disqus