Saya mencoba menghitung nilai-p untuk contoh lemparan koin berikut:

n = 5
h = 4  # out of 5 toss 4 are head

# calculate pvalue using equal or more extreme cases
pval = P(4H1T) + P(4T1H) + P(5H) + P(5T)
     = 5/32    + 5/32    + 1/32  + 1/32
     = 12/32
     = 0.375

Tetapi ketika saya mencoba metode standar:

from scipy import stats

phat = h / n
p0 = 0.5  # for unbiased coin
q0 = 1 - p0
z = (phat - p0) / sqrt(p0q0/n)      

pval = 1 - stats.norm.cdf(z)

Saya mendapatkan:

0.08985624743949994.

Pertanyaan 1

Bagaimana cara mendapatkan hasil yang serupa menggunakan statistik python scipy (jawaban = 0,375)?

Referensi

Dalam video statquest ini penulis menjelaskan cara mendapatkan pvalue menggunakan nilai yang sama atau lebih ekstrim dan kami mendapatkan 0,375

Tapi di sini,

Menggunakan rumus yang diberikan kita mendapatkan jawaban lain.

Pertanyaan 2

Metode mana yang baik sehingga kita dapat membandingkan pvalue dengan alpha?

0
Bhishan Poudel 12 Mei 2021, 20:07

2 jawaban

Jawaban Terbaik

Ini adalah kasus distribusi binomial. Ikuti contoh resmi di scipy.stats.binom_test:

import numpy as np
from scipy import stats

alpha = 0.05
pval = stats.binom_test(4, n=5, p=0.5, alternative='two-sided')

print('pvalue = ', pval)
if pval< alpha:
    print("We Reject the Null Hypothesis.")
else:
    print("We Accept the Null Hypothesis.")

Keluaran

pvalue =  0.375
We Accept the Null Hypothesis.

2
Bhishan Poudel 12 Mei 2021, 17:57

Nilai z adalah nilai standar dari distribusi normal dan BUKAN probabilitas. Juga, probabilitas untuk nilai yang tepat dalam distribusi kontinu sedikit lebih rumit. Skenario ini terdengar optimal untuk distribusi binomial.

from scipy.stats import binom
binom.pmf(4,5,0.5)

Keluaran mana:

0.15625
2
Celius Stingher 12 Mei 2021, 17:13