繁体   English   中英

在 R 中绘制后验分布

[英]Plotting posterior distribution in R

我想用共轭先验计算后验密度图

我有已知参数的数据(平均值 =30,标准差 =10)

我有两个先验,一个是正态分布,参数已知(均值 =10,sd=5),另一个是 t 分布,均值和标准差相同,但自由度为 4

我想要一张包含先验、数据和后验密度图的图表?

你能帮我解决这个问题的r代码吗?

另外,我认为后验密度函数是错误的。到目前为止,这是我的代码

x=seq(from=-90, to=90, by= 1)
data=dnorm(x,mean=30,sd =10)
prior = dnorm(x,mean=10,sd =5)
posterior = dnorm(x,mean=10,sd =5)*dnorm(x,mean=30,sd =10) # prior* data  #Prior*data

plot(x,data , type="l", col="blue")
lines(x,prior, type="l", col="red")
lines(x,posterior , type="l", col="green")

您需要将两个分布加在一起而不是相乘。 我在下面附上一个示例,该示例在两个分布之间使用相同的权重:

x <- seq(from = -90, to = 90, by = 1)
data <- dnorm(x, mean = 30, sd = 10)
prior <- dnorm(x, mean = 10, sd = 5)
posterior <- 0.5 * dnorm(x, mean = 10, sd = 5) + 0.5 * dnorm(x, mean = 30, sd = 10)

plot(x, prior, type = "l", col = "red")
lines(x, posterior, type = "l", col = "green")
lines(x, data , type = "l", col = "blue")

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM