首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中计算单尾测试的pvalue?

如何在python中计算单尾测试的pvalue?
EN

Stack Overflow用户
提问于 2020-06-25 02:46:46
回答 1查看 1.1K关注 0票数 1

一个人口比例

研究问题:前几年,52%的父母认为电子产品和社交媒体是导致青少年睡眠不足的原因。如今,是否有更多的父母认为他们的孩子睡眠不足是由于电子产品和社交媒体造成的?

人口:父母有青少年(13-18岁)感兴趣的参数:P空假设:P= 0.52替代假说:P> 0.52 (请注意,这是一个片面的测试)

1018位家长

56%的人认为他们的青少年睡眠不足是由于电子产品和社交媒体造成的

这是一个单尾测试,根据教授的说法,p值应该是0.0053,但当我在python中计算z统计=2.5545334262132955的p值时:

p_value=stats.distributions.norm.cdf(1-z_statistic)

此代码提供0.06作为输出

我知道stats.distributions.norm.cdf给出了统计量左侧的概率,但上面的代码给出了错误的p值

但是当我输入:stats.distributions.norm.cdf(-z_statistic)

它的输出为0.0053,

这怎么可能,请帮帮忙!

EN

回答 1

Stack Overflow用户

发布于 2020-06-26 03:47:34

由于n*p > 30,所以可以用正态分布近似二项分布,proportion test的zscore为:

所以计算结果是:

代码语言:javascript
复制
import numpy as np
from scipy import stats
p0 = 0.52
p = 0.56
n = 1018
Z = (p-p0)/np.sqrt(p0*(1-p0)/n)

Z
2.5545334262132955

你的Z是正确的,stats.norm.cdf(Z)给出了直到Z的累积概率,因为你需要观察到比这个更极端的事情的概率,所以它是:

代码语言:javascript
复制
1-stats.norm.cdf(Z)
0.0053165109918223985

正态分布的概率密度函数是对称的,因此1-stats.norm.cdf(Z)stats.norm.cdf(-Z)相同

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62562064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档