Существует ряд надежных оценок масштаба . Ярким примером является медианой абсолютное отклонение , которое относится к стандартному отклонению , как . В байесовской структуре существует ряд способов надежной оценки местоположения примерно нормального распределения (скажем, нормального, загрязненного выбросами), например, можно предположить, что данные распределены как при распределении, так и при распределении Лапласа. Теперь мой вопрос:
Какова будет байесовская модель для измерения масштаба приблизительно нормального распределения надежным способом, устойчивым в том же смысле, что и MAD или аналогичные надежные оценки?
Как и в случае с MAD, было бы неплохо, если бы байесовская модель могла приблизиться к SD нормального распределения в случае, когда распределение данных фактически распределено нормально.
редактировать 1:
Типичный пример модели , которая устойчива к загрязнению / выбросам при предположении данных являюсь примерно нормально используем при распределении , как:
Где - среднее значение, - масштаб, а - степень свободы. С помощью соответствующих априорий на и , , будет оценкой среднего , что будет устойчивыми к выбросам. Тем не менее, не будет состоятельной оценкой СД , как зависит от , . Например, если будет зафиксировано на 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