产生相关非正态数据的方法


14

我对寻找一种生成相关的非正常数据的方法感兴趣。因此,理想情况下,某种类型的分布将协方差(或相关)矩阵作为参数,并生成近似该分布的数据。但是这里有个要点:我试图找到的方法应该具有灵活性,也可以控制其多元偏度和/或峰度。

我熟悉Fleishman的方法和正态变量的幂方法的使用,但是我相信大多数扩展只允许用户使用边际偏度和峰度的某些组合,而将多元偏度/峰度留在那儿。我想知道的是,是否有一种方法可以帮助指定多元偏度和/或峰度,以及一些相关性/协方差结构。

大约一年前,我参加了一次关于系蝇分布的研讨会,我记得这位教授随便提到了通过使用葡萄系蝇,一个人可以产生的数据在其一维边缘中的每一个都对称,但共同偏斜,反之亦然。 -反之亦然。或者,甚至更进一步,任何维数较低的边距在保持最大维数对称(或不对称)的同时,可能会有些偏斜或峰度。我一直对这种灵活性可能存在的想法感到惊讶,我一直试图找到某种描述上述方法的文章或会议论文,但我没有成功:(。不必通过使用copulas,我愿意接受任何可行的方法。

编辑:我添加了一些R代码,以尝试显示我的意思。到目前为止,我只熟悉Mardia对多元偏斜和峰度的定义。当我第一次解决问题时,我天真地想到如果我使用具有偏斜边线(在本例中为beta)的对称copula(在本例中为高斯),则对边沿的单变量检验会产生显着性,但Mardia对多变量偏斜/峰度的检验会很有意义。不重要。我尝试了一下,但并没有按我预期的那样出来:

library(copula)
library(psych)
set.seed(101)

cop1 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"), 
            c("beta", "beta"),list(list(shape1=0.5, shape2=5), 
            list(shape1=0.5, shape2=5)))}

            Q1 <- rmvdc(cop1, 1000)
            x1 <- Q1[,1]
            y1 <- Q1[,2]


cop2 <- {mvdc(normalCopula(c(0.5), dim=2, dispstr="un"), 
            c("norm", "norm"),list(list(mean=0, sd=1), 
            list(mean = 0, sd=1)))}

            Q2 <- rmvdc(cop2, 1000)
            x2 <- Q2[,1]
            y2 <- Q2[,2]

mardia(Q1)  

Call: mardia(x = Q1)

Mardia tests of multivariate skew and kurtosis
Use describe(x) the to get univariate tests
n.obs = 1000   num.vars =  2 
b1p =  10.33   skew =  1720.98  with probability =  0
small sample skew =  1729.6  with probability =  0
b2p =  22.59   kurtosis =  57.68  with probability =  0

mardia(Q2)
Call: mardia(x = Q2)

Mardia tests of multivariate skew and kurtosis
Use describe(x) the to get univariate tests
n.obs = 1000   num.vars =  2 
b1p =  0.01   skew =  0.92  with probability =  0.92
 small sample skew =  0.92  with probability =  0.92
b2p =  7.8   kurtosis =  -0.79  with probability =  0.43

在检查“ cop1”和“ cop2”的等高线以及经验性双变量密度图时,我还可以看到它们看起来都不对称。那时我意识到这可能比我想的要复杂一些。

我知道Mardia并不是多元偏度/峰度的唯一定义,因此我并不仅限于寻找一种满足Mardia定义的方法。

谢谢!


+1一个最有趣的问题。在这种情况下,您能否更具体地说明“共同偏斜”(特别是双变量)是什么意思?虽然我可以描绘出在四个象限中某种意义上“不同”的关节分布形式(例如,关于放置在均值上的轴),但我不熟悉“关节偏斜”的具体含义。
Glen_b-恢复莫妮卡

经验值XX

你好。非常感谢您对我的问题感兴趣。这是我第一次在这里发布信息,所以我希望自己做的正确。我将在注释部分中进行详细说明,因为字符数限制使我无法使用R代码尝试传达我在做什么
S. Punky 2013年

