Appendix A: Statistical Tables

A note on tables in the age of Python and Excel: The tables in this appendix are included for three reasons: (1) they help you build intuition for how distributions behave, (2) they allow hand calculations during exams and practice, and (3) they provide quick reference values without opening a computer. In professional practice, you will almost always use scipy.stats in Python or built-in functions in Excel rather than looking up values in printed tables. That said, understanding what these tables contain makes you a better user of the software.


A.1 Standard Normal (z) Distribution Table

The table below gives the cumulative probability P(Z <= z) for the standard normal distribution, where Z ~ N(0, 1). To find the area to the LEFT of a given z-score, locate the row for the ones and tenths digits and the column for the hundredths digit.

How to use this table: - For P(Z <= z): Read the value directly. - For P(Z > z): Compute 1 - P(Z <= z). - For P(-z < Z < z): Compute 2 * P(Z <= z) - 1. - For P(Z < -z): By symmetry, P(Z < -z) = P(Z > z) = 1 - P(Z <= z).

Abbreviated Standard Normal Table (Negative z)

z 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09
-3.4 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0003 0.0002
-3.3 0.0005 0.0005 0.0005 0.0004 0.0004 0.0004 0.0004 0.0004 0.0004 0.0003
-3.2 0.0007 0.0007 0.0006 0.0006 0.0006 0.0006 0.0006 0.0005 0.0005 0.0005
-3.1 0.0010 0.0009 0.0009 0.0009 0.0008 0.0008 0.0008 0.0008 0.0007 0.0007
-3.0 0.0013 0.0013 0.0013 0.0012 0.0012 0.0011 0.0011 0.0011 0.0010 0.0010
-2.9 0.0019 0.0018 0.0018 0.0017 0.0016 0.0016 0.0015 0.0015 0.0014 0.0014
-2.8 0.0026 0.0025 0.0024 0.0023 0.0023 0.0022 0.0021 0.0021 0.0020 0.0019
-2.7 0.0035 0.0034 0.0033 0.0032 0.0031 0.0030 0.0029 0.0028 0.0027 0.0026
-2.6 0.0047 0.0045 0.0044 0.0043 0.0041 0.0040 0.0039 0.0038 0.0037 0.0036
-2.5 0.0062 0.0060 0.0059 0.0057 0.0055 0.0054 0.0052 0.0051 0.0049 0.0048
-2.4 0.0082 0.0080 0.0078 0.0075 0.0073 0.0071 0.0069 0.0068 0.0066 0.0064
-2.3 0.0107 0.0104 0.0102 0.0099 0.0096 0.0094 0.0091 0.0089 0.0087 0.0084
-2.2 0.0139 0.0136 0.0132 0.0129 0.0125 0.0122 0.0119 0.0116 0.0113 0.0110
-2.1 0.0179 0.0174 0.0170 0.0166 0.0162 0.0158 0.0154 0.0150 0.0146 0.0143
-2.0 0.0228 0.0222 0.0217 0.0212 0.0207 0.0202 0.0197 0.0192 0.0188 0.0183
-1.9 0.0287 0.0281 0.0274 0.0268 0.0262 0.0256 0.0250 0.0244 0.0239 0.0233
-1.8 0.0359 0.0351 0.0344 0.0336 0.0329 0.0322 0.0314 0.0307 0.0301 0.0294
-1.7 0.0446 0.0436 0.0427 0.0418 0.0409 0.0401 0.0392 0.0384 0.0375 0.0367
-1.6 0.0548 0.0537 0.0526 0.0516 0.0505 0.0495 0.0485 0.0475 0.0465 0.0455
-1.5 0.0668 0.0655 0.0643 0.0630 0.0618 0.0606 0.0594 0.0582 0.0571 0.0559
-1.4 0.0808 0.0793 0.0778 0.0764 0.0749 0.0735 0.0721 0.0708 0.0694 0.0681
-1.3 0.0968 0.0951 0.0934 0.0918 0.0901 0.0885 0.0869 0.0853 0.0838 0.0823
-1.2 0.1151 0.1131 0.1112 0.1093 0.1075 0.1056 0.1038 0.1020 0.1003 0.0985
-1.1 0.1357 0.1335 0.1314 0.1292 0.1271 0.1251 0.1230 0.1210 0.1190 0.1170
-1.0 0.1587 0.1562 0.1539 0.1515 0.1492 0.1469 0.1446 0.1423 0.1401 0.1379
-0.9 0.1841 0.1814 0.1788 0.1762 0.1736 0.1711 0.1685 0.1660 0.1635 0.1611
-0.8 0.2119 0.2090 0.2061 0.2033 0.2005 0.1977 0.1949 0.1922 0.1894 0.1867
-0.7 0.2420 0.2389 0.2358 0.2327 0.2296 0.2266 0.2236 0.2206 0.2177 0.2148
-0.6 0.2743 0.2709 0.2676 0.2643 0.2611 0.2578 0.2546 0.2514 0.2483 0.2451
-0.5 0.3085 0.3050 0.3015 0.2981 0.2946 0.2912 0.2877 0.2843 0.2810 0.2776
-0.4 0.3446 0.3409 0.3372 0.3336 0.3300 0.3264 0.3228 0.3192 0.3156 0.3121
-0.3 0.3821 0.3783 0.3745 0.3707 0.3669 0.3632 0.3594 0.3557 0.3520 0.3483
-0.2 0.4207 0.4168 0.4129 0.4090 0.4052 0.4013 0.3974 0.3936 0.3897 0.3859
-0.1 0.4602 0.4562 0.4522 0.4483 0.4443 0.4404 0.4364 0.4325 0.4286 0.4247
-0.0 0.5000 0.4960 0.4920 0.4880 0.4840 0.4801 0.4761 0.4721 0.4681 0.4641

