簡體   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