Before the questions, pin down every symbol and function name so nothing below is a mystery. Look at the picture: it is ONE bell curve with the four functions all drawn on it.
The next figure shows the CDF/SF trade-off directly: as x moves right, yellow (left area) grows toward 1 and red (right area) shrinks toward 0 — they are two views of the same split.
The two-sided doubling of a tail is what makes a two-sided p-value; here it is drawn as both red tails of one curve.
And this last figure shows the far-tail precision trap: why 1 - cdf collapses to zero while .sf keeps every digit.
A small p-value means the null hypothesis H0 is probably false.
False — the p-value is P(data this extreme∣H0), the reverse conditioning of P(H0∣data); it says the data is surprising assumingH0, not that H0 is unlikely. See p-values and Significance.
A p-value of 0.8 proves the two groups have equal means.
False — failing to reject is "no evidence of a difference," which can also happen with a tiny, low-power sample; absence of evidence is not evidence of absence.
For any distribution in scipy, loc is the mean and scale is the standard deviation.
False — that coincidence holds only for norm; in general loc shifts and scale stretches, e.g. for expon the mean equals scale=1/λ, not the sd formula you'd expect.
stats.norm.pdf(0) returns a probability.
False — the PDF returns a density (height of the bell in figure s01), not a probability; probability comes from area, so a single point has probability zero for a continuous variable.
.sf(x) and 1 - .cdf(x) always give identical numbers.
False as stated — they are mathematically equal but not numerically identical: far in the tail 1 - cdf subtracts two near-1 floats and loses precision (see figure s04), while .sf is computed directly and stays accurate.
A larger sample makes every true (nonzero) effect show up as statistically significant eventually.
True — the standard error shrinks like 1/n, so with enough data any real nonzero difference will eventually cross p<α; the catch is that statistical significance then no longer implies the effect is large or important.
The t-statistic follows a normal distribution when n is small.
False — because σ is estimated by s, the extra uncertainty gives heavier tails, so t follows Student-t with n−1 degrees of freedom; it only approaches normal as n grows.
Rejecting H0 at α=0.05 means there's a 5% chance you're wrong.
False — α is the false-positive rate when H0 is actually true (a long-run property of the test), not the probability that this particular decision is a mistake.
The chi-square statistic ∑(O−E)2/E can be negative.
False — every term is a squared difference divided by a positive expected count, so the sum is always ≥0; it hits zero only when observed exactly equals expected. See Chi-square Distribution.
stats.norm.fit(sample) gives the true μ and σ of the population.
False — it returns maximum-likelihood estimates from the sample, which recover the truth only approximately and get better as the sample grows. See Maximum Likelihood Estimation.
p = stats.norm(100, 15).cdf(130) to find the fraction scoring above 130. Why is this wrong?
.cdf(130) gives the area to the left (fraction below, the yellow region in figure s02); for "above" you need the upper tail .sf(130)=1−F(130), the red region.
stats.expon(scale=0.5) was written to model events arriving at rate λ=0.5. Where's the trap?
For expon, scale=1/λ, so scale=0.5 means λ=2; to get λ=0.5 you'd write scale=2.
Someone reads a p-value of 0.049 as "strong evidence" and 0.051 as "no evidence at all." What's the flaw?
The α=0.05 cutoff is an arbitrary convention, not a physical wall; two p-values straddling it carry almost identical strength of evidence, so treating them as opposite worlds is a false dichotomy.
To test if the mean is 5, someone uses ttest_ind(data, [5,5,5,5,5]). Why is that the wrong test?
ttest_ind compares two independent samples; testing one sample against a fixed number μ0 is a one-sample test, ttest_1samp(data, popmean=5).
stats.chisquare(obs, exp) is called where several expected counts are 1 or 2. What's unsound?
The chi-square approximation assumes expected counts are reasonably large (rule of thumb ≥5); tiny expected values make the p-value untrustworthy.
z = (x - mu) / sigma**2 was written to standardize a value. Spot the bug.
You divide by σ, not σ2 — dividing by the variance would give the wrong units and wrong scale; the z-score is (x−μ)/σ.
A one-sided p-value was doubled and then compared to α/2. Why is this a double penalty?
You either double the one-sided p-value (for a two-sided test) and compare to α, or keep it one-sided and compare to α/2 — doing both applies the correction twice.
Why does a two-sided t-test multiply the tail probability by 2 (see figure s03)?
"At least as extreme" means as far from μ0 in either direction, so you add both symmetric red tails P(T>∣t∣) and P(T<−∣t∣), which by symmetry equals 2P(T>∣t∣).
Why does the standard error of the mean shrink by n and not by n?
Variance of a sum of n independent values grows like n, so the mean's variance is σ2/n; taking the square root to get the sd gives σ/n. See Central Limit Theorem.
Why can one stats.norm object answer questions about every normal distribution?
The z-transform Z=(X−μ)/σ slides the curve to center 0 (that's loc) and squashes width to 1 (that's scale), mapping any N(μ,σ) onto the standard N(0,1). See Normal Distribution.
Why is the PDF defined as the derivative of the CDF?
The CDF accumulates probability (the growing yellow area in figure s02); the density is how fast it accumulates, so probability in a sliver [x,x+dx] is f(x)dx=F(x+dx)−F(x).
Why use t (Student-t) rather than z when the population sd is unknown?
Replacing σ with the sample estimate s injects extra randomness; the heavier-tailed tn−1 widens the critical region to honestly account for that uncertainty.
Why does the sampling distribution of the mean look bell-shaped even when the raw data isn't?
The Central Limit Theorem says sums (and hence averages) of many independent contributions converge to a normal shape regardless of the original distribution. See Central Limit Theorem.
Why does the chi-square statistic divide each squared mismatch by the expected count E?
Dividing by E turns a raw squared deviation into a relative one — a gap of 5 matters far more when you expected 10 than when you expected 1000 — so the terms are comparably scaled. See Chi-square Distribution.
Exactly 0.5 — the standard normal is symmetric about 0 (figure s01), so half the area lies to the left of the center.
What does the PDF give for a point outside the support, e.g. stats.expon.pdf(-1)?
Zero — the exponential is only defined for x≥0, so density is zero everywhere the variable can't occur.
What p-value do you get from a one-sample t-test where the sample mean exactly equals μ0?
t=0, so the p-value is 1 — the data is perfectly consistent with H0, giving zero evidence against it.
What breaks in a one-sample t-test with n=1?
Degrees of freedom n−1=0, so there is no sample sd s to estimate spread (you'd divide by zero) and the t0 distribution is undefined — a single point carries zero information about variability, so the test simply cannot run.
As sample size n→∞ with σ unknown, what happens to the tn−1 distribution?
Its tails thin out and it converges to the standard normal N(0,1), because s estimates σ almost perfectly and the extra uncertainty vanishes.
What does stats.chisquare return when observed counts equal expected exactly?
Statistic =0 and p-value =1 — no mismatch at all, so there's no evidence against the "expected" model.
What is .ppf(0) and .ppf(1) for a normal?
−∞ and +∞ — the value below which 0% of mass lies is unbounded below, and 100% is unbounded above, since the normal has infinite support.
Why does 1 - cdf fail in the far tail but .sf survive (figure s04)?
Far out, cdf is like 0.99999999; subtracting it from 1 leaves only the last few digits, so catastrophic cancellation throws away precision, while .sf computes the tiny tail area directly and keeps every digit.
Recall One-line self-test
Cover every answer above. If you can justify at least 20 of them in a sentence — not guess yes/no — you own the concepts. The traps that trip people most: p-value direction, scale vs σ, .cdf vs .sf, and "failed to reject = proved."