【问题标题】:How would i find the posterior distribution in this r function?我如何在这个 r 函数中找到后验分布?
【发布时间】:2020-11-16 23:57:46
【问题描述】:

我试图弄清楚如何从无信息的先验分布中找到后验分布。

我的代码是 -

like<-function(x) {dbinom(4. ,10, x)}
integrate(like,0,1)
pi<-seq(0,1, by=0.001)
like<-dbinom(4,10,pi)
post<-function(x) {dbinom(4,10,x)/0.2}
integrate(post,.6,.8)
plot(pi,post,type = "l", col = "red", ylab = "Posterior f(pi)")

我不断收到错误消息 -

xy.coords(x, y, xlabel, ylabel, log) 中的错误:“x”和“y”长度不同

我该如何解决这个问题?

【问题讨论】:

    标签: r r-markdown


    【解决方案1】:

    也许你正在寻找这个:

    #Index
    like<-function(x) {dbinom(4. ,10, x)}
    integrate(like,0,1)
    pi<-seq(0,1, by=0.001)
    like<-dbinom(4,10,pi)
    post<-function(x) {dbinom(4,10,x)/0.2}
    integrate(post,.6,.8)
    plot(post(pi),type = "l", col = "red", ylab = "Posterior f(pi)")
    

    【讨论】:

    • 终于搞定了。谢谢你。你能给我解释一下区别吗? “pi, post”与“post(pi)”有何不同
    • @tako 嗨,亲爱的。不同之处在于函数用于查找相同大小的向量。当您添加两个向量时,函数预期为 x 和 y 并产生错误。相反,您可以直接将向量插入函数中,问题将得到缓解。希望这对你来说已经足够清楚了!
    猜你喜欢
    • 1970-01-01
    • 2020-08-07
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 2017-07-03
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多