3

I couldn't find any videos or documentation that shows how to calculate p-value of a z-score without using z-table. Isn't it possible or is it that hard?

I know i can use scipy to get that information but how can we calculate without needing them?

Don Coder
  • 435
  • 4
  • 10

1 Answers1

2

Certainly it's possible. After all, people need to calculate the tables in the first place.

Recall the definition of a $p$ value. Given a value $z$, the $p$ value is defined as the tail probability of the standard normal distribution beyond $z$:

$$ p \equiv \frac{1}{\sqrt{2\pi}}\int_z^\infty e^{-x^2}\,dx. $$

This is an improper integral that needs to be numerically evaluated. Or, more precisely, approximated.

Stephan Kolassa
  • 95,027
  • 13
  • 197
  • 357
  • Stephan thank you. But is there a python code for this equation? I'm not that great with mathematical formulas :) – Don Coder Sep 09 '19 at 17:40
  • I don't speak Python, sorry. You might want to look through [the "Python" and "normal-distribution" tags at SO](https://stackoverflow.com/questions/tagged/python%2bnormal-distribution?tab=Votes). Most of which will likely point you at scipy. You might want to post a question there and explain why you don't want to use scipy. – Stephan Kolassa Sep 09 '19 at 18:22
  • @Don Coder: two-sided test ```scipy.stats.norm.sf(z)*2```; one-sided test: ```scipy.stats.norm.sf(z)``` (Stephan's answer) – user4624500 Jan 19 '22 at 08:03