簡體   English   中英

如何計算 python 中一項尾部測試的 pvalue?

[英]how to calculate pvalue for one tailed test in python?

一人口比例

研究問題:前幾年,52% 的父母認為電子產品和社交媒體是導致青少年睡眠不足的原因。 今天有更多的父母認為他們的青少年睡眠不足是由於電子產品和社交媒體造成的嗎?

人群:有青少年的父母(13-18 歲) 感興趣的參數:p Null 假設:p = 0.52 替代假設:p > 0.52(請注意,這是一個單方面的測試)

1018 家長

56% 認為他們的青少年睡眠不足是由於電子產品和社交媒體造成的

這是一個單尾測試,根據教授的說法,p 值應該是 0.0053,但是當我在 python 中計算 z-statistic=2.5545334262132955 的 p 值時:

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

此代碼給出 0.06 作為 output

我知道stats.distributions.norm.cdf給出了統計數據左側的概率,但上面的代碼給出了錯誤的 p 值

但是當我輸入: stats.distributions.norm.cdf(-z_statistic)

它給出 output 為 0.0053,

這怎么可能,請幫忙!!!

由於 n*p > 30,您使用正態近似二項式分布,並且比例測試的 zscore 為:

在此處輸入圖像描述

所以計算是:

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 的累積概率,因為你需要觀察比這更極端的東西的概率,它是:

1-stats.norm.cdf(Z)
0.0053165109918223985

正態分布的概率密度 function 是對稱的,所以1-stats.norm.cdf(Z)stats.norm.cdf(-Z)相同

該問題被表述為二項式問題:1018 個人以恆定概率做出是/否決定。 在您的情況下,1018 人中有 570 人持有該信念,並且該概率將與 52 % 進行比較

我不知道 Python,但我確認你的老師的結果是 R:

> binom.test(570, 1018, p = .52, alternative = "greater")

    Exact binomial test

data:  570 and 1018
number of successes = 570, number of trials =
1018, p-value = 0.005843
alternative hypothesis: true probability of success is greater than 0.52
95 percent confidence interval:
 0.533735 1.000000
sample estimates:
probability of success 
             0.5599214 

事實上,您處理 z 值讓我相信,您沒有 Python 問題,但使用了錯誤的測試,這就是為什么我相信我可以使用 R 來回答。 You can find a binomial test impemented in Python here: https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.binom_test.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM