700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python scipy 密度函数 分位数 累计函数计算p值 卡方检验 t检验 F检验 假设检

python scipy 密度函数 分位数 累计函数计算p值 卡方检验 t检验 F检验 假设检

时间:2018-12-05 13:25:16

相关推荐

python scipy 密度函数 分位数 累计函数计算p值 卡方检验 t检验 F检验 假设检

AB实验:

1. 人均类->t检验

# 计算t值def get_t(x):# 遍历看x需要几次的显著性检验。可能有多个实验组,需要一对一检验x1 = x[x.分组.astype('str')=='1'].iloc[0] # 对照组,组号固定为1,转为Series格式for i in x[x.分组.astype('str')!='1'].分组:x2 = x[x.分组==i].iloc[0] # 实验组i,组号为i# 计算t值,由于输入的是x2-x1,故t值越大,说明x2越大于x1。t = (x2.均值-x1.均值) / np.sqrt( (1/x2.样本量+1/x1.样本量) * (( x2.样本量-1)*x2.方差 + (x1.样本量-1)*x1.方差) / ( x2.样本量 + x1.样本量 - 2 ) )# 计算p值,无论t值的正负,均按照正的处理。n = x1.样本量+x2.样本量-2 # 总体方差相等时的自由度p_value = stats.t.sf(abs(t), n)*2 x.loc[x.分组==i, 't值'] = tx.loc[x.分组==i, 'p值'] = p_valuereturn xsign = sign.groupby('指标').apply(get_t)sign

sign:

2. 比值类->delta method + t检验

# 比值类,两个正态分布相比,需要对方差进行delta method修正def get_t3(x):# 遍历看x需要几次的显著性检验。可能有多个实验组,需要一对一检验x1 = x[x.分组.astype(str)=='1'].iloc[0] # 对照组,组号固定为1,转为Series格式for i in x[x.分组.astype(str)!='1'].分组:x2 = x[x.分组==i].iloc[0] # 实验组i,组号为i# delta method方法计算t值var1 = (1/x1.样本量) * (x1['分子-方差']/x1['分母-均值']**2 + (x1['分子-均值'])**2*x1['分母-方差']/x1['分母-均值']**4)var2= (1/x2.样本量) * (x2['分子-方差']/x2['分母-均值']**2 + (x2['分子-均值'])**2*x2['分母-方差']/x2['分母-均值']**4)t = (x2['分子-均值']/x2['分母-均值']-x1['分子-均值']/x1['分母-均值']) / np.sqrt(var1 + var2)n = x1.样本量+x2.样本量-2# 计算p值p_value = stats.t.sf(abs(t), n)*2 x.loc[x.分组==i, 't值'] = tx.loc[x.分组==i, 'p值'] = p_valuereturn x

输入:

3. 用户转化类

x1 = 1 # "对照组-点击人数"x2 = 2 # "实验组-点击人数"p1 = 1 / 1 # 对照组-点击到xx的用户转化率p2 = 1 / 2 # 实验组-点击到xx的用户转化率z = (p2-p1)*1.0000/np.sqrt((p2*(1-p2))/(x2)+(p1*(1-p1))/(x1))print('zscore:', z)p_value = stats.norm.sf(abs(z))*2print('p值:', p_value)

还没写完,后续补上

旧版:

from scipy import stats# F分布stats.f.ppf(0.95,n1,n2) # 0.95分位数求概率面积stats.f.cdf(5.14,n1,n2) # 面积求概率----累计分布stats.f.pdf(2,n1,n2) # 求x=2的概率----概率分布函数# 卡方分布stats.chi2.ppf(vlas, df)# 计算p值--F检验p_value = 1 - stats.f.cdf(F,n1,n2)# t检验# p_value = 1 - stats.t.cdf(t, n1+n2-2) # t值 # 旧版p_value = stats.t.sf(abs(t), n)*2

1.

计算p值时要不要1-。如果t值大于0,要,如果t值小于0,不用。因为p值指的是这里:

2.

t=μ2−μ1(n1−1)S12+(b2−1)S22n1+n2−2t=\dfrac{\mu_2-\mu_1}{\sqrt{\frac{(n_1-1)S^2_1+(b2-1)S^2_2}{n_1+n2-2}}}t=n1​+n2−2(n1​−1)S12​+(b2−1)S22​​​μ2​−μ1​​

t值用(实验组-对照组)或(对照组-实验组)都可以,注意看用的什么就行。

stats.chi2_contingency列联表的独立性检验(卡方检验)

参考:scipy.stats.chi2分布(python scipy 卡方分布 )

3. 用户维度的数据,如何直接做t检验,不用手动计算均值方差

t, p,df=st.ttest_ind(对照组-每个用户的点击量, 实验组-每个用户的点击量,usevar='unequal') # usevar='unequal'表示两个总体方差不同print('假设检验的t值=%.3f'%t,'自由度为%.3f'%df,'双尾检验p值=%.4f'%p)

python scipy 密度函数 分位数 累计函数计算p值 卡方检验 t检验 F检验 假设检验 AB实验 显著性检验

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。