当我查看上面的帮助文件时,它给出了这个示例程序的R:
##
## rbprobitGibbs example
##
if(nchar(Sys.getenv("LONG_TEST")) != 0) {R=2000} else {R=10}
set.seed(66)
simbprobit=
function(X,beta) {
## function to simulate from binary probit including x variable
y=ifelse((X%*%beta+rnorm(nrow(X)))<0,0,1)
list(X=X,y=y,beta=beta)
}
nobs=200
X=cbind(rep(1,nobs),runif(nobs),runif(nobs))
beta=c(0,1,-1)
nvar=ncol(X)
simout=simbprobit(X,beta)
Data1=list(X=simout$X,y=simout$y)
Mcmc1=list(R=R,keep=1)
out=rbprobitGibbs(Data=Data1,Mcmc=Mcmc1)
summary(out$betadraw,tvalues=beta)
if(0){
## plotting example
plot(out$betadraw,tvalues=beta)
}所以,我的问题是,simbprobit的代码是否简单地为rbprobitGibbs函数准备了一些模拟值?也就是说,如果我正在计算rbprobitGibbs的结果,我是否可以有效地忽略简单的Prior,而简单地准备Data,Prior,Mcmc输入值?
发布于 2016-08-09 05:49:53
是的,经过一些研究后,我发现它是通过simbprobit模拟的随机输入,因为函数调用rnorm,这意味着它是一个随机变量。在帮助文件中:
dnorm提供密度,pnorm提供分布函数,qnorm提供分位数函数,rnorm生成随机偏差。
https://stackoverflow.com/questions/38751764
复制相似问题