Istnieje wiele niezawodnych estymatorów skali . Godnym uwagi przykładem jest mediana bezwzględnego odchylenia, które odnosi się do odchylenia standardowego jako . W ramach bayesowskich istnieje wiele sposobów dokładnego oszacowania lokalizacji mniej więcej normalnej dystrybucji (powiedzmy normalnej zanieczyszczonej wartościami odstającymi), na przykład można założyć, że dane są dystrybuowane tak jak w dystrybucji lub dystrybucji Laplace'a. Teraz moje pytanie:
Czym byłby model bayesowski do pomiaru skali mniej więcej normalnego rozkładu w solidny sposób, solidny w tym samym sensie, co MAD lub podobne niezawodne estymatory?
Podobnie jak w przypadku MAD, byłoby fajnie, gdyby model bayesowski mógł zbliżyć się do SD rozkładu normalnego w przypadku, gdy rozkład danych jest faktycznie rozkładem normalnym.
edycja 1:
Typowym przykładem modelu, który jest odporny na zanieczyszczenia / skrajnych przy założeniu danych jest w przybliżeniu normalnie stosuje się rozkład, takich jak:
Gdzie jest średnią, jest skalą, a jest stopniem swobody. Z odpowiednich priors na i , będą szacunkową średnią który będzie odporny na błędne. Jednak nie będzie spójne oszacowanie SD jak zależy . Na przykład, jeśli będzie ustalona na 4,0 i wzór powyżej, być przymocowane do ogromnej ilości próbek z rozkład to s będzie wynosić około 0,82. To, czego szukam, to model, który jest solidny, podobnie jak model t, ale dla SD zamiast (lub dodatkowo) średniej.
edycja 2:
Poniżej znajduje się zakodowany przykład w R i JAGS, w którym wspomniany powyżej model t jest bardziej niezawodny w odniesieniu do średniej.
# 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