不同分布的偏度峰度图

机器算法验证 分布 偏度 峰度
2022-03-28 05:18:55

我正在寻找一种方法来绘制一系列分布的偏度峰度图:皮尔逊系统、对数正态、伽马、广义伽马、帕累托 1、2、3、4 等。

我只找到了其中一些分布图。甚至可以为所有理论分布绘制一个偏度峰度图吗?如何为我需要的人做这件事?

2个回答

皮尔逊图

让:

β1=μ32μ23andβ2=μ4μ22

其中通常用作 skewness 的量度,而经常用作峰度的量度。β1β2

Pearson 绘图图根据偏度 (轴) 和峰度 (轴) 来描述属于 Pearson 家族成员的分布:xy

在此处输入图像描述

  • (0,3) 处的点表示正态分布。

  • Gamma 分布定义了绿色的 III 型线。指数分布只是 III 型线上的一个点。

  • 逆伽玛分布定义了蓝色的 V 型线。

  • 幂函数 [Beta(a,1)] 定义 I(J) 型线。类型 I 嵌套了 Beta 分布。

  • 类型 VII(对称:当时)嵌套学生的 t 分布等β1=0

将其他分布添加到 Pearson 图

OP 询问如何将其他分布(甚至可能不是 Pearson 家族的成员)添加到 Pearson 绘图图上。这是我们 Springer 文本的第 5 章中的练习:Rose 和 Smith,Mathematica 的数学统计本章的免费副本可在此处下载:

http://www.mathstatica.com/book/bookcontents.html

为了说明,假设我们想在 Pearson 图上添加一个偏态正态分布。与 pdfXskewNormal(λ)f(x)

在此处输入图像描述

平均值是:

在此处输入图像描述

...而第二、第三和第四个中心矩是:

在此处输入图像描述

那么,由下式给出:β1β2

在此处输入图像描述

由于都由参数确定,因此是相关的。消除参数看起来很棘手,所以我们将使用数值方法。例如,我们可以参数化地绘制的函数,因为从 0 增加到 300:β1β2λβ1β2λβ1β2λλ

在此处输入图像描述

这条线将位于皮尔逊图上的什么位置?为了准确地看到答案,我们需要将图 P1 叠加到标准皮尔逊图上。由于皮尔逊图的纵轴是倒置的,所以我们仍然需要倒置 P1 的纵轴。这可以通过将 P1 中的所有点 {x,y} 转换为 {x,9-y} 来完成,然后将 P1 和 Pearson 图一起显示。这样做会产生:

在此处输入图像描述

总之,图中的黑线描述了分布可以表现出 )的可能值。时的正态分布,然后随着向无穷大增加,沿着黑线移动。β1,β2skew-Normal(λ)λ=0λ

任何分布在概念上都可以采用相同的方法:在某些情况下,分布将​​由单个点捕获;在其他情况下,例如这里的情况,作为一条线;在其他情况下,更一般的东西。

笔记

  1. Expect并且PearsonPlotMathStatica附加到Mathematica的函数;Erf表示误差函数,并且ParametricPlotMathematica函数。

  2. 在极限中,随着向无穷大增加,在上极值处,取以下值,这里用数字表示:{0.990566, 3.86918}λβ1β2

偏度峰度图有两种主要类型;一种是针对峰度绘制偏度(其中不可能的边界是一条抛物线),另一种是针对峰度(它变成一条线)绘制平方偏度。

有些图不只是绘制单个样本的样本值 - 有些使用引导程序生成应该反映采样可变性的值的分布(因此您可以看到哪些分布是合理的,哪些分布“太远了” )。[然而,通过尝试一些示例人口分布,似乎常常低估了一个方向的变异性,而略微高估了另一个方向的变异性(重新采样的值通常倾向于聚集在一条线上,而不是它们确实表明了采样变异性)。 ]

但无论如何,绘制分布的方法是查看其偏度和峰度并绘制它们。

  1. 如果偏度和峰度是固定的,只需绘制该点(并标记它)。但是,请注意,某些分布可能不会同时具有偏度和峰度是有限的(如果峰度是有限的,那么偏度也必须是有限的,如果偏度不是有限的,那么峰度也不会是有限的)。

  2. 如果分布是一个族,其偏度和峰度取决于一个参数,如果您不能直接写出偏度和峰度之间的关系,您可以使用该参数来参数化它所在的曲线。

  3. 如果偏度和/或峰度取决于它们之间的几个参数(或者可能超过两个),您可能有一个区域而不是曲线,在这种情况下,您需要尝试从关系中找出边界参数的可能值和偏度/峰度。

这是一个基本的图表(基于我去年写的关于 Pearson 家族的一些笔记):

