Vor kurzem entstand die Notwendigkeit, ein scheinbar klassisches mathematisches Problem zu lösen. Statistiken.
Ein Test eines bestimmten Push-Effekts auf eine Gruppe von Personen wird durchgeführt. Es ist notwendig, den Effekt zu bewerten. Natürlich können Sie dies mit einem probabilistischen Ansatz tun.
Es ist jedoch völlig nutzlos und kontraproduktiv, mit der Wirtschaft über die Nullhypothesen und den p-Wert zu sprechen.
Wie kann dies ab Februar 2019 mit einem „durchschnittlichen Hand“ -Laptop so einfach und schnell wie möglich erfolgen? Abstrakte Anmerkung, keine Formeln.
Es ist eine Fortsetzung früherer Veröffentlichungen .
Erklärung des Problems
Es gibt zwei statistisch identische gemessene Benutzergruppen (A und B). Gruppe B ist betroffen. Führt dieser Effekt zu einer Änderung des Durchschnittswertes des gemessenen Indikators?
Die beliebteste Option ist die Berechnung statistischer Kriterien und die Schlussfolgerung. Ich mag das Beispiel "Klassische statistische Methoden: Chi-Quadrat-Test" . In diesem Fall spielt es keine Rolle, wie dies mit Hilfe von Specials gemacht wird. Programme, Excel, R oder etwas anderes.
Die Zuverlässigkeit der Ergebnisse kann jedoch aus folgenden Gründen sehr zweifelhaft sein:
- In der Tat mat. Nur wenige Menschen verstehen Statistiken von Anfang bis Ende. Sie sollten immer die Bedingungen berücksichtigen, unter denen die eine oder andere Methode angewendet werden kann.
- Der Einsatz von Werkzeugen und die Interpretation der Ergebnisse basieren in der Regel auf dem Prinzip einer einzigen Berechnung und der Annahme einer Ampelentscheidung. Je weniger Fragen, desto besser für alle Teilnehmer des Prozesses.
Kritik am p-Wert
Viele Materialien, Links zu den spektakulärsten der gefundenen:
- Natur. Wissenschaftliche Methode: Statistische Fehler. P-Werte, der "Goldstandard" der statistischen Validität, sind nicht so zuverlässig, wie viele Wissenschaftler annehmen., Regina Nuzzo. Nature 506, 150 & ndash; 152
- Naturmethoden. Der launische P-Wert führt zu nicht reproduzierbaren Ergebnissen, Lewis G. Halsey, Douglas Curran-Everett, Sarah L. Vowler und Gordon B. Drummond. Nature Methods Band 12, Seiten 179–185 (2015)
- ELSEVIER. Ein schmutziges Dutzend: Zwölf P-Wert-Missverständnisse, Steven Goodman. Seminare in Hematology Volume 45, Ausgabe 3, Juli 2008, Seiten 135-140
Was kann getan werden?
Jetzt hat jeder einen Computer zur Hand, so dass die Monte-Carlo-Methode die Situation rettet. Aus den p-Wert-Berechnungen fahren wir mit der Berechnung der Konfidenzintervalle für die Differenz im Durchschnitt fort.
Es gibt viele Bücher und Materialien, aber kurz gesagt (Resamapling & Fitting) wird im Bericht von Jake Vanderplas - „Statistik für Hacker“ - PyCon 2016 sehr kompakt dargestellt. Die Präsentation selbst.
Eine der ersten Arbeiten zu diesem Thema, einschließlich Vorschläge zur grafischen Visualisierung, wurde vom bekannten Mathematiker Popularizer der Sowjetzeit, Martin Gardner, verfasst: Konfidenzintervalle statt P-Werte: Schätzung statt Hypothesentest. MJ Gardner und DG Altman, Br. Med. J. (Clin Res. Ed.). 1986 15. März; 292 (6522): 746 & ndash; 750 .
Wie verwende ich R für diese Aufgabe?
Um nicht alles mit unseren Händen auf der unteren Ebene zu tun, schauen wir uns den aktuellen Zustand des Ökosystems an. Vor nicht allzu langer Zeit wurde ein sehr praktisches dabestr
Paket : Die Datenanalyse mit Bootstrap-Coupled Estimation wurde an R übertragen.
Die Prinzipien der Berechnung und Analyse der in dabestr
im Spickzettelformat verwendeten Ergebnisse werden hier beschrieben: SCHÄTZUNGSSTATISTIKEN BETA ANALYSIEREN SIE IHRE DATEN MIT EFFEKTGRÖSSEN .
R Notebook-Beispiel für "touch": --- title: "A/B bootstrap" output: html_notebook: self_contained: TRUE editor_options: chunk_output_type: inline ---
library(tidyverse) library(magrittr) library(tictoc) library(glue) library(dabestr)
Simulation
Erstellen Sie eine logarithmische Normalverteilung der Operationsdauer.
my_rlnorm <- function(n, mean, sd){ # . : https://en.wikipedia.org/wiki/Log-normal_distribution#Arithmetic_moments location <- log(mean^2 / sqrt(sd^2 + mean^2)) shape <- sqrt(log(1 + (sd^2 / mean^2))) print(paste("location:", location)) print(paste("shape:", shape)) rlnorm(n, location, shape) } # N (A = Control) A_control <- my_rlnorm(n = 10^3, mean = 500, sd = 150) %T>% {print(glue("mean = {mean(.)}; sd = {sd(.)}"))} # N (B = Test) B_test <- my_rlnorm(n = 10^3, mean = 525, sd = 150) %T>% {print(glue("mean = {mean(.)}; sd = {sd(.)}"))}
Wir sammeln die Daten in der für die Analyse erforderlichen Form mit dabestr
Tools und führen die Analyse durch.
df <- tibble(Control = A_control, Test = B_test) %>% gather(key = "group", value = "value") tic("bootstrapping") two_group_unpaired <- df %>% dabest(group, value, # The idx below passes "Control" as the control group, # and "Test" as the test group. The mean difference # will be computed as mean(Test) - mean(Control). idx = c("Control", "Test"), paired = FALSE, reps = 5000 ) toc()
Werfen wir einen Blick auf die Ergebnisse
two_group_unpaired plot(two_group_unpaired)
================================================== ====
Ergebnis als CI
DABEST (Data Analysis with Bootstrap Estimation) v0.2.0 ======================================================= Unpaired mean difference of Test (n=1000) minus Control (n=1000) 223 [95CI 209; 236] 5000 bootstrap resamples. All confidence intervals are bias-corrected and accelerated.
und Bilder

Sehr verständlich und praktisch für geschäftliche Gespräche. Alle Berechnungen betrafen eine "Tasse Kaffee".
Vorherige Veröffentlichung - Spezialeinheiten "Data Science" "Inhouse".