暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

笔记 | gamma分布

懒麻蛇 2021-08-18
7455


gamma分布简介


大写:Γ

小写:γ

Gamma 函数在概率统计中频繁现身,众多的统计分布,包括常见的统计学三大分布(t 分布,χ2 分布,F分布)、Beta分布、 Dirichlet 分布的密度公式中都有 Gamma 函数的身影;当然发生最直接联系的概率分布是直接由 Gamma 函数变换得到的 Gamma 分布。


α 称为 shape parameter, 主要决定了分布曲线的形状;

β 称为rate parameter,主要决定曲线有多陡。

θ=1/β称为scale parameter,同样决定曲线有多陡。


固定α =4,可以看到随着θ参数的增加,x轴的scale在增加,其分布相对就越广。若放在同一个x轴上,增加θ将得到更平缓的曲线(相应地,y轴的scale减小)


固定α=4,随着β参数的增加,x轴的scale在减小其分布相对就越窄。若放在同一个x轴上,增加β将得到更陡的曲线(相应地,y轴的scale增加)



最后,固定β=1,α改变,曲线的形态发生改变





gamma相关函数


这几个R中的函数d-/p-/q-/r-,把gamma换成binom就成了binomial分布相关的计算,换成norm就成了normal分布的计算。gamma的函数,你不一定能用上,但是norm相关的几个函数肯定是会用得到的。

    # 概率密度函数值 pdf
    # 算的是某一个点上的概率密度。
    dgamma(x, shape, rate = 1, scale = 1/rate, log = FALSE)
    # 概率分布函数值 cdf 累积概率
    pgamma(q, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,
    log.p = FALSE)
    # 概率分位函数值
    qgamma(p, shape, rate = 1, scale = 1/rate, lower.tail = TRUE,
    log.p = FALSE)
    # 产生服从伽马分布的随机数
    rgamma(n, shape, rate = 1, scale = 1/rate)


    pdf和cdf



    pgamma给定一个值计算累计概率

    R: pgamma(5,10,1,lower.tail = T)

    Matlab: gamcdf(5,10,1)

    [1] 0.03182806



    R: pgamma(5,10,1,lower.tail = F)

    Matlab: gamcdf(5,10,1,'upper')

    [1] 0.9681719




    qgamma给定累计概率计算对应的值(相当于找cutoff)

    R: qgamma(0.3,10, lower.tail=T)

    Matlab: gaminv(0.3,10,1)

    [1] 8.132928


    R: qgamma(0.3,10, lower.tail=F)

    Matlab: gaminv(0.7,10,1)

    [1] 11.38727


    gamma和inverse gamma

      set.seed(1)
      1/rgamma(n=1, shape=10,scale=1/2)
      [1] 0.2608497


      set.seed(1)
      rinvgamma(n=1, shape=10,scale=2)
      [1] 0.2608497

      invser gamma分布就是gamma分布的倒数(reciprocal)。更准确的说如果x服从gamma(a,b),则y=1/x服从inverse-gamma(a,1/b)。其实知道它们的关系是很重要的,因为有的时候用的不是方差,而是precision(方差的倒数)作为分布的参数。


      什么是reciprocal




      gamma分布的应用


      gamma/inverse-gamma分布在Bayesian Inference中使用比较广泛。无论是empirical Bayes还是基于MCMC采样的后验分布计算,它主要作为非负实数的先验分布(比如方差)出现在empricial Bayesian的计算中,gamma分布是正态似然函数的共轭先验,因此有关的后验分布可以不做MCMC,直接根据公式计算。

      例如在方差未知的条件下,我们假设方差来自gamma分布。

      下面的例子是方差和均值都未知的情况,假设总体的均值来自于Norm(μ0, σ0^2),总体的方差来自于gamma(α, β)。



      后验分布为:


      当然很多情况下是无法产生像上面一样的解,因此需要做MCMC采样,gamma/inverse-gamma分布也经常作为未知参数(比如,方差)的先验分布


      (附赠一份先验选择速查表)




      btw, SPM默认的HRF就是用两个gamma函数生成的

      spm_hrf.mspm_Gpdf.m





      END






      Recap:

      • gamma分布的参数及作用

      • dgamma/qgamma/pgamma/rgamma函数的用法

      • gamma分布的应用




      文章转载自懒麻蛇,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论