Was wäre ein robustes Bayes'sches Modell zur Abschätzung des Maßstabs einer annähernd normalen Verteilung?


32

Es gibt eine Reihe robuster Skalenschätzer . Ein bemerkenswertes Beispiel ist die mittlere absolute Abweichung, die sich auf die Standardabweichung als . In einem Bayes'schen Framework gibt es eine Reihe von Möglichkeiten, den Ort einer ungefähren Normalverteilung (z. B. einer durch Ausreißer kontaminierten Normalverteilung) zuverlässig abzuschätzen. Man könnte beispielsweise annehmen, dass die Daten wie bei der Verteilung oder Laplace-Verteilung verteilt sind. Nun meine Frage:σ=MAD1.4826

Was wäre ein Bayes'sches Modell zur robusten Messung des Maßstabs einer ungefähren Normalverteilung, robust im gleichen Sinne wie der MAD oder ähnliche robuste Schätzer?

Wie bei MAD wäre es in Ordnung, wenn sich das Bayes'sche Modell der SD einer Normalverteilung annähern könnte, wenn die Verteilung der Daten tatsächlich normalverteilt ist.

edit 1:

Ein typisches Beispiel für ein Modell, das robust gegenüber Kontamination / Ausreißern ist, wenn angenommen wird, dass die Daten in etwa normal sind, ist die Verwendung bei der Verteilung wie folgt:yi

yit(m,s,ν)

Dabei ist der Mittelwert, die Skala und der Freiheitsgrad. Mit geeigneten Prioritäten für und ist eine Schätzung des Mittelwerts von , der gegenüber Ausreißern robust ist. Allerdings nicht eine konsistente Schätzung der SD sein als abhängt . Wenn zum Beispiel auf 4.0 festgelegt und das obige Modell an eine große Anzahl von Stichproben aus einer \ mathrm {Norm} -Verteilung (\ mu = 0, \ sigma = 1) angepasst würde, dann smsνm,sνmyichsyichsννNOrm(μ=0,σ=1)swäre um 0,82. Was ich suche, ist ein Modell, das robust ist, wie das t-Modell, aber für den SD anstelle (oder zusätzlich zu) dem Mittelwert.

2 bearbeiten:

Hier folgt ein codiertes Beispiel in R und JAGS, wie das oben erwähnte t-Modell in Bezug auf den Mittelwert robuster ist.

# 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 

Vielleicht ist es nicht robust genug, aber die Chi-Quadrat-Verteilung ist das üblicherweise gewählte Konjugat vor der Umkehrung der Varianz.
Mike Dunlavey

Vielleicht möchten Sie sehen, ob die erste Antwort auf diese Frage stats.stackexchange.com/questions/6493/… für Sie ausreicht. es kann gut nicht sein, aber vielleicht ist es.
Bogenschütze

Was haben Sie für den Grad der Kontamination vor? Wird die Kontamination systematisch sein? Zufällig? Wird es von einer einzelnen Distribution oder von mehreren Distributionen generiert? Wissen wir etwas über die Geräuschverteilung (en)? Wenn zumindest einige der oben genannten Dinge bekannt sind, könnten wir eine Art Mischungsmodell verwenden. Ansonsten bin ich mir nicht sicher, was Ihre Meinung zu diesem Problem ist, und wenn Sie keine haben, scheint dies eine sehr vage Einstellung zu sein. Sie müssen etwas korrigieren, andernfalls können Sie einen Punkt zufällig auswählen und ihn als den einzigen mit Gauß erzeugten Punkt deklarieren.
Mittel zur Bedeutung

Im Allgemeinen können Sie jedoch entweder eine gegen Ausreißer resistentere T-Verteilung oder eine Mischung aus T-Verteilungen anpassen. Ich bin sicher , es gibt viele Papiere, hier ist ein von Bischof research.microsoft.com/en-us/um/people/cmbishop/downloads/... und hier ist ein R-Paket zu passen Mischungen: maths.uq.edu. au / ~ gjm / mix_soft / EMMIX_R / EMMIX-manual.pdf
Mittel-to gemeinte

1
Ihre gilt für eine normalverteilte Population, aber nicht für die meisten anderen Distributionenσ=MEIND1.4826
Henry

Antworten:


10

