测试算法有效性:显著性分析[通俗易懂]

测试算法有效性:显著性分析[通俗易懂]前言今天偶尔刷到一篇博客如下,里面涉及到了很多数学小知识点,基本都是很实用的数学常识,不论从事什么领域,其实都很有帮助,为此记录一下吧。https://mp.weixin.qq.com/s/RLbrf-HNc79P7jaU2Sr29Q下面分多个大标题,记录一下各个使用的点显著性分析这是非常重要了,可以参考https://blog.csdn.net/championkai/article/details/80206704基本上我们要分析两个变量或多个变量之间的差异有多大,就会用到显

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

目录

前言

显著性分析

delta method

Delta Method的结果

一些其他有趣的讨论和优化

总结


前言

今天偶尔刷到一篇博客如下,里面涉及到了很多数学小知识点,基本都是很实用的数学常识,不论从事什么领域,其实都很有帮助,为此记录一下吧。

十分钟读懂Delta Method在AB测试中的应用

下面分多个大标题,记录一下各个使用的点【下面多张图片均来源于以上博客】

显著性分析

这是非常重要了,可以参考

关于显著性检验,你想要的都在这儿了!!(基础篇)_championkai的博客-CSDN博客_显著性差异

基本上我们要分析两个变量或多个变量之间的差异有多大,就会用到显著性分析,而该场景可以说太多了,所以学好显著性分析非常有用,之间在大学和考研期间学过一些皮毛,脑海中能记得就是一堆假设检验,不过一般的话我们只需要使用这些简单的就够了

delta method

我们知道一个随机变量X的方差var(X),那么经过线性变化Y=ax+b 后,Y的方差也是知道的:a^{2}*var(X), 但如果不是线性变化呢即泛化成 f(X)?delta method就是解决这一类问题的,大概思路就是如果我们将f(X)转化成一个线性变化,而这个线性变化是逼近f(X),那不就行了,即该线性变化又能代表f(X),又能直接利用a^{2}*var(X)得到新构建随机变量Y的方差,所以问题转变为怎么求得f(X)的近似线性函数,delta method基于的是泰勒展开式,用近似的方法估计随机变量函数的方差。

复杂的变化,可以查看更多文献,但简单概括来说其解决了如下问题:

Y = f(X) \\ D(Y) = ({f(X)}')^{2}D(X)

测试算法有效性:显著性分析[通俗易懂]

这是一元的(一个随机变量),如果是多元的

测试算法有效性:显著性分析[通俗易懂]

下面我们通过一个例子来详细看看delta method的具体计算过程即博客中的一个例子推导:

测试算法有效性:显著性分析[通俗易懂]

博客中直接给出了结果,那么详细过程是什么呢?其实如下:

var(\frac{\overline{X}}{\overline{Y}})=\begin{pmatrix} \frac{\partial g(\mu_{x},\mu_{y}))}{\partial \mu_{x}}& \frac{\partial g(\mu_{x},\mu_{y}))}{\partial \mu_{y}} \end{pmatrix}\begin{pmatrix} var(\overline{X}) & COV(\overline{X},\overline{Y}))\\ COV(\overline{Y},\overline{X})) & var(\overline{Y}) \end{pmatrix}\begin{pmatrix} \frac{\partial g(\mu_{x},\mu_{y}))}{\partial \mu_{x}}& \frac{\partial g(\mu_{x},\mu_{y}))}{\partial \mu_{y}} \end{pmatrix}^{T}\\= \begin{pmatrix} \frac{1}{\mu_{y}} & -\frac{\mu_{x}}{\mu_{y}^{2}} \end{pmatrix}\begin{pmatrix} var(\overline{X}) & COV(\overline{X},\overline{Y}))\\ COV(\overline{Y},\overline{X})) & var(\overline{Y}) \end{pmatrix}\begin{pmatrix} \frac{1}{\mu_{y}} & -\frac{\mu_{x}}{\mu_{y}^{2}} \end{pmatrix}^{T}

=\begin{pmatrix} \frac{var(\overline{X})}{\mu_{y}} -\frac{\mu_{x}COV(\overline{X},\overline{Y})}{\mu_{y}^{2}}& \frac{COV(\overline{X},\overline{Y})}{\mu_{y}}-\frac{\mu_{x}var(\overline{Y})}{\mu_{y}^{2}} \end{pmatrix}\begin{pmatrix} \frac{1}{\mu_{y}} & -\frac{\mu_{x}}{\mu_{y}^{2}} \end{pmatrix}^{T}

=\frac{var(\overline{X})}{\mu _{y}^{2}}-\frac{\mu_{x}COV(\overline{X},\overline{Y})}{\mu _{y}^{3}}-\frac{\mu _{x}COV(\overline{X},\overline{Y})}{\mu _{y}^{3}}+\frac{\mu _{x}^{2}var(\overline{Y})}{\mu _{y}^{4}}

