Menggunakan kekuatan komputasi R untuk menguji hipotesis persamaan cara

Baru-baru ini, muncul kebutuhan untuk memecahkan masalah matematika yang tampaknya klasik. statistik.
Tes efek push tertentu pada sekelompok orang sedang dilakukan. Perlu untuk mengevaluasi efeknya. Tentu saja, Anda dapat melakukan ini menggunakan pendekatan probabilistik.


Tetapi berbicara dengan bisnis tentang hipotesis nol dan nilai p-value sama sekali tidak berguna dan kontraproduktif.


Bagaimana, pada Februari 2019, ini bisa dilakukan sesederhana dan secepat mungkin dengan laptop "rata-rata" di tangan? Catatan abstrak, tidak ada rumus.


Ini adalah kelanjutan dari publikasi sebelumnya .


Pernyataan masalah


Ada dua kelompok pengguna yang identik secara statistik dalam hal indikator yang diukur (A dan B). Grup B terpengaruh. Apakah efek ini menyebabkan perubahan dalam nilai rata-rata indikator yang diukur?


Pilihan paling populer adalah menghitung kriteria statistik dan menarik kesimpulan. Saya suka contoh "Metode Statistik Klasik: Uji Chi-square" . Dalam hal ini, tidak masalah bagaimana ini dilakukan, dengan bantuan spesial. program, Excel, R atau yang lainnya.


Namun, keandalan temuan bisa sangat diragukan karena alasan berikut:


  1. Bahkan, mat. hanya sedikit orang yang memahami statistik dari awal hingga akhir. Anda harus selalu mengingat kondisi di mana satu atau metode lain dapat diterapkan.
  2. Sebagai aturan, penggunaan alat dan interpretasi hasil didasarkan pada prinsip perhitungan tunggal dan adopsi keputusan "lampu lalu lintas". Semakin sedikit pertanyaan, semakin baik untuk semua peserta dalam proses.

Kritik terhadap nilai-p


Banyak bahan, tautan ke yang paling spektakuler dari yang ditemukan:



Apa yang bisa dilakukan?


Sekarang semua orang memiliki komputer, sehingga metode Monte Carlo menyelamatkan situasi. Dari perhitungan p-value, kami melanjutkan ke perhitungan interval kepercayaan untuk perbedaan rata-rata.


Ada banyak buku dan bahan, tetapi secara singkat (penyusunan kembali & pemasangan) disajikan dengan sangat ringkas dalam laporan Jake Vanderplas - "Statistics for Hackers" - PyCon 2016 . Presentasi itu sendiri.


Salah satu karya awal tentang topik ini, termasuk proposal untuk visualisasi grafis, ditulis oleh ahli matematika terkenal dari era Soviet, Martin Gardner: Interval kepercayaan daripada nilai P: estimasi daripada pengujian hipotesis. MJ Gardner dan DG Altman, Br Med J (Clin Res Ed). 15 Maret 1986; 292 (6522): 746-750 .


Bagaimana cara menggunakan R untuk tugas ini?


Agar tidak melakukan segalanya dengan tangan kita di tingkat yang lebih rendah, mari kita lihat keadaan ekosistem saat ini. Belum lama ini, paket dabestr sangat nyaman : Analisis Data menggunakan Bootstrap-Coupled Estimation dipindahkan ke R.


Prinsip-prinsip perhitungan dan analisis hasil yang digunakan dalam dabestr dalam format dabestr cheat dijelaskan di sini: ESTIMASI STATISTIK BETA ANALISIS DATA ANDA DENGAN UKURAN EFEK .


Contoh R Notebook untuk "sentuh":
 --- 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) 

Simulasi


Buat distribusi lognormal dari durasi operasi.


 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(.)}"))} 

Kami mengumpulkan data dalam bentuk yang diperlukan untuk analisis menggunakan alat dabestr dan melakukan analisis.


 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() 

Mari kita lihat hasilnya


 two_group_unpaired plot(two_group_unpaired) 

=================================================== ====


Hasilnya sebagai 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. 

dan gambar
gambar
cukup dimengerti dan nyaman untuk berbicara dengan bisnis. Semua perhitungan adalah untuk "secangkir kopi."


Publikasi sebelumnya - "Ilmu Data" pasukan khusus "in-house . "

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


All Articles