R 稳定分布对数似然和AIC值
我使用了fBasics软件包中的stableFit函数,得出了稳定分布的参数alpha、beta、gamma和delta,如下所示:R 稳定分布对数似然和AIC值,r,parameters,statistics,distribution,data-fitting,R,Parameters,Statistics,Distribution,Data Fitting,我使用了fBasics软件包中的stableFit函数,得出了稳定分布的参数alpha、beta、gamma和delta,如下所示: stableFit(x) 然后我做了以下工作,得出了对数似然值,出于某种原因,它似乎不起作用: stable.fit <- function(alpha=1.387,beta=0.279, gamma=0.006948893,delta=-0.0017933) { -sum(dstable(x,1.387
stableFit(x)
然后我做了以下工作,得出了对数似然值,出于某种原因,它似乎不起作用:
stable.fit <- function(alpha=1.387,beta=0.279,
gamma=0.006948893,delta=-0.0017933) {
-sum(dstable(x,1.387,0.279,0.006948893,-0.0017933,pm=0,log=TRUE))
}
mle.results<-mle2(stable.fit,
start=list(alpha=1.387,beta=0.279,
gamma=0.006948893,delta=-0.0017933),
data=list(x)) #max likelihood using bbmle package
mle.results #produces the log-likelihood values
当我运行mle.results时,似乎我能够回答自己的问题。问题在于,R需要更长的时间才能完成mle2计算以及数据表函数的积分。对于其他分布,对数似然结果花费的时间不到10秒,但由于某些原因,它花费了45分钟以上!!对于稳定分布。我是在我决定让它运行,而我在做其他事情的时候才发现这一点的,45-50分钟后,它就完成了。然而,我不明白为什么稳定分布要花很长时间来计算。不管怎样,问题解决了 我在Lambert和Lindsey的旧软件包的基础上创建了一个新的软件包,但这个软件包并没有真正起作用。但它使用特征函数的FFT,核心代码是C语言。我对它进行了润色,并围绕它编写了一些包装。所以密度和概率是基于这个,然后在我的软件包中,随机抽取和分位数来自StableList软件包,因为它们工作得足够快 因此,与fBasics::stableFit相比,它提供了更快的替代方案,精度损失最小,速度大约是fBasics::stableFit的140倍。它是可用的。我很快就会完成它 同时:数据集: 这些是我的系数与fBasics系数的差异。你可以看到,只有beta估计值与fBasics有很大差异::stableFit ones beta介于-1和1之间,但它实际上没有太大的影响。我也会努力挖掘一些文献 以下是具有16个最大beta差异的系列的密度。蓝色是我使用的密度,红色是fBasics用于MLE优化的StableList::dTable密度。圆圈基于fBasics优化的系数,交叉点是我的 我还将测试脚本包括在了。 最后但并非最不重要的是速度比较:
虽然OP没有给出一个可复制的例子,但如果你给出了并展示了基准点,这将是非常有用的。好主意,我有一些时间和估计比较。然后将用我的答案编辑它们:
require(tawny)
data("sp500.subset")
rnorm<-rnorm(200)
rt<-rt(200,4)
cauch<-rcauchy(200)
testingData<-matrix(cbind(rnorm,rt,cauch,as.matrix(sp500.subset,nrow=200)),nrow=200)