=\frac{var(\overline{X})}{\mu _{y}^{2}}+\frac{\mu _{x}^{2}var(\overline{Y})}{\mu _{y}^{4}}-\frac{2\mu_{x}COV(\overline{X},\overline{Y})}{\mu _{y}^{3}}

=\frac{var(\overline{X})}{​{\overline{Y}}^{2}}+\frac{\overline{X}^{2}var(\overline{Y})}{\overline{Y}^{4}}-2\frac{\overline{X}COV(\overline{X},\overline{Y})}{\overline{Y}^{3}}{\color{Red} (1)}

=\frac{var(\frac{X}{n})}{​{\overline{Y}}^{2}}+\frac{\overline{X}^{2}var(\frac{Y}{n})}{\overline{Y}^{4}}-2\frac{\overline{X}COV(\frac{X}{n},\frac{Y}{n})}{\overline{Y}^{3}}

=\frac{1}{n}(\frac{var(X)}{​{\overline{Y}}^{2}}+\frac{\overline{X}^{2}var(Y)}{\overline{Y}^{4}}-2\frac{\overline{X}COV(X,Y)}{\overline{Y}^{3}}) {\color{Green} (2)}

上述(1)(2)分别对应图片中的红框和绿框。其中

测试算法有效性:显著性分析[通俗易懂]

需要注意的是:

测试算法有效性:显著性分析[通俗易懂]

所以博客中开头中得到的公式是:

测试算法有效性:显著性分析[通俗易懂]

没有了协方差。

Delta Method的结果

博客中对比了传统的测试算法有效性:显著性分析[通俗易懂]和新得到的测试算法有效性:显著性分析[通俗易懂]

\frac{var(\bar{y_{t}})+var(\bar{y_{c}})}{y_{c}^{2}}\frac{var(\bar{y_{t}})+(\frac{\bar{y_{t}}}{\bar{y_{c}}})^{2}var(\bar{y_{c}})}{y_{c}^{2}},前者是下表中的错误方法,后者是Delta Method, Bootstrap是标准

测试算法有效性:显著性分析[通俗易懂]

可以看到Delta Method是和Bootstrap标准更趋近。

一些其他有趣的讨论和优化

可以看博客中的特殊情况讨论一节,挺有意思

总结

(1)显著性分析,应用很广泛,一些基本概念要知道,比如原假设H0和备择假设H1,第一类错误和第二类错误,P值

(2)delta method可用于解决非线性多元随机变量方差求解

欢迎关注笔者微信公众号

测试算法有效性:显著性分析[通俗易懂]
​​​​​​​

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/223029.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 九度 1201 -二叉排序数遍历- 二叉排序树「建议收藏」

    九度 1201 -二叉排序数遍历- 二叉排序树

    2022年1月20日
    38
  • Visual C++ 2010 Express与Visual C++ 2010有何区别?「建议收藏」

    Visual C++ 2010 Express与Visual C++ 2010有何区别?

    2022年4月3日
    47
  • 二进制的权展开式_进制按权展开方法

    二进制的权展开式_进制按权展开方法1.问题描述为什么二进制按权展开就是十进制?按照我们所学到的知识,来举例说明。比如:(1111)2按权展开就是:1×23+1×22+1×21+1×20=15我们得到了15对吧,那么两个问题为什么15这个就是十进制呢?为什么展开后相加就正好等于十进制的15呢?2.问题解答首先来看我们为什么按权展开?(1111)2因为逢二进一所以按权展开就是要这样:1×23+1×22+1×21+1×20由于我们习惯性的把加起来的和等于十进制的15所以我们会误认为,按权展开就是十进制其.

    2022年10月17日
    0
  • WritePrivateProfileString函数说明[通俗易懂]

    WritePrivateProfileString函数说明[通俗易懂]在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下:   一.将信息写入.INI文件中.   .所用的WINAPI函数原型为: BOOLWritePrivateProfileString(   LPCTSTRlpAppName,   LPCTSTRlpKeyN

    2022年7月14日
    24
  • springJPA 之 QueryDSL(一)

    springJPA 之 QueryDSL(一)引言不可否认的是JPA使用是非常方便的,极简化的配置,只需要使用注解,无需任何xml的配置文件,语义简单易懂,但是,以上的一切都建立在单表查询的前提下的,我们可以使用JPA默认提供的方法,

    2022年8月4日
    5
  • javascript性能优化_javascript框架是什么

    javascript性能优化_javascript框架是什么即使是循环中最快的代码,累计迭代上千次也会慢下来。此外,循环体运行时也会带来小性能开销,不仅仅是增加了总体运行时间。减少迭代次数能获得更加显著的性能提升,最广为人知的一种限制循环迭代次数的模式被称为“达夫设备(Duff’sDevice)”。Duff’sDevice是一种循环体展开技术,它使得一次迭代中实际执行了多次迭代的操作。一个典型的实现如下:

    2022年9月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号