RのMetropolisアルゴリズムを使用して2変量密度からシミュレーションを試みましたが、うまくいきませんでした。密度はとして表すことができます 。ここで、はSingh-Maddala分布です。p (y | x )p (x )p (x )
パラメータ、、、およびは対数正規であり、対数平均は分数であり、log-sdは定数です。私のサンプルが私が欲しいものかどうかをテストするために、の限界密度を見ました。これはであるはずです。RパッケージのMCMCpack、mcmc、dreamとは異なるMetropolisアルゴリズムを試しました。バーンイン、シンニング、サイズ100万までのサンプルを廃棄しましたが、結果として得られる限界密度は、提供したものではありませんでした。qp (y | x )x x p (x )
これが私が使用した私のコードの最終版です:
logvrls <- function(x,el,sdlog,a,scl,q.arg) {
if(x[2]>0) {
dlnorm(x[1],meanlog=el*log(x[2]),sdlog=sdlog,log=TRUE)+
dsinmad(x[2],a=a,scale=scl,q.arg=q.arg,log=TRUE)
}
else -Inf
}
a <- 1.35
q <- 3.3
scale <- 10/gamma(1 + 1/a)/gamma(q - 1/a)* gamma(q)
Initvrls <- function(pars,nseq,meanlog,sdlog,a,scale,q) {
cbind(rlnorm(nseq,meanlog,sdlog),rsinmad(nseq,a,scale,q))
}
library(dream)
aa <- dream(logvrls,
func.type="logposterior.density",
pars=list(c(0,Inf),c(0,Inf)),
FUN.pars=list(el=0.2,sdlog=0.2,a=a,scl=scale,q.arg=q),
INIT=Initvrls,
INIT.pars=list(meanlog=1,sdlog=0.1,a=a,scale=scale,q=q),
control=list(nseq=3,thin.t=10)
)
それは収束までサンプリングするので、私は夢のパッケージに落ち着きました。3つの方法で正しい結果が得られるかどうかをテストしました。KS統計を使用し、変位値を比較し、結果のサンプルから最尤でSingh-Maddala分布のパラメーターを推定します。
ks.test(as.numeric(aa$Seq[[2]][,2]),psinmad,a=a,scale=scale,q.arg=q)
lsinmad <- function(x,sample)
sum(dsinmad(sample,a=x[1],scale=x[2],q.arg=x[3],log=TRUE))
optim(c(2,20,2),lsinmad,method="BFGS",sample=aa$Seq[[1]][,2])
qq <- eq(0.025,.975,by=0.025)
tst <- cbind(qq,
sapply(aa$Seq,function(l)round(quantile(l[,2],qq),3)),
round(qsinmad(qq,a,scale,q),3))
colnames(tst) <- c("Quantile","S1","S2","S3","True")
library(ggplot2)
qplot(x=Quantile,y=value,
data=melt(data.frame(tst),id=1),
colour=variable,group=variable,geom="line")
これらの比較の結果を見ると、KS統計は、ほとんどの場合、サンプルは指定されたパラメーターを使用したSingh-Maddala分布からのものであるという帰無仮説を棄却します。最尤推定パラメーターは、その真の値に近づく場合がありますが、通常、サンプリングプロシージャが成功したことを受け入れるには快適ゾーンから離れすぎています。分位点についても同じですが、経験的分位点は遠すぎませんが、遠すぎます。
私の質問は私が間違っていることですか?私自身の仮説:
- MCMCはこのタイプのサンプリングには適していません
- 理論上の理由により、MCMCは収束できません(分布関数は、必要なプロパティを満たしていません)。
- Metropolisアルゴリズムを正しく使用していません
- 独立したサンプルがないので、私の配布テストは正しくありません。
dsinmad
3つのパラメータを取るまたは私は何かが欠けています。