Verwendung der Rechenleistung von R zum Testen der Hypothese der Mittelgleichheit

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:


  1. 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.
  2. 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:



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
Bild
Sehr verständlich und praktisch für geschäftliche Gespräche. Alle Berechnungen betrafen eine "Tasse Kaffee".


Vorherige Veröffentlichung - Spezialeinheiten "Data Science" "Inhouse".

Source: https://habr.com/ru/post/de441192/


All Articles