Die Bayes'sche Inferenz in einem T-Rauschmodell mit einem geeigneten Prior ergibt eine robuste Schätzung von Ort und Maßstab. Die genauen Bedingungen, die die Wahrscheinlichkeit und das vorherige Erfordernis erfüllen müssen, sind in der Bayes'schen Robustheitsmodellierung von Standort- und Skalenparametern von Andrade und O'Hagan (2011) angegeben. Die Schätzungen sind robust in dem Sinne, dass eine einzelne Beobachtung die Schätzungen nicht willkürlich groß machen kann, wie in Abbildung 2 des Papiers gezeigt.

Wenn die Daten normal verteilt sind, stimmt die SD der angepassten T-Verteilung (für festes ) nicht mit der SD der generierenden Verteilung überein. Dies ist jedoch leicht zu beheben. Sei σ die Standardabweichung der Erzeugungsverteilung und sei s die Standardabweichung der angepassten T-Verteilung. Wenn die Daten mit 2 skaliert sind, wissen wir aus der Form der Wahrscheinlichkeit, dass s mit 2 skaliert werden muss. Dies impliziert, dass s = σ f ( ν ) für eine feste Funktion f ist . Diese Funktion kann numerisch durch Simulation aus einer Standardnormalen berechnet werden. Hier ist der Code, um dies zu tun:νσsss=σf(ν)f

library(stats)
library(stats4)
y = rnorm(100000, mean=0,sd=1)
nu = 4
nLL = function(s) -sum(stats::dt(y/s,nu,log=TRUE)-log(s))
fit = mle(nLL, start=list(s=1), method="Brent", lower=0.5, upper=2)
# the variance of a standard T is nu/(nu-2)
print(coef(fit)*sqrt(nu/(nu-2)))

Zum Beispiel erhalte ich bei f ( ν ) = 1,18 . Der gewünschte Schätzer ist dann σ = s / f ( ν ) .ν=4f(ν)=1.18σ^=s/f(ν)


1
Schöne Antwort (+1). "in dem Sinne, dass eine einzelne Beobachtung die Schätzungen nicht beliebig groß machen kann", also ist der Aufschlüsselungspunkt 2 / n (ich habe mich darüber gewundert) n / 2.
User603

Wow, danke! Fuzzy Follow-up-Frage. Wäre es dann tatsächlich sinnvoll , die Skala so zu "korrigieren", dass sie im Normalfall mit der SD übereinstimmt? Der Anwendungsfall, an den ich denke, ist das Melden eines Ausbreitungsmaßes. Ich hätte kein Problem mit der Berichtskalierung, aber es wäre schön, etwas zu melden, das mit der SD übereinstimmt, da es das häufigste Maß für die Verbreitung ist (zumindest in der Psychologie). Sehen Sie eine Situation, in der diese Korrektur zu seltsamen und inkonsistenten Schätzungen führen würde?
Rasmus Bååth

6

Da Sie eine Frage zu einem sehr genauen Problem stellen (robuste Schätzung), werde ich Ihnen eine ebenso genaue Antwort anbieten. Zunächst werde ich jedoch versuchen, eine ungerechtfertigte Annahme zu zerstreuen. Es ist nicht wahr, dass es eine robuste Bayes'sche Ortsschätzung gibt (es gibt Bayes'sche Ortsschätzer, aber wie ich weiter unten erläutere, sind sie nicht robust und anscheinend ist auch der einfachste robuste Ortsschätzer nicht bayesisch). Meiner Meinung nach sind die Gründe für das Fehlen einer Überlappung zwischen dem "Bayes'schen" und dem "robusten" Paradigma im Ortsfall eine wichtige Erklärung dafür, warum es auch keine Schätzer für die Streuung gibt, die sowohl robust als auch bayes'sch sind.

Mit geeigneten Prioritäten für und ν ist m eine Schätzung des Mittelwerts von y i , der gegenüber Ausreißern robust ist.m,sνmyich

Nicht wirklich. Die resultierenden Schätzungen sind nur in einem sehr schwachen Sinne des Wortes robust. Wenn wir jedoch sagen, dass der Median für Ausreißer robust ist , meinen wir das Wort robust in einem viel stärkeren Sinne. Das heißt, in robusten Statistiken bezieht sich die Robustheit des Medians auf die Eigenschaft, dass, wenn Sie den Median anhand eines Datensatzes von Beobachtungen aus einem unimodalen, kontinuierlichen Modell berechnen und dann weniger als die Hälfte dieser Beobachtungen durch beliebige Werte ersetzen , der Wert des Medians, der für die kontaminierten Daten berechnet wurde, liegt in der Nähe des Werts, den Sie für den ursprünglichen (nicht kontaminierten) Datensatz berechnet hätten. Dann ist es leicht zu zeigen, dass die Schätzstrategie, die Sie in dem oben zitierten Absatz vorschlagen, definitiv nicht ist robust im Sinne dessen, wie das Wort für den Median typischerweise verstanden wird.