Abbreviated Standard Normal Table (Positive z)

z 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09
0.0 0.5000 0.5040 0.5080 0.5120 0.5160 0.5199 0.5239 0.5279 0.5319 0.5359
0.1 0.5398 0.5438 0.5478 0.5517 0.5557 0.5596 0.5636 0.5675 0.5714 0.5753
0.2 0.5793 0.5832 0.5871 0.5910 0.5948 0.5987 0.6026 0.6064 0.6103 0.6141
0.3 0.6179 0.6217 0.6255 0.6293 0.6331 0.6368 0.6406 0.6443 0.6480 0.6517
0.4 0.6554 0.6591 0.6628 0.6664 0.6700 0.6736 0.6772 0.6808 0.6844 0.6879
0.5 0.6915 0.6950 0.6985 0.7019 0.7054 0.7088 0.7123 0.7157 0.7190 0.7224
0.6 0.7257 0.7291 0.7324 0.7357 0.7389 0.7422 0.7454 0.7486 0.7517 0.7549
0.7 0.7580 0.7611 0.7642 0.7673 0.7704 0.7734 0.7764 0.7794 0.7823 0.7852
0.8 0.7881 0.7910 0.7939 0.7967 0.7995 0.8023 0.8051 0.8078 0.8106 0.8133
0.9 0.8159 0.8186 0.8212 0.8238 0.8264 0.8289 0.8315 0.8340 0.8365 0.8389
1.0 0.8413 0.8438 0.8461 0.8485 0.8508 0.8531 0.8554 0.8577 0.8599 0.8621
1.1 0.8643 0.8665 0.8686 0.8708 0.8729 0.8749 0.8770 0.8790 0.8810 0.8830
1.2 0.8849 0.8869 0.8888 0.8907 0.8925 0.8944 0.8962 0.8980 0.8997 0.9015
1.3 0.9032 0.9049 0.9066 0.9082 0.9099 0.9115 0.9131 0.9147 0.9162 0.9177
1.4 0.9192 0.9207 0.9222 0.9236 0.9251 0.9265 0.9279 0.9292 0.9306 0.9319
1.5 0.9332 0.9345 0.9357 0.9370 0.9382 0.9394 0.9406 0.9418 0.9429 0.9441
1.6 0.9452 0.9463 0.9474 0.9484 0.9495 0.9505 0.9515 0.9525 0.9535 0.9545
1.7 0.9554 0.9564 0.9573 0.9582 0.9591 0.9599 0.9608 0.9616 0.9625 0.9633
1.8 0.9641 0.9649 0.9656 0.9664 0.9671 0.9678 0.9686 0.9693 0.9699 0.9706
1.9 0.9713 0.9719 0.9726 0.9732 0.9738 0.9744 0.9750 0.9756 0.9761 0.9767
2.0 0.9772 0.9778 0.9783 0.9788 0.9793 0.9798 0.9803 0.9808 0.9812 0.9817
2.1 0.9821 0.9826 0.9830 0.9834 0.9838 0.9842 0.9846 0.9850 0.9854 0.9857
2.2 0.9861 0.9864 0.9868 0.9871 0.9875 0.9878 0.9881 0.9884 0.9887 0.9890
2.3 0.9893 0.9896 0.9898 0.9901 0.9904 0.9906 0.9909 0.9911 0.9913 0.9916
2.4 0.9918 0.9920 0.9922 0.9925 0.9927 0.9929 0.9931 0.9932 0.9934 0.9936
2.5 0.9938 0.9940 0.9941 0.9943 0.9945 0.9946 0.9948 0.9949 0.9951 0.9952
2.6 0.9953 0.9955 0.9956 0.9957 0.9959 0.9960 0.9961 0.9962 0.9963 0.9964
2.7 0.9965 0.9966 0.9967 0.9968 0.9969 0.9970 0.9971 0.9972 0.9973 0.9974
2.8 0.9974 0.9975 0.9976 0.9977 0.9977 0.9978 0.9979 0.9979 0.9980 0.9981
2.9 0.9981 0.9982 0.9982 0.9983 0.9984 0.9984 0.9985 0.9985 0.9986 0.9986
3.0 0.9987 0.9987 0.9987 0.9988 0.9988 0.9989 0.9989 0.9989 0.9990 0.9990
3.1 0.9990 0.9991 0.9991 0.9991 0.9992 0.9992 0.9992 0.9992 0.9993 0.9993
3.2 0.9993 0.9993 0.9994 0.9994 0.9994 0.9994 0.9994 0.9995 0.9995 0.9995
3.3 0.9995 0.9995 0.9995 0.9996 0.9996 0.9996 0.9996 0.9996 0.9996 0.9997
3.4 0.9997 0.9997 0.9997 0.9997 0.9997 0.9997 0.9997 0.9997 0.9997 0.9998

