มีจำนวนของที่มีอยู่ประมาณที่แข็งแกร่งของขนาด เป็นตัวอย่างที่น่าสังเกตคือการเบี่ยงเบนสัมบูรณ์เฉลี่ยที่เกี่ยวข้องกับค่าเบี่ยงเบนมาตรฐานเป็น 1.4826 ในกรอบการทำงานแบบเบย์มีหลายวิธีที่จะประเมินตำแหน่งของการกระจายตัวแบบปกติอย่างคร่าวๆ (เช่นการปนเปื้อนที่ผิดปกติโดยค่าผิดปกติ) ตัวอย่างเช่นใคร ๆ สามารถสันนิษฐานได้ว่าข้อมูลนั้นถูกแจกจ่าย ณ การแจกแจงหรือการแจก Laplace ตอนนี้คำถามของฉัน:
แบบจำลองแบบเบย์สำหรับการวัดขนาดของการแจกแจงแบบปกติอย่างคร่าวๆในลักษณะที่แข็งแกร่งจะแข็งแกร่งในแง่เดียวกับ MAD หรือตัวประมาณที่คล้ายกัน
เช่นเดียวกับกรณีของ MAD มันจะเป็นระเบียบถ้าโมเดล Bayesian สามารถเข้าใกล้ SD ของการแจกแจงแบบปกติในกรณีที่การกระจายของข้อมูลกระจายตามปกติ
แก้ไข 1:
ตัวอย่างทั่วไปของแบบจำลองที่มีความทนทานต่อการปนเปื้อน / ค่าผิดปกติเมื่อสมมติว่าข้อมูลเป็นเรื่องปกติประมาณใช้ในการแจกแจงเช่น:
โดยที่คือค่าเฉลี่ยคือขนาดและคือระดับความอิสระ สำหรับนักบวชที่เหมาะสมบนและ , จะเป็นการประมาณค่าเฉลี่ยของที่จะทนทานต่อค่าผิดปกติ อย่างไรก็ตามจะไม่เป็นประมาณการที่สอดคล้องกันของ SD ของเป็นขึ้นอยู่กับνตัวอย่างเช่นถ้าจะได้รับการแก้ไขเป็น 4.0 และโมเดลด้านบนจะถูกติดตั้งกับตัวอย่างจำนวนมากจากการแจกแจงจากนั้น sจะอยู่ที่ประมาณ 0.82 สิ่งที่ฉันกำลังมองหาคือโมเดลที่แข็งแกร่งเช่นโมเดล t แต่สำหรับ SD แทนที่จะเป็น (หรือเพิ่มเติมจาก) ค่าเฉลี่ย
แก้ไข 2:
ต่อไปนี้เป็นตัวอย่างโค้ดใน R และ JAGS ว่าโมเดล t ที่กล่าวถึงข้างต้นมีความแข็งแกร่งมากขึ้นเมื่อเทียบกับค่าเฉลี่ย
# generating some contaminated data
y <- c( rnorm(100, mean=10, sd=10),
rnorm(10, mean=100, sd= 100))
#### A "standard" normal model ####
model_string <- "model{
for(i in 1:length(y)) {
y[i] ~ dnorm(mu, inv_sigma2)
}
mu ~ dnorm(0, 0.00001)
inv_sigma2 ~ dgamma(0.0001, 0.0001)
sigma <- 1 / sqrt(inv_sigma2)
}"
model <- jags.model(textConnection(model_string), list(y = y))
mcmc_samples <- coda.samples(model, "mu", n.iter=10000)
summary(mcmc_samples)
### The quantiles of the posterior of mu
## 2.5% 25% 50% 75% 97.5%
## 9.8 14.3 16.8 19.2 24.1
#### A (more) robust t-model ####
library(rjags)
model_string <- "model{
for(i in 1:length(y)) {
y[i] ~ dt(mu, inv_s2, nu)
}
mu ~ dnorm(0, 0.00001)
inv_s2 ~ dgamma(0.0001,0.0001)
s <- 1 / sqrt(inv_s2)
nu ~ dexp(1/30)
}"
model <- jags.model(textConnection(model_string), list(y = y))
mcmc_samples <- coda.samples(model, "mu", n.iter=1000)
summary(mcmc_samples)
### The quantiles of the posterior of mu
## 2.5% 25% 50% 75% 97.5%
##8.03 9.35 9.99 10.71 12.14