主要内容

使用灵活的分布族生成数据

这个例子展示了如何使用Pearson和Johnson分布系统生成数据。

培生公司

使用概率分布,选择一个适当的参数分布族来对数据进行建模先天的后验数据生成过程的知识,但选择往往是困难的。的皮尔逊-约翰逊系统公司可以使这样的选择不必要。每个系统都是一个灵活的参数分布族,其中包括各种各样的分布形状,通常可以在这两个系统中找到一个与您的数据非常匹配的分布。

数据输入

下面的参数定义了皮尔逊和约翰逊系统的每个成员。

这些统计数据也可以使用时刻函数。约翰逊系统虽然基于这四个参数,但更自然地使用分位数来描述分位数函数。

pearsrndjohnsrnd函数接受定义分布的输入参数(分别为形参或分位数),并返回相应系统中分布的类型和系数。这两个函数还从指定的分布中生成随机数。

例如,加载数据carbig.mat,其中包含一个变量英里/加仑包含每辆车的汽油里程测量值。

负载carbigMPG = MPG(~isnan(MPG));直方图(MPG, 15)

下面两个部分分别用Pearson和Johnson系统的成员对分布进行建模。

使用Pearson系统生成数据

统计学家卡尔·皮尔森(Karl Pearson)设计了一个分布系统或分布族,其中包括一个独特的分布,对应于平均值、标准差、偏度和峰度的每一个有效组合。如果您从数据中计算每个矩的样本值,那么很容易在Pearson系统中找到与这四个矩匹配的分布并生成随机样本。

皮尔逊系统将七种基本类型的分布嵌入到一个单一的参数框架中。它包括常见的分布,如正态分布和 t 分布,标准分布的简单变换,例如移位和缩放的beta分布和反gamma分布,还有一个分布,即iv型分布,它不是任何标准分布的简单变换。

对于给定的一组矩,系统中有一些分布也具有相同的前四个矩,皮尔逊系统中的分布可能与您的数据不太匹配,特别是如果数据是多模态的。但该系统确实涵盖了广泛的分布形状,包括对称分布和倾斜分布。

从皮尔逊分布中生成一个与英里/加仑数据,简单地计算四个样本矩,并将其视为分布参数。

矩={均值(MPG),标准差(MPG),偏度(MPG),峰度(MPG)};rng (“默认”%为了重现性[r,type] = pearsrnd(moments{:},10000,1);

的可选第二个输出pearsrnd表示皮尔逊系统内哪种类型的分布与矩的组合相匹配。

类型
类型= 1

在这种情况下,pearsrnd已经确定数据最好用I型皮尔逊分布来描述,这是一个移位的,缩放的beta分布。

通过叠加经验累积分布函数来验证样本是否与原始数据相似。

ecdf (MPG);[Fi,xi] = ecdf(r);持有;楼梯(xi, Fi,“r”);持有

使用约翰逊系统生成数据

统计学家诺曼·约翰逊(Norman Johnson)设计了一个不同的分布系统,其中还包括每个有效的均值、标准差、偏度和峰度组合的独特分布。然而,由于使用分位数来描述Johnson系统中的分布更为自然,因此使用该系统与使用Pearson系统不同。

Johnson系统是基于一个正态随机变量的三种可能的变换,加上恒等变换。这三种不平凡的情况被称为SL,某人,对应于指数变换、逻辑变换和双曲正弦变换。这三个都可以写成

X γ + δ Γ Z - ξ λ

在哪里 Z 是标准正态随机变量, Γ 是变换,和 γ δ ξ , λ 是尺度和位置参数。第四种情况,SN是恒等变换。

从约翰逊分布中生成一个与英里/加仑数据,首先定义四个分位数,将-1.5、-0.5、0.5和1.5的四个均匀间隔的标准正态分位数转换为这四个分位数。也就是说,计算数据的样本分位数以获得0.067、0.309、0.691和0.933的累积概率。

Probs = normcdf([-1.5 -0.5 0.5 1.5])
聚合氯化铝=1×40.0668 0.3085 0.6915 0.9332
分位数(MPG,probs)
分位数=1×413.000 18.000 27.2000 36.000

然后将这些分位数视为分布参数。

[r1,type] = johnsrnd(quantiles,10000,1);

的可选第二个输出johnsrnd表示约翰逊系统中与分位数匹配的分布类型。

类型
type = 'SB'

可以通过叠加经验累积分布函数来验证样本是否与原始数据相似。

ecdf (MPG);[Fi,xi] = ecdf(r1);持有;楼梯(xi, Fi,“r”);持有

在某些应用程序中,在数据的某些区域比在其他区域更好地匹配分位数可能很重要。为此,指定希望匹配数据的四个均匀间隔的标准正态分位数,而不是默认的-1.5、-0.5、0.5和1.5。例如,您可能更关心匹配右侧尾部的数据,而不是左侧尾部的数据,因此您指定了强调右侧尾部的标准正态分位数。

Qnorm =[-]。[5.25 1 1.75];Probs = normcdf(qnorm);qemp =分位数(MPG,probs);R2 = johnsrnd([qnorm;qemp), 10000, (1);

然而,虽然新样本在右尾部与原始数据匹配得更好,但在左尾部与原始数据匹配得更差。

[Fj,xj] = ecdf(r2);持有;楼梯(Fj xj,‘g’);持有

另请参阅

||