Common Critical Values (Quick Reference)

Confidence Level Alpha (two-tailed) Alpha (one-tailed) z*
90% 0.10 0.05 1.645
95% 0.05 0.025 1.960
98% 0.02 0.01 2.326
99% 0.01 0.005 2.576
99.9% 0.001 0.0005 3.291

Python equivalent:

from scipy.stats import norm
# P(Z <= z)
norm.cdf(1.96)           # 0.9750
# z* for a given confidence level
norm.ppf(0.975)          # 1.960 (two-tailed 95%)

A.2 Student's t-Distribution Critical Values

The table below gives the critical value t such that P(T > t) = alpha for a t-distribution with the specified degrees of freedom (df). For two-tailed tests, use the column header that represents alpha/2 in each tail.

How to use this table: - One-tailed test: Use the one-tail alpha column directly. - Two-tailed test: Use the two-tail alpha row. For example, for a 95% confidence interval, use the 0.025 column (alpha/2 = 0.025 in each tail). - Confidence intervals: The two-tailed alpha = 1 - confidence level. For 95% CI, alpha = 0.05, so use the 0.025 column.

df alpha = 0.10 alpha = 0.05 alpha = 0.025 alpha = 0.01 alpha = 0.005
90% CI 95% CI (one-tail 0.05) 95% CI (two-tail) 98% CI (one-tail 0.01) 99% CI (two-tail)
1 3.078 6.314 12.706 31.821 63.657
2 1.886 2.920 4.303 6.965 9.925
3 1.638 2.353 3.182 4.541 5.841
4 1.533 2.132 2.776 3.747 4.604
5 1.476 2.015 2.571 3.365 4.032
6 1.440 1.943 2.447 3.143 3.707
7 1.415 1.895 2.365 2.998 3.499
8 1.397 1.860 2.306 2.896 3.355
9 1.383 1.833 2.262 2.821 3.250
10 1.372 1.812 2.228 2.764 3.169
11 1.363 1.796 2.201 2.718 3.106
12 1.356 1.782 2.179 2.681 3.055
13 1.350 1.771 2.160 2.650 3.012
14 1.345 1.761 2.145 2.624 2.977
15 1.341 1.753 2.131 2.602 2.947
16 1.337 1.746 2.120 2.583 2.921
17 1.333 1.740 2.110 2.567 2.898
18 1.330 1.734 2.101 2.552 2.878
19 1.328 1.729 2.093 2.539 2.861
20 1.325 1.725 2.086 2.528 2.845
21 1.323 1.721 2.080 2.518 2.831
22 1.321 1.717 2.074 2.508 2.819
23 1.319 1.714 2.069 2.500 2.807
24 1.318 1.711 2.064 2.492 2.797
25 1.316 1.708 2.060 2.485 2.787
26 1.315 1.706 2.056 2.479 2.779
27 1.314 1.703 2.052 2.473 2.771
28 1.313 1.701 2.048 2.467 2.763
29 1.311 1.699 2.045 2.462 2.756
30 1.310 1.697 2.042 2.457 2.750
40 1.303 1.684 2.021 2.423 2.704
50 1.299 1.676 2.009 2.403 2.678
60 1.296 1.671 2.000 2.390 2.660
80 1.292 1.664 1.990 2.374 2.639
100 1.290 1.660 1.984 2.364 2.626
120 1.289 1.658 1.980 2.358 2.617
inf 1.282 1.645 1.960 2.326 2.576

