使用R的计算能力检验均值相等的假设

最近,需要解决看似经典的数学问题。 统计资料。
正在测试对一群人的某种推动作用。 有必要评估效果。 当然,您可以使用概率方法来做到这一点。


但是,与企业讨论零假设和p值完全没有用,并且适得其反。


截至2019年2月,如何使用“普通手”笔记本电脑尽可能简单,快速地完成此操作? 抽象说明,无公式。


它是以前出版物的延续。


问题陈述


有两个统计上相同的测量用户组(A和B)。 B组受到影响。 这种影响会导致所测指标的平均值发生变化吗?


最受欢迎的选择是计算统计标准并得出结论。 我喜欢“经典统计方法:卡方检验”的示例。 在这种情况下,使用特殊功能无关紧要。 程序,Excel,R或其他内容。


但是,由于以下原因,调查结果的可靠性可能令人怀疑:


  1. 实际上,垫子。 很少有人从头到尾都了解统计信息。 您应始终牢记可以应用一种或另一种方法的条件。
  2. 通常,工具的使用和结果的解释是基于单一计算和采用“交通灯”决策的原则。 问题越少,对过程中的所有参与者越有利。

对p值的批评


很多资料,链接到最壮观的资料:



该怎么办?


现在每个人都拥有一台计算机,因此蒙特卡洛方法可以避免这种情况。 从p值计算,我们继续计算平均值差的置信区间。


有许多书籍和材料,但简而言之(重新映射和拟合)在Jake Vanderplas的报告-“黑客统计”-PyCon 2016中非常简洁地介绍了。 演示文稿本身。


关于该主题的初步工作之一,包括图形化可视化建议,是由苏联时代著名的数学家,马丁·加德纳(Martin Gardner)撰写的: 置信区间而非P值:估计而不是假设检验。 MJ Gardner和DG Altman,Br Med J(临床研究版)。 1986年3月15日; 292(6522):746-750


如何将R用于此任务?


为了不做任何事情,我们来看一下生态系统的当前状态。 不久前,一个非常方便的dabestr软件包:使用Bootstrap耦合估计的数据分析已转移到R。


此处描述了备忘dabestr格式的dabestr中使用的结果的计算和分析原理: 估计统计数据 dabestr使用有效dabestr分析您的数据


R Notebook的“触摸”示例:
 --- 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) 

模拟


创建操作持续时间的对数正态分布。


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

我们使用dabestr工具以分析所必需的形式收集数据并进行分析。


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

让我们看一下结果


 two_group_unpaired plot(two_group_unpaired) 

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


结果为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. 

和图片
图片
与业务交谈非常容易理解和方便。 所有的计算都是针对“一杯咖啡”。


先前的出版物- “数据科学”特种部队“内部”

Source: https://habr.com/ru/post/zh-CN441192/


All Articles