Die Bayes'sche Analyse ist mir völlig unbekannt. Ich habe mich jedoch gefragt, was an der folgenden Strategie falsch ist, da sie einfach und effektiv zu sein scheint und in den anderen Antworten noch nicht berücksichtigt wurde. Der Stand der Technik ist, dass der Großteil der Daten aus einer symmetrischen Verteilung und dass die Kontaminationsrate weniger als die Hälfte beträgt. Dann wäre eine einfache Strategie:F

  1. Berechnen Sie den Median / Mad Ihres Datensatzes. Dann berechnen Sie:
    zi=|ximed(x)|mad(x)
  2. schließen Sie die Beobachtungen aus, für die (dies ist das α- Quantil der Verteilung von z, wenn x F ). Diese Menge ist für viele F verfügbar und kann für die anderen gebootet werden.zi>qα(z|xF)αzxFF
  3. Führen Sie eine (übliche, nicht robuste) Bayes'sche Analyse der nicht zurückgewiesenen Beobachtungen durch.

BEARBEITEN:

Dank an das OP für die Bereitstellung eines in sich geschlossenen R-Codes zur Durchführung einer bonna fide bayesianischen Analyse des Problems.

Der folgende Code vergleicht den vom OP vorgeschlagenen bayesianischen Ansatz mit seiner Alternative aus der robusten statistischen Literatur (z. B. die von Gauß vorgeschlagene Anpassungsmethode für den Fall, dass die Daten bis zu Ausreißer enthalten können, und die Verteilung der ein guter Teil der Daten ist Gauß).n/22

zentraler Teil der Daten ist :N(1000,1)

n<-100
set.seed(123)
y<-rnorm(n,1000,1)

Fügen Sie eine gewisse Menge an Verunreinigungen hinzu:

y[1:30]<-y[1:30]/100-1000 
w<-rep(0,n)
w[1:30]<-1

der Index w nimmt für die Ausreißer den Wert 1 an. Ich beginne mit dem vom OP vorgeschlagenen Ansatz:

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)
print(summary(mcmc_samples)$statistics[1:2])
summary(mcmc_samples)

Ich bekomme:

     Mean        SD 
384.2283  97.0445 

und:

2. Quantiles for each variable:

 2.5%   25%   50%   75% 97.5% 
184.6 324.3 384.7 448.4 577.7 

(leise also weit weg von den Zielwerten)

Für die robuste Methode

z<-abs(y-median(y))/mad(y)
th<-max(abs(rnorm(length(y))))
print(c(mean(y[which(z<=th)]),sd(y[which(z<=th)])))

man bekommt:

 1000.149 0.8827613

(sehr nahe an den Zielwerten)

Das zweite Ergebnis kommt den realen Werten viel näher. Aber es wird schlimmer. Wenn wir diejenigen Beobachtungen als Ausreißer klassifizieren, für die der geschätzte Wert größer ist als (denken Sie daran, dass der Prior F Gaußsch ist ), dann stellt der Bayes'sche Ansatz fest, dass alle Beobachtungen Ausreißer sind (das robuste Verfahren markiert dagegen alle und) nur die Ausreißer als solche). Dies bedeutet auch, dass Sie eine gute Leistung erbringen sollten (z. B. die in Ihrer Frage angegebenen Ziele erfüllen), wenn Sie eine übliche (nicht robuste) Bayes-Analyse der Daten durchführen, die nicht als Ausreißer klassifiziert wurden.zthF
Dies ist nur ein Beispiel, aber es ist eigentlich ziemlich einfach zu zeigen, dass (und dies kann formal erfolgen, siehe zum Beispiel in Kapitel 2 von [1]) die Parameter einer Student- Verteilung, die an kontaminierte Daten angepasst sind, nicht aufgedeckt werden können die Ausreißer. t

  • [1] Ricardo A. Maronna, Douglas R. Martin und Victor J. Yohai (2006). Robuste Statistik: Theorie und Methoden (Wiley-Reihe in Wahrscheinlichkeit und Statistik).
  • Huber, PJ (1981). Robuste Statistik. New York: John Wiley und Söhne.

