对于贝叶斯 Dirichelt 过程混合模型,我使用了 DP 包和 DPdensity()。DPdensity() 适用于单变量和双变量,但不适用于多变量。
但是,我使用了具有 3 个变量的数据,它没有给出 x1、x2 或 fun1、fun2 和没有 dens,而是计算集群的数量。所以看起来它计算和估计集群的数量,但我看到 dens 是 NULL。所以我用三个“nu”(如 nu1、nu2、nu3)更改了先前的参数。但仍然带有空的 x1、x2、fun1、fun2,我认为这不是一个解决方案
那么我需要为函数或先验更改哪些参数?或者我如何构建 x3 或 fun3 并获取 dens 列表?可以解决吗?谢谢你!!!
data.scale<-scale(data)
summary(data.scale)
s3<-matrix(c(.25,0,0,0,0.01,0,0,0,0.01), ncol=3)
m3<-c(0,0,0)
psiinv3<- solve(matrix(c(.25,0,0,0,0.01,0,0,0,0.01),ncol=3))
prior <- list(a0=1,b0=1/5,nu1=5,nu2=5,nu3=5,s2=s3,
m2=m3,psiinv2=psiinv3,tau1=0.01,tau2=1)
# Initial state
state <- NULL
# MCMC parameters
nburn <- 5000
nsave <- 10000
nskip <- 10
ndisplay <- 1000
mcmc <- list(nburn=nburn,nsave=nsave,nskip=nskip,ndisplay=ndisplay)
# Fit the model
#fit.new : with unscaled data
fit.new2 <- DPdensity(y=as.matrix(data.scale,ncol=3),prior=prior,mcmc=mcmc,
state=state,status=TRUE,na.action=na.omit)
fit.new2$state$ncluster