这个例子展示了如何使用copula和秩相关从没有可用的逆cdf函数的概率分布(如Pearson柔性分布族)生成相关数据。
使用两个不同的Pearson分布生成1000个随机数,使用pearsrnd
函数。第一个分布的参数值为mu = 0, sigma = 1,偏态为1,峰度为4。第二种分布的参数值为,等于0,等于1,偏态为0。75,峰度为3。
RNG.默认的重复性的%p1 = pearsrnd (0, 1, 1, 1000, 1);p2 = pearsrnd(0、1、0.75、3、1000年,1);
在这个阶段,P1.
和P2.
是来自各自的Pearson分布的独立样本,并且是不相关的。
创建一个scatterhist
绘图可视化Pearson随机数。
图scatterhist (p1, p2)
柱状图显示了P1.
和P2.
。散点图显示了联合分布P1.
和P2.
。散点图缺乏规律表明P1.
和P2.
是独立的。
使用copularnd
生成1000个相关系数为-0.8的相关随机数,使用高斯关联函数。创建一个scatterhist
绘图可视化copula生成的随机数。
u = copularnd (“高斯”, -0.8, 1000);图scatterhist (u (: 1), (2):,)
直方图表明,Copula的每列中的数据具有边缘均匀的分布。散点图显示了两列中的数据是负相关的。
利用Spearman的秩相关,将两个独立的皮尔逊样本转换为相关数据。
使用种类
函数对关联随机数从小到大排序,并返回描述这些数字重新排列顺序的索引向量。
(s1, i1) = (u (: 1));(s2, i2) = (u (:, 2));
s1
和s2
包含copula的第一列和第二列的数字,u
,按照最小到最大的顺序排序。i1
和i2
是描述元素重排顺序的索引向量吗s1
和s2
。例如,如果第一个值在排序向量s1
是原始未输制矢量中的第三个值,然后是索引矢量中的第一个值i1
是3。
创建两个0向量,x1
和x2
,它的大小与排序的连接向量相同,s1
和s2
。将值排序P1.
和P2.
从小到大。将值放入x1
和x2
,其顺序与索引相同i1
和i2
通过对Copula随机数进行排序生成。
x1 = 0(大小(s1));x2 = 0(大小(s2));x1 (i1) = (p1);x2 (i2) = (p2);
创建一个scatterhist
绘图可视化相关的Pearson数据。
图散点图(x1,x2)
直方图显示了每一列数据的边缘皮尔逊分布。散点图显示了P1.
和P2.
,表明数据现在是负相关的。
确认copula随机数与相关Pearson随机数的Spearman秩相关系数相同。
copula_corr = corr (u,“类型”,“枪兵”)
copula_corr =2×21.000 -0.7858 -0.7858 1.000
pearson_corr = corr ((x1, x2),“类型”,“枪兵”)
Pearson_corr =.2×21.000 -0.7858 -0.7858 1.000
对于copula和Pearson随机数,Spearman秩相关是相同的。