1
Nun, das t wird oft als robuste Alternative zur Normalverteilung vorgeschlagen. Ich weiß nicht, ob das im schwachen Sinne ist oder nicht. Siehe zum Beispiel: Lange, KL, Little, RJ & Taylor, JM (1989). Robuste statistische Modellierung mit der t-Verteilung. Journal of the American Statistical Association , 84 (408), 881-896. pdf
Rasmus Bååth

1
Das ist der schwache Sinn. Wenn Sie einen R-Code haben, der das von Ihnen vorgeschlagene Verfahren implementiert, werde ich meine Antwort gerne anhand eines Beispiels veranschaulichen. Andernfalls erhalten Sie weitere Erläuterungen in Kapitel 2 dieses Lehrbuchs.
user603

Die von mir vorgeschlagene Vorgehensweise ist im Wesentlichen hier beschrieben: indiana.edu/~kruschke/BEST einschließlich R-Code. Ich muss über Ihre Lösung nachdenken! Es scheint jedoch nicht in dem Sinne Bayesianisch zu sein, dass nicht alle Daten modelliert werden, sondern nur die Teilmenge, die Schritt 2 "überlebt".
Rasmus Bååth,


1
Das habe ich jetzt so gemacht!
Rasmus Bååth

1

In der Bayes'schen Analyse ist die Verwendung der inversen Gamma-Verteilung als Prior für die Präzision (die Inverse der Varianz) eine häufige Wahl. Oder die inverse Wishart-Verteilung für multivariate Modelle. Durch Hinzufügen eines Prioritätswerts für die Varianz wird die Robustheit gegenüber Ausreißern verbessert.

Es gibt einen schönen Artikel von Andrew Gelman: "Vorherige Verteilungen für Varianzparameter in hierarchischen Modellen", in dem er diskutiert, wie gut die Prioritäten für Varianzen gewählt werden können.


4
Es tut mir leid, aber ich verstehe nicht, wie dies die Frage beantwortet. Ich habe nicht nach einem robusten Vorgänger gefragt, sondern nach einem robusten Modell .
Rasmus Bååth

0

μNσ2μtN

σD

D|μ,σN(μ,σ2)
D(d1,,dN)
p(D|μ,σ2)=1(2πσ)Nexp(N2σ2((mμ2)+s2))
ms2
m=1Ni=1Ndis2=1Ni=1Ndi2m2
p(μ,σ2|D)p(D|μ,σ2)p(μ,σ2)
(μ,σ2)p(μ,σ2|D)p(σ2|D)
σ2|DIG(α+N/2,2β+Ns2)α,β>0
σ2αβtμ

1
Ein robuster Schätzer für den Ortsparameter μ einiger Datensätze der Größe N wird erhalten, wenn man vor der Varianz einen Jeffreys zuweist σ2der Normalverteilung. "Beschreiben Sie dieses Normalmodell nicht als typisches Beispiel für ein nicht robustes Modell? Das heißt, ein einzelner Wert, der deaktiviert ist, kann großen Einfluss auf die Parameter des Modells haben. Es besteht ein großer Unterschied zwischen Der hintere Teil über dem Mittelwert ist eine t-Verteilung (wie in Ihrem Fall), und die Verteilung für die Daten ist eine t-Verteilung (wie es ein gängiges Beispiel für ein robustes Bayes'sches Modell zur Schätzung des Mittelwerts ist).
Rasmus Bååth

1
Alles hängt davon ab, was Sie unter robust verstehen. Was Sie gerade sagen, ist, dass Sie Robustheit in Bezug auf Daten wünschen. Was ich vorschlug, war Robustheit in Bezug auf die Modellfehlerspezifikation. Sie sind beide verschiedene Arten von Robustheit.
Yannick

2
Ich würde sagen, dass die Beispiele, die ich gegeben habe, MAD und using at distribution als Verteilung für die Daten Beispiele für Robustheit in Bezug auf Daten sind.
Rasmus Bååth

Ich würde sagen, Rasmus hat recht und Gelman hat auch recht mit BDA3, ebenso wie das grundlegende Verständnis, dass die Verteilung für den gleichen Standortparameter einen dickeren Schwanz als den normalen hat
Brash Equilibrium

0

