[python][统计学入门]scipy.stats.norm函数探究

1. 问题背景

在学习AB_test的过程中,有计算样本量的环节。其中针对不同样本分布有如下计算公式:
[python][统计学入门]scipy.stats.norm函数探究_第1张图片
其中授课老师在计算z1-alpha(一类错误临界点值)和z1-beta(二类错误临界点值)这两个的时候,使用的公式为

stats.norm.isf(alpha,loc=0,scale=1)

我发现为什么求的是1-alpha,而计算的时候代入的参数是alpha呢?所以就想探究一下stats.norm下的各个方法所代表的函数究竟是什么意思。

2.stats.norm下的常用方法

  • rvs:随机变量(就是从这个分布中抽一些样本)(这个可以看文末链接的另一篇文章
  • pdf:概率密度函数。
  • cdf:累计分布函数
  • sf:残存函数(1-CDF)
  • ppf:分位点函数(CDF的逆)
  • isf:逆残存函数(sf的逆)
  • stats:返回均值,方差,(费舍尔)偏态,(费舍尔)峰度。
  • moment:分布的非中心矩。(这个我在网上没怎么找到资料,也不太清楚该怎么写,如果有知道的小伙伴可以评论区留言一下

3.stats.norm下各种常用方法的个人理解

python代码

首先导包

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
import warnings
warnings.filterwarnings('ignore')
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False

画图

plt.figure(figsize=(20,12))

ax1 = plt.subplot(2,2,1)
x = np.linspace(0,1,20)
y1 = stats.norm.ppf(x,loc=0,scale=1) # loc: mean 均值, scale: standard deviation 标准差
y2 = stats.norm.isf(x,loc=0,scale=1)
ax1.plot(x,y1,color='r',label='ppf分位点函数(CDF的逆)')
ax1.plot(x,y2,color='b',label='isf逆残存函数(sf的逆)')
ax1.legend(loc='upper right',fontsize = 20)

ax2 = plt.subplot(2,2,2)
x=np.linspace(-1,1,20)
y1 = stats.norm.cdf(x,loc=0,scale=1)
y2 = stats.norm.sf(x,loc=0,scale=1)
ax2.plot(x,y1,color='r',label='cdf累计分布函数')
ax2.plot(x,y2,color='b',label='sf残存函数(1-CDF)')
ax2.legend(loc='upper right',fontsize = 20)

ax3 = plt.subplot(2,2,3)
x=np.linspace(-1,1,20)
y1 = stats.norm.pdf(x,loc=0,scale=1)
y2 = stats.norm.cdf(x,loc=0,scale=1)
ax3.plot(x,y1,color='r',label='pdf概率密度函数')
ax3.plot(x,y2,color='b',label='cdf累计分布函数')
ax3.legend(loc='upper right',fontsize = 20)

# 让视图布局紧凑
plt.tight_layout()

画图结果

[python][统计学入门]scipy.stats.norm函数探究_第2张图片

函数理解

  • pdf:概率密度函数 ——注意和正态分布函数不一样,具体概念可看更多文章学习
  • cdf:累计分布函数 ——即pdf曲线下方面积,也即概率,是从左侧开始计算的,所以可以看到x越大,cdf的值越大
  • sf:残存函数(1-CDF)——即pdf曲线下方面积,也即概率,是从左侧开始计算的,所以可以看到x越大,cdf的值越大
  • ppf:分位点函数(CDF的逆)——即根据给定概率求临界点的值,注意这里的概率是从左侧开始算的。也就是一般我们认为的某一个值对应的概率
  • isf:逆残存函数(sf的逆)——即根据给定概率求临界点的值,注意这里的概率是从右侧开始算的。这里主要是当右侧检验的时候,可以直接代入右侧的概率。也即stats.norm.isf(x)和stas.norm.ppf(1-x)的值是相等的

注意:累计分布都是正数。而临界点可能有正有负

3.问题解决

因此课程上老师写的是对的,因为在课程案例上用的是单侧(右侧)检验,但是如果方便理解的话,可以写stats.norm.ppf(1-alpha,loc=0,scale=1)

4.其他问题

在文章开头提到的样本量计算公式中,单侧用的都是z1-alpha和z1-beta。那么如果是单侧(左侧)检验的话,是否在公式中就要变成zalpha和zbeta呢?希望老师可以在评论区回答下

5.链接

本文参考及另一篇stats.norm函数的笔记:https://blog.csdn.net/qq_36056219/article/details/112118602
另,本文中的项目及课程支持为拉勾数据分析训练营,感谢老师的细心讲解~

你可能感兴趣的:(python,数据分析)