Key observation: As df increases, t approaches z. For df > 30, the t-distribution is nearly indistinguishable from the standard normal. The last row (df = infinity) matches the z-table critical values exactly.

Python equivalent:

from scipy.stats import t
# Critical value for 95% CI with df = 20
t.ppf(0.975, df=20)      # 2.086
# p-value for t = 2.53 with df = 48 (two-tailed)
2 * t.sf(2.53, df=48)    # 0.0147

A.3 Chi-Square Distribution Critical Values

The table below gives the critical value chi-sq such that P(X^2 > chi-sq) = alpha for a chi-square distribution with the specified degrees of freedom. Reject H0 when the computed chi-square statistic exceeds the table value.

df alpha = 0.10 alpha = 0.05 alpha = 0.025 alpha = 0.01 alpha = 0.005
1 2.706 3.841 5.024 6.635 7.879
2 4.605 5.991 7.378 9.210 10.597
3 6.251 7.815 9.348 11.345 12.838
4 7.779 9.488 11.143 13.277 14.860
5 9.236 11.070 12.833 15.086 16.750
6 10.645 12.592 14.449 16.812 18.548
7 12.017 14.067 16.013 18.475 20.278
8 13.362 15.507 17.535 20.090 21.955
9 14.684 16.919 19.023 21.666 23.589
10 15.987 18.307 20.483 23.209 25.188
11 17.275 19.675 21.920 24.725 26.757
12 18.549 21.026 23.337 26.217 28.300
13 19.812 22.362 24.736 27.688 29.819
14 21.064 23.685 26.119 29.141 31.319
15 22.307 24.996 27.488 30.578 32.801
16 23.542 26.296 28.845 32.000 34.267
17 24.769 27.587 30.191 33.409 35.718
18 25.989 28.869 31.526 34.805 37.156
19 27.204 30.144 32.852 36.191 38.582
20 28.412 31.410 34.170 37.566 39.997
21 29.615 32.671 35.479 38.932 41.401
22 30.813 33.924 36.781 40.289 42.796
23 32.007 35.172 38.076 41.638 44.181
24 33.196 36.415 39.364 42.980 45.559
25 34.382 37.652 40.646 44.314 46.928
26 35.563 38.885 41.923 45.642 48.290
27 36.741 40.113 43.195 46.963 49.645
28 37.916 41.337 44.461 48.278 50.993
29 39.087 42.557 45.722 49.588 52.336
30 40.256 43.773 46.979 50.892 53.672

Degrees of freedom for chi-square tests: - Goodness-of-fit: df = k - 1 (where k = number of categories) - Test of independence: df = (r - 1)(c - 1) (where r = rows, c = columns)

Python equivalent:

from scipy.stats import chi2
# Critical value at alpha = 0.05 with df = 4
chi2.ppf(0.95, df=4)        # 9.488
# p-value for chi-sq = 12.4 with df = 4
chi2.sf(12.4, df=4)          # 0.0145

A.4 F-Distribution Critical Values (alpha = 0.05)

The F-distribution has two degrees of freedom parameters: df1 (numerator, between-groups) and df2 (denominator, within-groups). The table gives the critical value F such that P(F > F) = 0.05. Reject H0 in one-way ANOVA when the computed F-statistic exceeds the table value.

F Critical Values at alpha = 0.05