Ich habe die Diskussion von der ursprünglichen Frage gefolgt. Rasmus, wenn Sie Robustheit sagen, meinen Sie sicher in den Daten (Ausreißer, keine Fehlspezifikation von Verteilungen). Ich nehme die Verteilung der Daten als Laplace-Verteilung anstelle einer t-Verteilung. Wie bei einer normalen Regression, bei der wir den Mittelwert modellieren, modellieren wir hier die mediane (sehr robuste) aka mediane Regression (wir alle wissen). Das Modell sei:

Y.=βX+ϵ, ϵ hat Laplace(0,σ2).

Unser Ziel ist es natürlich, Modellparameter abzuschätzen. Wir erwarten, dass unsere Vorgesetzten vage sind, um ein objektives Modell zu haben. Das vorliegende Modell hat einen Seitenzahn der Formf(β,σ,Y.,X). GebenβEin normaler Prior mit großer Varianz macht einen solchen Prior vage, und ein chis-squared-Prior mit kleinen Freiheitsgraden, einen Jeffrey-Prior (einen vagen Prior) nachzuahmen, wird an gegebenσ2. Was passiert mit einem Gibbs-Sampler? normale vorherige + Laplace Likehood = ???? wir wissen. Auch Chi-Quadrat vor + Laplace-Wahrscheinlichkeit = ??? Wir kennen die Verteilung nicht. Zum Glück gibt es in (Aslan, 2010) einen Satz, der eine Laplace-Wahrscheinlichkeit in eine Skalenmischung von Normalverteilungen umwandelt, die es uns dann ermöglicht, die konjugierten Eigenschaften unserer Priors zu genießen. Ich denke, der gesamte beschriebene Prozess ist in Bezug auf Ausreißer völlig robust. In einer multivariaten Einstellung wird Chi-Quadrat zu einer Wishart-Verteilung, und wir verwenden multivariate Laplace- und Normalverteilungen.


2
Ihre Lösung scheint sich auf eine zuverlässige Schätzung des Standorts (Mittelwert / Median) zu konzentrieren. Meine Frage betraf eher die Schätzung des Maßstabs mit der Eigenschaft der Konsistenz in Bezug auf das Abrufen der SD, wenn die Datenerzeugungsverteilung tatsächlich normal ist.
Rasmus Bååth

Bei einer zuverlässigen Schätzung des Standorts profitiert die Skala als Funktion des Standorts sofort von der Zuverlässigkeit des Standorts. Es gibt keine andere Möglichkeit, die Waage robust zu machen.
Chamberlain Foncha

Wie Sie betont haben, muss ich auf jeden Fall sagen, dass ich gespannt bin, wie dieses Problem insbesondere mit einer Normalverteilung angegangen werden kann.
Chamberlain Foncha

0

Angenommen, Sie haben K groups and you want to model the distribution of their sample variances, perhaps in relation to some covariates x. That is, suppose that your data point for group k1K is Var(yk)[0,). The question here is, "What is a robust model for the likelihood of the sample variance?" One way to approach this is to model the transformed data ln[Var(yk)] as coming from a t distribution, which as you have already mentioned is a robust version of the normal distribution. If you don't feel like assuming that the transformed variance is approximately normal as n, then you could choose a probability distribution with positive real support that is known to have heavy tails compared to another distribution with the same location. For example, there is a recent answer to a question on Cross Validated about whether the lognormal or gamma distribution has heavier tails, and it turns out that the lognormal distribution does (thanks to @Glen_b for that contribution). In addition, you could explore the half-Cauchy family.

Similar reasoning applies if instead you are assigning a prior distribution over a scale parameter for a normal distribution. Tangentially, the lognormal and inverse-gamma distributions are not advisable if you want to form a boundary avoiding prior for the purposes of posterior mode approximation because they peak sharply if you parameterize them so that the mode is near zero. See BDA3 chapter 13 for discussion. So in addition to identifying a robust model in terms of tail thickness, keep in mind that kurtosis may matter to your inference, too.

I hope this helps you as much as your answer to one of my recent questions helped me.


1
My question was about the situation when you have one group and how to robustly estimate the scale of that group. In the case of outliers I don't believe the sample variance is considered robust.
Rasmus Bååth

If you have one group, and you are estimating its normal distribution, then your question applies to the form of the prior over its scale parameter. As my answer implies, you can use a t distribution over its log transformation or choose a fat tailed distribution with positive real support, being careful about other aspects of that distribution such as its kurtosis. Bottom line, if you wan a robust model for a scale parameter, use a t distribution over its log transform or some other fat tailed distribution.
Brash Equilibrium
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.