楼主: huxing111
1960 1

新手问个很弱的问题:用R如何抽样啊 [推广有奖]

  • 0关注
  • 0粉丝

已卖:77份资源

高中生

87%

还不是VIP/贵宾

-

威望
0
论坛币
806 个
通用积分
0.0600
学术水平
1 点
热心指数
0 点
信用等级
0 点
经验
437 点
帖子
40
精华
0
在线时间
19 小时
注册时间
2010-5-15
最后登录
2012-3-7

楼主
huxing111 发表于 2010-5-21 20:37:07 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
我是个R新手,请各路高手指点用R 怎么对核密度函数进行MCMC抽样啊(核密度函数形式很复杂,很难积分!)急!急!急!


不甚感谢啊!!!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:核密度函数 密度函数 mcmc 高手指点 函数形式 新手

沙发
DM小菜鸟 发表于 2015-1-20 15:54:45
x <- out$x
y <- out$y
lupost <- function(beta, x, y) {
    eta <- as.numeric(x %*% beta)
    logp <- ifelse(eta < 0, eta - log1p(exp(eta)), -log1p(exp(-eta)))
    logq <- ifelse(eta < 0, -log1p(exp(eta)), -eta - log1p(exp(-eta)))
    logl <- sum(logp[y == 1]) + sum(logq[y == 0])
    return(logl - sum(beta^2)/8)
}
   
在完成上面数据以及函数的定义(它们都是mcmc算法的输入参数)之后,我们就可以利用mcmc包中的metrop()来产生随机数据,模拟模型的后验分布。也就是说,我们将要从后验分布中进行取样。

   
set.seed(42)
beta.init <- as.numeric(coefficients(out))
out <- metrop(lupost, beta.init, 1000, x = x, y = y)
names(out)

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-23 15:15