目录

  • 0引言
  • 1、偏态分布的定义
  • 1.1正态分布
  • 1.2偏态分布
  • 2、偏态分布的数字特征
  • 2.1均值
  • 2.2方差
  • 3、不同偏态的偏态分布——R语言
  • 3.1 代码
  • 3.2不同lambda的偏态分布图
  • 参考文献


0引言

偏态分布是A. Azzalini1在1985年提出的,本文主要介绍正态分布到偏正态分布的定义,主要展示偏正态分布常见数字特征均值方差的推导,以及使用R语言对不同偏态的概率密度函数进行展示。

1、偏态分布的定义

1.1正态分布

正态分布2,又名高斯分布,最早由棣莫弗在二项分布的渐近公式中得到。C.F.高斯在研究测量误差时从另一个角度导出了它。P.S.拉普拉斯和高斯研究了它的性质。是一个在数学、物理及工程等领域都非常重要的概率分布,在统计学的许多方面有着重大的影响力。
随机变量R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值服从R语言计算正态分布值 r语言 正态分布_R语言_02正态分布,我们分别记R语言计算正态分布值 r语言 正态分布_可视化_03R语言计算正态分布值 r语言 正态分布_数字特征_04为标准正态分布的概率密度函数与累计分布函数。
定义为:
R语言计算正态分布值 r语言 正态分布_偏态分布_05
R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_06
随机变量R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值的概率密度函数和累计分布分别为为:
R语言计算正态分布值 r语言 正态分布_数字特征_08
R语言计算正态分布值 r语言 正态分布_数字特征_09

1.2偏态分布

A. Azzalini1在1985年首次提出标准偏态分布R语言计算正态分布值 r语言 正态分布_数字特征_10,引入了偏度参数R语言计算正态分布值 r语言 正态分布_可视化_11,其概率密度函数是:
R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_12
R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_13服从R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_14的偏态分布,类似的概率密度函数有如下定义:
R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_15
可以看出当R语言计算正态分布值 r语言 正态分布_可视化_11为0时,该分布退化为正态分布。下面我们来随机变量R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_13的均值和方差。

2、偏态分布的数字特征

2.1均值

在1.2节我们定义了一般的偏正态分布,这节我们推导偏正态分布的均值。
R语言计算正态分布值 r语言 正态分布_可视化_18
令:R语言计算正态分布值 r语言 正态分布_偏态分布_19
有:R语言计算正态分布值 r语言 正态分布_偏态分布_20

2.2方差

按着正常步骤求方差先求二阶距离:
R语言计算正态分布值 r语言 正态分布_数字特征_21

方差为:
R语言计算正态分布值 r语言 正态分布_数字特征_22

令:R语言计算正态分布值 r语言 正态分布_R语言_23
有:R语言计算正态分布值 r语言 正态分布_偏态分布_24
注:

  • 在推导中会把R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_25记为R语言计算正态分布值 r语言 正态分布_可视化_26
  • 在推导中用到R语言计算正态分布值 r语言 正态分布_数字特征_27

R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_28

3、不同偏态的偏态分布——R语言

本文代码主要用了闭包以及ggplot2包。下面贴出代码和图片就不具体注释代码思路了。

3.1 代码

library(ggplot2)
nnorm <- function(mu = 0, sigma = 1, lambda = 0){
  function(x){
    x <- (x - mu)/sigma
    f <- 1/(sqrt(2*pi))*exp(-x^2/2)*pnorm(x*lambda)
    return(f)
  }
}
plot(nnorm(), -5, 5,ylim = c(0,0.37))
plot(nnorm(lambda = -5), -5, 5, add = T)
plot(nnorm(lambda = -3), -5, 5, add = T)
plot(nnorm(lambda = -1), -5, 5, add = T)
plot(nnorm(lambda = 5), -5, 5, add = T)
plot(nnorm(lambda = 1), -5, 5, add = T)
plot(nnorm(lambda = 3), -5, 5, add = T)

x <- seq(-5,5, 0.01)
n = length(x)
Lambda <- c(-3:3)
Data <- data.frame(
  x = rep(x, 7),
  y = c(nnorm(lambda = -3)(x),nnorm(lambda = -2)(x),nnorm(lambda = -1)(x),nnorm(lambda = -0)(x),
  nnorm(lambda = 1)(x), nnorm(lambda = 2)(x), nnorm(lambda = 3)(x)),
  z = rep(Lambda, each = n),
  z1 = as.factor(rep(Lambda, each = n))
)
qplot(data = Data, x = x, y = y, col = z, geom = "line")
qplot(data = Data, x = x, y = y, col = z1, geom = "line")

3.2不同lambda的偏态分布图

R语言计算正态分布值 r语言 正态分布_R语言计算正态分布值_29


R语言计算正态分布值 r语言 正态分布_可视化_30

参考文献


  1. A. Azzalini A Class of Distributions Which Includes the Normal Ones 1985, https://www.jstor.org/stable/4615982 ↩︎ ↩︎
  2. https://baike.baidu.com/item/%E6%AD%A3%E6%80%81%E5%88%86%E5%B8%83 ↩︎