df2 \ df1 1 2 3 4 5 6 8 10 12 20
5 6.608 5.786 5.409 5.192 5.050 4.950 4.818 4.735 4.678 4.558
6 5.987 5.143 4.757 4.534 4.387 4.284 4.147 4.060 4.000 3.874
7 5.591 4.737 4.347 4.120 3.972 3.866 3.726 3.637 3.575 3.445
8 5.318 4.459 4.066 3.838 3.687 3.581 3.438 3.347 3.284 3.150
9 5.117 4.256 3.863 3.633 3.482 3.374 3.230 3.137 3.073 2.936
10 4.965 4.103 3.708 3.478 3.326 3.217 3.072 2.978 2.913 2.774
12 4.747 3.885 3.490 3.259 3.106 2.996 2.849 2.753 2.687 2.544
15 4.543 3.682 3.287 3.056 2.901 2.790 2.641 2.544 2.475 2.328
20 4.351 3.493 3.098 2.866 2.711 2.599 2.447 2.348 2.278 2.124
24 4.260 3.403 3.009 2.776 2.621 2.508 2.355 2.255 2.183 2.027
30 4.171 3.316 2.922 2.690 2.534 2.421 2.266 2.165 2.092 1.932
40 4.085 3.232 2.839 2.606 2.449 2.336 2.180 2.077 2.003 1.839
60 4.001 3.150 2.758 2.525 2.368 2.254 2.097 1.993 1.917 1.748
120 3.920 3.072 2.680 2.447 2.290 2.175 2.016 1.910 1.834 1.659
inf 3.841 2.996 2.605 2.372 2.214 2.099 1.938 1.831 1.752 1.571

F Critical Values at alpha = 0.01

df2 \ df1 1 2 3 4 5 6 8 10 12 20
5 16.258 13.274 12.060 11.392 10.967 10.672 10.289 10.051 9.888 9.553
6 13.745 10.925 9.780 9.148 8.746 8.466 8.102 7.874 7.718 7.396
7 12.246 9.547 8.451 7.847 7.460 7.191 6.840 6.620 6.469 6.155
8 11.259 8.649 7.591 7.006 6.632 6.371 6.029 5.814 5.667 5.359
9 10.561 8.022 6.992 6.422 6.057 5.802 5.467 5.257 5.111 4.808
10 10.044 7.559 6.552 5.994 5.636 5.386 5.057 4.849 4.706 4.405
12 9.330 6.927 5.953 5.412 5.064 4.821 4.499 4.296 4.155 3.858
15 8.683 6.359 5.417 4.893 4.556 4.318 4.004 3.805 3.666 3.372
20 8.096 5.849 4.938 4.431 4.103 3.871 3.564 3.368 3.231 2.938
24 7.823 5.614 4.718 4.218 3.895 3.667 3.363 3.168 3.032 2.740
30 7.562 5.390 4.510 4.018 3.699 3.473 3.173 2.979 2.843 2.549
40 7.314 5.179 4.313 3.828 3.514 3.291 2.993 2.801 2.665 2.369
60 7.077 4.977 4.126 3.649 3.339 3.119 2.823 2.632 2.496 2.198
120 6.851 4.787 3.949 3.480 3.174 2.956 2.663 2.472 2.336 2.035
inf 6.635 4.605 3.782 3.319 3.017 2.802 2.511 2.321 2.185 1.878

For one-way ANOVA: - df1 = k - 1 (number of groups minus 1) - df2 = N - k (total observations minus number of groups)

Python equivalent:

from scipy.stats import f
# Critical value at alpha = 0.05 with df1 = 3, df2 = 20
f.ppf(0.95, dfn=3, dfd=20)   # 3.098
# p-value for F = 4.75 with df1 = 3, df2 = 36
f.sf(4.75, dfn=3, dfd=36)     # 0.0069

A.5 Quick Reference: Which Table Do I Need?

Situation Distribution Table
z-test for proportions Standard normal A.1
z-test for means (sigma known) Standard normal A.1
Confidence interval for a proportion Standard normal A.1
t-test for means (sigma unknown) Student's t A.2
Confidence interval for a mean Student's t A.2
Paired t-test Student's t A.2
Two-sample t-test Student's t A.2
Chi-square goodness-of-fit Chi-square A.3
Chi-square test of independence Chi-square A.3
One-way ANOVA F-distribution A.4

When in doubt, use Python:

from scipy import stats
# Any distribution: stats.{dist}.cdf(), .ppf(), .sf()
# cdf(x) = P(X <= x)
# ppf(q) = x such that P(X <= x) = q  (inverse CDF)
# sf(x)  = P(X > x) = 1 - cdf(x)     (survival function)