谁能解释分位数最大概率估计(QMPE)?

机器算法验证 分布 分位数 配件
2022-04-18 20:56:27

Heathcote, Brown & Mewhort (2002, PDF ) 提出分位数最大概率估计(最初称为分位数最大似然估计,但后来更正)作为拟合分布数据的方法,并发现它至少优于更传统的连续最大似然估计方法在将数据拟合到前高斯分布的情况下(尽管另见本文,这表明这种好处也适用于其他分布)。

我试图了解实现 QMPE 的实际步骤。我知道首先指定增加和等距的分位数概率,然后使用这些来获得q与这些概率相对应的观察数据中的分位数值( )。我也明白,这些观察到的分位数值随后用于计算每个分位数 ( N) 之间的观察次数。但这就是我卡住的地方。假设一个人搜索任何一个假设生成数据的先验模型的参数空间,搜索一个参数集,该参数集使 和 的联合概率q最大化N但是,我不知道如何在给定一组候选参数的情况下计算这个联合概率。

没有强大的数学背景,我认为代码要好得多,所以如果有人能帮助我弄清楚接下来会发生什么,我将不胜感激。这是尝试将一些数据拟合到前高斯的尝试的开始:

    #generate some data to fit
    true_mu = 300
    true_sigma = 50
    true_tau = 100
    my_data = rnorm(100, true_mu, 
       true_sigma) + rexp(100, 1/true_tau)
    
    #select some quantile probabilities; 
#estimate quantiles and inter-quantile 
#counts 
#from the observed data
    quantile_probs = seq(.1, .9, .1) 
#or does it have to be seq(0,1,.1) ?
    q = quantile( my_data, probs = 
 quantile_probs, type = 5 ) #Heathcote et al 
#apparently use type=5 given their example
    N = rep( NA , length(q)-1 )
    for( i in 1:( length(q)-1 ) ){
        N = length( my_data[ (my_data>q[i]) 
& (my_data<=q[i+1]) ] )
    }
    
    #specify some candidate parameter values 
#to assess (normally done as part of an 
#iterative search  using an optimizer like 
#optim)
    candidate_mu = 350
    candidate_sigma = 25
    candidate_tau = 30
    #given these candidates, what next?
2个回答

我迟到了,但似乎这个问题仍然需要答案,而且令我惊讶的是,我没有看到关于这个话题的任何其他问题。所以我会继续提供这个。

总而言之,QMPE 方法是根据观测数据的分位数而不是观测数据本身来制定似然函数。然后通过区分参数的对数似然并应用标准优化方法来寻找最大化似然的参数。

似乎作者提议忽略数据的确切值,只使用分位数。我不确定我是否同意这一点,但无论如何,如果一个人手头只有分位数,那么他们所说的似然函数是正确的,有时就是这种情况。

似然函数可以通过将分位数之间的数据失败视为间隔删失来导出;你知道每个区间有多少数据,但你不知道它们在哪里。(这不是 Heathcote 等人的动机,但这对我来说最有意义。)对于每个分位数间隔,都有一个术语

(P(datum in interval | parameters))^(number of data in interval)

现在每个区间内的数据个数就是n[i] = N (p[i] - p[i - 1])其中N的数据总数,p[i]是对应于第i个分位数的比例q[i],即# { data <= q[i] } / N = p[i],并且P(datum in interval | parameters)是假设分布cdf(q[i] | parameters) - cdf(q[i - 1] | parameters)cdf累积分布函数。那么对数似然是

N (p[i] - p[i - 1]) log(cdf(q[i] | parameters) - cdf(q[i - 1] | parameters))

在由 索引的分位数间隔上i这对于任何特定的发行版都是一样的;只需插入适当的cdf.

为了找到最大化可能性的参数,给定一个分位数列表,可以使用任何最大化函数的方法。如果cdf是可微的,那么使用参数的梯度可能是最方便的。我不知道是否可以对cdfwrt 参数的导数进行总体评价,尽管如果假设某些族,例如位置尺度分布,则可以得出一些一般性结果。

该因子N在参数中是恒定的,因此可以方便地省略它。在使用优化软件时,搜索最小值而不是最大值通常更方便,因此人们可以查看负对数似然而不是对数似然,并将其最小化而不是最大化。

关于最大化 wrt 参数,Heathcote 等人。使用特定的线搜索方法,但这不是必需的;给定 NLL 及其梯度,许多优化算法都适用。

为了获得参数搜索的起点,我认为计算普通的完整数据最大似然估计会很方便,假设n[i]第 i 个分位数间区间中的所有数据都落在区间的中间;如果计算 ML 估计的函数允许加权数据,则可以方便地计算这样的估计,因为这样数据是间隔中点,其权重等于每个间隔中的质量。希思科特等人。通过匹配矩估计参数来找到一个起点。

关于这个主题的阅读很有趣。希望这可以帮助其他人了解发生了什么。

只是一个小建议:您是否查看过纽卡斯尔认知实验室在 QMPE 上的页面它有源代码、入门指南和一些其他资源。