方差-伽玛分布:参数估计

机器算法验证 r 分布 估计 最大似然
2022-03-26 10:40:50

我对Variance-gamma distribution有一个非常普遍的问题。我对如何在给定一组训练点的情况下估计它的参数感兴趣?

我试图在互联网上找到答案,但令人惊讶的是只找到了几个相关链接:

  1. VarianceGamma R 包它是手册
  2. R包手册中引用的论文。

我不是 R 专家,但我在 R 包中看到的是(据我了解)最大似然估计。他们使用不同的方法执行一些迭代优化,从 Skew Laplace 开始初始化估计器。

在论文中,他们首先通过矩估计均值、方差、偏度、峰度。然后他们假设不对称参数θ很小,并且设置θ2=θ3=0. 毕竟,他们求解组​​合方程以获得所有参数估计量。我就是这么理解的。

所以我的问题是:

  1. 他们究竟如何在 R 包中执行优化?也许你知道它被描述的地方?
  2. 这两种方法有什么区别?哪一个在现实生活中更好用(嗯,最大似然更好,但实现起来要困难得多,性能也不好)?是关于小的假设θ第一种方法严格吗?
  3. 我在哪里可以阅读有关方差-伽玛参数估计的更多信息?

我会非常感谢每一个相关的回复、论文和链接。谢谢!

1个回答

1.在第 16 页中,他们提到包装使用“BFGS”“Nelder-Mead”第二个是默认选项。请查看这些链接以了解它们的区别。实际上是对似然函数进行优化。也就是说,输出中的拟合参数vgFit实际上是最大似然估计量。

2.很难说总体上哪种优化方法更好。您可以改为比较不同的方法,并使用 commandoptim和 command查看结果是否一致vgFit接下来,我提供了一个最大化似然函数的代码,您可以在 6 种不同的优化方法中进行选择。

library("VarianceGamma")

# Simulate 100 observations from a variance-gamma distribution with parameters (0,1,0,1)
data = rvg(100, vgC = 0, sigma = 1, theta = 0, nu = 1)

# -log-likelihood function using the Variance-Gamma package
ll = function(par){
if(par[2]>0&par[4]>0) return( - sum(log(dvg(data, vgC = par[1], sigma=par[2],   
   theta=par[3], nu = par[4]) )))
else return(Inf)}

# Direct maximisation/minimisation using the command optim
optim(c(0,1,0,1),ll,method = c("Nelder-Mead", "BFGS", "CG", "L-BFGS-B", "SANN", "Brent"))

# Maximisation using the command vgFit
vgFit(data)

的优点vgFit是您不需要指定搜索最佳值的起始值。它实现了三种不同的方法:“US”、“SL”和“MoM”。“SL”是默认方法。我不会盲目相信这些方法,我宁愿比较 和 的vgFit结果optim

3.您可以查看手册中的参考资料。例如

塞内塔,E.(2004 年)。将方差伽马模型拟合到财务数据J.应用。概率,41A:177-187。

Kotz, S, Kozubowski, TJ 和 Podgórski, K. (2001)。拉普拉斯分布和概括Birkhauser,波士顿,349 页。

DB Madan 和 E. Seneta (1990):股票市场回报的方差伽马 (VG) 模型,商业杂志,63,第 511-524 页。