In diesem Artikel werde ich eine Methode zum Testen von Hypothesen mit Bayes'schen Statistiken vorstellen und schließlich tatsächlich mit Python testen. Ich bin ein Anfänger sowohl in der Bayes'schen Statistik als auch in Python. Bitte kommentieren Sie, ob der Inhalt Mängel aufweist.
$$ Grob gesagt ist ein Hypothesentest eine Hypothese, dass ein unbekannter Parameter $ \ theta $ zu einem bestimmten Intervall $ I_i $ gehört. Ist es in Ordnung, eine Hypothese $ H_i $ aufzustellen und die Hypothese $ H_i $, dh einen unbekannten Parameter, zu übernehmen? Es ist eine Methode, um zu analysieren, ob gesagt werden kann, dass $ \ theta $ zum Intervall $ I_i $ gehört.
Die folgenden drei Methoden sind typisch für die Bayes'sche Statistik.
Unterhalb von $$ wird die Wahrscheinlichkeitsvariable $ X $ Wahrscheinlichkeitsfunktion durch $ p (X) $ dargestellt, und die Wahrscheinlichkeit, dass das Ereignis $ X $ durch $ P (X) $ dargestellt wird. Wenn Sie $ \ Omega $ als Beispielraum verwenden, gibt $ A \ bot B $ an, dass $ A \ cap B = \ phi $ für die Menge $ A, B $ gilt.
Die Idee des Tests durch Bewertung der Ex-post-Wahrscheinlichkeit ist sehr einfach. Betrachten Sie beispielsweise die folgende Hypothese.
\left\{
\begin{split}
H_0: &q \in I_0 \\
H_1: &q \in I_0 \\
&\vdots \\
H_k: &q \in I_k
\end{split}
\right.
$$ (Bitte beachten Sie jedoch, dass $ I_i \ subset \ Omega $ und $ I_i $ Speicherplatz miteinander teilen können.)
$$ Zu diesem Zeitpunkt, wenn das Ereignis $ X $ realisiert wird, sind die hinteren Wahrscheinlichkeiten, die die Hypothese $ H_i (i = 0, 1, \ dots k) $ gilt, unterschiedlich.
P(H_i|X) = P(\theta \in I_i|X) = \int_{I_i} p(\theta|X) d\theta
Es wird sein.
Wenn $ P (H_i | X) $ groß genug ist (nahe 1), kann die Hypothese $ H_i $ übernommen werden, und wenn sie klein ist (nahe 0), kann die Hypothese $ H_i $ zurückgewiesen werden.
Als nächstes folgt ein Test unter Verwendung des posterioren Odds Ratio. Sie können im posterioren Wahrscheinlichkeitstest so viele Hypothesen aufstellen, wie Sie möchten, aber im posterioren Odds Ratio-Test werden nur zwei Hypothesen verwendet.
Betrachten Sie die folgende Hypothese.
\left\{
\begin{split}
H_0: q \in I_0 \\
H_1: q \in I_1
\end{split}
\right.
$$ Hier werden $ I_0 $ und $ I_1 $ so gesetzt, dass $ I_0 \ bot I_1, I_0 \ cup I_1 = \ Omega $ gilt. Auf diese Weise kann einer von $ H_0 $ und $ H_1 $ die Nullhypothese und der andere die Alternativhypothese sein.
Das Ex-post-Facto-Odds-Ratio beträgt
\begin{split}
Post-hoc-Quotenverhältnis&= \frac{P(H_0|X)}{P(H_1|X)} \\
&= \frac{P(\theta \in I_0|X)}{P(\theta \in I_1|X)} \\
&= \frac{\int_{I_0}p(\theta|X)d\theta}{\int_{I_1}p(\theta|X)d\theta}
\end{split}
Es wird durch $$ definiert. Wenn das hintere Quotenverhältnis ausreichend größer als 1 ist, wird $ H_0 $ übernommen, und wenn es ausreichend kleiner ist, wird $ H_1 $ übernommen.
$
$$ Sofort wird der Bayes'sche Faktor $ B_ {01} $ durch die folgende Formel definiert.
\begin{split} B_{01} &=Post-hoc-Quotenverhältnis\div Pre-Odd Ratio\\
&= \frac{P(H_0|X)}{P(H_1|X)} \div \frac{P(H_0)}{P(H_1)} \\
&=\frac{\int_{I_0}p(\theta|X)d\theta}{\int_{I_1}p(\theta|X)d\theta} \div \frac{\int_{I_0}p(\theta)d\theta}{\int_{I_1}p(\theta)d\theta}
\end{split}
Betrachten wir nun, warum diese Bayes'sche Faktorbewertung das Problem des posterioren Odds Ratio-Tests vermeidet.
Angenommen, die Einstellung der vorherigen Verteilung von $$ ist für $ H_0 $ überwiegend vorteilhaft, und das Pre-Odds-Verhältnis beträgt 100 und das Post-Odds-Verhältnis 20. Zu diesem Zeitpunkt wird $ H_0 $ basierend auf dem posterioren Quotenverhältnis in den Test übernommen. Nur für den Fall, wenn Sie darüber nachdenken, was mit dem Test nach der Einrichtung passiert, ist es $ P (H_0 | X) \ simeq 0,95 $, und es kann gesagt werden, dass $ H_0 $ auch hier übernommen wird. Wenn Sie jedoch den Bayes'schen Faktor $ B_ {01} $ berechnen, erhalten Sie $ B_ {01} = 0,2 $. Der Wert des Bayes-Faktors wird anhand der unten gezeigten Bewertungskriterien von Jeffreys bewertet. Da es sich um $ 1/10 \ le 0.2 \ le 1/3 $ handelt, unterstützen wir in diesem Fall die alternative Hypothese $ H_1 $ voll und ganz.
[Quelle: https://www.slideshare.net/masarutokuoka/mcmc-35640699]
Das obige Beispiel ist extrem, aber der tatsächliche Test unter Verwendung des Bayes-Faktors kann zu einer anderen Schlussfolgerung führen als der Fall der Verwendung des posterioren Odds Ratio, und der Test unter Verwendung des Bayes-Faktors wird stärker von der vorherigen Verteilung beeinflusst. Es wird angenommen, dass es schwierig ist, eine falsche Schlussfolgerung zu ziehen, indem die Größe verkleinert wird.
Ich habe tatsächlich die hintere Wahrscheinlichkeit, das hintere Quotenverhältnis und den Bayes-Faktor berechnet und den Hypothesentest ausprobiert. Dieses Mal haben wir der Einfachheit halber eine Beta-Verteilung als vorherige Verteilung angenommen und einen Hypothesentest an einem Modell durchgeführt, das der Bernoulli-Verteilung folgt.
Definieren Sie zunächst eine Funktion, die Beispieldaten (Daten), Hyperparameter der vorherigen Verteilung (a0, b0) und Intervall (I) als Argumente verwendet und die hintere Wahrscheinlichkeit (post_prob), das hintere Odds Ratio (post_odds_ratio) und den Bayes'schen Faktor (BF) zurückgibt. Hat.
import scipy.stats as st
def ppb(data, a0, b0, I):
n = data.size
y = data.sum()
pre_p0 = st.beta.cdf(I[1], a0, b0) - st.beta.cdf(I[0], a0, b0)
pre_p1 = 1 - pre_p0
post_p0 = st.beta.cdf(I[1], y + a0, n - y + b0) - st.beta.cdf(I[0], y + a0, n - y + b0)
post_p1 = 1 - post_p0
post_prob = post_p0
post_odds_ratio = post_p0 / post_p1
BF = post_odds_ratio * pre_p1 / pre_p0
return post_prob, post_odds_ratio, BF
Wir haben dann zufällig Daten aus der Bernoulli-Verteilung mit dem Parameter p = 0,7 generiert, um eine Stichprobe mit einer Stichprobengröße von 100 zu generieren.
import numpy as np
p = 0.7
n = 100
np.random.seed(0)
data = st.bernoulli.rvs(q, size=n)
Für diese Daten der Hyperparameter
Wir haben den Fall von analysiert. Das als Nullhypothese verwendete Intervall (I) ist I = [0,6, 0,8].
a0 = [1,2,3]
b0 = [1,5,2]
I = [0.6,0.8]
s = ['EIN','ich','C.']
for i in range(len(a0)):
a, b, c = ppb(data, a0[i], b0[i], I)
print('{}) \n hintere Wahrscheinlichkeit: {:.5f} \n Post-hoc-Quotenverhältnis: {:.5f} \n Bayes-Faktor: {:.5f}'.format(s[i],a,b,c))
Ausführungsergebnis
EIN)
Post-hoc-Wahrscheinlichkeit: 0.79632
Post-hoc-Quotenverhältnis: 3.90973
Bayes-Faktor: 15.63891
ich)
Post-hoc-Wahrscheinlichkeit: 0.93228
Post-hoc-Quotenverhältnis: 13.76698
Bayes-Faktor: 336.00387
C.)
Post-hoc-Wahrscheinlichkeit: 0.81888
Post-hoc-Quotenverhältnis: 4.52127
Bayes-Faktor: 8.62195
Wenn hier anhand der zuvor gezeigten Bewertungskriterien des Bayes'schen Faktors von Jeffreys getestet wird, wird der Schluss gezogen, dass a) die Nullhypothese stark unterstützt wird, b) die Nullhypothese sehr stark unterstützt wird und c) die Nullhypothese ausreichend unterstützt wird. Geschah. Da wir den wahren Wert von p auf 0,7 setzen, können wir sagen, dass wir vernünftige Schlussfolgerungen gezogen haben.
Wenn Sie sich das Beta-Verteilungsdiagramm unten ansehen, ist es am wahrscheinlichsten, dass a) von der vorherigen Verteilung betroffen ist.
Das Bild unten ist eine tatsächliche Zeichnung des posterioren Verteilungsdiagramms. Sicherlich scheint b) von der vorherigen Verteilung im Vergleich zu a) und c) stark betroffen zu sein.
Wenn nur der Nullhypothesenabschnitt auf [0,65, 0,75] geändert wurde, wurden die folgenden Ergebnisse erhalten.
EIN)
Post-hoc-Wahrscheinlichkeit: 0.34440
Post-hoc-Quotenverhältnis: 0.52532
Bayes-Faktor: 4.72784
ich)
Post-hoc-Wahrscheinlichkeit: 0.57232
Post-hoc-Quotenverhältnis: 1.33818
Bayes-Faktor: 74.33720
C.)
Post-hoc-Wahrscheinlichkeit: 0.36755
Post-hoc-Quotenverhältnis: 0.58115
Bayes-Faktor: 2.73401
Die Bedingungen werden strenger und es ist schwierig, allein anhand der posterioren Wahrscheinlichkeit und des posterioren Quotenverhältnisses zu beurteilen, aber es scheint, dass die Nullhypothese in beiden Fällen nicht durch Verwendung des Bayes-Faktors gestützt werden kann.
Schließlich habe ich das Intervall der Nullhypothese auf [0,4, 0,6] gesetzt und experimentiert, welche Art von Schlussfolgerung erhalten werden kann, wenn der wahre Wert nicht im Intervall enthalten ist.
EIN)
Post-hoc-Wahrscheinlichkeit: 0.00019
Post-hoc-Quotenverhältnis: 0.00019
Bayes-Faktor: 0.00078
ich)
Post-hoc-Wahrscheinlichkeit: 0.00123
Post-hoc-Quotenverhältnis: 0.00123
Bayes-Faktor: 0.00515
C.)
Post-hoc-Wahrscheinlichkeit: 0.00020
Post-hoc-Quotenverhältnis: 0.00020
Bayes-Faktor: 0.00049
77
Es ist nicht notwendig, den Bayes'schen Faktor zu verwenden, aber in jedem Fall wird die Nullhypothese ordnungsgemäß verworfen.
Ich habe die vorherige Distribution als Beta-Distribution angenommen und mich nur mit Modellen befasst, die der Bernoulli-Distribution folgen, aber ich würde mich in Zukunft gerne mit verschiedenen Modellen befassen. Wenn Sie Mängel oder Fehler haben, lassen Sie es mich bitte wissen. Vielen Dank für das Lesen bis zum Ende.
[Teruo Nakatsuma; Einführung in die Bayes'sche Statistik mit Python, Asakura Shoten, 2019](https://www.amazon.co.jp/ von Python-Einführung in die Bayes'sche Statistik - Praktische Python-Bibliothek-Nakazuma-Teruo / dp / 4254128983)