没太明白双边检验时为什么会落在右侧
来源:8-5 编程实现正态总体均值的假设检验(上)
kongba
2020-10-29
老师您好,没太明白21行代码那里,为什么想找的是右侧曲线的面积?这块没太理解,可以讲解下吗?另外什么时候落在曲线右侧,什么时候落在曲线左侧呢?
2回答
-
Angelayuan
2020-10-31
对于你问的 (1)"为什么想找的是右侧曲线面积":因为我取了绝对值之后,abs(z_val)右侧的面积一定小于等于左侧的面积。我们需要找到的是小的那一侧面积然后乘以2。(2)什么时候落在曲线右侧,什么时候落在曲线左侧呢:如果是单边检验,判断依据是到底是左边检验还是右边检验,左边检验看左边面积,右边检验看右边面积。如果是双边检验,计算的是面积小的那一侧的面积。
10 -
Angelayuan
2020-10-31
z_val本身是有正负的,如果z_val是正值,那么它右侧的面积小于左侧的面积;如果z_val是负值,那么它右侧的面积大于左侧的面积。当做单边检验的时候,情况很简单,我们只要找到z_val左侧(左边检验)或右侧(右边检验)的面积就可以了,不用管它的正负。当做双边检验的时候,我们需要计算的是:两倍的z_val左侧(如果它是负值)或右侧(如果它是正值)的面积。在这里,我们就要根据z_val的正负分情况进行计算了:如果z_val为正值,则计算 2 x z_val右侧面积; 如果z_val为负值,则计算2 x z_val左侧的面积。
那么在代码实现上,norm.cdf的功能是计算z_val左侧的面积。为了避免z_val正负的影响,我首先对z_val取了绝对值,也就是保证它是正值,这时norm.cdf(abs(z_val))计算的就是abs(z_val)左侧的面积,而1-norm.cdf(abs(z_val))得到的就是z_val右侧的面积,再把它乘以2就可以了。当然你也可以分情况进行实现,比如先判断z_val的正负,如果是正值,p = 2*(1-norm.cdf(z_val)),如果是负值,p = 2*(norm.cdf(z_val))。在这里我只是把这两个情况使用abs的方式进行了合并。
希望我有解释清楚。加油!
112021-10-21
相似问题