是的,我只是意识到这一点,并增加了更多细节。感谢您抽出宝贵的时间指导我如何使用此板。谢谢!
S. Punky

不仅仅局限于寻找一种满足Mardia定义的方法”- 做某事的方法?
Glen_b-恢复莫妮卡

Answers:


3

一番搜索后,跳来跳去网上论坛,与教授咨询和做文献综述很多,我得出的结论是可能解决这一问题的唯一方法是通过使用藤Copula函数确实的。它使您可以控制成对的偏度和峰度(或任何更高的矩)-对于p变量随机向量,可以自由指定p-1对copula,其余p *(p-1)/ 2-( p-1)的尺寸可以在某种条件语系中指定。

我欢迎人们可能会遇到的其他方法,但至少我要把这个指针留给答案,因为我一生无法找到其他解决方法。


2
什么是藤蔓copula?
Sextus Empiricus

1

您可能可以通过修改Ruscio和Kaczetow(2008)算法来解决此问题。他们的论文提供了一种迭代算法(带有R代码),该算法可最大程度地减少实际边际形状与预期边际形状之间的差异。您可能可以对其进行修改,以使其针对多元(而不是边缘)时刻。

Ruscio,J。和Kaczetow,W。(2008)。使用迭代算法模拟多元非正态数据。多元行为研究,43(3),355-381。doi:10.1080 / 00273170802285693


我的天啊!谢谢!我想了一下,这个问题就被遗忘了
S. Punky 2013年

1
好吧...我已经审阅了Ruscio&Kaczetow(2008)的文章。不幸的是,这只是NORTA(任何事物的范式)算法家族的另一个实现(现在更加灵活),众所周知,它不适用于多元第3和第4矩。我想我要回到这一方面。
S. Punky 2013年


0

我想出了一种简单的方法来完成此任务,该方法不涉及coplas和其他复杂的设计。尽管该方法似乎非常有效,但恐怕我没有任何正式参考。

这个想法很简单。1.从联合正态分布中绘制任意数量的变量。2.应用变量的单变量正态CDF来得出每个变量的概率。3.最后,应用任何分布的逆CDF来模拟该分布的绘制。

我在2012年提出了这种方法,并使用Stata进行了演示。我最近也写了一篇文章,展示了使用R的相同方法。


(1)什么是“ Spearman正态分布”?(2)您对CDF和“普通CDF”有何区别?(3)您能否解释一下该方法如何引入任何相关性?恐怕您对“变量”和“分布”的一般用法会使您的描述含糊不清,因此很难说出它的实际作用。您能否改写更准确的答案?
whuber

谢谢你的文章!通过点击链接,可以看到有关该方法的更多信息。它并不能完全满足我的期望(即控制分布的高阶,高维矩),但仍然是一种非常有价值的方法。
S. Punky 2014年

1
毫不奇怪,我没有想出一种新方法,请参见:Cario,Marne C.和Barry L. Nelson。建模和生成具有任意边际分布和相关矩阵的随机向量。西北大学工业工程与管理科学系技术报告,伊利诺伊州埃文斯顿,1997年。Yahav,Inbal和Galit Shmueli。“在管理科学应用程序中生成多元泊松数据。” 罗伯特·H·史密斯学校研究论文编号RHS(2009):06-085。
Francis Smart

即使这不是“新方法”,我仍然要感谢您抽出宝贵的时间来研究我的问题并添加一些有见地的内容:)
S. Punky 2014年

0

我相信以下论文中介绍的方法可以生成具有均值,方差,偏度和峰度的任何(可行)组合的随机多元变量。

  1. Stanfield,PM,Wilson,JR和Mirka,GA,1996。《使用Johnson Johnson分布的多变量输入建模》,1996年冬季模拟会议论文集,eds。查恩斯·JM,莫里斯·DJ,布伦纳·DT和斯温·JJ,1457-1464。
  2. Stanfield,PM,Wilson,JR,King ,RE2004。相关操作时间的灵活建模及其在产品再利用设施中的应用,《国际生产研究杂志》,第42卷,第11期,2179–2196年。

免责声明:我不是作者之一。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.