我想计算一个具有共轭先验的后验密度图
我有已知参数的数据(mean =30,sd =10)
我有两个先验,一个是正态分布,参数已知(均值=10,sd=5),另一个是t分布,均值和标准差相同,但自由度为4
我想要一个带有先验,数据和后验密度图的图表。
你能帮我解决这个问题的r代码吗?
另外,到目前为止,我的opinion..Here代码中的后验概率密度函数是错误的
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")发布于 2017-07-29 17:50:17
您需要将这两个分布相加,而不是相乘。我在下面附加一个示例,它在两个分布之间使用相同的权重:
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")

https://stackoverflow.com/questions/45386676
复制相似问题