![在此处输入图像描述

请注意,我有β2(峰度)在 x 轴上和β1(平方偏度)在 y 轴上。这是因为绘图在这个方向上工作得更好,因为您需要更多的峰度空间。

Pearson 分布类型在括号中标有罗马数字。请注意,命名分布(如“(III)”行上的“伽马”)包含这些系列的缩放和移位版本(包括负比例)。

[我的图表没有拆分测试版(类型I) 区域分为“U”形/“J”形/山形子区域,但有些图表会这样做]

以下是添加一些不是 Pearson 系列的分布的示例:

  • 案例1(位置/尺度变换前的单一分布):逻辑分布

    Wikipedia 将偏度设为 0,将 Excess kurtosis 设为 1.2,因此β1=0 和β2=4.2. 所以我们想在 (4.2,0) 处绘制一个点(标有“L”)

  • 案例 2(位置尺度之前的 1 个参数族):对数正态分布

    维基百科给出偏度为(eσ2+2)eσ21
    和过度峰度为e4σ2+2e3σ2+3e2σ26

    写作a为了eσ2, 这意味着
    β1=(a+2)2(a1)
    β2=a4+2a3+3a23

    这两者之间的直接关系并不是很明显,所以让我们使用a参数化它。作为a1,请注意,这接近正常。a=1.724我们到达图表的右边缘,所以我们应该有a在这些值之间变化。如果我们选择了足够多的值(10 可能就足够了,因为它不是强烈弯曲的)我们会得到一条看起来很平滑的曲线。

    ![在此处输入图像描述

    逻辑点位于法线点右侧的底部。
    对数正态曲线用黑色虚线表示,在类型VI区域(但它不是 VI 型)。


descdist在 R 中,可以使用包中的函数最容易地生成这样的图fitdistrplus

在此处输入图像描述

这里的蓝点是一个特定的样本(碰巧来自ExGaussian)。请注意,此显示的轴从我之前的图表中翻转过来。(向它添加额外的分发点和行更难,但如果你看看代码做了什么descdist,特别是它如何使用kurtmax变量,它仍然是可能的。)


由于人们肯定会要求它,这里是第一个情节的 R 代码:

plot(c(0,25),c(0,14),type="n", frame=FALSE,
    ylab=expression(beta[1]),
    xlab=expression(beta[2]) )

#region 0
polygon(c(0,0,1,15),c(14,0,0,14),col=rgb(.8,0.8,.85,.5),border=FALSE)
lines(c(1,15),c(0,14),lwd=2,col="grey")

# region I
polygon(c(15,1,3,3+21),c(14,0,0,14),col=rgb(.99,0.5,.8,.5),border=FALSE)
lines(c(3,3+21),c(0,14),lwd=2,col=rgb(.99,0.5,.8,1))

# region VI
 a=rev(exp(seq(log(5.759),log(1000),.2)))
polygon(c(25,3+21,3,3*(a+5)*(a-2)/(a-3)/(a-4)),
        c(14,14,0,16*(a-2)/(a-3)^2),
         col=rgb(.95,0.8,.3,.4),border=FALSE)
lines(c(3,3*(a+5)*(a-2)/(a-3)/(a-4)),
      c(0,16*(a-2)/(a-3)^2),lwd=2,col=rgb(0.95,.8,.3,.9))

# region IV
a=rev(a)
polygon(c(3*(a+5)*(a-2)/(a-3)/(a-4),3,25),
        c(16*(a-2)/(a-3)^2,0,0),
         col=rgb(.5,0.95,.6,.4),border=FALSE)

points(1.8,0,pch="U")
points(3,0,pch="N")
points(9,4,pch="E")
text(0.5,13,labels="U - uniform",pos=4)
text(0.5,12,labels="N - normal",pos=4)
text(0.5,11,labels="E - exponential",pos=4)

text(1,8,labels="impossible",pos=4)
text(9,7,labels="beta",pos=4)
text(16,7.75,labels="beta prime, F",pos=4)

text(9.2,6.25,labels="(I)",pos=4,family="serif")
text(1.8,0,labels="(II)",pos=4,cex=0.8,family="serif")
text(16.2,7,labels="(VI)",pos=4,family="serif")
text(15,2,labels="(IV)",pos=4,family="serif")
text(13,7.1,labels="(III)",pos=4,cex=0.8,family="serif")
text(17,5.7,labels="(V)",pos=4,cex=0.8,family="serif")
text(12.5,0,labels="(VII)",pos=4,cex=0.8,family="serif")

text(12.2,0,labels="t",pos=4)
text(11.25,5.8,labels="gamma",srt=25,pos=4)
text(15.3,5,labels="inverse",srt=14,pos=2)
text(14.9,5.15,labels="gamma",srt=11,pos=4)

(有必要将绘图区域大致拉伸为我在上面制作的形状,否则倾斜的文本将不在正确的位置。)

放置逻辑点和对数正态曲线的代码是:

 points(4.2,0,pch="L")

 a=c((10:17)/10,1.724)
 lines(a^4 + 2*a^3 + 3*a^2 - 3,(a+2)^2*(a-1),lty=2)